Planet Debian

Subscribe to Planet Debian feed
Planet Debian -
Updated: 1 week 3 days ago

Bartosz Feński: lack of SRS on mail servers

13 April, 2015 - 01:46

Any good reason that we’re not using SRS to make SPF aware servers happy?
That’s kinda strange given that is doing only forwarding.

Josselin Mouette: GNOME for system administrators - Jessie edition

12 April, 2015 - 21:29
The mini-Debconf Lyon 2015, in addition to being a great meeting to meet both friendly and new faces, has been the occasion for me to update and enrich the GNOME for system administrators course.

For those who couldn’t be here, as well as those who were here and disappointed to see me cut through the last third for timing reasons, here are the slides:

Wouter Verhelst: LOADays 2015 talk done

12 April, 2015 - 18:36

I just uploaded my LOADays 2015 slides to slideshare. The talk seems to have been well received; I got a number of positive comments from some attendees, which is always nice.

As an aside, during the talk I did a short demo of how to sign something from within Libreoffice using my eID card. Since the slides were made in Libreoffice Impress, the easiest thing to do was just to sign the slides themselves, which worked perfectly well. So, having uploaded, downloaded, and verified these slides, I can now say with 100% certainty that slideshare does not tamper with files you upload. They may reformat them so it's easier to view on a website, but if you click on the download link, you get the original, untampered version.

At least that's the case if you sign documents, of course; it's always possible that they check for that and special-case such things. Would surprise me, though.

Steve Kemp: Some things get moved, some things get doubled in size.

11 April, 2015 - 07:00


We're about three months away from relocating from Edinburgh to Newcastle and some of the immediate panic has worn off.

We've sold our sofa, our spare sofa, etc, etc. We've bought a used dining-table, chairs, and a small sofa, etc. We need to populate the second-bedroom as an actual bedroom, do some painting, & etc, but things are slowly getting done.

I've registered myself as a landlord with the city council, so that I can rent the flat out without getting into trouble, and I'm in the process of discussing the income possabilities with a couple of agencies.

We're still unsure of precisely which hospital, from the many choices, in Newcastle my wife will be stationed at. That's frustrating because she could be in the city proper, or outside it. So we need to know before we can find a place to rent there.

Anyway moving? It'll be annoying, but we're making progress. Plus, how hard can it be?

VLAN Expansion

I previously had a /28 assigned for my own use, now I've doubled that to a /27 which gives me the ability to create more virtual machines and run some SSL on some websites.

Using SNI I've actually got the ability to run SSL almost all sites. So I configured myself as a CA and generated a bunch of certificates for myself. (Annoyingly few tutorials on running a CA mentioned SNI so it took a few attempts to get the SAN working. But once I got the hang of it it was simple enough.)

So if you have my certificate authority file installed you can browse many, many of my interesting websites over SSL.


I run a number of servers behind a reverse-proxy. At the moment the back-end is lighttpd. Now that I have SSL setup the incoming requests hit the proxy, get routed to lighttpd and all is well. Mostly.

However redirections break. A request for:


Gets rewritten to:


That is because lighttpd generates the redirection and it only sees the HTTP connection. It seems there is mod_extforward which should allow the server to be aware of the SSL - but it doesn't do so in a useful fashion.

So right now most of my sites are SSL-enabled, but sometimes they'll flip to naked and unprotected. Annoying.

I don't yet have a solution..

Andrew Shadura: Kallithea 0.2 released

11 April, 2015 - 03:48

This post is almost a carbon copy of the Kallithea 0.2 release notes.

Kallithea project have just released Kallithea 0.2. Kallithea is a Python-based GPLv3 source code management software for web-based hosting of Mercurial and Git repositories.

This release brings many changes since 0.1. Notably, pull requests system have been improved, making contributing changes more robust. The visual appearance has also been refined: modern font-based symbolic icons from FontAwesome and GitHub Octicons have replaced the previously used bitmap icons, and revision graphs are now drawn with HiDPI display support. Kallithea now supports Mercurial 3.3 and Dulwich 0.9.9. Several fixes in the database code boosted performance significantly.

We have also updated our Javascript libraries: jQuery, CodeMirror and Mergely. Javascript and CSS code have been cleaned up, with less and less code depending on Yahoo UI library.

Since 0.1 we have discovered two security issues, so all users are strongly recommended to upgrade. For more details on these issues, please see our Security Notices page

For more information, see or

The summary of the changes since 0.1 release is below.

