Surprisingly, it worked, for every package. I had to force-install some Perl modules because I was moving from 5.10 to 5.12, but I think I may have been able to use an additional -u switch to get by that problem. I did use pkg_leaves to identify packages I didn’t need, and removed them to reduce the number of items to upload.
It was exactly what I wanted. Previous pkgsrc upgrades had taken most of a day, as I had to build from source and figure out what went where. We’ve had a better success rate in bulk builds recently, and this paid off in an upgrade process that only took perhaps an hour.
If you’ve ever installed pkgsrc packages from source, you probably typed ‘bmake install’. There’s a ‘bin-install’ target that will use binary packages if they are available, but you have to set the appropriate environment variables to do so.
It’s now much easier, on DragonFly. If you have pkgsrc-current as of yesterday or later, or pkgsrc-2011Q1 when it arrives, you can type ‘bmake bin-install’ for a pkgsrc application and it will download the binary package automatically, if it’s available, and build from source if it’s not.
This is a setup I’ve wanted for a while – the speed of a binary install, plus a fallback if the binary isn’t available.
Sourceforge had/has a security problem, so they’ve turned off some services until it’s fixed. However, anything planning to download from Sourceforge will be affected, so some packages in pkgsrc may not be able to build for … a day or two?
avalon.dragonflybsd.org, also known as mirror-master.dragonflybsd.org, is back up at a new location, with new disks and new connectivity. pkg_radd should work by default again, as should git.dragonflybsd.org.
If you’re using pkgin for managing pkgsrc packages, there’s a new bugfix to cover scenarios where there’s an old and new version dependency on the same item, like php between versions 5.2 and 5.3. It’s described in French, or translated English. (Thanks, Antonio Huete)
Nothing to do with BSD, or even computers, really: Gary Gorton, interviewed about the recent financial crisis, at a Fed bank website (!?). Interesting because I like economic matters, and because it’s the first web page where I’ve ever seen pop-up links added usefully, as a sort of footnote that you don’t have to scroll. (via)
Michael Lucas recently had a machine broken into. Since everything on the machine is suspect, he’s using Netflow data to figure out when it happened, and how, which is not surprising given his most recent book. He has twoposts describing how he backtracks his way to the probable source.
Aleksey Cheusov is putting together a package manager for pkgsrc, called nih. (For “Not Invented Here”). It’s binary-only at this point, so you’d need to run distbb or pbulk to generate packages, or download from avalon.dragonflybsd.org.
The latest(?) version of BSD Magazine is out. Among other things, it has an intro to pkgsrc. The site lists November 2010 for this issue, but it just showed up on the Twitter feed, so I’m not totally sure I have this right. In any case, it’s a free download.
There’s a lengthy dialog on the email@example.com mailing list about pkgsrc, and “Making it easier to get and use pkgsrc“. You can follow the whole thread on the listing page. I am all for the idea. Everybody and their brother has an App Store these days. Ports/pkgsrc are perhaps the original app store ideas, and I’d like to see them brought to the same level as these commercial entitites. This is important: pkgsrc is perhaps the only app store equivalent in existence that is not tied to a platform; that exists only to get you software rather than to provide a way to tie a platform into its developers profits.
Along the same lines, Promote Perl by Building Great Things. This applies to BSD products too; telling people it’s great doesn’t work as well as making something great and showing that a BSD system is part of what makes it so.
The utility pkg_add has a -u option that tells it to upgrade any existing matched package with a given binary package. Since pkg_radd passes options on to the underlying use of pkg_add, after automatically setting a remote repository for binary files, pkg_radd -u <packagename> tells pkg_add to automatically find and upgrade a package.
I never thought this would work. However, I’m building a package on a system that has pkgsrc-2010Q1 packages installed, but a pkgsrc-2010Q3 /usr/pkgsrc. Every time I’ve encountered an error because installed software was too low a version, pkg_radd -uv <package_name> has resulted in a quick upgrade.
I’m not recommending this as a new upgrade method; I’m noting how unexpectedly well this experiment is going. It may be just blind luck, but this sure would be nice if it ‘just worked’.
A number of people have encountered this: while installing some larger pkgsrc package, the process stops on a strange DocBook error. Alex Hornung has a fix: symlink /usr/pkg/etc/xml/catalog to /usr/pkg/share/xml/catalog.
Our mirror of the never-quite-official git repository for pkgsrc is being rebuilt, so it will be temporarily inaccessible. Matthew Dillon is working on building a new one directly from pkgsrc CVS, which will have a different link.
This only affects you if you are running 2.7, for now. It means that on upgrading from 2.6 to 2.8, any libssl-using programs will need to be updated. This may not be a big thing, since pkgsrc-2010Q3 will also be out and people will want to upgrade anyway.
I’ve noticed that if you have older pkgsrc packages installed, and install binary packages for pkgsrc-2010Q2, those packages will refuse to install if pkg_install is an older version than what they were built with.
I ended up force-deleting pkg_install and bmake, and reinstalling by running pkgtools/bootstrap/bootstrap. There may be better solutions; I’m mentioning it now since it’s a known problem.
Update: “bmake replace USE_DESTDIR=yes” was suggested by Joerg Sonnenberger. “pkg_add -u /path/to/newer/pkg_install” should also work (untested).
This will probably apply to the upcoming pkgsrc-2010Q3, too. Building from source is a workaround for now.
I mentioned previously that Postgres 9 is already in pkgsrc, but the flip side of that is both Postgres 8.2, and MySQL 4 are being removed. If you still have these installed, be ready to migrate at your next upgrade.
Some time ago, there was an application called pkgmanager, available in pkgsrc-wip. It worked by tracking ‘wanted’ packages in pkgsrc, and upgrading based on that list. It hasn’t been updated in some time, however, and may not even build.
‘Rumko’ has written a replacement, called rpkgmanager. The Gitorious page linked in the previous sentence includes the URL to download the code via Git, so it’s available to try now even though it’s not yet in pkgsrc.
You know what we could use for pkgsrc, and all the other port/package collections? Explanation. They face the same problem phoneapplicationstores face: too many programs to easily select what you need. You could certainly build a whole site just around package reviews; it’s even possible to argue that Ubuntu or PC-BSD are built around just making some 3rd-party-app choices ahead of time on an existing operating system. Anyway, here’s an article talking about that idea specifically around the Apple App Store. Please won’t somebody who is not me do something like that for pkgsrc?
As I found out directly, upgrading from pkgsrc version 2010Q1 to 2010Q2 has a minor quirk: binary packages for 2010Q2 will refuse to install with an older version of pkg_install. Rebuild pkgtools/pkg_install to the 2010Q2 version and the problem will go away.
happened to notice that recent libkinfo changes broke sysutils/estd. It’s fixed by rebuilding the program, though this may affect a few other packages. This only affects people running bleeding-edge DragonFly 2.7.
If you are running DragonFly 2.7, Matthew Dillon has made some kernel changes, so updating your 2.7 machine will require a full buildworld cycle, not quickworld.
The binary packages for 2.6 and 2.7 have been updated to pkgsrc-2010Q2. This means that pkg_radd will automatically pull down newer packages, and you should make sure your /usr/pkgsrc is using the pkgsrc-2010Q2 release if you want to be sure there’s no version mismatches.
On firstname.lastname@example.org, Greg Troxel proposed getting rid of gimp-print and associated packages. It’s been superseded by gutenprint-lib, so it may be worth switching now for the newer printer drivers, even if the package isn’t eliminated.
There’s an online hackathon (the 14th!) planned for July 30th through August 2nd for pkgsrc (and probably some NetBSD material too) at FreeNode/#netbsd-code on IRC. Aleksej Saushev’s post has more details. At least it’s cheap to attend!
Matthew Dillon set up a git copy of the pkgsrc repository some time ago. However, it’s had syncing problems, and there’s an ‘official’ pkgsrc git repository now which does not have the problems. You can still pull from the same place, but it’s the ‘master’ branch now. His heads-up message describes how to switch.
If you’re following bleeding-edge pkgsrc, there’s been an update to png. Since a lot of programs depend on it, a lot of programs will need to be rebuilt. Be ready for it. This won’t affect anyone using quarterly releases.
Another article talks about inspecting network traffic using various tools including tcpdump and wireshark. It is a tremendous advantage to see what happens on a network at the most basic level, so this is a good skill to pick up.
Thomas Klausner has a writeup of some project ideas or goals taken from the recent pkgsrcCon. A followup has me thinking: if the -uu option updates dependent packages with pkg_add, does that mean ‘pkg_radd -uu packagename” will do all updating possible based on available binary packages? Worth trying.
I’ve put a few of the reports from pkgsrc builds on DragonFly out. They’re all using pkgsrc-2010Q1, on i386/DragonFly 2.6, i386/DragonFly 2.7, and x86_64/DragonFly 2.7. The links in the reports go to the errors that caused each package to not build. If you happen to see something that has an easy fix, or that you really need to have working, please submit a fix.
I’ve made reference to DESTDIR for pkgsrc several times, with only an informal understanding of what it means. From what I’ve learned, and what Joerg Sonnenberger’s told me, DESTDIR support means that packages can be built from pkgsrc without needing to be root. This means local packages can be built on an ordinary user account using pkgsrc.
This also means that pkgsrc can build packages before each upgrade, and only upgrade if a binary package can be built for each item involved. This means minimal downtime and no failures during upgrades, the biggest bugaboo for using pkgsrc that I’ve encountered.
The newest branch of pkgsrc for 2010 is officially out – read the release announcement for details on what’s updated. Among other things, DESTDIR support is almost complete, and a shift to default KDE4 is underway.
I’m working on bulk builds already, so hopefully soon you’ll be able to pkg_radd 2010Q1 packages…
YONETANI Tomokazu has eliminated cvsup, replacing it with net/csup from pkgsrc. The README notes that the pkgsrc package devel/cvsync is another alternative if you need to retrieve the repository and not just the checked out files..
Every time a bulk build of pkgsrc packages is completed, a report is uploaded listing what built and what didn’t. Since there’s so many reports from the now-automated build, I’ve sorted it by architecture and release, to make lookups faster.
This is handy if you’re looking to fix pkgsrc apps on DragonFly, and you need a target. It’s also a good way to see if a desired module exists as a binary.
Jan Lentfer has accomplished something rather dramatic: the removal of BIND from the base system. It’s not actually out yet, but I daresay it will be after the 2.6 release, freeing people up to install any DNS server from pkgsrc – including BIND.