[FYI] Fwd: cvs commit: ports UPDATING ports/Mk bsd.python.mk

b. f. bf1783 at googlemail.com
Sun Mar 6 08:09:58 UTC 2011

On 3/6/11, Rainer Hurling <rhurlin at gwdg.de> wrote:
> On 06.03.2011 00:56 (UTC+1), b. f. wrote:
>>>> Does it rebuild all depending packages?
>>> And waht is the difference between make upgrade-site-packages and
>>> portupgrade -r python?
>> As I explained earlier on freebsd-python@, unlike 'portupgrade -r
>> python', the upgrade-site-packages target just rebuilds ports that
>> have files in the library directories belonging to non-default
>> versions of python, and ports that in turn depend upon them, not
>> necessarily every port that lists python as a dependency.
>> upgrade-site-packages is for your convenience, to rebuild a (probably)
>> smaller collection of ports that are most likely to need rebuilding
>> after a change in default python versions.
> Thanks for the explanation. In principle the script works as aspected.
> As far as I can see there remain some ports like graphics/qgis without
> upgrading. QGIS defines USE_PYTHON=yes in its Makefile, but is not
> upgraded. Other examples from my installations are multimedia/xbmc,
> irc/xchat, editors/openoffice.org-3.
> pkg_libchk from sysutils/bsdadminscripts identifies most (all?) of them.

Sure, there are a number of ways to identify which ports actually
depend upon python. pkg_libchk will get you most, but maybe not all,
of them.  (One might be configured in a way that depends upon the
specific version of python used, but not actually link to a python
shared library, for example.)

Since rebuilding lots of ports can consume time and resources, and
some ports depend upon python only to the extent of containing
portable scripts with a /usr/local/bin/python shebang in them, and
hence don't really need to be updated, the upgrade-site-packages
target was created as a reasonable compromise, to update only those
ports that probably need to be updated when the default version of
python is changed. update-site-packages may update a few that don't
need to be updated (a port that really needs and is set up to use a
non-default version of python, for example), and it may miss others
that ought to be updated (a port that doesn't install files in a
python library directory, but nevertheless depends in an important way
upon the specific version of python used).  If you want to be
thorough, then don't use upgrade-site-packages, but rather recursively
update all ports that depend directly or indirectly upon python.


More information about the freebsd-ports mailing list