Digital restoration and typesetter forensics. Brian Kernighan, Ken Thompson, and Joe Condon reverse-engineering hardware because the vendor won’t reveal how it works – in the 1970s. The letter to the vendor is hilarious. The story of how it was recovered, also linked there, is a good read, too. (also via)

Console Living Room; more old game systems resurrected via JSMESS. First reaction was that it was neat, second reaction: these old games were horrible, compared to what we have now. (via multiple places)

The system install went normally. I rebooted before performing ‘make upgrade’, as noted in UPGRADING and elsewhere.

I already have dports installed, so a binary upgrade should be possible. I had heard of people with older version of pkg, having trouble getting it to notice upgrades. I rebuilt pkg, and ran ‘pkg upgrade’. A number of the updates coredumped. Here’s one example:

After the upgrade, I had two problems: PHP wasn’t working for the website, and some programs would segfault.

The random segfault was fixable by forcing a binary upgrade of all packages. Since there were some programs on the system that were still new enough that the version number was the same as on the remote repository, pkg didn’t upgrade them. Those packages were linked against old versions of system libraries that predated the locale changes in DragonFly 3.6, so they’d crash. Forcing the update for all packages fixed the issue.

The other problem, PHP on the web server, is not new to me. The binary package for PHP does not include the module for Apache. The solution is to build from source with that option selected. I understand that pkg is destined to support (some?) port options in the future. There’s also an immediate workaround for locking it.

However, the port would not build because of a security issue. The binary package installed without any warning. This, I am told, will change to pkg giving you the option to install if you are aware of the security problem, and whether it really affects you. (which is just what I want, yay!)

Anyway, other than the system changes biting me because I didn’t realize some packages weren’t updated, it went very quickly. That is the reason for binary updates through pkg, or at least a major one.

Things are very quiet this week; I’ve had nothing to post for some days – DragonFly or even for other BSDs. The end of the year has most people distracted, I think. This makes it a good time to bring up something that’s been bothering me: the state of software firewalls in BSD. The pf utility is a BSD advantage; I’ve heard people say “I used iptables on Linux and pf is a much better alternative.” I know that’s anecdotal, but there it is. Here’s the question, and the reason I’m writing this: which pf?

DragonFly has a version of pf equivalent to what was shipped in OpenBSD 4.4. FreeBSD has a version equivalent, I think, to OpenBSD 3.8 4.5’s pf, and it has been further modified. NetBSD has a similar, older pf, but there’s people working on a NetBSD-specific version called npf, which isn’t yet ready. And of course, OpenBSD has its version of pf. If you feel good about these different alternatives, you call it divergence. If you don’t feel good about it, you call it fragmentation.

Compare this to OpenSSH – it works the same on each platform. There’s no confusion on how to configure it, or interoperability problems. It would be wonderful to have the equivalent for pf, where other BSD platforms would import a portable version. This software firewall is a strength, and it’s much easier to tout it when there’s only one.

I doubt there’s a way to bring it all back to one source tree. There’s a lot vested in the different forks out there. You know what would take a lot less effort: a compatibility test suite. Agreeing on a common syntax and set of functions would make life easier for every end user. It would incidentally make vendors a lot happier, too. Even if a user or vendor wasn’t hoping to move between BSD flavors, a test suite would still guarantee a certain known level of functionality for any BSD release.

How likely is this? I don’t know. But I want to bring up the notion before it gets missed. Now is a good time, with each pf version still being relatively close to one another.

The Meaning of “Doom”. This article makes a very good point; Doom was one of the first game that encouraged user participation in the creation of the game. Not the creation when it was first made, but the endless recreations as mods. It’s sort of the same mechanism as open source, but as an activity and not a license.

The Development of the C Language. Dennis Richie was good at telling stories about some otherwise very dry subjects; his histories are enjoyable. Maybe you have to have a certain kind of temperament or interest to really like them. (via)

