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

I spent the past week in Biarritz for the Carbon 2009 conference. Biarritz is located in the Basque country on the shores of the Atlantic ocean. It used to be a resort for the rich ones (Napoleon, for instance, had a summer residence there), and the town still has that kind of feeling to it. The conference took place in the Casino, right on the beachfront, and in a former Casino transformed to a convention center, with a nice view over the ocean. We had only a few hours of sun here and there; we did take a bath in the ocean but it was quite cold.

I did an oral presentation about the "Structure and Reactivity of Carbon Nanotube/Manganese Oxide Nanocomposites", which was well received, I think. There were some interesting questions, and everything went well—except for the fact that the "moderator monitor" in Keynote stopped responding at about the third slide. On the big screen however, everything continued smoothly. Other talks were very interesting, too: Kazu Suenaga from AIST in Japan showed atomic-resolution electron microscopy images and even videos of reactions taking place inside the microscope. Wow.

For the people presenting posters, the situation was less rosy though: all the poster sessions were in parallel to a buffet, so you had to choose between eating and looking at the posters.


03.07.2009 by tg@

About 30°C in the bureau don't make working easy. It was still too hot to work, and apt is a buggy pile of... whatever. Maybe I should search for my own ventilator, so it doesn't get that hot at home. I actually was ill again yesterday due to the heat (and it got worse instead of better over the late morning, when I thought I could sleep it out).

NetBSD® makefs(8) overwrote meaningful data with padding if you told it to not pad (fixed), and one of its header files comes with CR-LF (DOS) line endings. Nice, eh?

krank ‣ ziek ‣ ill

29.06.2009 by tg@
Tags: geocache

I got ill during the night from Thundersday to Friday last week, damn Berlin weather (hot, humid, chilly wind especially indoors in the exhibition halls), so you’ve got to wait a little longer for a report about LinuxTag.

I will also need to take care of roff2htm better, as some of the pages produce invalid XML (overstrike my arse, we use WTF-8), plus it’s probably better to cease using a chain of sed(1) exprs…

Mika is awaiting more bootloader hacking. A 4.1 GiB grml DVD did not work for boot(8/i386) either… shux…

I however did get to geocache, especially today, as I discovered one in almost spit distance from my home. Too bad it was listed on the .COMmercial site only, so I hadn’t noticed. Anyway…
(Update: images moved here)
I still plan on inventarising them…

We’re now doing Font Embedding (MSIE4+ and CSS3 styles) with the already mentioned Gentium font, using Gentium Basic for the styles it doesn’t support (bold; bold italic). Sadly, if the browser does not yet support it, the bold formatting is lost in its entirety if Gentium is installed locally. I also tried putting “Gentium Basic” first in the font-family list, but it doesn’t fall back to Gentium upon encountering Greek or Cyrillic characters then, but uses some totally random fonts instead (something illegible for Greek), that Opera 9 stuff on MirBSD, that is.

