blkid(8): Superficial comparision of versions from e2fsprogs and util-linux 2012-05-17 No Comments
Both e2fsprogs and util-linux ship a tool blkid: a frontend to the libblkid library. I was interested in the differences between these two tools.
From my current understanding, util-linux’s is a fork of an older version from e2fsprogs. The change log of util-linux(-ng) 2.15 (shipped with util-linux-2.21.1.tar.xz) reads:
The libblkid library has been moved from e2fsprogs to util-linux-ng.
If I take the help output of blkid of util-linux 2.21.1 and remove everything that blkid of e2fsprogs 1.42.1 already does, I end up with this:
# /sbin/blkid -h blkid from util-linux 2.21.1 (libblkid 2.21.0, 30-Mar-2012) [..] -d don't encode non-printing characters [..] -k list all known filesystems/RAIDs and exit [..] -t <token> find device with a specific token (NAME=value pair) [..] -U <uuid> convert UUID to device name [..] Low-level probing options: -p low-level superblocks probing (bypass cache) -i gather information about I/O limits -S <size> overwrite device size -O <offset> probe at the given offset -u <list> filter by "usage" (e.g. -u filesystem,raid) -n <list> filter by filesystem type (e.g. -n vfat,ext3)
In addition, parameter -o <format> supports “udev” and “export” more.
Setting user name and email in Mercurial 2012-05-11 No Comments
As I am rather new to the use of Mercurial it took me a bit of time to find an equivalent to Git’s
# git config --global user.name ..... # git config --global user.email .....
earlier today. The answer is editing ~/.hgrc like
[ui] username = First Last <mail@example.org>
as I learned here eventually.
I should have learned it from the Command equivalence table, though.
So I have added an entry myself now to speed up whoever runs into that problem next.
Fwd: Frans de Waal: Moral behavior in animals 2012-05-06 No Comments
Masking bad RAM with Grub2 2012-04-20 1 Comment
I recently ran into the situation that during installation of some packages in Debian the display started showing graphic errors and the root file system reported to be read only (as it was configure to switch to read-only on errors through its mount options). memtest86+ first complete pass showed no errors at all but later runs indicated errors at at least three addresses:
- 00010c1d370
- 00010c1dab0
- 00004c1da90
Interestingly, grub2 supports masking sections of RAM out of the box, a feature I recently spotted in /etc/grub/grub.cfg by chance. The example and documentation of parameter GRUB_BADRAM in grub.cfg looked like it was just a list of sectors to ignore so I started with “0x10c1d370,0x10c1dab0,0x04c1da90″ for it… to find a frozen Grub after reboot. After a bit of investigation I learned that every second entry is a mask on its predecessor and found a good howto and on how to construct these. The bad RAM mask gave me a few hours of no noticeable errors… and then it came back, from another unmasked section I suppose. That made me order new RAM of a different brand.
New shoes? New shoes! 2012-04-10 2 Comments
I have never blogged about shoes before. So let’s see what it’s like. After all for being shoes these make me quite happy right now. Shoes! My old sneaker’s started to die so with a single pair of shoes only I had to do something. I liked the fresh look of the red ones so I ended up with both of these. Very comfortable to wear so far. So Pictures!


Apropos new shoes: Paolo Nutini knows what new shoes can do, join his tune:
PS: The links go to the PUMA online shop but there is no affiliation with me so I do not earn money from your clicks or buys up there.
PPS: The shoe pictures are all rights reversed by PUMA, they are sadly not licensed under Creative Commons. Neither is the video starring Mr. Nutini.
My best tool with package bumps: Meld 2012-04-09 5 Comments
For quite some time I have been using Meld to detect relevant changes between two releases when I update a package in Gentoo. I run
# ebuild foobar-1.2.ebuild manifest prepare # ebuild foobar-1.3.ebuild manifest prepare
and throw Meld at both outputs
# meld /var/tmp/portage/[..]/foobar-1.2/work/foobar-1.2/ \
/var/tmp/portage/[..]/foobar-1.3/work/foobar-1.3/ &

Meld makes it easy to see what has changed and (especially) what has not changed. With sole diff -r that would be difficult.
I usually start by inspecting changes to configure.ac. If upstream did a good job that diff tells what dependencies to touch, already. Near the left and right margin you can see where else the file has been modified. No need to scroll-search down for more: you already know what you get.

The NEWS and ChangeLog files usually offer pointers of interest, too.

