Johnathan Perkin has a nice tutorial up about creating pkgsrc packages. It’s done on SmartOS, but I imagine it’ll generally apply to anything pkgsrc supports.
Joris GIOVANNANGELI has posted a description of his Summer of Code project for DragonFly, implementing the Capsicum kernel APIs. I expect the other students will post summaries soon, too.
If you are running DragonFly 3.5, make sure you do a full buildworld depending on how recent your version is. Just a quickworld will cause problems. DragonFly 3.4.x users are unaffected.
I pointed out in my converting-to-dports post from yesterday that I had to download dports and build pkg by hand in order to install binary packages. This was because my DragonFly system was upgraded from 3.2 to 3.4 and therefore didn’t have pkg installed.
John Marino has added a ‘pkg-bootstrap’ option to /usr/Makefile, for fixing exactly that problem. It downloads a static version of pkg, which then lets you upgrade to the full pkg and install binaries as you’d expect.
NetBSD uses pkgsrc but ships a version of xorg with NetBSD. This is effectively producing the same code twice. There’s a long discussion on tech-pkg@ (first article linked; keep reading) about moving to the pkgsrc version of xorg for NetBSD, which seems like a good idea for focusing effort, as far as I can tell. The thread goes on quite a way.
I changed shiningsilence.com over from pkgsrc to dports over the last 48 hours or so. Here’s how it went, in a series of bullet points:
- I had to download dports source and build the pkg tool by hand; since this system was upgraded from DragonFly 3.2 to DragonFly 3.4, pkg wasn’t automatically present as it would be for a new installation.
- I took the output of ‘pkg_info’ and culled it down to the applications I knew I used, and that formed my ‘to-install’ list for dports. That worked in a very straightforward way.
- It took so long mostly because of two things: I was also dealing with an email problem at my workplace, which usually took precedence. Also, I had several applications that I had previously installed by hand and needed to reconfigure to work as a dports item.
- Installing from binaries is really fast! Really, the dports part of this was possibly the most brief.
- The only thing I needed to compile from source was php, in order to get the Apache plugin. I’m sort of surprised the option isn’t on by default.
- Using ‘pkg search packagename’ is a good idea, because ‘pkg install’ can pick up multiple versions of a package. e.g. ‘pkg install mysql-server’ selects mysql-server51, mysql-server55, and mysql-server56. You probably don’t want to install all three. Or even one, depending on your opinions.
- Overall, it went more easily than I had expected, given it only had half of my attention.
I’m switching this server from pkgsrc to dports. No post while I fight with old, stale configs and etc.
Last week was a lot of very brief links. I’ll go for verbosity this week…
- Regular expressions and regular grammar. I hope you like detailed explanations. I’ve said it before: you should understand regular expressions. The difference between knowing and not knowing is sometimes the difference between knowing how to finish a project, and being hopelessly swamped. (via)
- A plea for less (XML) configuration files. From the same place. I don’t advocate rejecting XML files out of hand like some people, but I think you need to have a certain existing level of complexity already in your program before you use XML. For example, so complex that nobody will notice some XML sprinkled in there too.
- Where Looks Don’t Matter and Only the Best Writers Get Laid, a talk about the Internet from roughly the late 90s to the 2000s. Some parts of this get farther into political notes than I usually care to read, but I like the point made with “Many women and men alike are using, not building, the web.” I am frustrated by how the Internet is effectively one-way transmission for so many, like TV. (via I forget, sorry)
- Bringing Unix commands to a Windows world. It’s about Cygwin. I’ve installed Cygwin a number of times, but it’s such a strange hybrid I eventually stop after using it for whatever specific reason caused the first install. These days, it’s almost easier to set up a virtual machine on a Windows system and just switch over as needed.
- The Weird Stuff Warehouse. How much does this look like your basement? I like looking in stores like there cause there’s always some hardware item that seems to be worth resurrecting. (via)
- Open Source Game Clones. I feel iffy about these things. This tends to be viewed as “I want a free game”, not “I want the right to modify a game”. Also, you could argue it takes revenue away from the original artists who work on a product when it copies the original game methodology, reducing the incentive to produce. That could be debated, but I am certain of this: I wish people tried original rather than rehashed ideas in open source, because it has a much lower threshold for success. You don’t need a studio to tell you when you can be published… which is sort of the idea behind “indie gaming“, I suppose. (first link via)
- Remember those old not-a-desktop-not-a-laptop computers? They looked like this image I saw recently. I actually learned to use vi in a mild panic on a Sparcstation Voyager, which would be another device in that land between categories.
- SSH Tricks, found by accident while I was searching for how to do per-host configs in ssh, so that I only had to type a short name and leave off the long suffix (like dragonflybsd.org) when connecting to a server. Someday I might even get remote port forwarding over ssh correct.
- USSR’s old domain name attracts criminals. Somehow I doubt you can identify a criminal site by domain suffix that easily. (via)
Your unrelated link of the week: Massive Chalice, a Kickstarter for a new strategy and tactics game. It’s by Double Fine, who has made some fantastic stuff, and it has permadeath, turn-based combat, randomly generated maps… it’s a roguelike! It’s cross-platform, apparently, though I don’t know if it will work on any BSDs.
I finally got DragonFly 3.4.2 img/iso files uploaded, so they are available now or at least soon at your local mirror. These are built using pkgsrc, so if you want dports, go for a snapshot image.
Are you using it and unable to upgrade to KDE4 for a specific reason other than aesthetic preference? You should check this thread about support for 3.5, at least in dports.
There’s more download statistics on dports and pkgsrc packages, from Francois Tigeot. There’s a heck of a lot of dports activity, though there’s probably much more pkgsrc building from source than this would report on. So, not necessarily representative of actual numbers, but an interesting ratio none the less.
Matthew Dillon and Sascha Wildner have converted snapshot/release building over to use dports instead of pkgsrc. If you want to try one of those snapshots, look in the snapshots directory… Oh, and here’s the mention of this on kernel@.
Here’s another “getting started with dports” article. It runs through the basic range of commands, similar to my existing writeup – but much less verbose.
Phoronix has another set of benchmarks that include DragonFly and PC-BSD, along with several Linux distributions. It’s interesting to see, though don’t take them as performance measurements. 7-Zip as a benchmark doesn’t describe much other than the program itself, and the Himeno benchmark results are because of the compiler in use rather than any underlying performance aspect of the operating system – for instance. The DragonFly benchmarks disappear after page 3.
I’ve tagged DragonFly 3.4.2. The major reasons for this point release were fixes for DragonFly under Xen with more than 2 CPUs specified, and for booting x86_64 DragonFly in KVM. The 3.4.2 tagged commit has every detail.
If you’ve already got a working 3.4.1 installation, you don’t need to rush to upgrade; this is mostly for the people affected by the issues listed above. I’m working on 3.4.2 install images; give that some time to complete and upload if you need one.
Here’s the accepted projects for DragonFly and Google Summer of Code 2013:
- Block compression feature in HAMMER2, Daniel Flores Tafur, mentored by Matthew Dillon
- Capsicum kernel implementation, Joris GIOVANNANGELI, mentored by Alex Hornung
- Implement hardware nested page table support for vkernels, Mihai Carabas, mentored by Venkatesh Srinivas
- Make vkernels checkpointable, Pawel Dziepak, mentored by Samuel Greear
- Userland System V Shared Memory / Semaphore / Message Queue implementation, Grigore Larisa-Ileana, mentored by Markus Pfeiffer
Like last year, we had more excellent proposals than we could accommodate with available slots and mentors. We now enter the ‘community bonding’ period, so that students can get used to the DragonFly environment and make sure they have all the tools needed to perform work. The work itself starts on June 17th.
Good luck to everyone involved!
Michael W. Lucas wrote a new edition to his Absolute OpenBSD book, and that second edition was published relatively recently. It’s a hefty book, nearly 500 pages in length, and I’ve needed to write a review for some time now. Not-necessarily-relevant-disclaimer: I contributed the IPv6 haiku/joke at the start of Chapter 12.
If you’re interested in OpenBSD, it’s an obvious purchase. It goes into detail for all aspects of OpenBSD, starting with a very detailed conversation about installation, then disk setup, and so on. This is not going to surprise anyone, of course. Past the initial overview, the book starts with a chapter that talks about nothing else but locating other resources to help learn OpenBSD. It seems a little counter-intuitive to start a book with advice on how to look somewhere else, but it makes sense in light of the topic.
What if you aren’t using OpenBSD, at least not right now? Something I didn’t realize until I had chewed my way through most of the book was that there’s several smaller books hidden inside. The book goes very far into individual utilities. So far, in fact, that it ends up creating mini-guides about the topics within the chapters. (or entire chapters, in the case of pf.)
There’s in fact 2 chapters for pf, initial and advanced. TCP/IP gets close to 30 pages just to itself, and topics like snmpd or chroot get an introductory section that assumes nothing about your prior knowledge. These are technologies you’re using already, no matter which BSD flavor you’re dealing with.
It works as a reference. I’m going to show the aforementioned chapter 11, on TCP/IP, to my coworker who makes a confused face every time I say “link-layer protocol.” I don’t know if he’ll make it from one end to the other, but it’s a lot better than waving a hand in the air and mumbling “You should look that up on the Internet sometime.” There’s enough detail that some of the smaller sections could probably be broken out into individual books, and I daresay that’s what is happening with Lucas’s Mastery series.
It’s comprehensive, it’s readable, and you’ll find something useful in it no matter your experience level. The book is available in printed and eBook form, from the usual online stores linked at Michael W. Lucas’s site, or directly from the publisher. It’s also available through the OpenBSD Project, which then gets a cut towards development.
There’s a new BSDTalk by way of the recently-completed BSDCan 2013 event, and it’s half an hour of talk with Matt Ahrens about ZFS and matters related.
A really packed week, this week.
- Interview with Donald Knuth (via ferz on EFNet #dragonflybsd)
- Garry’s Mod on DragonFly. We need that linuxulator working on x86_64. (thanks, tuxillo)
- Exxon used to be in the processor business? (via)
- PDP-11 in your pocket. (via)
- I’ve mentioned before how news aggregators go in cycles: Slashdot, then Digg, then Reddit, then Hacker News, which might be reaching the peak of its cycle. (via)
- Another review of Absolute OpenBSD, 2nd Edition.
- And I don’t think I’ve noticed that Unix column before.
- Dennis Ritchie’s earliest known C compiler, now on GitHub. (via)
- Why makefiles indent target lines with a single tab character. (via EFNet #dragonflybsd)
- Computer Beach Party, with backstory and interview (via) Not recognizably Unixish.
- A very in-depth exploration of SSH keys. (via)
- The Real Origins of Tumblr. Related: I often link here to Trivium. (via many places)
- UK readers may find this ZX joke funny.
Your unrelated link of the week: Superman’s Ultimate Crotch Kick.
Sascha Wildner’s added a man page for dports. Don’t forget the existing how-to page.