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>