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

mksh(1)'s "set -u" handling will change RSN to match what POSIX will mandate in the next version, matching similar changes in GNU bash 4 and AT&T ksh93.

Most of the thread can be seen on the miros-discuss@ mailing list archives (although both MARC and GMane seem to not have all related eMails... weird).

I have developed kwalletcli, a command-line interface to the KDE Wallet and would like public feedback, before releasing an 1.00 version, both on the source code and an experimental Debian package of it.

Nice things it can do:

  • get and set password stanzas in the KWallet via CLI
  • contains a CLI wrapper around pinentry’s Aegypten protocol
  • contains an Aegypten protocol server, pinentry-kwallet, which checks the KWallet before deferring to another pinentry of your choice
  • contains an ssh-askpass(1) alike kwalletaskpass tool
  • can be used in gajim and pidgin to store Jabber passwords in the KDE Wallet (not included; patches for these will be made separately)
  • plugins for other tools do not introduce dependencies due to separation via CLI API
  • nice, (hopefully) consistent shell CLI API
  • low dependencies: KDE 3 (for kwalletcli itself – KDE 4 might even work, with minor Makefile changes, but that was not tested), another pinentry (x11, qt, gtk-2, curses – all tested) if needed, gpg-agent if needed, mksh to run the scripts, ssh-add(1) to make use of kwalletaskpass
  • with appropriate agents, GnuPG 2 and SSH keys can be made available to pure CLI sessions as well, if one has logged in via KDE first (we do this at work on our standard desktops, courtesy by me)
  • OSI certified Open Source™ Software under a free, very unrestrictive, licence

Any feedback welcome! Direct it to the miros-discuss mailing list.

Update 09.07. – version 0.90 -> 0.91-1
I also crafted a patch for gajim to use kwalletcli, let's see if it gets in. More to follow.

Update 09.07. – version 0.91-1 -> 0.92-1
People who port this to KDE 4 (create a kwif4.cc file) welcome!

Update 12.07. – version 0.92-1 -> 0.93-1

Update 27.07. – version 0.93-1 -> 0.94-1

RFH: mksh development

07.07.2009 by tg@
Tags: mksh

mksh development is mostly done by a single person, "the mksh team" (as seen on Debian derivate from Canonical that cannot be named forums, out of all places!), a.k.a. me, myself and I. Sometimes, actual users report bugs or even send in patches. I keep track of oksh's development as well, of course. But there are times I would like to get feedback on issues from other people working on pdksh or its descendants. I mailed, for that specific issue in question, the Debian developer who created the original patch which addressed the scenario except for a corner case (interestingly, as the world is small, discovered in a Debian(!) init script from a package maintained by aforementioned formorer, on a DomU running Lenny - don't underestimate the effect of synergy) but would really like to talk to some of the OpenBSD devs about it; they mostly know what they're doing, even if I worked on ksh for longer than most of them, many eyes do help, and most of the time I do not know what I'm doing XD

[Update] There's also the issue of inter-(POSIX-compatible)-shell discussion. For instance, "set -u" vs "$@", which has come up in Debian #522255 because GNU bash4 decided to switch to the behaviour used by the Bourne shell (from V7 to SVR4.2), all Korn shells, ash and its descendents (like posh) except dash, to not treat it specially. (Funny too how they suggest 「${@:-}」 or 「${@:+}」 instead of 「${1+"$@"}」 (from the GNU(!) autoconf texinfo documentation) as replacements.) Oh well, zsh also behaves like bash2/3 and dash, but then, it's not even a POSIX compatible shell. *sigh* Now I wonder what AT&T ksh93 will do and a confirmation if it's indeed being forcibly changed by POSIX (IMHO, they could at least "agree to disagree", like they usually do, and make it vendor defined, so that scripts could not depend on it - "set -u" is something I don't use anyway).

So if you're interested in the further development of MirBSD, The MirOS Project, one of its subprojects, such as The MirPorts Framework, mksh(1), MirMake, even jupp-2.8 or jupp-3.x, please talk to me.

[Update] Do the same for POSIX compatible shell discussion, if you are going to take mksh, its goals, needs and history seriously. (Yes, it also has bugs, like a non-recursive parser troubling COMSUBs, but they may be fixed long-term, especially if people contribute. Ideas, at the very least.)

Thanks in advance.

don't procrastinate!

07.07.2009 by tg@
Tags: event

Hell yeah. I promised a wlog entry about the Linuxtag 2009 visit. I planned on making it somewhat detailed, enumerating a couple of things I did other than catching a few geocaches with a company's EeePC and MirBSD and CacheWolf on a USB stick, and getting ill.

Alas, things often are not as desired, and I had to work last week, while still slightly ill, and I just never came around doing it. I arguably could write up something now, but I forgot most(!) of it already, don't want to publish incomplete things out of fear from (accidental) omissions, sit on nwt (my dear 80486DLC laptop) and... well, procrastinated too much. And I had a long work day and am very much enjoying my AfriCola+SchlösserAlt beer, thank you very much.

So, without further ado (why the fuck do Amis tend to have trouble with homophones, by the way?), comrad's pictures:
The BSD booth setting (overview picture; mira says hello MirOS merchandise, grml and fun buttons, etc.

It definitively wasn't as technical an event as FOSDEM, and much less people asked about mksh, but at least now I got my OpenPGP signed by two more Debian Developers who do not intend on switching keys in the next couple of months... *sigh* Anyway, world domination coming, this is required for I am still a DM, but wouldn't say no to DD status either. Why, à propos, do I have <tg@d.o> and only realise that because of spam mails sent there? Anyway, met formorer from grml in real life, quite nice too. We got some donations for the buttons and grml CDs, but the money got distributed among many people.

Hah! These CentOS guys! They made me promise to say CentOS rocks if it included mksh; they were going to file a bug at RHEL for its inclusion. I looked today, they didn't. So I won't say it rocks. It rather annoys, truth be told. Especially since it comes without a decent shell, and I had to make an RPM of OpenNTPD myself! Imagine that!

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.

hot

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…
OpenCaching.de The Frog Site Rare Jewels Broken Webpages²
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.

grml.org 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).

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

MirOS Logo