bsiegert@ has tested it with Safari 4 from 北京 and says that it works, although his screenshot looks like browser emboldened to me (no idea… but trying to combine Gentium + Gentium Italic + Gentium Basic Bold + Gentium Basic Bold Italic into one font is hard.

And the Ⅱ U+2161 ROMAN NUMERAL TWO is missing… ☹

Thanks to smultron and quite some bugfixing and hacking of yours truly, the titles of the pages on our website are now pregenerated PNG images, depicting the headline text in Gentium Italic (the font in which our flyers have always been set, as well as the PDF version of the mksh manual page (since a few weeks, once I found out how to use it with groff).

Of course, it still looks superb in Lynx, using <img alt="…" /> tags, and is valid XHTML/1.1 still.

The already mentioned RANDEX protocol (entropy exchange via IRC) is now supported, by means of a plugin, on XChat as well. Of course, the whole feeding entropy back to the kernel thing can only work on Win32 (thanks to my earlier changes to arc4random.c and MirOS BSD, although I thought our XChat port is stuck at 1.8.11-1 and only now I see we have an XChat2 port (with a bzip2 distfile, yuck).

This plugin is therefore tested to compile (by myself), with strict warnings on MirOS BSD/i386, Debian Lenny/i386, Mac OSX/i386, Cygwin32 (for MinGW); it works on Lenny, Win2k (myself) and Mac OSX (gecko2@). A ready made DLL for Win32 is available for direct download from us as is the source code. It is, of course, MirOS licenced.

irssi plugin is available from CVSweb or AnonCVS; the MirPorts versions of sirc and tinyirc, as well as tinyirc on bsd4grml and the Live CDs, also support the RANDEX protocol.

While it does not feed back entropy to the kernel on e.g. Mac OSX – due to a hypothetical arc4random_pushk(3) function needing root privs – it can still be used to access the pool by typing /RANDOM, or simply participate in the distribution (one can get back some from the pool from call MirBSD), thus gecko2@ offered to push it into Fink.

I hope “Biertier” comrad now joins the fun set up by Vutral and me, especially since he operates an SSL-only private IRC server. manifold-boot™ ISOs

06.06.2009 by tg@
Tags: grml

The official grml GNU/Linux ISOs will use the manifold-boot™ technology from The MirOS Project – development builds have already done so for a couple of days – starting at 2009.08 (the next scheduled formal release).

This basically means you will be able to

# dd if=grml-daily.iso of=/dev/sda [bs=…]
# dd if=/dev/cdrom of=/dev/sda [bs=…]

to create a bootable USB stick (or a Live HDD, CF/SD/MMC card, etc). MirOS CDs have been using this since approximately October 2007. Support for loading GNU GRUB2 instead of boot(8/i386) was a dozen-line patch adding some ifdefs to our source (upstream; the grml Git repo only contains the generated bootblocks) hacked on a lone evening. (Knowledge how to boot GNU GRUB was there, from boot(8/i386) “machine exec” support, already.)

Mikas Blog appears to contain more documentation on GRUB2 than the FSF’s pages…

mksh R38 released

31.05.2009 by tg@
Tags: bug mksh

The MirBSD Korn Shell R38b has been released. It adds portability to QNX 6.4, a built-in base64 decoder and encoder written in mksh itself, and most importantly fixes a regression introduced in R38 causing memory corruption.

This – and a lot more bugs – were discovered while porting Git (resp. running its test suite) for Michael Gebetsroither (grml).

Random musings, devised on the best place ever to think (the one in the house where there will be no computer, at most a telephone; insiders know where it is, afk): I wonder what ÆrieBSD will do regarding ports. Sure, granted as long as they don’t change their uname(1) away from OpenBSD (and retain Perl, gcc and the obsd perl espietools) they can continue using OpenBSD ports. But as soon as… we (bsiegert@ and I) know the pain, the autotools tricks, have an infrastructure in place to deal with it, etc. Of course, there is also pkgsrc®, but they aren’t exactly easy to deal with, and pretty over-engineered in most parts while lacking in others (even though they catch up in a few of these). I wonder…

Okay, The MirPorts Framework assumes Perl, most individual ports haven’t been tested with pcc, I have yet to see a constantly working pcc as well, and XFree86® (or Xenocara in /usr/X11R6, should work too) is depended upon for X11. But it should be easier, even if mksh and mirmake are required, than starting from scratch. Heck, even MidnightBSD would probably have jumped on the MirPorts wagon if they had not had such success with mports at that time already.

With another mksh release out, and the first feedback (actually a patch with explanation – naaina ported it to the newly released QNX 6.4, 10x) already in, I would like to request user feedback if mksh compiles okay for them, the regression test suite results, and if it does its job – especially on the more obscure platforms. Current plans for R36b are mere portability and bug fixes, and maybe some more of the Syllable, Plan 9 or Haiku issues touched if someone does it.

On the other hand, I'm really glad I get feedback, even patches from people I've never heard of beforehand, which even touch documentation as it should be. One had the luck of adding a feature that had been, independently, requested in IRC mere days beforehand. You're welcome ;)

Let me plug a link to the fine manual page mksh(1) or its PDF version.

Thanks to all users as well, we cracked the 100 in Debian popcon a few days ago (102), even though it's down a tad right now, to 94.

Plans are to get promoted to Arch Linux Community from AUR, included into Mac OSX, Minix, pkgsrc® (as bootstrap shell) and QNX by default, and the usual world domination in general. Hey, I'm fixing dietlibc bugs on Launchpad now, so low I've sunk, so gimme some rest.

The “openbsd” option (bsd.mod) is unable to boot 4.4OpenBSD, MirOS #10, bsd4grml 2009.05rc1.

It appears that the kernel gets a page fault trying to access its own .bss – but I didn’t really look into it. Any takers?

This is bad, I wanted to add this…

menuentry "bsd4grml from harddisk (ISO = grml_2009.05-rc1.iso)" {
        loopback        loop (hd0,1)/grml/grml_2009.05-rc1.iso
        openbsd         (loop)/boot/addons/bsd4grml/bsd.rd

… to the solution using GRUB2 for ISO loopback boot, which Zugschlus brought into practical use.

grml GNU/Linux, our recently-partner project from Austria (not Australia), will gain ISO images bootable by dd(1)ing to a USB stick (or CF/SD card, hard disc, ...) via the MirOS manifold-boot technology, in use since 10/2007 and developed for the self-installing boot blocks. With only a couple of ifdefs, the MirOS BSD/i386 was made into a which runs fine on GNU/Linux (with mksh, of course!) and produces a first stage boot sector capable of loading a GNU GRUB2 core.img image the same as boot(8/i386) has been able to for a while. (GNU GRUB-legacy stage2 images cannot be loaded that way because bootxx is limited to 65280 bytes of second stage loader – mostly because the bootloader itself is, too, and this enabled me to squeeze out a few more bytes there.)

To say it with Mika Prokop himself:

23:22⎜«mikap:#grml» mirabilos: und dein bootloader ist geil :)
23:29⎜«mikap:#grml» und ich finds saugeil dass ich ein bsd zum booten mit
     ⎜  grml hab, das muss ich dann gleich mal auf usb-stick installieren

<mika:#grml> mirabilos: because: per default i still want to use isolinux
   (unless grub2 is working better, and: i'm missing the f2, f3,... splashes
   from isolunux)
<mirabilos:#grml> yep, nimm isolinux
<mirabilos:#grml> mkisofs -b hat damit gar nix zu tun
<mirabilos:#grml> das ISO bootet grub, wenns von USB gebootet wird, isolinux,
   wenns von CD gebootet wird
<mika:#grml> mirabilos: and the *same* ISO boots isolinux by default then but
   can be 'dd if=grml.iso of=/dev/sdb'-ed?!
<mirabilos:#grml> yep
<mirabilos:#grml> MirBSD doing that for a couple of years
<mika:#grml> mirabilos: awesome, i still don't get it but this sounds awfull
<mirabilos:#grml> mika: ours can even be booted on i386 via both methods *and*
   on a sparc
<mika:#grml> mirabilos: WTF?
<mirabilos:#grml> yep
<mirabilos:#grml> before MirGRML was added, our live CDs were already DuaLive?
<mika:#grml> awesome
<mirabilos:#grml> i386 boot (from cd, hdd, usb, compactflash, sd) into either
   live or install mode + sparc boot (voa OpenBOOT) into install mode
<mika:#grml> mirabilos: pfuh *verbeuge_again* :)

Ich glaube, Mika mag meinen Bootloader ;)

For simplicity, getextent_cd9660(1) will also be added to the grml-live ISO build process, as its output is easier to parse than J�rg's isoinfo. (I definitively should add subdir support there, just haven't gotten around to do it yet...) It uses a UCB and a TNF header file and otherwise available under the MirOS Licence (of course), as are the bootblocks.

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

MirOS Logo