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.
DragonFly’s tcp keepalive was changed from milliseconds to seconds. This happened in both DragonFly-current and in the 5.6 release, and it changes the networking API, which means a dports rebuild is needed… or a pkg upgrade, for which happily all packages have been rebuilt. So, on your next update of the system, be sure to update packages too.
The binary package repository for DragonFly-current has been updated with the latest build of all packages, thanks to tuxillo and others on EFNet #dragonflybsd doing a lot of work.
Tuxillo noted: there’s new rust, thunderbird, firefox, nginx, several llvm versions, and a new chrome (version 72). freerdp is temporarily broken; use remmina with the rdp plugin instead. openvpn isn’t upgraded yet cause the build was with libressl, which is a broken combination – it’ll all be built with openssl in a future run.
Thanks to tuxillo and others, there’s a new build of dports on the way for DragonFly 5.4 that includes packages that weren’t building before – mongodb, kodi, mysql80, and I imagine more that I don’t know about. If the synth build is still running when you read this, you can look at its status page. If it isn’t running, the packages are of course in the normal place and you can use ‘pkg upgrade’ to get them.
Chromium, the open sourced base of the Chrome browser, builds on BSDs, including DragonFly. But not without some work.
DragonFly’s default compiler is now gcc-8. This will help with some amount of dports builds.
A little while back I linked to an excellent deep dive into Ravenports, and added my own bit of statistical guessing at popular packages. John Marino wants to know what packages people find most useful/most required. If you have opinions, and I’m sure you do, post something on the Ravenports Google Groups page.
If you are saying to yourself “Gee, what packages did I install and what came in as a dependency?”, here’s an easy way to find out:
pkg query -a '%n %a' | grep 0 | cut -d ' ' -f 1 | less
This lists all “vital” packages, which usually means ones installed with intent, rather than automatically. This might be a useful thing to post for Ravenports…
The article I linked yesterday about Ravenports got me wondering about what package are most popular. avalon.dragonflybsd.org is the default binary package archive for pkg, and it has httpd logs back to 2013, so I collated some information.
I read out a list of packages, and weighed them according to how recently they were downloaded. I also mushed together all the py/ruby/p5/php numbered packages, and excluded lib*.
After all that… there’s a lot of noise. One install of any desktop environment pulls in hundreds of packages automatically, so it’s hard to tell what’s installed by a human and what’s installed by dependency. That being said, here’s some highlights. This is me applying an arbitrary value and then arbitrarily snipping out a list… but it’s fun to see if nothing else.
eerielinux has written an exploratory article about Ravenports. It’s worth a read; Ravenports has been growing actively. You can install it in parallel with dports on DragonFly, or on a number of other operating systems.
Mixed in with the other documentation on the DragonFly website is a “how to build a release” explanation. I use it every time there’s a new DragonFly version. If you were wanting to build a DragonFly ISO/IMG with changes or different preinstalled dports, I’ve added some notes about what’s relevant for non-release building.
We used to have “GUI” releases of DragonFly which were based on the nrelease process installing pkgsrc packages and adding some configuration files. It doesn’t happen now mostly because nobody has had the time to reconfigure for dports; if you were looking for a project this weekend, may I suggest…?