Ability for maintainers to update own ports

Charles Swiger cswiger at mac.com
Tue Nov 11 14:12:50 PST 2003

On Nov 11, 2003, at 2:38 PM, Oliver Eikemeier wrote:
> Kris Kennaway wrote:
>> More broadly speaking, there doesn't seem to be significant interest
>> from the community to provide support for old releases.  If there was,
>> it's something that could be provided by a group of interested members
>> of this list.
> sysutils/pkg_install is a[n] attempt to supports older releases.  In a
> production environment it is not always possible to upgrade the base
> system at will.  I'll try my best not to break backwards compatibility
> without a good reason.

Good for you, Oliver.  I don't think you're the only person with that 
sentiment; a significant number of ports reference OSVERSION in order 
to behave correctly on older versions of the OS:

% find /usr/ports -name Makefile -exec grep -l OSVERSION {} \; | wc -l

>> There's no way that we can reasonably guarantee that tagged ports will
>> work together (e.g. what happens when a dependency changes?), so
>> tagging has minimal benefit.

I agree that there are no guarantees: either a particular version of a 
port compiles (*) under a particular OS release, or it doesn't: this is 
deterministic and testable via a mechanism like the bento cluster.

[ *: ...and by implication runs, although support for "make test" or 
"make check" within the ports system would be useful. ]


With regard to dependency changes, if I've done the following right:

% awk -F\| '{if (length($8) == 0) print $1}' /usr/ports/INDEX | wc -l

...approximately one third of the ports have no runtime dependencies on 
other ports.  These ports might still fail due to dependencies upon OS 
capabilities, but if an older version worked, the maintainer or the 
author can add to the number of ports using OSVERSION to implement 
backwards compatibility.

>> We already provide this level of minimal
>> support for people who want to try to mix and match old ports, namely
>> people can use cvs to manage their ports tree and update ports to
>> whichever CVS revision they like.

If someone could do a "cvs checkout -r RELENG_4_5" against the ports 
CVS repo, and update to the latest version of each port which is known 
to build on their version of the OS, that user would obtain 
significantly more benefit than being told that they need to upgrade 
their OS in order to use newer port versions.

Apache-1.3.29, Python-2.3.2, and a lot of other useful software will 
build and install on versions of FreeBSD prior to 4.7 without using 
ports.  The intent of the ports system is to help users run software on 
their machine, not to require users to upgrade to the latest version of 
the OS in order to update such ports.


More information about the freebsd-ports mailing list