A Quick Review of DragonFly BSD 1.4

DragonFly BSD 1.4 is the third major release of Matthew Dillon’s fork of the FreeBSD operating system, and significant progress has been made towards reaching many of the project’s numerous goals. New in this release include a more up to date version of the GNU Compiler Collection (required due to the incread use of thread local storage in DragonFly), an import of NetBSD’s Citrus code (Comprehensive I18N Framework Towards Respectable Unix Systems), major reworking of all core subsystems in preparation for removing the MP lock, rewrites of various VFS related code and many updated drivers, frameworks and contributed programs.

Perhaps the biggest potential change for users of the system is the inclusion of NetBSD’s pkgsrc package management system by default, and the retirement of the aging FreeBSD-4 ports system.

A full list of changes to the system can be found here.

Installation and post-install setup

As has been the case for over a year now, installing the base system was quick and mostly painless. As always, I did not add users or passwords from the installer, nor did I change the timezone or set up the network until I had rebooted into the installed system, as I find the installer of limited usefulness for these tasks in it’s current implementation. Most irritating for me personally, is that the following charaters cannot be used in passwords entered into the installer, despite being valid within the operating system itself:


For more issues with the installer, check out the following pages:


Once the system reboots, the very first thing I do is set it up to use blowfish passwords instead of the default MD5. After this, the root password was entered (so I could use characters not supported by the installer), users created, driver modules for harware are loaded (and set to load at boot in /boot/loader.conf), and the final touches are added to /etc/rc.conf (network setup, firewall, shutting down sendmail, enabling usb and the console mouse etc.)

Because at the present time updates to the system require rebuilding from source, I like to keep a copy of the release’s source on hand. Easy enough to get, as an example CVSup file is provided in ‘/usr/share/examples/cvsup/‘. Some people prefer to keep a copy of the CVS repository on hand and for those people it’s recomended to have the following in /root/.cvsrc

cvs -q <br>
diff -u <br>
update -Pd<br>
checkout -P

Very bad things happen if you try to checkout from the repo without that file, and then attempt to rebuild the system. I am left wondering why it’s not included by default, instead of being in the errata for the release.

Also of note in the errata, new users don’t automatically have the new pkgsrc related paths in their profiles by default. A minor issue, and easilly fixed, but it leaves me wondering how something like this got missed in the RCs. Do the developers and testers only ever log in as root?

Documentation and packages

Although the man pages are well written, documentation in the DragonFly project overall leaves something to be desired. They have a slightly modified version of the FreeBSD Handbook, but it is somewhat out of date, and still contains references to functionality in FreeBSD not present in DragonFly, and written in such a way as to leave the reader believing them to be DragonFly features (quick off the top of my head example can be found here where it is claimed that “DragonFly is a 32-bit operating system (64-bit on the Itanium and AMD64) and was designed as such from the ground up.” DragonFly currently does not run natively on any 64 bit processors in 64 bit mode and there are no plans for port it to the Itanium family of processors.

The DragonFly CD comes with few third party packages; only enough to allow one to rebuild the CD if required. The reasons for this are that Matthew Dillon wants the CD to remain small enough to be quickly downloaded, and that any packages included would be out of date as soon as the CD image was released. The very same can be said of DragonFly itself, but I digress.

Setting up 1.4 to do anything useful (as a desktop system for example) of course requires a number of third party packages, which currently are in short supply. As of the release of 1.4, no official precompiled packages are available for download, and the package tools do not even have a default path to look for files on the Internet. Although the steps needed to go about getting said packages are documented online, the documentation is all in HTML, and the DragonFly system has no native ability to actually read those files (well, you can, but you’d have to tune out all of the HTML tags). Bad move installing DragonFly without having first saved a plain text copy of the errata and docs on a floppy. The documentation should be on the install CD so it’s accessible to people with only one machine to work with.

Although the pkgsrc tools are included on the CD, they serve no immediate purpose due to the lack of working packages, or even a pkgsrc tree on hand with which to attempt to build them. I may have just missed it, but I found no notes on the CD on where to get the pkgsrc tree (not a huge problem for myself as my memory isn’t totally shot), and more specifically how to go about downloading it. The CD comes with example CVSup files, why not something for pkgsrc?

Many commonly used software packages do not build on DragonFly at the present time, from my limited experience this includes at least KDE, GNOME, MPLayer, Blackbox (!?!) and some games that I use as quick tests to make sure OpenGL works correctly. Thankfully, X.org *does* build, but that just left me with the GUI equivelent of what I already had; a system I can’t use for day to day tasks. A few people from the DragonFly project are working to rectify this situation, but not all of their patches have been merged into the upstream pkgsrc code, and it remains to be seen if that is going to change in the short term.

Final thoughts

While a lot of work has gone into DragonFly since the last release, it is apparent that much more work is required to make it a usable desktop system for people who do not enjoy the challenge of making their computer perform basic tasks. The developers are working to rectify the pkgsrc problems, but it comes far too late for this release.

Aside from that, some very simple things can be done to greatly improve the experience of would be DragonFly users. Simply including a few more useful packages on the install CD (Xorg, a web browser etc), as well as some more accessable and accurate documentation and including recomended files such as /root/.cvsrc (desribed above) by default, instead of leaving it to the user to set up after the system has been installed would go a long way.

About the Author
Trent Townsend is an aspiring geek with few applicable skills (or any obvious knowledge or talent for that matter :P) who is dedicated nonetheless to learning new and interesting things in all areas of science and technology.


  1. 2006-01-18 11:11 pm
  2. 2006-01-18 11:11 pm
  3. 2006-01-18 11:28 pm
    • 2006-01-18 11:51 pm
      • 2006-01-19 6:23 am
        • 2006-01-19 7:00 am
          • 2006-01-19 7:27 am
          • 2006-01-19 7:42 am
          • 2006-01-19 9:54 am
          • 2006-01-19 10:09 am
          • 2006-01-19 10:30 am
          • 2006-01-19 2:59 pm
        • 2006-01-19 7:35 am
          • 2006-01-19 11:10 am
    • 2006-01-19 5:37 am
    • 2006-01-19 8:00 am
    • 2006-01-19 11:37 am
      • 2006-01-19 2:35 pm
  4. 2006-01-19 2:13 am
    • 2006-01-19 2:34 am
  5. 2006-01-19 10:11 am
    • 2006-01-19 10:23 am
  6. 2006-01-19 11:32 am
  7. 2006-01-19 12:09 pm
  8. 2006-01-19 3:16 pm
    • 2006-01-20 2:48 am
  9. 2006-01-20 1:57 pm