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

Reply via email to