Planet Debian

Subscribe to Planet Debian feed
Planet Debian -
Updated: 23 min 35 sec ago

Andrew Shadura: Kallithea 0.2 released

Fri, 10/04/2015 - 22: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
Categories: Elsewhere

Richard Hartmann: Release Critical Bug report for Week 15

Fri, 10/04/2015 - 19: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:

Categories: Elsewhere

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

Fri, 10/04/2015 - 14: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.

Categories: Elsewhere

Mario Lang: A C++ sample collection

Thu, 09/04/2015 - 21: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.

Categories: Elsewhere

Lars Wirzenius: DPL elections for 2015 are going on

Thu, 09/04/2015 - 17: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.

Categories: Elsewhere

Daniel Pocock: Never fly Etihad again?

Thu, 09/04/2015 - 17: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.

Categories: Elsewhere

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

Wed, 08/04/2015 - 18: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!

Categories: Elsewhere

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

Wed, 08/04/2015 - 18: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.

Categories: Elsewhere

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

Wed, 08/04/2015 - 17: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.

Categories: Elsewhere

Junichi Uekawa: New Month.

Wed, 08/04/2015 - 04:05
New Month. New Life.

Categories: Elsewhere

Wouter Verhelst: C11 function overloading

Wed, 08/04/2015 - 00: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; say(v32); say(v64); say(v8); }

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.

Categories: Elsewhere

Thorsten Glaser: exciting news, or so

Wed, 08/04/2015 - 00: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 have both 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 myself with 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.

Categories: Elsewhere

Wouter Verhelst: C11 operator overloading

Tue, 07/04/2015 - 23: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; say(v32); say(v64); say(v8); }

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.

Categories: Elsewhere

Mario Lang: I am sorry, but this looks insane

Tue, 07/04/2015 - 21: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.

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 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.

Categories: Elsewhere

Carl Chenet: Backup Checker, the ServerSpec for your backups

Tue, 07/04/2015 - 19: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.

Categories: Elsewhere

Zlatan Todorić: Atlassian honors 10 years of Git

Tue, 07/04/2015 - 19:37

and even mentions Debian.Here under info for Git installations skyrocket (January 2010).

Categories: Elsewhere

Lucas Nussbaum: Tentative systemd slides

Tue, 07/04/2015 - 17:52

I recently spent some time updating my systemd knowledge and decided to put together some slides that I’ll use for a lecture. I’m interested in feedback about things that are missing,  unclear, etc. Available on slideshare, as PDF, and as LaTeX source.

Categories: Elsewhere

Olivier Berger: Publishing my papers as Linked Research

Tue, 07/04/2015 - 15:41

I intend to make the extra effort of republishing my own research papers as Linked Research, i.e. in a form readable by humans (HTML5), but also embedding meta-data (as RDF) for machine processing.

I’ve started with Authoritative Linked Data descriptions of Debian source packages using ADMS.SW (a good candidate, as it deals with Linked Data ;).

You’ll notice the menu which helps select different style sheets for preparing clean printable versions, not far from the LaTeX output usually converted to PDF.

I hope this will pave the way to more Linked Research, and less opaque publications.

The only hassle at the moment is the conversion from LaTeX to HTML5 which I’m doing manually, in Emacs + nxml-mode

Categories: Elsewhere

Petter Reinholdtsen: I'm going to the Open Source Developers' Conference Nordic 2015!

Tue, 07/04/2015 - 10:30

I am happy to let you all know that I'm going to the Open Source Developers' Conference Nordic 2015!

It take place Friday 8th to Sunday 10th of May in Oslo next to where I work, and I finally got around to submitting a talk proposal for it. As part of my involvement with the Norwegian Unix User Group member association I have been slightly involved in the planning of this conference for a while now, with a focus on organising a Civic Hacking Hackathon with our friends over at mySociety and Holder de ord. This part is named the 'My Society' track in the program. There is still space for more talks and participants. I hope to see you there.

Check out the talks submitted and accepted so far.

Categories: Elsewhere

Mike Hommey: Announcing git-cinnabar 0.2.0

Tue, 07/04/2015 - 04:18

Git-cinnabar is a git remote helper to interact with mercurial repositories. It allows to clone, pull and push from/to mercurial remote repositories, using git.

Get it on github.

What’s new since 0.1.1?
  • git cinnabar git2hg and git cinnabar hg2git commands that allow to translate (possibly abbreviated) git sha1s to mercurial sha1s and vice-versa.
  • A “native” helper that makes some operations faster. It is not required for git-cinnabar to work, but it can improve performance significantly. Check the Setup instructions in the README file.
  • Do not store mercurial metadata when pushing to non-publishing repositories. For Mozilla developers, this means not storing that metadata when pushing to try, which is a good thing when you know each of them makes pulling slower. This behavior can be changed if necessary. Future releases will allow to remove metadata that was created by previous releases but that wouldn’t be created with 0.2.0.
  • Made the discovery phase of pushes require less round trips (the phase that finds what is common between the local and remote repositories), hopefully making pushing faster.
  • Improved logging, which now doesn’t require fiddling with the code to get extra logging.
  • Made fsck validate more things, and act on more errors.
  • Fixed a few edge cases.
  • Better handle files with weird names, and that git quotes in its output.
  • Extensively tested on the following repositories: mozilla-central, mozilla-beta, mercurial, hg-git, cpython.
What to expect next?
  • Allow to push merge commits.
  • Improve memory footprint for pushes (currently, it’s fairly catastrophic on big repositories ; don’t try to push multiple hundreds of commits of a Mozilla-sized repository if you don’t have multiple gigabytes of memory available).
  • As mentioned above, allow to remove some metadata.
  • And more…

If you want to follow the improvements more closely, I encourage you to switch to the `next` branch. I won’t push anything there that hasn’t been extensively tested on the above mentioned repositories.

And as always, please report any issue you run into.

Categories: Elsewhere