Developers’ Weblog

Sponsored by
HostEurope Logo

Developers’ Weblog

All 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37


09.07.2008 by tg@

Since quite a while I’ve had anger about BSDstats – their ports reporting stopped including ours (MirPorts Framework, NetBSD® pkgsrc®, OpenBSD ports tree, Debian dpkg), the maintainer was rarely reachable, at most by eMail, and the entire system had issues. Now, the site no longer exists, apparently nobody knows why, and our systems error out. Well, I have disabled BSDstats, this will probably make MirOS appeal more to privacy-conscious geeks again, and save us from getting more errors in our logfiles, especially the Live CD reporting was already totally broken due to weird User-Agent tricks.

I’ll now count on people just using IRC or so to say hi to us if they’re using MirOS, are happy or tell us things we could improve. Or meet us at conferences and pay for our beer ☺ and other beverages (we’re not BeerFSD after all).

Configuring name-based apache vhosts with SSL and IPv6… is hard. Really. This is probably due to it being “a patchy webserver”. Here is a quick cut and paste solution, well, sort of.

Scenario: I have a web server running name-based vhosts on the SSL port. I get a either wildcard certificate, or – in my case – a certificate with some subjectAltName extensions set; CAcert supports these now. All vhosts I wish to serve must be included, and the primary commonName (as part of the distinguishedName) ought to be the host’s primary FQDN, and it must be duplicated as subjectAltName.

I wish to serve a default page (just the standard index.htm from /var/www/htdocs/) to everyone who does not provide a proper host name (e.g. speaking HTTP/1.0 without Host: header, or just probing my IP addresses), and a couple of vhosts to everyone else. I use one IPv4 and one IPv6 address. The vhost configuration is placed in several files in /var/www/conf/vhosts/ called «vhostname».«port»; if some information is to be shared (e.g. vhost on both port 80 and 443), these are placed in «vhostname».common and included by the port configs.

Important: Do not use wildcard vhosts, they won’t work and give errors. Do not use the _default_ vhost in any form, it silently won’t work.

You might want to place directory information in the vhost configuration file instead of in the main configuration file.

Part of httpd.conf is:

	ServerAdmin «mail address for the server itself»
	ServerName «main FQDN»

	NameVirtualHost 443
	NameVirtualHost 2001:db8:1234:1::1 443

	<IfDefine SSL>

	Include /var/www/conf/vhosts/eurynome.443

	<VirtualHost [2001:db8:1234:1::1]:443>
	Include /var/www/conf/vhosts/eurynome.443

	Include /var/www/conf/vhosts/call.443

	<VirtualHost [2001:db8:1234:1::1]:443>
	Include /var/www/conf/vhosts/call.443

	Include /var/www/conf/vhosts/default.443

	<VirtualHost [2001:db8:1234:1::1]:443>
	Include /var/www/conf/vhosts/default.443


(using documentation addresses)

Make sure every vhost except the default one sets ServerName (and ServerAdmin if it differs), and DocumentRoot etc. as usual. The default vhost does not need to set ServerName, but the line
ServerAlias *
must be present and it must be the last vhost in the list, as above.

If you still have questions – especially now that even OpenBSD has seen the light and applied the IPv6 patch I not only applied to MirBSD some four years ago but also suggested to them some two or three times – come to IRC or drop us an eMail, and we’ll try to fix things. Apache is definitively historic ballast, but still common enough on todays Unices.

So the uppercase eszett – ‘ẞ’ (or ‘ẞ’ if your monospace font has it) – is now an ISO 10646 standard. Your favourite BSD has been one of the first to add support for it to libc, a (contributed) keyboard layout, and even Markus Kuhn’s fixed-misc Unicode fonts, after the proposal with a real codepoint assignment came out. Not all Germans, nor typographers, but historicians, might like it, the discussion has been flamewar-like. But we knew this all along.

