Blog posts

2005-04-13 – Breaking stuff

Yesterday was all about breaking and not getting stuff to work properly. First, I broke pkg-config with the 0.17 release. The pkg.m4 included there broke because I’m a twit and misunderstood what James Henstridge said and then failed to test the changes properly. 0.17.1 was released this morning to fix this issue as well as the backwards test for whether inter-library dependencies are supported or not.

Later in the day, I fumbled around with getting LaTeX to frame a part of my thesis with a shaded background. After a lot off googling around, I found framed.sty which does what I want without any fuss. Yay. Now I’ll just have to actually write the content.

Right now, I’m fixing up stuff again. Jeff Bailey is fixing some bugs in mkinitrd for us at work, which is kinda cool to watch through a shared screen session. IRC + shared screen is fun.

2005-04-06 – Terrorism, and misuse of the word

When I grew up, terrorism was hijacking planes, attacking civilians like the 1972 Olympics attack by Black September and stuff like that. The people of Vietnam weren’t terrorists, they were freedom fighters or at least guerilla fighters fighting France, then the US. The mujahedin in Afghanistan likewise, except they were fighting the Soviets.

After 2001-11-09 that changed. The quintuple hijiack was more of a coordinated assault than a “regular” terrorist attack. A bit like high-tech one-shot guerilla warfare in somebody else’s country. Even though it was “too big” to be labeled a terrorist attack, I don’t have a problem with calling it that. In the aftermath however, more or less any disruptive activity is labelled terrorism.

Sharing movies and music with peer-to-peer technologies is now terrorism, demonstrating for or against something is terrorism. Open source is terrorism. The people in Iraq who are trying to eject the US armed forces from the country are all labeled terrorists, even though it’s the US forces who invaded the country an instantiated a government fairly undemocratically. I’m not agreeing with them attacking the US forces in any way, but they are not terrorists. They might be insurgent or rebels, though.

This makes me sad, not only because people go about being scared about terrorism all the time, being blown to pieces, but also because it makes the word unusable for what it is meant to describe.

So, please don’t use the word terrorism unless you actually mean terrorism.

2005-03-27 – Ampersands and Planet

Basically, the problem with Planet having feeds “break” it is that Planet uses an ultra-liberal feed parser which ignores errors (and thereby breaks the XML spec). Of course, this means Planet’s output might not be valid either.

I’ve had this discussion with Keybuk a few times, he seems to think having planet work this way is a feature and not a bug.

2005-03-27 – pkgconfig 0.16 released

The first pkgconfig release in about 1.5 years is now out. A bunch of bugfixes, some feature enhancements. Please test it and give me feedback.

2005-03-04 – Download numbers for ftp.se.debian.org

Inspired by Md’s efforts to provide numbers showing how many packages have been downloaded off ftp.it.debian.org, I decided to try to get the same numbers for another mirror. The admin of ftp.se volunteered his logs, and I ran a small, ugly shell snippet[1] on the logs to extract the number of downloaded packages:

The numbers include some amd64 downloads, but this is such a small number that it won’t have skewed the numbers significantly so they are included for completeness.

[1]: bzcat */httpd_2005-02-*.bz2| perl -ne '/_([[:alnum:]]+)\.deb/ and do {$arches{$1}++}; END {foreach $key (keys %arches) { print $arches{$key}, " $key\n"}}' | sort -rn

2005-03-04 – Don't reinvent version control

Julien, please don’t reinvent the wheel. Just use a version control system. Whether you prefer Arch, SVN, CVS or any other is nothing I’m going to tell you to, but you’ll save yourself a lot of work by just using a version control system.

2005-02-02 – Multiarch working

After about a week of gcc compiles, I have multiarch working now. Mostly, at least:

(hoary-clean)root@shonap:/tmp# cat hello.c
#include <stdio.h>

int main(int argc, char **argv) {
  fprintf(stderr, "hello multiarched world\n");
}
(hoary-clean)root@shonap:/tmp#

A trivial hello.c. Then, we have a multiarched libc6 and libc6-dev:

(hoary-clean)root@shonap:/tmp# ls /usr/include/stdio.h
ls: /usr/include/stdio.h: No such file or directory
(hoary-clean)root@shonap:/tmp# ls /usr/include/i386-linux/stdio.h
/usr/include/i386-linux/stdio.h
(hoary-clean)root@shonap:/tmp#

Matching libraries:

