MirBSD — Welcome!

Sponsored by
HostEurope Logo

MirBSD — Welcome!

Quick links

MirBSD is mirabilos’ Open Source playground. (You might also have arrived here looking for MirOS, MirPorts or MirSolutions — these are no longer (Or rather, these aren’t separated any longer but now part of MirBSD; I’ve got to add this, or Wikipedia continues telling the world misinformation about discontinuing. It is just folded into one umbrella again.). This website contains, however, a lot of historic information about those; see e.g. the About page linked to the left.) Primary way of contact is IRC (as, also, linked in the menu.) Please consider to donate if you like my work.

News / weblog

So, apparently, DNS names can only be up to 253 octets long in ASCII form. The label length octets need accounting. Thanks jschauma!
Consequently, my rfc822 library and tool version 0.7 was released.

Debian 11 “bullseye” was released today (it’s still the 14ᵗʰ for me…) as well. I switched all my unstable “sid” systems to bullseye to avoid systemd’s UsrMove, which (per Technical Committee) is mandatory to be supported in any subsequent release (gah!). Still, congratulations!

Due to RT’s porting efforts, I’m still not finished with the mksh things I wanted to do, but am continuing with others. I’ll release a new sleep(1) soon (but, maybe, we can test it on many platforms first?) and guess I’ll switch ed and jupp to mirtoconf as well when I find the time.

I also had fun with… ISO 3166, ccTLDs, etc. and wtf(1). Added lots, and also deduplicated, in the acronyms database. Not the 1300+ gTLDs though. They’re insane, ICAN’t doesn’t publish either which ones are still active or their meaning (corresponding to those already present). Anyway please enjoy! Submissions, as usual, welcome ☺

My contribution to Free Sheet Music is also growing. I slightly reorganised the index (left side) of the main website, only select subprojects are now shown, but all, including musical things, the Foundry etc. are listed in the page about subprojects, some just with a small link or placeholder, others with much more. I think there may be more to add… but this, and some hyperlinking (in all directions), could help.

Now off to sleep. Our cat is already sleeping again. Thankfully, this is (probably) the last really warm day.

Farewell, GPSgames.org

Tags: geocache

After Garmin’s proprietary “opencaching.com” platform, which virtually nobody pined after, and ignoring that Navicache has not been more than a zombie for quite a while, I am regretting GPSgames.org (who offered just so much more than just geocaching — GeoDashing, GeoVexilla (I partook in both), Shutterspot (not for me), MinuteWar, GeoGolf and GeoPoker (which I never really got) — although I guess GeoHashing is the closest thing to, at least, GeoDashing) is no more. A month later, it doesn’t look it will ever be resurrected, even though this outage is unplanned; an archival was scheduled for later, which is quite a pity — I had renewed my interest in them due to the pandemic, but that was to be planned and keeping historic data intact.

This was the only platform which used a Free licence for its content (CC-BY-SA), even if, like all others, it required a more broad grant from contributors. Now, only nōn-free platforms (like the OpenCaching network) are left; only commercialising seems to save most. Pity.

The server became unresponsible because the load went up due to idiotic web crawlers, not respecting robots.txt or ignoring CGIs, hammering httpd(8). After reboot and fsck(8) I’ve configured CGIs to use a rather harsh setrlimit(2) RLIMIT_TIME, a MirBSD speciality. This should prevent repeating this issue.

As a consequence, some requests, for example annotating in CVSweb on large files (acronyms DB for wtf(1)) will now fail or (diffing between revisions on that file) return incomplete results. SOL.

This is why we can’t have nice things.

