Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 Mar 2011 08:09:57 +0000
From:      "b. f." <bf1783@googlemail.com>
To:        Rainer Hurling <rhurlin@gwdg.de>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: [FYI] Fwd: cvs commit: ports UPDATING ports/Mk bsd.python.mk
Message-ID:  <AANLkTi=UxE=7840C%2BsrOX%2BVOdMuDq4wk3j-CqD9EAx6G@mail.gmail.com>
In-Reply-To: <4D733638.5030608@gwdg.de>
References:  <AANLkTikdDJW3eEopFsmPJjEkiTKDNpeEpKOjNHr4tXGJ@mail.gmail.com> <4D733638.5030608@gwdg.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On 3/6/11, Rainer Hurling <rhurlin@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.

b.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTi=UxE=7840C%2BsrOX%2BVOdMuDq4wk3j-CqD9EAx6G>