Developers’ Weblog

Sponsored by
HostEurope Logo

Developers’ Weblog

⚠ This page contains old, outdated, obsolete, … historic or WIP content! No warranties e.g. for correctness!

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 38 39 40

mksh R59 released

Tags: mksh news pcli

With a mixed bag of changes, I’ve released mksh(1) R59 yesterday. Some of those changes are breaking to the shell language:

  • When printf(1) was compiled as builtin, and a matching external utility (i.e. $(which printf)) didn’t exist, and builtin printf was not used to specifically invoke the built-in utility, it could not be found. This is critical but only for a very small area: mostly when mksh (or more specifically lksh), with printf as builtin, is used as /bin/sh and the udev SYSVinit script uses printf while insisting on setting PATH to just /bin while printf(1) sits in /usr/bin. If this affects you, you want this fix.
  • OS/2 only: the test(1) builtin already sometimes automatically added the suffixes .ksh, .exe, .sh, .cmd, .com, .bat to a file argument if one without these sufficēs was not found. This was extended to cover more cases to improve the user experience. (Thanks to KO Myung-Hun for this!)
  • The output from some builtins is now formatted differently. This mostly affects how alias names, and in some cases their definitions, are printed (by alias, command, whence, etc.) and the output from the bind builtin was also made safe for re-entry into the shell. These are desirable from a security PoV but change formats.
  • In the manpage, some documentation was wrong: the example command given for how tab completion escapes, and the right-hand side of string comparisons only globs in [[, not in [ and test.
  • The shell argv[0] (after removing a leading dash to indicate a login shell and using the basename(1) of the rest) is now checked whether it begins with an ‘r’, and if yes, restricted mode is enabled.
  • In [[ x = $y ]] we now parse the right operand $y as full extglob.
  • Since we already have breaking changes, the former global builtin introduced in R40b and deprecated, in favour of typeset -g in R55, was removed.
  • ^[Q (Esc+Q) was added as new editing command, quoting (for use as shell parameter, i.e. with '…' or $'…' like typeset does) the area between the mark and the cursor.
  • The manual page, besides featuring properly spaced “em” dashes, was completely overhauled in documenting reserved words and built-in utilities and now also documents built-in aliases and even those aliases and functions dot.mkshrc offers, more or less verbosely, and indicating, with every entry, which is which, including specialness and keeping assignments, deferring (with flags, like cat, or always, i.e. rename and the optional printf), being a declaration utility (where ‘b’ in export a=b is not IFS-splitted) or declaration utility forwarder (like command export a=b also skips the field splitting) and requirements (such as job control, or the presence of select(2) etc.)
  • The testsuite works again with OS/2 and pre-glibc_2.30-5 GNU/Hurd.

Now some of these changes are desirable and indicate you ought to upgrade. If you can’t (due to the breaking changes), talk with me, and I may release an R58b with only some of the changes. But please do consider whether R59 might work just as well. TIA!

jupp 39, mksh R58 released

Tags: mksh news pcli

Continuing with the idea of “let’s get releases out”, hopefully with no regressions introduced, and all updated to the latest UCS, find infos for jupp & mksh updated on their respective pages.

There are still some known unfixed issues, but time will see to them. It’s best to occasionally get the more stable codebasēs out, so users can test (and break ☺) them.

rs(1) is a classical BSD tool I noticed was missing under Debian. So I made the MirBSD one portable, some long time ago, and, because grml’s mikap wanted it as well, uploaded it to Debian. Turns out this invites actual users to report bugs ☺

So here we are, rebased to include latest OpenBSD changes, bugfixed, made portable, and even with a convenience strtonum implementation:

  • SHA256 (rs-20200313.tar.gz) = 919215dc9fe85a27a30bf63d56406cfb503f9fc9820323c4bd3bfe75a6a3bc3f
  • RMD160 (rs-20200313.tar.gz) = a8dfa5bb7ef63c66e011ec81bf20e089fdd827f5
  • TIGER (rs-20200313.tar.gz) = 42135e4d75e7865b817f1b4027d383416d326c305e6553ce
  • 1362219422 12571 /MirOS/dist/mir/rs/rs-20200313.tar.gz
  • MD5 (rs-20200313.tar.gz) = cc6a310b7f3bae98ea6296fbee0f85b4

If you really need build instructions, look at the Debian package.

Development on other fronts is also continuing. See you in IRC only, I guess… (what with the current situations, the last newspost also had conference presence). Due to the sheer amount of changes, a release of mksh is somewhat imminent, if only to get my users to find regressions caused by me attempting bugfixing ☻

Another release of one of MirBSD’s subprojects. Now, both the 8x16 VGA (cp437-encoded) and the full Basic Multilingual Plane 8x16/16x16 proper font are also available, on all possible platforms, as “doubled”, that is, 16x32 and 18x36/36x36, version suited for e.g. hiDPI displays. (This was mostly done with simple pixel doubling for each axis, with only few glyphs fixed up afterwards to achieve a slighly improved, but still FixedMisc bitmap font, look. Thanks to apotheon for the suggestion (even if it ended up being a tad too large in his eyes) and to cnuke@ for testing and to both plus Sarah for feedback.)

The APT repository was, of course, updated with xfonts-base/consolefonts-base and console-setup to match. It also, in mirabilos-support, ships an updated version of the Linux text/framebuffer console keymap.

Download and check:

  • SHA256 (FixedMisc-20200214.tgz) = 92cd16d302741be9314014960f2c57866b7e31f720b47df8efebfec7c6c35319
  • RMD160 (FixedMisc-20200214.tgz) = 9bbf24131664d201411294b633e265fc3d940fb1
  • TIGER (FixedMisc-20200214.tgz) = 92099b2a989d7a66b22aacf93836345581f8ba27aab0cab5
  • 758244556 5955999 /MirOS/dist/mir/Foundry/FixedMisc-20200214.tgz
  • MD5 (FixedMisc-20200214.tgz) = 546f492a4b0459cbf2689306560070a2

Mind this is slightly larger (6/46 MB download/decompressed) than the previous releases (1¼/10½ MB) because it now ships the fonts not only in regular and doubled versions but also the HW-only versions expanded and the full font (normal and doubled) for GRUB and the cp437 font in PSF and PSFU format (version 1 for 8x16, version 2 for 16x32). Enjoy!

I also wanted to give you a new release of the another MirBSD subproject, jupp, but I haven’t managed to finish my work on it in time. After that will, most likely, lead me to more mksh bugfixing, followed by the long-expected next regular release (it’s already cooking in Debian unstable).

And then, I hope I’ll manage to get a bit of time to get back to the BSD base and manage a rollup rolling release snapshot for those updating from binary, not from source themselves. (Rumours about being discontinued are just that, rumours; they originate (hah!) from Wikipedia, whose page about MirBSD has, incidentally, never been fully right.)

See you in IRC or around on conferences!

I’ve managed to miss FOSDEM this year, unfortunately, because I’ve got a beginning sinusitis (this time before the conference) staying home cautiously. But fear not, I’m working on porting the MirKeyboardLayout™ to Windows® 95, and, during that, I noticed that I need another glyph in the documentation comments. Cue FixedMisc.

As usual, download FixedMisc and check the integrity before installing:

  • SHA256 (FixedMisc-20200202.tgz) = 91396414e169b37bc906746ae34188ad360be271865ac44271d9b7d9746c97f1
  • RMD160 (FixedMisc-20200202.tgz) = 8f672de47df8bc67df52f5f48ac49105953d19e9
  • TIGER (FixedMisc-20200202.tgz) = d875a4835c053e21914ead312a6ec9afc40b347ee1d04fa5
  • 3480714773 1275833 /MirOS/dist/mir/Foundry/FixedMisc-20200202.tgz
  • MD5 (FixedMisc-20200202.tgz) = eb494f7f71b2c610346d58e3ac6c46ce

I’ll update my APT repository later. The separate Powerline font has been merged considering we don’t even ship glyphs for “Cirth” in CSUR and it’s being considered for inclusion into the SMP anyway.

Update: The APT repository is updated, and the MirKeyboardLayout for Windows® 95/98/9x (self-extracting LHarc archive) is also done, as far as I can make it anyway: the 102nd key (“<>|”) operates as “…€„™”, as in the NT/2k/XP/… layout, but it produces wrong results (at least on 950 B) if Shift and/or AltGr are pressed, and I couldn’t test AltGr-Tab and AltGr-Shift-Tab ‘“”’ because my window manager caught them before they could be passed into the VM… and since it uses cp1252, I used the florin ‘ƒ’ for AltGr-- instead of U+2010, randomly. The full source is also available. Test results, fixes and improvements welcome. Next: xkb

Update: I’ll be doing a script for customisation of the xmodmap and Linux layout (unswap unshifted Esc and `, move Mode_switch to Alt_R/AltGr keeping Alt on Alt_L and Meta on Win_L, and a tristate one: CapsLock as …€„™ and the <>| (102ⁿᵈ) key as Compose, vs. the 102ⁿᵈ key as …€„™ and CapsLock being either Compose or Ctrl) soon. Stay tuned!

Today I’ve released another new CVS snapshot of the FixedMisc [MirOS] font; as usual, the tarball contains the font in BDF form, with no conflict with the system Fixed [Misc] font; sources for use (compilation, editing) with bdfctool(1) are in CVS.

New: a Powerline variant of the halfwidth font, and massively more alternative UCS mapping for the cp437 font.

  • SHA256 (FixedMisc-20190911.tgz) = 1aa35a3128b3e5ca452467fca8150ad394054f60f847eca7296480bd23039dd7
  • RMD160 (FixedMisc-20190911.tgz) = fc2a61166ea4c955d5c34e03f5da0c00df132a00
  • TIGER (FixedMisc-20190911.tgz) = f3b087c819c8fdc2c319feca5d11f1ad25f89d7ce17e2907
  • 830148610 1378344 /MirOS/dist/mir/Foundry/FixedMisc-20190911.tgz
  • MD5 (FixedMisc-20190911.tgz) = 87ef903a45e5a6e1c9dfa86b172b24d3

My “WTF” APT repository contains the updated consolefonts-base and xfonts-base packages, as usual.

Accessing laptop hard discs elsehow

Tags: debian hardware pcli tip

Today, I realised that, to use a laptop hard disc outside of a laptop, no matter whether via converters or in a regular (nōn-laptop PC), most likely…

	hdparm --security-unlock password /dev/hda

… is needed. (No, I don’t currently know how to do this in MirBSD.)


	 SG_IO: bad/missing sense data, sb[]:  70 00
	05 00 00 00 00 0a 04 51 40 01 21 04 00 00 00
	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

… maybe not ☹
Send help.

The fate of MirOS Linux, and a birthday post

Tags: archaeology fun plan

MirBSD has just recently become 17 years old, and I wrote (in German, sorry ☺) a reminiscing piece about that and thanking everyone involved.

Today my calendar(1) reminded me of the first steps towards “MirLinux”, a.k.a. “MirOS Linux”, 16 years ago and given this pops up regularily, especially due to Wikipedia spreading it, I feel I have to clarify: cnuke (the original Jupp) really likes the BSD userspace but wants to play Quake Ⅲ with accelerated 3D, so the idea was to maybe build everything for Linux, add a glibc and other dependent libraries (and we’d use different paths, so linking is unaffected and we’d have nicer linking semantics than those GNU people), and maybe things would just work.

It was a woozy idea right from the start, and there might have been beer involved, and nobody ever got around to actually doing so, and it clearly was never a/the project goal. Yes, we probably could have done it, back then, up to 90% satisfaction, and with some more binaries thrown in from GNU/Linux (e.g. for the packet filter, as — sadly… ― pf(4) for Linux has never materialised) it could have become usable, and there was ecce!GNU/Linux precedent, but BSD’s the focus. Perhaps if a certain few people had been less Verpeiler… oh well — no big loss.

I did turn out fixing stuff in GNU/Linux and porting stuff over in the end, but we never merged them, which perhaps turned out, looking back, to be a good thing.

Tomorrow 16 years ago, plip(4) support was added… I need to dig out the cable and run some interoperability tests some time to see if it’s still working, with both Crynwr and Linux on the remote end, and FreeBSD (if they still have it).

In unrelated news, other activity has been suspended, as I caught a “summer flu”, which turned out (and very quickly, at that) a rather harsh sinusitis-cum-bronchitis, taking me out and sapping all concentration, expected to linger for a few more days.

So… edugit? gitlab? ruby? maintainer scripts? RoDD/QA?

Tags: bug debian personal rant work

So… the Debian package of gitlab is too buggy to be used (was built against ruby-asciidoc version X.Y while sid carries X.(Y+1) now, which causes it to bug around, of course, as proper for an immature language like that. So, someone decided to switch to the GitLab CE *.deb format packages (not Debian packages — not Free; just Open Core but Debian itself uses those for its “Salsa” instance as well (which is, incidentally, why I refuse use of that whenever possible) and, for that, removed the Debian packages. The gitlab binary package helpfully offered to not delete the repositories, but gitlab-common’s postrm not only removed the user account (a big no-no!) but used the option to delete its home directory… which is where the git repositories and project icons and the likes are stored under. (Note that undeleting from ext3/4 is hard, unlike ext2, and if fsck and/or a journal replay is run, chances get worse… the ext4undelete tool “helpfully” requires an fsck run… ’nuff said… if you ever accidentally delete something, immediately unplug power and destroy VMs hard, then snapshot the filesystem so multiple rescue approaches aren’t made impossible.)

Anyway, it’s apparently running GitLab CE now, which means that all the remotes have changed. I used this…

	sudo find / -xdev -name config | grep '/\.git/config$' >~/xgc
	sudo fgrep -li $(<~/xgc) >~/xgc2
	<~/xgc2 sudo xargs perl -pi -e 's/gitlab\\'

… for fixing up mine (inspect the temporary files and check find(1) and mount(8) for -xdev to get the right files found).

Also, ~/.gitconfig insteadOf / pushInsteadOf need fixing. Let me plug an undercover avertisement for my .gitconfig here, which contains examples for insteadOf as well as commands to download GitLab merge and GitHub pull requests.

After having fixed those up, go to the web UI and click on “Create empty repository”, then push all remote branches recorded in your hopefully up-to-date clone and (all) tags to the instance:

	git branch -r | sed -n "/^  $remote\\//s///p" | \
	    while read branchname rest; do
		test x"$branchname" = x"HEAD" && continue
		echo "pushing $remote/$branchname"
		git push "$remote" "$remote/$branchname:refs/heads/$branchname"
	git push "$remote" --tags

Adjust the remote variable if necessary. Run this in all clones you have access to; not using force pushes makes only those pushes which actually add commits succeed. All repositories hosted on the edugit instance are affected and need(ed) restoring, which, thankfully, appears to make everything else, like stored merge requests, work again (although the project and group logos are gone, which need re-uploading). That being said, unapplied merge requests are stored in special refs which are not normally cloned… so they’re gone now.

MirCPIO (paxmirabilis) 20190825 released

Tags: bug geocache rant archaeology

There’s a new MirCPIO (paxmirabilis; tar, ar) release. Difference is, some operating systems don’t yet support passing nil as second argument to realpath(3) which incidentally included (note: past tense) a certain BSD whose installer segfaulted in tar(1)

Debian GNU/Hurd was, btw, not affected.

In other news, it’s way too hot and other IRL things take up tuits.

And in completely (I’m sure) unrelated news, my waypoint statistics are not getting updated for now, and acronym submissions pile up in the queue. (The broken iOS Äpp link has been forwarded to the author. Techniker ist informiert. YMMV)

Updating IBM X40 with CompactFlash card

Tags: hardware personal

So, I’ll be updating my IBM Thinkpad X40 from an almost broken 40 GB 1.6″ IDE HDD (with 2.5″ connector) to a dual (IDE master/slave) CF card adapter with… two (but I cannot find one of them right now) cards with a whopping 64 GiB, each ☺

I’ll take the added space to install it as a dual boot system so I can play some games… Diablo, Hellfire, StarCraft, BroodWar, Diablo Ⅱ, LoD… again (and perhaps create more binaries of MirSoftware for those sad OS users). It’ll be frustrating.

I’m also taking the chance to reinstall MirBSD on the laptop “fresh” and build binary packages for MirPorts and publish it as a half-snapshot (sparc needs more tuits) which is likely going to take time, during which I’ll be on other laptops, limited in agility.

Harry Potter in Unicode

Tags: fun


I wasn’t even looking for it but for LATIN SMALL LETTER S WITH CROWN ABOVE or COMBINING CROWN ABOVE for… Wasⷳa? Wasⷿa? Was̐a?… that, anyway, but didn’t find it, when I found that.

Update: Of course, Mozilla® Firefox™ renders it wrong. In lynx (standard browser) in xterm (standard terminal) it properly renders like SMILEY with COMBINING ZIGZAG

I wonder when the first UIs will render it as inline small HP photo…

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 38 39 40

MirBSD Logo