Hello list, as from time to time people ask how to update their ports via compiling from source. As I asked this myself in the past I thought that it would be fun to automate the process of compiling my installed ports while following current. So I came up with a little perl script which would save me a lot of time, at least I thought it would save time...
The official policy is to update your system via snapshots and ports that are build in regular intervals, so some ports have problems building while an older version is already installed. Often this is a problem related to libtool and in a lot of cases this can be circumvented by setting the LIBTOOL environment variable to the in-tree version of libtool. A few ports won't build either way, I did not have the time and nerves to debug this. It comes down to the point that while using a script to automate the update process many things can go wrong. So if you read this and think that this script would be fun to play with then I would like to warn anybody that there are many ways to mess up your system and get stuck. If you know how to handle such a situation this script may be the thing you are looking for. Until now, I got regular success and failure reports from Antti Harri, who helped a lot to improve it and I think it is now time to advertise the script to the public. After all the warnings in the previous paragraph I hope to find some people who are willing to test and perhaps later use the script and report problems off list. Here is a list of what it already does: - Build ports in parallel obeying the dependency list - Build ports in the right order - Log everything into a directory - Work around libtool problems for some ports - Preserves flavors - Uses a list of pseudo flavors from an rc file Some problems that frequently occur: - Ports fail on "make clean", this triggers an error and the script aborts - Some ports won't build at all while already installed in an older version, this problem is not that common, but will require manual fixing the port before the build can continue So if you are still reading and want to give it a try get the script and some more files via cvs: cvs -d anon...@markus-hennecke.de:/var/cvs co autoupdate The password is "anoncvs". Fingerprint is 2e:78:ac:03:2d:47:58:9a:9b:2e:77:d5:2e:16:79:f8. After checking out you should review the rc file and copy it to $HOME/.autoupdaterc Some information that I may have left out in this mail may be found via this website http://www.markus-hennecke.de/openbsd_current_en.html#autoupdate or the cvstrac at http://markus-hennecke.de:8088/autoupdate/ So if you give it a try I'd like to hear about success of failure with the script and I got an open ear for suggestions. Kind regards, Markus