entr(1); Run arbitrary commands when files change.

Eric Radman sent along a plug for a utility he is working on called entr(1).  The desciption is “Run arbitrary commands when files change.”  The site for it has several nifty examples – run make when *.c files change, or convert Markdown files to HTML as soon as they are modified.  The really nice thing about it is that it’s perfectly BSD-friendly, and uses kqueue, but will also work on Linux.  This beats the “This runs on the one flavor of Linux I use, in one particular shell!” approach I’ve seen from some other developers.  See the reddit discussion of it for comparisons to inotify.  No, it’s not in pkgsrc/ports yet.

Update: And thanks to Thomas Klausner, it’s in pkgsrc as sysutils/entr, and in ports as sysutils/entr thanks to Eitan Adler.  You have no reason not to try it now.

Running a spam blacklist

Peter Hansteen has an extensive writeup of how he has managed the bsdly.net spam blacklists.  Normally I’d stick this article in the Lazy Reading links, but the article is good enough to call out separately.   It’s excellent not just for the mechanical aspects of how the blacklists were maintained, but for his strict description on how the process is simple, verifiable, and transparent.  That last item, transparency, is how many anti-spam groups fall down.

DragonFly 3.4 release status

Here’s a status report on the 3.4 release, pulled right from my mailing list post:

  • We have the ability to use pkgsrc or dports (building from source in either case) now
  • Several people have committed the remaining last-minute fixes
  • I’m not going to have pkgsrc binaries built for the release.
  • dports binaries – John Marino and Francois Tigeot are uploading now.

I’d like to have the release available with binary packages for dports immediately, because I anticipate a number of people wanting to try it out. So, the release will be delayed a few days while the packages upload.

Summer of Code links for everyone

The DragonFly page on the Summer of Code site is set up.  If you are a potential mentor that I’ve talked to before, I’ve already sent you an email with details.  If you are a potential mentor I haven’t talked to, you can email me or send a request via the DragonFly page.  (Google has a new ‘connections’ method for signup this year.)

If you’re an interested student, take a look at the DragonFly Projects Page.  Keep in mind that your proposal does not have to be one of those ideas – new projects are always welcome, and often have the advantage of being unique instead of being one of several similar proposals.  (hint, hint)

bxr.su announced

Constantine Aleksandrovich Murenin has put together a new site, bxr.su.  His announcement to users@ goes into a lot of detail, but here’s a preview: it’s an OpenGrok site that has a forked version of OpenGrok that’s both speedy and takes BSD into account, along with other nice features.

Here’s the catch: it’s currently IPv6 only.  IPv4 will be on as a test just today, and on for good shortly after.  Read that announcement I mentioned for details.

Testing out the DragonFly 3.4 release candidate

If you have a DragonFly 3.2 system and you want to try the 3.4 release candidate, you can delete your local source, edit the Makefile to pull down 3.4 instead of 3.2, and run it.

cd /usr
rm -rf src
vi /usr/Makefile;
(in vi) :%s/DragonFly_RELEASE_3_2/DragonFly_RELEASE_3_4/g
(save, quit vi)
make src-create-shallow

… then proceed to make buildworld and so on, as normal.

The caveats: I haven’t tested this yet, and this assumes you don’t have any local changes in /usr/src that you want to save.  The usual warnings about lighting your computer on fire, etc., apply.

DragonFly 3.4 branched

DragonFly 3.4 is branched –  as a release candidate, with the current target for 3.4.0 release as the weekend of April 13-14.  See the tagging commit note for a list of all the commit messages.

Note that in previous releases, we tagged “x.y.0” on branch, and “x.y.1” on release.  I’m now tagging “x.y.0rc” for the release candidate at branch time, and we’ll tag with a more normal (to my ears) “x.y.0” for the release.

If you build a 3.4.0rc image right now, you’ll get an older quarterly release of pkgsrc.  That’ll be changed tomorrow as the DragonFly pkgsrc git source is updated and I change where 3.4’s  /usr/Makefile points.

pkgsrc-2013Q1 announced, with extras

The 2013Q1 branch of pkgsrc has been announced.  Along with the normal quarterly material, there’s several notes: preliminary Cygwin support is present, ruby 1.8 will be retired in favor of 1.9 after this release, and the pkgsrc.org web page now has a very nice new look and logo.

I plan to branch DragonFly 3.4 very soon, and that version will have 2013Q1 as default.

Update: The 2013Q1 branch should be available by tomorrow on DragonFly’s git; the repository needs to update and convert from NetBSD’s CVS and that takes a little time.  I’ll post when it’s ready.