1. Public transport map of Managua

    By Andrej Shadura

    Holger Levsen writes about the public transport map of Managua, Nicaragua, which is, according to him, the first detailed map of Managua’s bus network:

    If you haven’t been to Managua, you might not be able to immediatly appreciate the usefulness of this. Up until now, there has been no map nor timetable for the bus system, which as you can see now easily and from far away, is actually quite big and is used by 80% of the population in a city, where the streets still have no names.

  2. Support Software Freedom Conservancy

    By Andrej Shadura

    The Software Freedom Conservancy are desperately looking for financial support after one of their corporate supporters have stopped their sponsorship. This week, there’s an anonymous pledge to match donations from new supporters.

    Becoming an SFC supporter will help them fight for our software freedom. I have signed up for a monthly donation, and I suggest you do so too here.

  3. Power button and logind

    By Andrej Shadura

    If you have configured your laptop’s power button to act as sleep button using acpid, then installed systemd or systemd-shim and pressed the button only to find your laptop to shut down after it wakes up from sleep, set these options in /etc/systemd/logind.conf:

    [Login]
    HandlePowerKey=ignore
    HandleSuspendKey=ignore
    HandleHibernateKey=ignore
    HandleLidSwitch=ignore
    
  4. UI translation tools and version control

    By Andrej Shadura

    Today I decided to try some translation tools I could install on my laptop locally to translate Kallithea, so I’d not need to be on-line to use Michal Čihař’s wonderful Weblate.

    The first tool I tried was Gtranslator. I edited about 5 strings, and then wanted to commit my changes. To my surprise, the diff was huge. Apart from obvious changes in the file header, like changing the team address or X-Generator field, Gtranslator has reformatted almost every other entry in the file, adding meaningless line breaks or reflowing the strings I didn’t edit.

  5. Kallithea 0.2 released

    By Andrej Shadura

    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.

  6. Tired of autotools? Try this: mk-configure

    By Andrej Shadura

    mk-configure is a project which tries to be autotools done right. Instead of supporting an exceedingly large number of platforms, modern and ancient, at costs of generated unreadable multi-kilobyte shell scripts, mk-configure aims at better support of less platforms, but those which are really in use today. One of the main differences of this project is that it avoids code generation as much as possible. The author of mk-configure, Aleksey Cheusov, a 38 years old NetBSD hacker from Belarus, uses NetBSD make (bmake) and shell script snippets instead of monstrous libraries written in m4 interleaved with shell scripts. As the result, there’s no need in a separate step of package configuration or bootstrapping the configure script, everything is done by just running bmake, or a convenience wrapper for it, mkcmake, which prepends a proper library path to bmake arguments, so you don’t have to specify it yourself.

  7. ifupdown and command status handling

    By Andrej Shadura

    In 2011, I first tried to fix a Debian bug #547587. The bug was about hook script result codes not being checked, so if a script fails, this isn’t detected. Unfortunately, just checking the return code wasn’t enough, as lots of scripts didn’t care about their return code at all, so I had to unapply the patch.

    Now, after 2.5 years, I think it’s time to try again, as most of the scripts have been fixed since then. At the same time, I’ve changed error handling a little bit further: errors in any commands or scripts during interface configuration are considered fatal, but when interface is deconfigured, errors are ignored. However, this may change break configurations which depend on previous behaviour.

  8. hgk misbehaviour with Tk 8.4

    By Andrej Shadura

    Strangely enough, running hgk (a port of gitk to Mercurial, also known as hg view) with Tk 8.4 crashes my X server. Updating both Tk and the X doesn’t help. I don’t feel like I want to debug X now, but probably that’s what I have to do :(

    Backtrace:
    0: /usr/bin/X (xorg_backtrace+0x49) [0xb7712ed9]
    1: /usr/bin/X (0xb7572000+0x1a4c64) [0xb7716c64]
    2: linux-gate.so.1 (__kernel_rt_sigreturn+0x0) [0xb755040c]
    3: /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xb711d000+0x772f0) [0xb71942f0]
    4: /lib/i386-linux-gnu/i686/cmov/libc.so.6 (__libc_calloc+0xab) [0xb7196d5b]
    5: /usr/bin/X (0xb7572000+0x55ca9) [0xb75c7ca9]
    6: /usr/bin/X (0xb7572000+0x48005) [0xb75ba005]
    7: /usr/bin/X (0xb7572000+0x491c3) [0xb75bb1c3]
    8: /usr/bin/X (0xb7572000+0x12c621) [0xb769e621]
    9: /usr/bin/X (XkbHandleActions+0x20b) [0xb76c8c1b]
    10: /usr/bin/X (XkbProcessKeyboardEvent+0xbc) [0xb76c937c]
    11: /usr/bin/X (AccessXFilterPressEvent+0xcd) [0xb76c181d]
    12: /usr/bin/X (0xb7572000+0x157675) [0xb76c9675]
    13: /usr/bin/X (mieqProcessDeviceEvent+0x1e6) [0xb76f3226]
    14: /usr/bin/X (mieqProcessInputEvents+0xfd) [0xb76f335d]
    15: /usr/bin/X (ProcessInputEvents+0x14) [0xb75ef3e4]
    16: /usr/bin/X (0xb7572000+0x3c25d) [0xb75ae25d]
    17: /usr/bin/X (0xb7572000+0x2a51a) [0xb759c51a]
    18: /lib/i386-linux-gnu/i686/cmov/libc.so.6 (__libc_start_main+0xf5) [0xb71368c5]
    19: /usr/bin/X (0xb7572000+0x2a8f8) [0xb759c8f8]
    
  9. Process isolation support in start-stop-daemon

    By Andrej Shadura

    Yesterday I played with LXC a bit, and I liked it, as LXC provides a very lightweight isolation of processes, much like enchanced chroot. However, I realised, I don’t always need the chroot-like part of LXC, sometimes what I need is just to make sure the process is unable to see the other processes and talk to them in any other way except the filesystem, but I don’t want a whole separate root file system for that. LXC provides a simple utility, lxc-unshare, which uses Linux-specific clone(2) call to run a process with new PID, IPC and other namespaces. However, this utility can’t be used for running forking daemons, as the container is destroyed when its PID 1 exits.

  10. Clearlooks-Phénix update

    By Andrej Shadura

    Once upon a time, GTK+ 3.0 was released. That release brought at least one Bad Thing™: incompatibility with GTK+ 2.x themes. At the same time, previously popular Clearlooks theme hasn’t been ported. Many people didn’t like that, but only one decided to DTRT — to do the Right Thing. Jean-Philippe Fleury wrote Clearlooks-Phénix (originally, Clearwaita), a GTK+ 3 theme which was supposed to have a look and feel as close as possible to the original Clearlooks. He based his work on an engine of a new GTK+ default, Adwaita theme. Quite soon, however, GTK+ 3 theme API has changed, and it became easily possible to rewrite the theme without using any additional theming engines, with just plain GTK+ stuff involved.