Ah, by the way. No, we aren’t dead. Websites are irrelevant, but if you end up here, please read about mksh anyway. Real questions are asked on the mailing lists or in IRC. And we don’t have a handbook (yet), because with two developers, nobody has yet had enough spare time to write one, plus you’d need a couple of handbooks – one for people coming from Open/NetBSD (Lite-based), one for people coming from Free/DragonFly/MidnightBSD (386BSD-based), one for people coming from Unix®, one for the Apple followers, one for the GNU/Leenocksers, etc. You see?

And while here: Xcode 3.1 (on gecko2@’s Macbook) comes with llvm-gcc… but not in /usr/bin/ but in /Developer/usr/bin/. It compiles quickly, produces fast and small code… kind of nice. If Apple brings LLVM+clang into a usable shape to replace our gcc 3.4.6 (gcc4 has unsafe optimisations that cannot be turned off, and all other compilers produce bigger code, which breaks the installation media (especially floppies) and SPARC kernels), in a form usable as compact command-line compilers (and not just libraries for Xcode integration), I’ll be happy. (They’d just need to add mksh to Mac OSX then to make me even happier, but I guess I’m sort of late with that request. Even if it’s fully free – in contrast to GNU bash – and, in its most recent incarnations, even advertising clause free.)

Getting things done… slowly

13.06.2008 by tg@
Tags: hardware