ObOTRant: The W3C specification requires the XMLSerializer[sic!] shipped in ECMAscript-capable web browsers to produce invalid XML. (The underlying algorithm is permitted elsewhere to instead raise an exception but even though a (pretty bad, e.g. it suggests dropping instead of entity-escaping -- inside a comment node) specification for fixing up such DOM trees preparing for XML serialisation exists, the spec prevents using it. The whole “web world” is just a steaming PoS really…

Maybe someone wonders about this, maybe I just want to get back to this for ordering or so… but here is my current list of things, as much as I’m recalling at the moment anyway:

  • mksh for bullseye: escape C0/C1 properly (+klibc/s390x)
  • MuseScore* for bullseye: fix Debian #985129
  • MirBSD libc: add proper "C" locale in addition to our "C.UTF-8"
  • (Update 2021-12-26) maybe three… "C" for POSIX, "" for OPTU-* stuff, and "C.UTF-8" which would reject raw octets. Unsure. Working on these things now.
  • mksh: full locale tracking with BOM processing removal
  • MirBSD: port newer OpenSSH
  • mksh: full 21-bit UCS support (replace OPTU-8/OPTU-16 with UTF-8 and a scheme that maps raw octets to somewhere above U-0010FFFF)
  • MirBSD: same switching wchar_t to uint32_t (flag day)
  • (Update 2021-08-15) switch sparc time_t to 64 bit like i386, since we’re doing a flag day already anyway (sparc assembly experts for locore.s and other changes and OpenBSD 3.x-era kernel experts contributions welcome…)

That, and a few small things (such as implement things like pre-exec hooks and vared for mksh). Oh and port a new libcrypto/libssl for TLS 1.2+ support… out of the many bad alternatives, LibreSSL looks to be the least bad contender. Licence analysis as necessary, ripping out code not under Free licences as per MirBSD’s FOSS charter.

If someone is interested in helping out with GCC: there’s work begun around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119 to make it not warn for the “universal zero initialiser” (struct foo bar = {0};) which to use is more correct than memset(3)ting everything to NUL. The git history of GCC is insufficient to figure out all related changes so diving in its SVN repository is necessary. Fix that for our system compiler (in-tree GCC 3.4).

I’m also collecting new glyphs to be done for FixedMisc [MirOS] and plan on working on a second-generation Inconsolata fork under OFL.

I’ve created another SF2 format SoundFont, at a whopping 12¾ KiB in size, which contains the two samples used by MuseScore’s metronome, e.g. to “count in” before the players begin. Turns out MuseScore cannot export the “count in” to audio, and users who need e.g. a click track or even just “giving the pitches” to singers before counting in will need to add it manually, anyway.

MuseScore uses two hard-coded samples, copied from MusE which in turn copied these from Ardour whose lead developer Paul Davis was very helpful in discovering the provenance of these samples (turns out they were generated mathematically, so they are not copyrightable) and reviewing the soundfont metadata cum instructions.

This soundfont can be used with any SF2-compatible synthesiser; the following instructions can be used with MuseScore, as well as anything that throws MIDI note events to e.g. timidity or fluidsynth:

  • Add the soundfont to the synthesiser. If loading in MuseScore ensure it’s listed below any other soundfont(s).
  • Assign the patch “Metronom”, available as drumset (bank 128, preset 48, matching MuseScore Orchestra Kit) or ordinary (bank 0, preset 115, matching MuseScore Woodblock¹), to either a pitched instrument (e.g. temporarily via a mid-stave/‑staff instrument change) or percussion stave (e.g. MuseScore Wood Blocks). (Keep the volume at or near 100, which is close to what mu͒ itself uses, even though the beats are slightly easier to distinguish.)
  • Enter notes for each beat: a tick (E₅, MIDI note 76, mu͒ High Woodblock) on the downbeat (first beat in a measure), a tack (F₅, MIDI note 77, mu͒ Low Woodblock) for all others. In 4/4 time, for example, this means a tick and three tacks.
  • Select all Metronom notes and open mu͒ Inspector (F8 key). Change Velocity type to “User”, then set Velocity, for all notes at first, to 127. Next, select the unstressed beats only (in 4/4 time again, the second and fourth note) and change their Velocity to 80.

Users of DAWs and other synthesisers may benefit from the following short representation (velocity is absolute):

beat typenotevelocity colour (in the picture below)
downbeat76 (E₅)127 green
stressed77 (F₅)127 red
unstressed77 (F₅)80 blue
compound subbeat77 (F₅)25 (not present)
other subbeat77 (F₅)15 (not present)

Soprano stave temporarily acting as metronome (mind the key signature), repurposed Wood Blocks stave doing the same; notes colourised per function (downbeat, unstressed beat, stressed beat, unstressed beat)

As can be seen in the above picture, a vocal (or instrumental) stave can, temporarily, be repurposed (e.g. for counting in) as metronome, or a separate percussion track can yield a click track. The MIDI notes were chosen so that the mu͒ Wood Blocks (unpitched percussion) instrument can be used for this out of the box — and because Wood Blocks used to be the common alternative for metronome tracks before the existence of this soundfont). Note also the accidental ♮ to nullify the key signature’s F♯ on the vocal stave to obtain the correct F₅ note. Not shown: ensure the tempo text is placed on (or before) the first click track note when counting in.

The SoundFont is published under CC0 (whose § 2 does not apply because I cannot legally waive/abandon copyright in my legislation). Discussion on the MuseScore forum for soundfonts, please.

① The Woodblock preset in the standard MuseScore_General soundfont has only one sample though so it’s not really comparable to this.

Read older news.

Announce feed

  • Reconvene on OFTC for now. DO N̲O̲T̲ connect to the old network; the new owners pulled the plug, totally obliterating what was OpenProjects/linpeople IRC for over two decades now placing an impostor Brave New World™ thing in its place, psychedelic announcement included…
  • The “irc.mirbsd.org” DNS RR was removed, for now. UPDATE 2021-07-12: now it points to OFTC, until we will have found a new forever home which will feature in another post in this announce feed and in an updated webpage about IRC.
⇒ http://www.mirbsd.org/MirOS/PR/80x15.png
⇒ http://www.mirbsd.org/MirOS/PR/88x31.png
  • Licence buttons in the customary 80×15 px and 88×31 px sizes for “The MirOS Licence” (short name: MirBSD) for use e.g. in those VCS hosting services’ README files (although mirroring the files, for both GDPR and SSL reasons, will be necessary)
  • MirKeyboardLayout 4.10 released (XFree86®, X.org evdev, Linux; no changes to NT and Win9x versions): ‥ moved; drop ≠, add ‑
  • kwalletcli-3.03 released, sponsored by ⮡ tarent
  • sleep-20210123: first release of portable sub-second sleep, select-based, supporting all GNU extensions
  • Welcome to this RSS feed, which, in lieu of e.g. an mksh-announce@ mailing list, will be used to inform downstreams about releases of MirBSD’s subprojects, snapshots and releases of MirBSD itself, plus other noteworthy news targetting our downstreams. This’ll avoid the mailing list spam, at least ☺
⇒ http://www.mirbsd.org/MirOS/dist/mir/rdate/
  • rdate-20201119 released
⇒ http://www.mirbsd.org/MirOS/dist/mir/ed/
[jupp] [mksh] [pax]
  • ed-20201027 released
  • joe-3.1jupp40 released
  • mksh R59c released
  • paxmirabilis-20201030 released
MirBSD Logo