On EFNet #dragonflybsd, Matthew Dillon and ‘mjg’ have been discussing various way to optimize for bulk builds. A recent update from mjg for different memory functions shaved 1.7% off bulk build time – significant, when you are talking tens of thousands of packages.
It’s probably going to be quiet for at least a few days because of the Christmas holiday, though I’ll of course have the normal weekend features up.
In the meantime, here’s something to ponder: this post about tmux and plugins for it led me to thinking about plugins in general. The pkg system is sort of a plugin scheme for BSDs, much like apt for Debian, yum, etc. Each language has its own libraries to load and plugins to manage past that, like Perl’s CPAN. Nowadays, applications have their own plugins. For instance, a system with WordPress installed with PHP installed with PHP plugins required with WordPress plugins that also require given PHP libraries. WordPress manages keeping itself and its plugins up to date, but not the underlying PHP installation. You can get something similar with Perl along with the Perl-specific package updates, through cpanm. Or, npm, which seems to be its own world of constant flux.
How many levels could this go? Like running multiple emulators within each other, how many levels of plugin could you achieve? There’s probably a series of levels proceeding from tedious to barely maintainable to ridiculous.
Synth logs for dports are now located here on a new machine:
If there’s only a short list, it’s because the most recent build was probably focused on retrying a broken-but-now-possibly-fixed package. I link both because of the utility and also because the interface is pretty.
There’s been a fresh binary build of dports – and then some more updates to cover a variety of security issues in some of those ports. Now is a good time for a ‘pkg upgrade’.
Some of the larger application sets on DragonFly have had trouble building, and inconsistent problems with that build. i.e. rust would fail, but in different parts of the build process, every time. It looks to be a problem with signal interaction, and there’s now much safer ways to do that on DragonFly.
That is going to require a full buildworld/buildkernel if you are on DragonFly-master, 5.7. Release/5.6 users are unaffected.
You should set hostname in /etc/rc.conf. I am mentioning this now because not doing it kept me from running X apps from a DragonFly system on a Windows 10 system with vcxsrv, and I wasted half an hour of my life figuring that out. Apparently this is a lesson I need to keep relearning.
The headline is a little misleading; umtpx has been in DragonFly forever, but now utmp is really retired and programs adjusted to match. The change is not that user-affecting and utmp data is still accessible; this is part of the ABI change alluded to over the past week.
If you are on DragonFly-current, the ABI changes of the past few days are complete and new dports packages are built, so now is a good time to do a complete build and install of world and kernel, and then a pkg update.
5.6 users can keep on keeping on; no breakage there.
There’s commits being made in DragonFly that will break binary compatibility. If you are running DragonFly-master, that means you will need to do a full buildworld/buildkernel when updating, and you will either have to rebuild packages or wait some days until a new set are built.
If you are running the 5.6 release, you are unaffected.
I’ve seen a similar config other places, but it never hurts to note: scrolling in X requires just a few xorg config lines.
First, history: DragonFly has had binaries of dports available for download for quite some time. These were originally built using poudriere, and then using the synth tool put together by John Marino. Synth worked both to build all software in dports, and as a way to test DragonFly’s SMP capability under extreme load.
Matthew Dillon is working on a new version, called dsynth. It is available now but not yet part of the build. He’s been working quickly on it and there’s plenty more commits than what I have linked here. It’s already led to finding more high-load fixes.
If you upgrade DragonFly and one of the shared libraries used by pkg gets updated, you can’t run pkg until you get files, but pkg is the program you use to bring in new files. This chicken-and-egg problem is solved with pkg-static, a version of pkg built without shared libraries.
You may have noticed some format flip-flopping between pkg and pkg-static if you had to run it after the most recent DragonFly upgrade; that is fixed. There’s a larger issue of certificate installation identified there; I don’t know a solution to it, but I do want to mention this for next time pkg breaks for someone – pkg-static will work as backup, including to bring in a new version of pkg.