(hoary-clean)root@shonap:/tmp# ls /usr/lib/libc.so /lib/libc.so.6
ls: /usr/lib/libc.so: No such file or directory
ls: /lib/libc.so.6: No such file or directory
(hoary-clean)root@shonap:/tmp# ls -1 /usr/lib/i386-linux/libc.so /lib/i386-linux/libc.so.6
/lib/i386-linux/libc.so.6
/usr/lib/i386-linux/libc.so
(hoary-clean)root@shonap:/tmp#

Then, compile, check, run:

(hoary-clean)root@shonap:/tmp# gcc-3.4 hello.c -o hello
(hoary-clean)root@shonap:/tmp# file hello
hello: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for
GNU/Linux 2.2.0, dynamically linked (uses shared libs), not stripped
(hoary-clean)root@shonap:/tmp# ldd hello
                libc.so.6 => /lib/i386-linux/libc.so.6 (0xb7eb1000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fea000)
(hoary-clean)root@shonap:/tmp#
(hoary-clean)root@shonap:/tmp# ./hello
hello multiarched world
(hoary-clean)root@shonap:/tmp#

Yay!

Of course, there are minor problems left, like gcc thinking that it installs the 64 bit libraries into /usr/lib/i486-linux/x86_64-linux, that it currently can’t compile for 64 bit due to the symlink from libgcc_s_64.so being missing and other minor stuff like that. It seems glibc also needs a minor adjustment (just a missing symlink from i486-linux to i386-linux in /usr/include).

As a final test, I scp-ed the 64 bit binary I built (after having created the libgcc_s_64 symlink by hand) to an AMD64, and it works beautifully there.

2005-01-25 – Multiarch.

I’ve gotten multiarch working again today:

root@shonap:/# ls -l /lib/libc-* /lib/ld-linux.so.2
ls: /lib/libc-*: No such file or directory
lrwxrwxrwx  1 root root 22 Jan 25 18:56 /lib/ld-linux.so.2 -> i386-linux/ld-2.3.2.so
root@shonap:/# ls /lib/i386-linux/
ld-2.3.2.so               libm.so.6               libnss_nisplus-2.3.2.so
ld-linux.so.2             libmemusage.so          libnss_nisplus.so.2
libBrokenLocale-2.3.2.so  libnsl-2.3.2.so         libpcprofile.so
libBrokenLocale.so.1      libnsl.so.1             libpthread-0.10.so
libSegFault.so            libnss_compat-2.3.2.so  libpthread.so.0
libanl-2.3.2.so           libnss_compat.so.2      libresolv-2.3.2.so
libanl.so.1               libnss_dns-2.3.2.so     libresolv.so.2
libc-2.3.2.so             libnss_dns.so.2         librt-2.3.2.so
libc.so.6                 libnss_files-2.3.2.so   librt.so.1
libcrypt-2.3.2.so         libnss_files.so.2       libthread_db-1.0.so
libcrypt.so.1             libnss_hesiod-2.3.2.so  libthread_db.so.1
libdl-2.3.2.so            libnss_hesiod.so.2      libutil-2.3.2.so
libdl.so.2                libnss_nis-2.3.2.so     libutil.so.1
libm-2.3.2.so             libnss_nis.so.2

At least, it works for glibc on i386. I now need to fix up gcc to look in the right places and whip up a few sample packages. The nicest thing about all this is the small size: it’s barely a patch to upstream’s sources and apart from the splitting of packages which is needed, it’s a tiny change to the Debian packaging.

2005-01-24 – Grabbing port numbers

Since SSL doesn’t support more than one virtual host per IP/port pair and I want to run a few vhosts on my server, I am using port-based SSL-vhosting. This worked well for a while and I was using 443, 444, 445, 446 and so on.

Then, MS comes about and decides they need to use a new port number since they’ve tweaked CIFS a little. What number do they choose? 445! And what happens the first time some random hole in their implementation is found? The university stops incoming connections to port 445. Not rejects or anything nice like that, no. They just drop the packets on the floor.

I just love it when people make random changes like that without telling. And I am so happy about MS grabbing random port numbers.

2004-12-25 – Small fixes

My blog’s visual appearance has been overhauled a bit. It looked the same for a looong time, but I got bored of it and figured it needed some fixups to work better.

In addition, I went through a pile of old posts and fixed up Textile markup I had left behind. There’s probably still some left, but it should be better now, at least.