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

Rainer Hurling rhurlin at gwdg.de
Sun Mar 6 08:38:14 UTC 2011


On 06.03.2011 09:09 (UTC+1), b. f. wrote:
> 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.

Now it is more clear to me that this upgrading process depends from the 
specific installation. Perhaps it should be mentioned in ports/UPDATING, 
that eventually this upgrading is not complete?

I think for me it was ok to first use the upgrade-site-packages target 
and after that identifying the few remaining ports with pkg_libchk, 
which should also be updated. I did that with several machines. All 
seems to work fine so far.

Thanks again for this detailed answer,
Rainer


More information about the freebsd-ports mailing list