While “the swiss are laggards, and the people from Bern are the slow motion of switzerland”, other things take their time as well. However, vnd(4) updates have started, and other encryption schemes (including a hardware-accelerated AES variant for Columbo0815 from #IceWM) will end up in the code very soon, as promised.

During hacking, I spot other things – bugs in the random(4) code, as well as improvements to the kernel and XFree86® possibly leading to my ALIX.1c board to be supported (thanks to for keeping me informed). And Benny fixed ports bugs again, as well as put security updates for Freetype2 et al. into the tree. Thanks!

FWIW: Opera 9.50 segfaults on me. It can’t be updated thusly.

Linuxtag 2008, Berlin, .de

27.05.2008 by tg@
Tags: event

This year's LinuxTag will not go by without the BSD projects exhibiting their fine software. Of course, we will attend – the usual gang (Benny and me, gecko2 and Przemek will help out). New is that we'll also be distributing a couple of MidnightBSD CDs and flyers I had a helping hand in creating, as they are US based and won't be able to make it to Germany for this event. This all would not be possible without the help of, again. Thanks, Daniel!

The MirBSD CDs distributed contain a Live + Install CD, as usual, of an unnamed #10-stable snapshot, plus a couple of packages, including Benny's new firesomething port instead of opera-linux. The MidnightBSD CDs aren't as big and miss the install part, but are a relatively new and especially stable 0.2-CURRENT snapshot (including mksh of course).

We'll attend Tuesday (probably late) till Saturday.


24.05.2008 by tg@

Last time I had tried qemu+kqemu (on GNU/Linux), it made BSD segfault, kinda like VirtualBox nowadays. But things seem to have changed: I ran the Linuxtag 2008 Live CD Edition inside it (on MirBSD) with no problems at all. Nice, and shows that BSDs can have LKMs.

Now missing: vmxnet source code… or evil BLOB? I suppose the latter.

Unrelated side note: Netcologne is cool, but they suck: you can only change the PTR for your static IP, which you pay 4.90 € per month for, if you’re a business customer. No IPv6 anyway (but SixXS has a new PoP, out of all places in Düsseldorf *evil grin*). And Strato gives gecko2@ two IPs, but only allows the MAC of the built-in NIC (so no bridging to domU or VMs). Why can’t they ever do something not totally clueless? (Okay, I could ask the support… Netcologne support even phoned me back after my eMail enquiry apparently went through their entire house until they could figure out what I need (to mail Fefe, who blocks PTRs like foo-www-xxx-yyy-zzz.ISP), but rejected; Strato support is, from my past experience, hopeless.)

The MirPorts Framework, which also runs on MidnightBSD, is the first to bring native firesomething support to said operating system, almost effortless thanks to our good portability infrastructure, and because bsiegert@ has already done the dirty work porting it to MirBSD. Thanks, Benny! And thanks Lucas for the chance to prove the superiourity of our infrastructure. And ctriv, don’t take it too hard, just take our patches and put them on your mport.

Hardware sucks. The Z doesn’t power on after it has been shut down for a while. The CF wi(4) is broken. Software sucks. And we all know it. A web forum sucks. They probably will never learn it. Yet people support their… attitude. Americans suck, but that’s not news. Luckily, there are a few not totally clueless ones. Life sucks, and bureaucracy sucks even worse. And there’s no way around that. Too bad. (I had an encounter with bureaucrats again… could you tell? Hah. They want money back, even though it belongs to me.)

Update 21.05.2008: Benny has committed an update to firesomething-, and I bumped the dash ver and made it work as well on MidnightBSD. Sample build:

 $ cd /usr/mirports/www/firesomething
 $ mmake install clean PKG_CONFIG_PATH=$(mmake \

You must have installed fontconfig from mports (and, of course, perl, for MirPorts to work at all.

This beast now works on MirBSD/i386 and MidnightBSD/i386, should work on OpenBSD/i386, OpenBSD/amd64, OpenBSD/alpha, OpenBSD/powerpc, OpenBSD/sparc, OpenBSD/sparc64, and possibly MidnightBSD/amd64 and MirBSD/sparc (not yet on MidnightBSD/sparc64, but they’ll want to test and fix that). No idea about Darwin and Interix. Benny is going to bump to the latest upstream version now, whereas Jonathan recommended us to go to 3.0b2 for increased speed and decreased resource use. We’ll see. The mports maintainers can now take our patches and get rid of their linuxulated firesomething binary port ☺

No, I won’t.

13.05.2008 by tg@

We have lived for 25 years with the seekdir bug, and even if it’s now on slashdot this does not mean we will immediately patch it. Besides, bringing that part of libc in sync with OpenBSD will involve libc and libpthread shlib version major bumps, which is a bit overkill for this diff.

It will go anyway with the upcoming merge of more recent OpenBSD base code. There are more pressing issues. But I have looked into it.

Happy birthday, laffer1!

Whew. We have a new qemu port, but it doesn't boot MirBSD/i386 any more. It almost boots MirBSD/sparc now though. Luckily I could backport the new port's ability to use kqemu. Thanks to Fabrice Bellard and the OpenBSD ports guys for this.

The Zaurus... SL-C3200... it's a neat device, but after I managed to get the pl2303 LKM cross-built (bah!), along with the usual tools mksh(1) and jupp as well as pax(1)mirabilis for the ability to extract my CacheWolf profile onto a (FAT) filesystem - did I mention just how much busybox sucks? - Ewe doesn't work. Meh. Go to OpenBSD/zaurus, enter a SIGBUS in gtk+1.2 - exactly what I want. The gtk+2 version works, but now, plus GTK+2 plus Ewe (Java™ Ranz!) eat up all of the 64 MiB RAM plus initially 4 to 8, later 20 to 40, MiB swap. Not nice. (Some people are said to use a CF card for swap due to it being faster than the internal HDD, a microdrive. Geez.) If I'm cycling with more than say 5 km/h, the moving map hinders parsing the GPS symbols... NMEA 0183 at 4800 bps. But I managed to find another cache before going totally crazy.

After Linux (grml, FrOScon edition) has destroyed my NTFS partition, now the ext2fs driver has managed to impale quite some of my FFS filesystems again. This time, Linux isn't even at fault. (Hm, fsck_ffs(8) and e2fsck seem to have a common ancestor.) The downside however is that my encrypted home is now gone. Totally gone, as in, fsck deleted the dirent, inode, and allocation of blocks.
Yeah, I have backups, but only for the most important things, not for everything, and quite old ones. I have had to restructure my storage use anyway, now's a good time for it. Hah! And that after I chose to use ext2fs ipv msdos for a common data xfer partition between BSD and Win2k due to msdosfs eating up long filenames when a directory has a lot of them, even on OpenBSD 4.3/zaurus FWIW.

While I was quite reluctant to hack anyway recently, or even to idle in IRC or, worse, Jabber, I guess this'll throw me back even more. MirBSD isn't affected, except in further development becoming delayed.

There will most probably be a snapshot of MirBSD-current really soon. But other work (mksh R34, mirmake in Debian, MirEwe, ports, gcc) is postponed; I will try to focus on the more important things (AES vnd(4), improvements for CAcert, merging OpenBSD-current maybe even, but that not before the migration to tear is complete). OTOH, for both MirPorts on !MirBSD and pkgsrc® on MirBSD, I have laid foundation for others to build upon. Maybe they will.

Just a side question: why don't things just work every once in a while? And why, oh Murphy, do things go wrong the worst way possible, always?

MirEwe on MirDarwin?

04.05.2008 by tg@
Tags: geocache

On an unrelated note, mksh needs people running the current development version, to prevent mishaps like the one with the fullwidth characters causing wrong text output. To do that, use AnonCVS like this:
% env CVS_RSH=ssh cvs -qz3 -d co -PA mksh
Then, as usual, cd mksh && (sh && ./ -v) 2>&1 | tee log.txt to build and test it. Then, especially if it fails, send the logs to me.

Ewe is an embedded VM for some Java™ 1.1 compatible stuff. I had to fork it to use it on MirBSD and to be able to fix it. So well. It now builds on gecko2@’s Macbook. Using MirMake, of course *g* It’s even usable… which means that he can now use CacheWolf and his laptop to go geocaching.

Speaking of geocaching: more stats bragging… although a little different this time:
〔fwrtcommitstats removed due to FreeWRT archival〕 gecko2@’s founds and hides
Although only the first two are CacheWolf committers…

Ah, damnit. It freezes the usbserial (Prolific) driver when accessing the serial port. Well, Apple… they don’t even use GNU as(1) either.

… as you could get it. This is because gecko2@ asked for some more cvs commit eMail “spam” ☺

While on the spam topic: do not send an eMail to one of the following addresses:,, or, or, again, <>, <>, or <> (greytrapping)

Luckily, my internet uplink has been stable for more than 4⅓ days now, after repeated phoning (an 0800 number then) and resetting the NTBBA.

Some more statistics:

Geocacheing continues: (Update: images moved here) – now I’ve hidden my first two traditional micros (easy series), and one of them even is sort of a “lost+found” directory virtual cache overload.

BOINC continues, I’m in 9 projects now: BOINC stats
While only 8 projects show up at the moment, this’ll improve once the last project delivers in a result (it were more projects actually, but some don’t even work on hephaistos…) – now the first WCG valid WU returned from MirBSD! (MidnightBSD can’t, because I can’t run brandelf on the signed binaries of the apps… sucks to be FreeBSD derived ☻☺)

Ah, and, by the way: XTaran did not like external links, especially not secure links (https) in my wlog entries, so Planet Symlink doesn’t get them now (as it pulls via RSS), but you can look at it on the wlog.

… but calling does. The bad part is that the internet support number starts with 0900…, which means it cost me 1.69 €/min (and the call took me about 3‥4 minutes), but on the other hand, they quickly fixed the issue, sent me an SMS that they did it (just, sadly, not what it was), and since then, I haven’t been forcefully disconnected any more. This is good.

Now I’ve just got to look if this is stable, then re-measure my bandwidth. And in May, I’ll get even better upload (736 kbps instead of 608 kbps).

Verpeilungsfaktor stories: in our weblog source, we use RFC822 style header lines: “Date”, “Author”, and… “Title”. Not “Subject”. And I wondered why the posting headline wasn’t shown… Since we’re on Planet Symlink now, I try hard to find a matching one for each posting, because it looks stupid there with just the date.

Another one: we use four dashes on a line by themselves for separating log entries; the mksh regression test uses only three, as you can see. And yes, I fell for it (gave me a nice Perl error message over there, and a nice shell script induced error over here).

A last question (rhetorical: no answer needed, just nudging your brain): what do you do with your spare time, if everyone who’d to something together with you either moved away, is working or ill? And: if you were to move away yourself, would the situation improve, worsen or stay the same?

All 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

MirOS Logo