Bug fixes:

  • forms: add CSRF protection to all forms — CVE-2015-0276
  • api: don’t send internal data unless asked for it — CVE-2015-0260
  • middleware: fix force_tls typo in force_https backward compatibility code (Issue #44)
  • rebranddb: update user extern_type and _name to ‘internal’ instead of ‘kallithea’ (Issue #38)
  • git: do not fail if git is not installed and has been removed from backends
  • git: fix 'name' must be bytestring, not unicode error on browsing changesets
  • git: close SubprocessIOChunker inputstream used for git (Issue #32)
  • git: introduce hack for handling git failure on --depth cloning (Issue #33)
  • git: fix version detection with unexpected version string (Issue #71)
  • git: preserve line endings when calling out to git
  • hg: fix clone from svn+http urls using hg-svn (Issue #72)
  • migrate: add missing import (Issue #29)
  • pullrequests: handle pull requests to empty repos (Issue #27)
  • pullrequests: when creating PRs, fix handling of new ajax requests while other ajax requests are pending
  • pullrequests: fix updates for PRs between different repositories
  • pullrequests: preserve query parameters in pull request overview paging links
  • compare: workaround unexpected Mercurial behaviour when finding ancestor of null rev
  • javascript: remove trailing comma to please IE8 (Issue #39)
  • download: fix for zip file downloads not being valid zips (Issue #35)
  • helpers: fix crash on new users without email (Issue #28)
  • middleware: change middleware ordering so we don’t buffer hgweb output in redirect
  • bin: give #!/usr/bin/env python so it can be executed directly
  • bin: reintroduce cleanup-repos paster command
  • bin: fix update_repoinfo command
  • urlify: don’t include trailing punctuation in markup
  • urlify: markup of hashes in ()
  • styling: don’t loop on trying to load kallithea-logo.png after kallithea-logo.svg failed
  • error: don’t crash on /error/document urls
  • error: don’t crash on response without status
  • admin: prevent deletion of users that are owners of a repository/user group (Issue #64)
  • admin: make settings hook name field smaller so it is less likely to overlap with the value field
  • admin: when scanning for repos to add, ignore removed groups
  • auth_crowd: fix Admin Group Membership when using the Atlassian Crowd plugin
  • auth: enable selecting PAM authentication module
  • auth_ldap: fix user automatically activated with LDAP authentication (Issue #78)
  • db: fix beaker cache key for user groups — don’t collide with users
  • db: fix handling of (invalid) unicode email addresses
  • db: don’t use sql ‘in’ on empty sets in compare — avoid warning of bad performance
  • db: to the extent it makes sense to have a one byte size limit, make it 255 instead of 256 to please MySQL (Issue #96)
  • files: use current revision as default for ‘show at’ (Issue #31)
  • files: fix HTML injection via file names
  • files: use forward slash as path separator for consistency
  • files: don’t use HTML encoding where not needed (Issue #74).
  • feed: urlify and escape the commit description
  • diff: fix diff of renamed files with whitespace in their names
  • diff: don’t split lines on bare CR as python splitlines do
  • mergely: update Mergely to v3.3.9 (Issue #83)
  • jquery: upgrade to 1.11.1
  • codemirror: cleanup of integration and update to version 4.7
  • setup: constrain dulwich to version 0.9.9, fixes CVE-2015-0838
  • gists: add missing formencode.htmlfill import
  • ini: Make celeryd.log.level default values uppercase — lowercase might not be recognized and cause failure
  • notification: handle unicode translations (Issue #95)
  • repos: fix redirect after repo creation (and user/group add focus) (Issue #98)
  • changeset: don’t crash on malformed whitespace parameter — return 400 Bad Request
  • stats: fix display when no data ready yet
  • stats: fix “show more” link

Features and improvements:

  • ui: use font based icons — FontAwesome and Git Hub Octicons from fontello
  • ui: HiDPI / Retina support in graphs and other places
  • paster: add install-iis command to automate IIS handler generation and update documentation
  • email templates: send text/plain part as well
  • docs: lots of improvements of structure and content and language
  • translations: updated using WebLate
  • admin: show links to added repos after repo scan
  • admin: show links to created users and groups
  • admin: when scanning for repos without ‘remove’, report the repos that could/would be removed
  • setup: support Mercurial 3.3
  • db: drop most lazy joins — significant performance improvement
  • db: add missing indices — significant performance improvement
  • db: don’t commit session if cache invalidation didn’t change anything — improves performance
  • comment: show full username in emails for PR/changeset comments
  • changelog: added Settings to repo context menu
  • utils: better display of ages >1 year when in short form
  • remotes: add support to clone from Mercurial repositories over ssh
  • hg: reimplement branch head listings more efficiently
  • pullrequests: use same code and table ui for Repo Pull Requests and My Pull Requests
  • pullrequests: add delete button to My Pull Requests overview
  • pullrequests: on ‘my pullrequests’ show the user’s own vote as second column next to ‘latest vote’
  • pullrequests: add option for adding repo owner as reviewer if none assigned
  • pullrequests: make top pane one big form with meta data and one save button and preview changes in pane below — more like when creating the PR
  • pullrequests: make ‘update’ functionality a separate submit button in the big form, automatically enabled when an update changeset is chosen
  • pullrequests: show graph next to the list of changesets that are available for update
  • pullrequests: for available changesets, also show changesets that not are descendants and thus not directly available but will be merged in
  • pullrequests: show unrelated branch heads in the graph too — show the problem instead of trying to explain it
  • pullrequests: show pending reviewer changes with “(not saved)”
  • pullrequests: show comment count in top of summary box
  • diff: improved parsing, be more strict and fail with good error messages
  • diff: handle GIT delta binary patches
  • diff: show renamed files as that
  • diff: make trailing spaces more visible — make vertical line less transparent
  • diff: show CR (\r) in diffs
  • comment: warn before leaving page with open comments
  • comment: clarify shown comment count (inline vs general)
  • comment: extend next/previous links to global comments (Issue #91)

Changes (might influence workflows):

  • i18n: en translation has been removed — make sure to update your .ini files to have ‘lang =’ (nothing)
  • ini: turn show_revision_number off by default
  • pullrequests: don’t give changeset ‘unreviewed’ status just because it is added to a PR
  • pullrequests: tweak readable titles — just append /_/ and branch name
  • pullrequests: only author and admin can close
  • pullrequests: don’t add repo owner as reviewer in all PRs
  • pullrequests: PRs between different repos should default to same destination/source branch
  • pullrequests: use -- as separator in the automatic text when “updating” pull requests and is it to put latest updates first
  • diff: don’t group diffs based on the kind of change
  • admin: set current user as owner when running repo scan
  • changelog: change default view to 100 changesets, max to 2000
  • date representation: use ISO8601 rather than a specific locale
  • user groups: drop add/remove all buttons for member selection — they are too dangerous and multi-select can do the same
  • hg: drop support for hg web.hidden
  • template: link the last revision in the file browser to the changeset


  • code: Fix typos and language in comments and code
  • ui: Correct capitalization and improved English text in the UI
  • javascript: use strict mode
  • tags: rename old non-Kallithea tags and prefix them with 0.0 to show that Kallithea is superior
  • javascript: more jQuery, less YUI, less clutter
  • templates: better structure, less cut’n’paste coding
  • html: various improvements
  • css: various improvements
  • exceptions: avoid silently catching exceptions — especially avoid catch all
  • tests: stability fixes
  • tests: remove large unused test fixture
  • run it regularly to ensure consistent whitespace and avoid spurious changes
  • controllers: consistently use formfill.render with force_defaults=False
  • gists: use allow_extra_fields and filter_extra_fields in gist forms like in most other forms
  • json: always use kallithea.lib.compat for json — and nothing else
  • json: drop simplejson fallback and just use stdlib
  • db: check for None instead of boolean false if that is what we mean

Richard Hartmann: Release Critical Bug report for Week 15

11 April, 2015 - 00:45

Still on the road with shittynet; sorry for missing last week.

The UDD bugs interface currently knows about the following release critical bugs:

  • In Total: 1041 (Including 159 bugs affecting key packages)
    • Affecting Jessie: 82 (key packages: 54) That's the number we need to get down to zero before the release. They can be split in two big categories:
      • Affecting Jessie and unstable: 65 (key packages: 49) Those need someone to find a fix, or to finish the work to upload a fix to unstable:
        • 19 bugs are tagged 'patch'. (key packages: 13) Please help by reviewing the patches, and (if you are a DD) by uploading them.
        • 6 bugs are marked as done, but still affect unstable. (key packages: 1) This can happen due to missing builds on some architectures, for example. Help investigate!
        • 40 bugs are neither tagged patch, nor marked done. (key packages: 35) Help make a first step towards resolution!
      • Affecting Jessie only: 17 (key packages: 5) Those are already fixed in unstable, but the fix still needs to migrate to Jessie. You can help by submitting unblock requests for fixed packages, by investigating why packages do not migrate, or by reviewing submitted unblock requests.
        • 8 bugs are in packages that are unblocked by the release team. (key packages: 5)
        • 9 bugs are in packages that are not unblocked. (key packages: 0)

How do we compare to the Squeeze and Wheezy release cycles?

Week Squeeze Wheezy Jessie 43 284 (213+71) 468 (332+136) 319 (240+79) 44 261 (201+60) 408 (265+143) 274 (224+50) 45 261 (205+56) 425 (291+134) 295 (229+66) 46 271 (200+71) 401 (258+143) 427 (313+114) 47 283 (209+74) 366 (221+145) 342 (260+82) 48 256 (177+79) 378 (230+148) 274 (189+85) 49 256 (180+76) 360 (216+155) 226 (147+79) 50 204 (148+56) 339 (195+144) ??? 51 178 (124+54) 323 (190+133) 189 (134+55) 52 115 (78+37) 289 (190+99) 147 (112+35) 1 93 (60+33) 287 (171+116) 140 (104+36) 2 82 (46+36) 271 (162+109) 157 (124+33) 3 25 (15+10) 249 (165+84) 172 (128+44) 4 14 (8+6) 244 (176+68) 187 (132+55) 5 2 (0+2) 224 (132+92) 175 (124+51) 6 release! 212 (129+83) 161 (109+52) 7 release+1 194 (128+66) 147 (106+41) 8 release+2 206 (144+62) 147 (96+51) 9 release+3 174 (105+69) 152 (101+51) 10 release+4 120 (72+48) 112 (82+30) 11 release+5 115 (74+41) 97 (68+29) 12 release+6 93 (47+46) 13 release+7 50 (24+26) 14 release+8 51 (32+19) 15 release+9 39 (32+7) 16 release+10 20 (12+8) 17 release+11 24 (19+5) 18 release+12 2 (2+0)

Graphical overview of bug stats thanks to azhag:

Dirk Eddelbuettel: drat 0.0.3: More features, more fixes, more documentation

10 April, 2015 - 19:14

Several weeks ago we introduced the drat package. Its name stands for drat R Archive Template, and it helps with easy-to-create and easy-to-use repositories for R packages. Two early blog posts describe drat: First Steps Towards Lightweight Repositories, and Publishing a Package, and since the previous release, a a guest post on drat was also added to the blog.

Several people have started to use drat to publish their packages, and this is a very encouraging sign. I also created a new repository and may have more to say about this in another post once I get time to write something up.

Today version 0.0.3 arrived on CRAN. It rounds out functionality, adds some fixes and brings more documentation:

  • git support via git2r is improved; it is still optional (ie commit=TRUE is needed when adding packages) but plan to expand it
  • several small bugs got fixed, including issues #9 and #7,
  • four new vignettes got added, including two guests posts by Steven and Colin as well as two focusing, respectively, on drat for authors and and drat for users.

The work on the vignettes is clearly in progress as Colin's guest post isn't really finished yet, and I am not too impressed with how the markdown is rendered at CRAN so some may still become pdf files instead.

Courtesy of CRANberries, there is a comparison to the previous release. More detailed information is on the drat page.

This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.

Mario Lang: A C++ sample collection

10 April, 2015 - 02:10

I am one of those people that best learns from looking at examples. No matter if I am trying to learn a programming pattern/idiom, or a completely new library or framework. Documentation is good (if it is good!) for diving into the details, but to get me started, I always want to look at a self contained example so that I can get a picture of the thing in my head.

So I was very excited when a few days ago, CppSamples was announced on the ISO C++ Blog.

While it is a very young site, it already contains some very useful gems. It is maintained over at GitHub, so it is also rather easy to suggest new additions, or improve the existing examples by submitting a pull request.

Give it a try, it is really quite nice. In my book, the best resource I have found so far in 2015.

BTW, Debian has a standard location for finding examples provided by a package. It is /usr/share/doc/<package>/examples/. I consider that very useful.

Lars Wirzenius: DPL elections for 2015 are going on

9 April, 2015 - 22:53

The Debian Project Leader electsions are going on. This is the yearly election for the leader, where members of the project vote for a new leader for a year. The debate this year seemed to me to be quite quiet, and voting activity seems to not be very high, either. Pity. Many years ago, the election period used to be quite energetic, bringing up some quite good viewpoints.

There seems to also not have been the usual repeat of the voting announcement, not sure what's going there. There's time until next Tuesday midnight (in the UTC time zone) to vote. Below are links to the vote page (with instructions for voting) and the (corrected) initial announcment.

I voted for Neil as my top candidate. I think he's got the best background and personality for being the leader of this project of ours.

Daniel Pocock: Never fly Etihad again?

9 April, 2015 - 22:05

This is the first time we've flown out to Australia with Etihad and it may also be the last.

We were due to fly back into Europe at CDG and head down to Lyon for the mini-DebConf this weekend.

Lets look at how our Etihad experience has worked out:

21:00 UTC Tuesday - waking up on Wednesday morning in Melbourne (UTC+10)

13:00 UTC Wednesday - leaving Melbourne about 11pm Wednesday night, a 12-13 hour flight to Abu Dhabi. We had heard about the air traffic control strikes in France (where we are going) and asked the airline if we should fly and they told us everything would be OK.

02:30 UTC Thursday - touchdown in Abu Dhabi, 6:30 am local time. Go to the transfer counter to ask for our boarding passes to CDG. At this stage, we were told that the connecting flight to CDG had been delayed 20 hours due to French strikes. As we are trying to reach Lyon for the mini-DebConf this weekend, we asked if we could leave Abu Dhabi on a 09:00 flight to Geneva. The Etihad staff told us to contact our travel agent (the flight was booked through Expedia) and for the next hour everybody's time was wasted making calls to Expedia who kept telling us to speak to Etihad. Whenever the Etihad customer service staff tried to speak to Expedia, the Expedia call center would hang up.

Eventually, the Etihad staff told us that the deadline for putting us on the Geneva flight had passed and we would be stuck in Abu Dhabi for at least 20 hours.

For flights to and from Europe, airlines have a responsibility to arrange hotels for passengers if there is a lengthy delay. If the airline is at fault, they must also pay some extra cash compensation but for a strike situation that is not applicable.

Etihad has repeatedly fobbed us off. Initially we were given vouchers for Burger King or a pizza slice and told to hang around the transfer counter.

By about 12:00 UTC (4pm local time, nine hours of waiting around the transfer counter) there was still no solution. One passenger was so upset that the airport security were called to speak to him and he was taken away. The airline staff kept giving excuses. Some passengers had been sent to a hotel but others left behind. I asked them again about our hotel and they kept trying to fob me off.

Faced with the possibility that I would miss two nights of sleep and eight hours time difference coming into Europe, I continued asking the Etihad staff to own up to their responsibilities and they eventually offered us access to their airport lounge. We discovered some other passengers in the lounge too, including the passenger who had earlier been escorted away by security.

This is unlike anything we've experienced with any other airline.

At every opportunity (the check-in at Melbourne, or when the Geneva flight was boarding), the airline has failed to make arrangements that would have avoided cost and inconvenience.

Assuming the flight goes ahead with a 20 hour delay, we will arrive in CDG some time Friday morning and not really sleep in a proper bed again until Friday night, about 70 hours after getting up in Melbourne on Wednesday morning. Thanks Etihad, you are a waking nightmare.

The airline has been evasive about how they will deal with our onward travel from CDG to Lyon. We had booked a TGV train ticket already but it is not valid after such a long delay and it seems quite possible that trains will be busier than usual thanks to the air traffic control strike. So we don't even know if we will be loitering around a Paris airport or railway station for hours on Friday and nobody from the airline or Expedia really seems to care.


The only conclusion I can reach from this experience is that Etihad can't be trusted, certainly not for long journies such as Australia to Europe. Having flown through Singapore, Kuala Lumpur and Hong Kong, I know that air passengers have plenty of options available and there are many airlines that do go the extra mile to look after passengers especially on such long journeys. The airline missed opportunities to re-route us at every opportunity. It looks like they help some passengers (like those who did get to hotels) but leave many others high and dry just to stay within their budget.

Gunnar Wolf: Guests in the classroom: César Yáñez (@caesarcomptus) talks about memory assignation algorithms

8 April, 2015 - 23:47

Once again, on March 11 I had a great guest to save me some work and give a talk at my class! This time it was César Yáñez, and he talked about memory management algorithms, emphasizing on ARC.

The video is available, both at this server and in

Thanks a lot!

Steve McIntyre: More arm64 hardware for Debian - Applied Micro X-Gene

8 April, 2015 - 23:09

As a follow-up to my post about bootstrapping arm64 in Debian, we've had more hardware given to Debian for us to use in porting and building packages for arm64. Applied Micro sent me an X-Gene development machine to set up and use. Unfortunately, the timing was unlucky and the machine sat on my desk unopened for a few weeks while I was on long holiday in Australia. Once I was back, I connected it up and got it working. Out of the box, a standard Jessie arm64 installation worked using network boot (dhcp and tftp). I ran through d-i as normal and installed a working system, then handed it over to the DSA and buildd folks to get the machine integrated into our systems. Easy! The machine is now up and running as and has been building packages for a few weeks now. You can see the stats here on the site.

In terms of installation, I also got the machine to boot using one of our netinst images on a USB stick, but that path didn't get very far. The USB drivers for this hardware have only quite recently gone into the mainline kernel, and haven't been backported to the Debian Jessie kernel yet. I'm hoping to get those included shortly. There's also an option to replace the U-Boot firmware that came with the X-Gene with UEFI instead, which would be much more helpful for a server platform like this. I'll look into doing that upgrade soon too, but probably after the Jessie release is done. I don't want to jinx things just now. *grin*

Thanks to APM for their generous donation here, and particularly to Richard Zenkert for his help in getting this machine shipped to us.

Ben Hutchings: Call for testing: linux 3.16.7-ckt9-1

8 April, 2015 - 22:55

As it is nearly time to release Debian 8 (codename jessie), I've uploaded a new version of the Linux kernel to unstable which I hope will be the version to go into the initial release (8.0). The changes from the current version in testing are mostly bug fixes:

Please test this new version (which should be on mirrors within the next 24 hours) and report any regressions you spot.

It's now too late to add new hardware support for Debian 8.0, but we'll probably be able to improve it in subsequent point releases. So, please also report driver changes that should be backported from later kernel versions to improve hardware support, with severity of 'important'. If you can provide precise information about which upstream commits are needed, that makes things easier for us, and you should add the 'patch' tag.

Junichi Uekawa: New Month.

8 April, 2015 - 09:05
New Month. New Life.

Wouter Verhelst: C11 function overloading

8 April, 2015 - 05:12

About four years ago, the ISO 9899:2011 "C11" standard was announced. At the time, I had a short look at (a draft version of) the standards document, and found a few interesting bits in there. Of course, however, due to it only very recently having been released, I did not have much hope of it being implemented to any reasonable amount anywhere yet. Which turned out to be the case. Even if that wasn't true, writing code that uses C11 features and expecting it to work just about anywhere else would have been a bad idea back then.

We're several years down the line now, however, and now the standard has been implemented to a reasonable extent in most compilers. GCC claims its "support [for C11] is at a similar level of completeness to (...) C99 support" since GCC 4.9.

Since my laptop has GCC 4.9, I looked at one feature in C11 that I have been wanting to use for a while: Generic selection.

#include <stdint.h>
#include <inttypes.h>
#include <stdio.h>

void say32(uint32_t i) {
    printf("32-bit variable: %" PRId32 "\n", i);

void say64(uint64_t i) {
    printf("64-bit variable: %" PRId64 "\n", i);

void sayother(int i) {
    printf("This is something else.\n");

#define say(X) _Generic((X), uint32_t: say32, uint64_t: say64, default: sayother)(X)

int main(void) {
    uint32_t v32 = 32;
    uint64_t v64 = 64;
    uint8_t v8 = 8;


Output of the above:

32-bit variable: 32
64-bit variable: 64
This is something else.

or, "precompiler-assisted function overloading for C". Should be useful for things like:

#define ntoh(X) _Generic((X), int16_t: ntohs, uint16_t: ntohs, int32_t: ntohl, uint32_t: ntohl)(X)
#define hton(X) _Generic((X), int16_t: ntohs, uint16_t: htons, int32_t: ntohl, uint32_t: htonl)(X)

... and if one adds the ntohll found here, it can do 64 bit as well.

Thorsten Glaser: exciting news, or so

8 April, 2015 - 05:02

I implemented <? support (including <?php…) script embedding support for *.inc in MirWebseite today; the specific syntax was explicitely requested by Natureshadow. Ugh.

My own hacking activities are progressing, even if slowly. I do some other interesting, funny, social, beneficial, etc. stuff in between, though. I’ll even have to get some of my DD buddies to sponsor me some QA uploads of packages I formerly maintained, whereever changes are queued up… such as better old-format repo compatibility in cvs(GNU) ☺ Though some of the stuff I do at work is currently done only there… sorry.

Also: prepare to be fully enlightened about just what evil (nice picture) Docker is. I especially liked the comparison of containers to a herd of cattle, mere numbers, replaceable, whereas VMs are cats, each with their individual name, lovely petted each day, etc.

ObHint: Some may have noticed I do have a Twitter account now. I do not really use it much. I got it because I wanted to rant at someone who only gave Twitter as means to contact them (a European company running a lottery for USA citizens only). But I found one nice thing: @HourlyCats (though @FacesPics and @BahnAnsagen are funny too, and the Postillon anyway). The internet is there for cat content, anyway.
Ahem. Do not contact me there, use IRC, more specifically, the Freenode network, and possibly memoserv to mirabilos instead, I can’t fit things into 140 chars, that’s just ridiculous. Also, don’t follow me. It may contain rants, it’s NSFW, and I’m not censoring there. As I said: I do not use it. So should you. (But kudos for having a mostly functional “fallback” site (the “mobile” one), which even works in PocketIE (Windows Mobile) and Opera 9, though not so much lynx(1)…)

odc (from #!/bin/mksh on IRC) is hacking support to use mksh instead of GNU bash for bootstrapping pkgsrc® (e.g. on Solaris). Nice! Good luck!

… à propos mksh(1), dear Debian armel and armhf buildd maintainer colleagues, pretty please with strawberries and chocolate ice on top (I just had that on waffles at my favourite ice salon, so I may be biased), do like s390x and update your chroots and wanna-build give-back mksh, as we requested, so the privacy fix makes it into jessie. Thanks in advance!

Oh, and Y_Plentyn and I both have been putting more and updated packages into my APT repository. XTaran held a talk at CLT 2015 mentioning it… maybe I should write up some docs about how to use it for which purposes (e.g. how to avoid systemd but not get the other packages from it, or how to use it with systemd (trivial but has to be stated, it’s freedom of choice after all), etc.)?

Besides decent fanfiction (the stories in the Uzumaki Naruto universe seem, on average, to be much longer than those in the Harry Potter one), the weather is becoming good, so I’ve already been enjoying going out for some geocaching and will have the bike fixed at the shop RSN (it suffers a bit each winter, as it stands outside, since our basement is mouldy, which is worse than a bit of rust IMHO) to get more activity in. Also planning to head to the GPS Maze in Mainz and, besides what time FrOSCon (including preparation) allows, heading to DebConf for a while.

Wouter Verhelst: C11 operator overloading

8 April, 2015 - 04:53

C11 function overloading

About four years ago, the ISO 9899:2011 "C11" standard was announced. At the time, I had a short look at (a draft version of) the standards document, and found a few interesting bits in there. Of course, however, due to it only very recently having been released, I did not have much hope of it being implemented to any reasonable amount anywhere yet. Which turned out to be the case. Even if that wasn't true, writing code that uses C11 features and expecting it to work just about anywhere else would have been a bad idea back then.

We're several years down the line now, however, and now the standard has been implemented to a reasonable extent in most compilers. GCC claims its "support [for C11] is at a similar level of completeness to (...) C99 support" since GCC 4.9.

Since my laptop has GCC 4.9, I looked at one feature in C11 that I have been wanting to use for a while: Generic selection.

#include <stdint.h>
#include <inttypes.h>
#include <stdio.h>

void say32(uint32_t i) {
    printf("32-bit variable: %" PRId32 "\n", i);

void say64(uint64_t i) {
    printf("64-bit variable: %" PRId64 "\n", i);

void sayother(int i) {
    printf("This is something else.\n");

#define say(X) _Generic((X), uint32_t: say32, uint64_t: say64, default: sayother)(X)

int main(void) {
    uint32_t v32 = 32;
    uint64_t v64 = 64;
    uint8_t v8 = 8;


Output of the above:

32-bit variable: 32
64-bit variable: 64
This is something else.

or, "precompiler-assisted function overloading for C". Should be useful for things like:

#define ntoh(X) _Generic((X), int16_t: ntohs, uint16_t: ntohs, int32_t: ntohl, uint32_t: ntohl)(X)
#define hton(X) _Generic((X), int16_t: ntohs, uint16_t: htons, int32_t: ntohl, uint32_t: htonl)(X)

... and if one adds the ntohll found here, it can do 64 bit as well.

Mario Lang: I am sorry, but this looks insane

8 April, 2015 - 02:03

I am a console user. I really just started to use X11 again about two weeks ago, to sometimes test an a Qt application I am developing. I am not using Firefox or anything similar, all my daily work happens in shells and inside of emacs, in a console, not in X11. BRLTTY runs all the time, translating the screen content to something that my braille display can understand, sent out via USB. So the most important programs to me, are really emacs, and brltty.

This is my desktop, that is up since 179 days.

 1227 message+  20   0    7140   2860    672 S   0,0  0,1 153:33.10 dbus-daemon
21457 root      20   0   44456   1116    788 S   0,0  0,1 146:42.47 packagekitd
    1 root      20   0   24348   2808   1328 S   0,0  0,1 109:16.99 systemd
 7897 mlang     20   0  585776 121656   4188 S   0,0  6,0 105:22.40 emacs
13332 root      20   0   10744    432    220 S   0,0  0,0  91:55.96 ssh
19581 root      20   0    4924   1632   1076 S   0,0  0,1  53:33.56 systemd
19596 root      20   0   20312   9764   9660 S   0,0  0,5  48:10.76 systemd-journal
10172 root      20   0   85308   2472   1672 S   0,0  0,1  20:30.18 NetworkManager
   29 root      20   0       0      0      0 S   0,0  0,0  18:40.24 kswapd0
13334 root      20   0  120564   5748    304 S   0,0  0,3  16:20.89 sshfs
    7 root      20   0       0      0      0 S   0,0  0,0  15:21.15 rcu_sched
14245 root      20   0    7620    316    152 S   0,0  0,0  15:08.64 ssh
  438 root      20   0       0      0      0 S   0,0  0,0  12:14.80 jbd2/dm-1-8
11952 root      10 -10   42968   2028   1420 S   0,0  0,1  10:36.20 brltty

I am sorry, but this doesn't look right, not at all. I am not even beginning to talk about dbus-daemon and systemd. Why the HECK does packagekitd (which I definitely don't use actively) use up more then two hours of plain CPU time? What did it do, talk to NSA via an asymmetric cipher, or what?! I play music via sshfs, sometimes FLAC files. That barely consumed more CPU time then brltty, which is probably the most active daemon on my system, erm, it should be.

I don't want to chime into any flamewars. I have accepted that we have systemd. But this does not look right! I remember, back in the good old days, emacs and brltty were my top CPU users.

Carl Chenet: Backup Checker, the ServerSpec for your backups

8 April, 2015 - 00:38

Follow me on  or Twitter  or Diaspora*

Sysadmins usually know ServerSpec, a tool allowing to check if your servers are correctly configured. The use of automated deployment tools makes deployments easier and easier, but lot of unexpected situations can come up using this tool, especially when more and more servers are implied. ServerSpec allows to verify that the result of your deployments are what you were expecting for and that no exception or unexpected event goes undetected.

Backup Checker (Github stars appreciated :)) offers the same kind of controls, but for your backups. Once you have backups, you don’t know if they contain what you are expecting for. And this is especially important because having broken backups mean losing your data after a major outage! Moreover if you think you are well protected with backups but they are eventually broken (corrupted archives, archives being filled with empty files, saving useless files…), you will perform your server or database upgrades without being really protected, leading to terrible situations.

Backup Checker on github


Backup Checker offers lots of controls over backups:

  • check if an archive is corrupted
  • control if some files or directories exist inside an archive exist
  • check if a file size inside an archive is not null or has a specific size (operators smaller than, equals, greater than supported)
  • owner, group, uid, gid of files/directories inside an archive
  • and a lot more. Check the official documentation!
Use Backup Checker with Backup-Manager or Rsnapshot

Starting from Backup Checker 1.7,if you use a backup tool like Backup-Manager or Rsnapshot, you’ll be glad to know that Backup Checker perfectly works with them. The documentation is available on the Backup Checker Community page with the howtos to install and configure Backup Checker with Backup-Manager or with Rsnapshot.

What about you? Let us know in the comments what you think of Backup Checker and its features to connect with other backup tools. We would be happy to get your feedbacks about how you use Backup Checker or what you expect from a backup checking solution.

Zlatan Todorić: Atlassian honors 10 years of Git

8 April, 2015 - 00:37

and even mentions Debian.Here under info for Git installations skyrocket (January 2010) and Git installations surpass all other version control systems (January 2011). There is also part with git-annex written by our old pal Joey Hess. :)


Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้