If my hint on Meld made a single Gentoo packager juggler’s life easier or more efficient, I have achieved what I was aiming for. Sorry for the noise to everyone else.
PS: The second preview image up there has been losslessly reduced by 40% in size just by running it through optipng -o7.
overlint: Static analysis for your Gentoo overlay 2012-04-06 2 Comments
While repoman does a good job of finding smells in ebuilds, a tool to evaluate an overlay with respect to the state of the Gentoo main tree has to my knowledge been missing so far.
overlint is a simple command line tool. From a technical view point it reports
- which version bumps from the overlay are missing from the main tree (e.g. the overlay has 7.1 but the main tree has 7.0, only),
- which revision bumps are missing from the main tree (e.g. the overlay has 3.0-r1 but the main tree has 3.0, only), and
- which exact same revisions exist in both trees with differing ebuilds.
On a higher level these findings often indicate that
- certain changes are still to be integrated with the Gentoo main tree to benefit a wider audience and/or that
- an ebuild appeared in an overlay first but can be removed now as the Gentoo main tree has grown an equivalent (or identical) copy.
As a consequence overlint has two main use cases, each with a different user audience:
- Overlay maintainers can use overlint to better keep their overlay in shape.
- Gentoo developers and proxy maintainers can use overlint to detect valuable patches missing from the main tree.
Here is example output of overlint 0.4.1 for the calculate overlay:
# overlint-cli /var/lib/layman/calculate/ =============================================================== Version bumps missing from Gentoo main tree =============================================================== net-misc/ italc :: 1.0.13, 2.0.0 net-print/ foo2zjs :: 20081129, 20110512 net-wireless/ madwifi-ng :: 0.9.4.4178.20120131 madwifi-ng-tools :: 0.9.4.4178.20120131 =============================================================== Revision bumps missing from Gentoo main tree =============================================================== app-arch/ unzip :: 6.0-r9 app-text/ wgetpaste :: 2.18-r1 =============================================================== Ebuils that differ at same revision =============================================================== app-forensics/ unhide :: 20110113 dev-util/ bin_replace_string :: 0.2 qt-creator :: 2.4.1 sys-auth/ pam_keystore :: 0.1.3 sys-block/ tw_cli :: 9.5.3 sys-boot/ grub :: 1.99-r2 sys-libs/ talloc :: 2.0.7 virtual/ linux-sources :: 0
To get it run:
# sudo emerge -av app-portage/overlint
The source code is up on http://git.overlays.gentoo.org/gitweb/?p=proj/overlint.git;a=summary. For small patches just send them along, for bigger ones get in touch before the work, please. Thanks!
Fwd: More tricks for defeating SSL in practice 2012-03-22 No Comments
More Tricks For Defeating SSL in Practice – ekoparty Security Conference 5th edition from ekoparty on Vimeo.
I have actually been watching the Black USA 2009 version but it seems very very similar to the ekoparty one above, except without the view of the speaker.
Fwd: SSL And The Future Of Authenticity 2012-03-21 No Comments
At 07:29 I should be long sleeping but this video of 2011 that I stumbled upon has kept me out of bed for longer. For entry-level security people like me the level of detail is great with this talk.
At the point where the focus moves to a proposed solution that the speaker is involved with I had the impression that his view loses a bit of its objectivity and attention to detail due to personal, emotional involvement. I I could imagine that convergence is not the answer yet, but maybe it even is.
My virtual journey of today No Comments
I spent some time surfing the internet today (really!) and came by quite a few interesting things, unusually many in my perception. It all started with a video on Ganeti which led to a video on SELinux (which I knew zero about before) which in turn led to a video on mitmproxy. I googled “mitmproxy” and soon ran into the website and universe of Aldo Cortesi. There were an analysis of correlation between choice of programming language and other parameters like the number of contributers made from history on Github, an article about the use of Hilbert curves to binary blob visualization, thoughts on the pros and cons of using object-relational mappers in Python, a way to visualize sorting algorithms, entertaining code review bits on a javascript crypto libarary, the fact that the amount of gold can overflow in World of Warcraft, and a bunch of links to stuff on other sites that I followed including the 3D Mandelbulb, eyetracking-based guidelines on the design of web forms, a page that convinced me that it’s very easy for a website to identify me as a certain past visitor even with cookies off, thoughts on how random humans want randomness to be, the fact that the mobile app of path.com uploaded your entire address book without telling or asking before previously, that there are offers for 20 minutes CPU time on 400 machines each to crack WPA keys for about 20 US dollars, and how ugly OpenSSL’s code is.
My personal quote of today (from here) is: “A thing that two people can lift is not a router”.






