BSDTalk, which is hitting its 8th year, has 20 minutes of conversation with Ike Levy and Brian Callahan about NYCBSDCon. (which is coming up on February 8th; will you sponsor?)
Here’s how my upgrade from DragonFly 3.4 to 3.6 for this server went.
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:
[156/160] Upgrading gtk2 from 2.24.19 to 2.24.19_2...Segmentation fault (core dumped)
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.
Still quiet out there, but I found some good reading.
PHP functions originally named for string length and sorting. Yeesh. (via)
A great old-timey game programming hack. There’s an initial speed hack in this story, and then there’s another clever trick to fix memory corruption. (via)
My hardest bug. This was a pretty fiendish problem. (via)
Gitdown: don’t commit when drunk. I’ve done that. Actually will use an Arduino-based breathalyzer. (via)
Another Perl One-Liners review.
Zeno of Elea, a game. It’s based on a classic… (via)
Vim plugins you should know about. From that One-Liners author.
Speaking of Perl, here’s a Larry Wall interview. An old-school hacker – he wrote patch, too.
Moonpig: a billing system that doesn’t suck. An in-depth review of system design. More Perl, too.
Three Books You Should Read… Mostly BSD content.
How to use Tor wrong, in multiple ways. It’s not for petty crimes, and it’s not any use when you’re using it from a monitored network. (via)
Your unrelated comics link of the week: Cookie Puss.
Odds and ends for the quieter holidays.
- Hubert Feyrer spotted this video interview of Amitai ‘schmonz’ Schlair about NetBSD.
- OpenBSD has tmpfs.
- PC-BSD has made it through a pkg upgrade.
- pkgsrc is frozen until at least the end of the month, for pkgsrc-2013Q4.
- OpenBSD wants to shift electrical costs. (via)
- The DiscoverBSD weekly roundup.
- Managing custom ports. (can apply to dports too)
- Building tcsh on 4.3BSD-Quasijarus. This led me to…
- 4.5BSD. An ambitious project.
- A pfSense video review.
- Steryana Shopova is this past week’s Faces of FreeBSD.
- OpenBSD had a head start on not trusting RNGs.
- OpenBSD has a new vioscsi(4) driver.
- Michael W. Lucas’s books are available through OpenBSD.
- FreeBSD Kitten. (via NYCBUG)
As you can kinda sorta guess from the show title, BSDNow 16 is about encryption.
One of the things noted there that I hadn’t heard of is that FreeBSD ports is getting a ‘stable’ branch for the first time – I suppose I need to read even more mailing lists.
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.
Update/note: Henning Brauer is willing to help.
Halfway to Christmas; time to buy presents if you haven’t already!
DragonFly on Hacker News. I haven’t read through the comments fully.
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.
Alphabet of the Obsolete. Also known as “Things my children don’t know and don’t care about.”
Now is a good time to donate to the Internet Archive. (via many places)
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)
The Birth of Standard Error. It was a smelly typesetting machine where it first started. (via EFNet #dragonflybsd)
There’s some other interesting articles on that site, including “Programming Languages vs. Fat Fingers” and “The Importance of Being Declarative“.
Better and Better Keyboards. Continuing the keyboard theme from previous weeks. (via)
Building the Commodore C-128. I never used one of these, but I’m sure there’s a few readers that will be gripped with nostalgia. (via)
The Amiga 500 as a Chrome add-in. Nostalgia, again. (via)
Running 4.3BSD Quasijarus with simh VAX. It’s apparently 4.3BSD for Vax hardware. I did not know of this, or at least I don’t remember it.
When a Bash script asks, “Where am I?”.
Have you heard the axiom that every program grows in scope until it reads email? It’s really all programs grow in complexity until they have their own auto-updater. (Also, XScreenSaver is awesome.)
Vim, in Javascript. Or maybe the axiom should be ‘Everything eventually is rewritten in Javascript’. (via)
“Did you see that interstitial? It was dope!” (via I forget, sorry)
Your unrelated animated gif of the week: Happy talking boat.
Another week where I could get away without any commit links, just cause there’s so much BSD stuff out there.
- Randomness changes in FreeBSD. Saw commits before, but this is a good summary. (via)
- Cipher changes summary for OpenBSD.
- The DiscoverBSD summary.
- Faces of FreeBSD for this week: Brooks Davis.
- PC-BSD’s weekly summary.
- FuguIta, an OpenBSD liveCD.
- The FreeBSD Foundation’s Semi-Annual Newsletter. There’s details on the FreeBSD Journal.
- Also, that newsletter links this first of 4 BSD whitepapers.
- The FreeBSD Challenge on linuxcauldron.com – a 30-day challenge.
- BSDCan 2014 has issued a call for papers.
- So has NYCBSDCon 2014. Here’s the announcement of NYCBSDCon 2014 itself, and flyer.
- Note to self: investigate cheap bus trips to New York City.
- The IP-Plug, a NetBSD-powered wall wart. The article goes into terrific detail.
- Ruby in pkgsrc will be (apparently?) defaulting to version 2.0.
- robotpkg, a specialized fork of pkgsrc that I didn’t know about.
- PC-BSD is going through lots of changes to support pkg. (that’s one of many commits.)
- FreeBSD has added newcons.
BSDNow episode 15 keeps the pun titles going. Josh Paetzel is apparently replaced by Santa Claus in the interview? There’s also FreeNAS coverage, and lots else.
If you have a DragonFly 3.4 system that has already been switched over to dports, and you upgrade it to DragonFly 3.6, you might see an odd problem. Rebuild pkg, and it will work.
I’ve only seen a few reports, so I don’t know if this is even likely to happen to most upgraders.
ISA device support is really gone. Well, except for keyboard and some spots where it can’t be be removed. I don’t think I’ve even seen an ISA card in some years…
John Marino has moved DragonFly from binutils 2.22 to 2.24. I think this may require a full buildworld when upgrading… not sure. Anyway, binutils has a changelog if you are curious.
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.
> pkg licenses
Software package License
---------------- -------
foo-2.2.26 Apache license
bar-7.999999 Donateware
baz_ware-20131209 MIT
quux-silly-6.5 BSD
It could be extended to the base system, but I’d like to see this in all the packaging systems as a common idea, in the same way that ‘info’ in a packaging command always shows what’s installed.
Links are a bit rushed this week cause I’ve been on the road, but here you go.
explainshell – help for arbitrary shell commands. It’s a really good idea, implemented in a pretty way. (via)
True X-Mouse Gizmo for Windows. I’m also saving this for later, just like the person who found this link.
From the same place: The ARPANET IMP Program: Retrospective and Resurrection. Recreating the entire Internet, when the Internet could be summed up as a list of 5-6 locations.
How ALL CAPS and punctuation is now used to communicate mood. Communication methods still tied down by ASCII, and then UTF-8.
I miss USENET. (via)
A Testament to X11 Backwards Compatibility. Watch the video at the end. (via)
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.
Happy birthday to me!
- Is Your Stack Protector Working? On Undeadly, so it’s OpenBSD.
- ChaCha20 and Poly1305 in OpenSSH. (via)
- The next PC-BSD 10.0 image is available.
- Reid Linnemann is the latest in the Faces of FreeBSD series.
- NetBSD has updated file.
- FreeBSD’s iwn(4) driver has some updates (also in DragonFly).
- FreeBSD now has casperd, for controlling access to out-of-sandbox capabilities.
- FreeBSD’s oce(4) driver now supports 40Gb devices. (yay for manufacturer support)
- FreeBSD has Hyper-V drivers.
- OpenBSD’s ifconfig now shows the NWID, channel, and BSSID for IBSS networks.
- OpenBSD has updated to pixman 0.32.4.
- pkgsrc’s 2013Q4 freeze will start on the 16th.
- How old is who? (Don’t tell me 900 years.)
- There’s a broken builds list for pkgsrc-2013Q4 for anyone who wants to help.
- Hacker News had a link to the FreeBSD version of the BSD Family Tree, which is not unique, but the comments led to some interesting links, like this story of an 8-year NetBSD uptime.
- FreeBSDNews’s summary.
- All the AsiaBSDCon 2013 videos. (Last week’s link was just OpenBSD ones.)
- FreeBSD authentication against Samba 4 LDAP. I’m going to need this for the DragonFly machine I’m setting up in the same role at work… in my copious spare time.
No Starch Press noticed that I keep talking about Michael W. Lucas’s BSD-related books, and I’ve linked to Peteris Krumins’s catonmat site before, so they sent a copy of Krumins’s new “Perl One-Liners” book to me.
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.
If you have a Hammer volume that is offline, meaning that you don’t have the pseudo-file-systems null-mounted anywhere, it won’t get cleaned up in overnight processing. You just have to manually specify it.

