Shared library version bump policy & suggestion to track these bumps formally
Lev Serebryakov
lev at FreeBSD.org
Fri Jan 4 09:35:41 UTC 2013
Hello, Freebsd-ports.
Now, when some port after update installs new version of shared
library, used by other ports, here are two variants:
(a) To bump versions of all dependant ports (PORTREVISION=${PORTREVISION} + 1)
(b) Don't touch other ports, but add copy'n'pasted item into
UPDATING with instructions for users of portmaster, portupgrade
and binary pkg-ng packages.
Question is: which way is better? Why sometimes first way is selected
and sometimes second one? Is here any policy to select between them
in different cases?
Personally, I don't like both ways.
First one is error-prone for maintainer: dependency could be
optional and turned off by default, for example.
Second one is error-prone for users. And, to be honest, I don't
like when formal task is performed by hands. All these records in
UPDATING is copy'n'pasted with replacement of port name, receipt of
upgrading is always the same (yes, I know, that there are more
difficult scenarios in UPDATING too, I don't speak about them now).
Why this receipt should be performed by user, not by tool!?
I suggest to have new variable in port's Makefile: BORDER_VERSIONS
or something like this. Let it will be list of port's versions, when
shared libs are updated and all dependent ports should be rebuild
too.
Then, portmaster/portupgrade could add "forced updates" to queue
automatically (like with "portmaster -r <port>" / "portupgrade -fr
<port>") if port cross (inclusive) one of versions from this list.
Something like this:
BORDER_VERSIONS=0.48 0.65 1.0_1
And if port is updated to version 0.48 or higher from
version STRICTLY LESS than 0.48 (and same for 0.65 and 1.0_1), all
ports, which uses this library, will be rebuild too.
--
// Black Lion AKA Lev Serebryakov <lev at FreeBSD.org>
More information about the freebsd-ports
mailing list