BSDNow episode 14 is up – and actually has been for a few days; I’ve been on the road. There’s an interview with George Wilson about OpenZFS and a bunch more stuff I haven’t had a chance to watch yet. (see previous note about being on the road.)

I had a sometimes-great, sometimes-difficult trip to New York City over the past few days, and while I was there, I met the ball of energy that is George Rosamond of NYCBUG (which is having a huge party right now.) He and I talked for a bit about various aspects of the BSD ecosystem, and one thing he noted was that people aren’t generally aware of all the licenses in use for the different software packages on the system, or even the individual licenses in the system files.

There is an ACCEPTABLE_LICENSES setting in pkgsrc, where software licensed under terms not in that list won’t install. That’s useful, but frustrating, because it keeps people from getting what they asked for – a software install. Something that would be useful – and it could be cross-BSD very easily – would be a license audit summary.

There’s meta-data on every package in FreeBSD’s ports and DragonFly’s dports and pkgsrc and OpenBSD’s port system. Why not say ‘pkg licenses’ in the same way you can say ‘pkg info’, and get a summary of the licenses you have installed in the system? (or pkg_licenses, etc. You get the idea) This wouldn’t prevent people from installing software, but it would give a very quick view of what you were using.

Your unrelated comics link of the week: There are more comics and illustrated works out there than there ever have been. A decade ago, I could buy a few art comics and a reprint each month and feel like I was keeping up. Now, it’s like a firehose of minicomic, self-published books, and prestige reprints that completely refreshes every week. The Comics Reporter 2013 Holiday Shopping Guide is huge but barely touches on it all. Read through and order something you aren’t familiar with; I can almost guarantee there’s several items in there you’ve never heard of.

Here’s the hook for me: Perl was the first language I wrote a program of any real use in. Years ago, I had the Perl Cookbook. It was a pretty simple formula, where I’d have a problem. I’d look it up in the Perl Cookbook. If there was already a recipe that matched what I needed, I was set. I ended up having to stuff the book into a binder because the spine broke.

This reference is essentially what the Perl One-Liners book is, though this is less about programming and more about the solution you need right now. The book realizes this and it’s laid out like a menu. Flip through the index to find your problem, and then type the answer. The book even includes a link to a text file that you can copy down and grep for answers – I won’t link to it because it’s not mentioned on the author’s page, though he does include example chapters.

It’s not about learning Perl, and it’s not about technique – these are one-liners, after all. If you are doing the sort of thing Perl excels at, like text mangling, this will be a book full of tools for you. I think the author is going to continue in this style; he’s done a lot of one-liner articles and even some previous e-books.

Probably a good idea to make this disclaimer: As with other books, I get no reward for this review, unless you count me having another book in the house. That’s more of a problem than a benefit for me.

The death and life of great Internet cities. “Whatever we may ultimately make of our move towards sites like Facebook, it’s almost certainly the case that, for the average netizen, it was a movement away from online literacy.” An excellent article about how communities are no longer built online – at least not through social networks. (via)

Farming hard drives: 2 years and $1m later. Data-driven analysis of hard drive prices, and how they’ve recovered poorly from the Thailand floods. I always like it when a company takes data from doing something on a large scale – something very few people are doing or could do – and releases it. (via)

Systems Software Research is Irrelevant. Rob Pike pointing out how the system ecosystem was becoming monocultural. It’s over 10 years old, so some of the problems have changed. The interesting thing is to look at it and see which parts were identification of upcoming trends. (via)

DragonFly 3.6 video review. This person doesn’t realize the shell is tcsh, not bash, and it really, really messes him up. I had to stop watching about 6 minutes in. (via blakkheim on IRC)

Your unrelated link of the week: The Church of the Subgenius is selling 2-for-1 deals on ordainment. It’s really a legal ordainment, too, at least in the U.S. You can perform weddings, funerals… circumcisions? Not sure about the legal restrictions on that, and maybe I don’t want to know. Anyway, you get an entertaining pack of literature which you can take either completely seriously, or not at all.