A change for committers, a change for pkgsrc

Two completely separate and unrelated changes:

First, Alex Hornung has added a check to look for certain lines in a commit message, and add a MFC reminder note to the commit message if they are found.  MFC, if you haven’t heard it, means ‘merge from current’, or moving a change from dragonfly-current to the last release version.

Second, with the next quarterly release of pkgsrc coming up, there’s some old packages that will get dropped.  Speak up if you need them to stick around.

 

Trying out deduplication

I moved to DragonFly 2.10 over the past few days, and I tried out deduplication, to see what kind of results I would get.  The procedure is outlined below.  I’m using /home here as an example, just to reduce the amount of text pasted in.

/pfs/@@-1:00004     966000640 566434576 399566064    59%    /home

Move my various Hammer pseudo-file systems to version 5, which supports deduplication.

# hammer version-upgrade /home 5

Issue a deduplication simulate command, to see what it guesses will be the savings:

# hammer dedup-simulate /home
Dedup-simulate /home: objspace 8000000000000000:0000 7fffffffffffffff:ffff pfs_id 4
Dedup-simulate /home succeeded
Simulated dedup ratio = 1.22

That ratio turned out to be pretty accurate for the actual deduplication.  I didn’t time it, unfortunately.  I don’t know if the time taken is proportional to the amount of deduplication or the total volume of data, though I suspect the latter.

# hammer dedup /home
Dedup /home: objspace 8000000000000000:0000 7fffffffffffffff:ffff pfs_id 4
Dedup /home succeeded
Dedup ratio = 1.22
462 GB referenced
378 GB allocated
14 MB skipped
6869 CRC collisions
0 SHA collisions
0 bigblock underflows

The end result?

/pfs/@@-1:00004     966000640 505887504 460113136    52%    /home

That data space is shared across all file systems, and it’s a 1TB disk, so it’s 7%, or 70GB. I was hoping for more, but I don’t have any obviously duplicated data (no local mail store, no on-disk backups), so perhaps this is normal. 70GB that I didn’t have before is no bad thing, though.

Incidentally, I was able to upgrade my installed software from pkgsrc-2009Q4 to pkgsrc-2011Q1 entirely using pkg_radd -u <pkgname>.  Remarkably quick and painless, though pkgin may have been able to do it even faster since it would pull from the same place.

Lazy Reading for 2011/05/15

This week: lots more reading!

  • Michael Lucas describes an extra layer of protection for when you can’t force public key usage on every SSH user.
  • Cool, but obscure Unix tools (via)  The screenshots are all from a Mac… How many of the 24 tools listed are in pkgsrc/pkgsrc-wip?   Almost all of them.  (tpp sounds entertaining.)
  • NYCBUG, in addition to having a really fun convention, has been regularly posting audio of the presentations they host.  The most recent is “William Baxter’s NYCBUG presentation on The Unix Method of Development Management”.   See the BSD Events tweet for the download.
  • What Ubuntu means.  (via)
  • Here’s a nice explanation of Intel’s new Tri-Gate design and with it, an incidental explanation of the processor market.
  • This ycombinator post about Hammer2 work has an in-depth comment from Venkatesh Srinivas about DragonFly’s network setup, memory allocator, and token use.  (Ignore the trolling in other comments.)
  • Michael Lucas’s next No Starch Press book is Absolute OpenBSD, second edition.
  • Pictures and video are starting to show up from the just-passed BSDCan 2011. (via this and also thesjg on EFNet #dragonflybsd)
  • My first experience of The Internet was very similar to this.  It should be bizarrely unfamiliar to anyone under 20 or so.  (via)  Get this: I typed ‘exit’ instead of just closing the browser window when I was done messing with it, because some habits cannot be broken.
Add package-clean to your list

The usual way for building pkgsrc packages from source is ‘bmake install clean’, to build and install the package, and then clean the work files from building it.  Since the recent change to DESTDIR, where a binary package is built before installation, you may want to add ‘package-clean’ to the list, so that the binary package is also removed after installation.

Lazy Reading for 2011/04/13

Get out your wallet!  I encourage purchasing here.

  • You should buy a SSD.  Not necessarily news to you, but that article does a good job of summarizing why.
  • On the other hand, SSD prices are already on their way up/availability is way down.  Japan’s disasters are having a ripple effect through the high-tech supply chain.  Either buy immediately or get ready to wait for a while…
  • Introduction to Architecting Systems for Scale – you either don’t care, or find scaling questions immediately engaging.  I am one of the latter, so here’s the link.
  • I’ve been watching pkgsrc-changes@netbsd.org for a little while.  One thing I’ve discovered: there’s a lot of updates going on!  Another thing that’s nice to see: DragonFlyupdates, including ones that help with our move to gcc 4.4.
  • Aw, no more Kermit.  (via)  Not that I have a use for it at this point, but still: aww.  I bet in about 10 years I’ll say the same thing about… gopher?  Remember that?  It’s not even supported in Firefox 4 now, which kinda makes me feel sad.  And old.
  • Server plans: Facebook vs. Google.  (warning: Facebook article is somewhat giddy.)
  • The infinite hard drive.  (via I lost it, sorry)

Here’s an extra little thing: next time you’re dealing with dusty computer equipment, remember this picture:

That is what happens to an exposed RJ45 port after a few years in a salt mine (my employer).  This was inside an enclosed, mostly-sealed  structure, too.

pkgsrc-2011Q1 details

I already noted that the quarterly release is out, but the pkgsrc-2011Q1 release announcement is available now.  There’s good reasons to link to it – the list of updated packages, new packages, and credits for the work people have been doing.  Here’s the part I really want to pick out:

We’re aiming to make this the last branch to support non-DESTDIR packages. We have almost finished the transition to DESTDIR installation, where a staging directory is used to make a binary package, which is then managed by the pkg_install tools.

The reason I’m highlighting this is: it’s good news!  One of the long-term complaints with pkgsrc is that the upgrade process is painful.  If you try to build an upgrade and the build processfails after uninstalling the existing package, not only are you not getting the upgrade, but you’ve lost the existing package.  Binary packages for download helps with this (and generally is faster), but only so many packages can be built separately and made available for download.

Building a package separately and then installing from there removes these issues.  No binary redistribution issues, actual downtime is minimal, and the package is known to work when an upgrade happens.  This removes most of the problems I’ve heard raised about pkgsrc over the years.

Last-minute pkgsrc progress

As already mentioned on this Digest, the freeze for the next quarterly release of pkgsrc, pkgsrc-2011Q1, has started.  I’ve also completed several bulk builds of pkgsrc-2010Q4 and pkgsrc-current using DragonFly system with GCC 4.4.  Francois Tigeot has very kindly gone out of his way to get some of the (relatively few) broken packages listed in those builds to be fixed.