Date: Thu, 29 Sep 2022 06:43:49 +0200 From: Rainer Hurling <rhurlin@gwdg.de> To: Dan Mahoney <freebsd@gushi.org> Cc: "ports@FreeBSD.org" <ports@freebsd.org> Subject: Re: Python version dependencies in pkg Message-ID: <65597c37-813b-d0ed-ea9f-8591b68cf097@gwdg.de> In-Reply-To: <89D2B2D7-FA3D-46F5-A93B-4846950A157C@gushi.org> References: <8B490359-27A3-410C-AE98-C1362D4FA9F0@gushi.org> <CAN6yY1sGnDF-oReRMFeVz78oGoTfUvsvwUOQwoBZWN9ibjTw3A@mail.gmail.com> <B2A3A400-F21A-4E92-8116-41E7945E4E5C@gushi.org> <CAN6yY1ujCH9Xnv3QN-GF8hN75v%2BxGkOTHrsr25jzxGNGdYW2vQ@mail.gmail.com> <89D2B2D7-FA3D-46F5-A93B-4846950A157C@gushi.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi Dan, Am 28.09.22 um 23:01 schrieb Dan Mahoney: > > >> On Sep 26, 2022, at 20:22, Kevin Oberman <rkoberman@gmail.com >> <mailto:rkoberman@gmail.com>> wrote: >> >> On Mon, Sep 26, 2022, 18:13 Dan Mahoney <freebsd@gushi.org >> <mailto:freebsd@gushi.org>> wrote: >> >> >> >>> On Sep 26, 2022, at 09:27, Kevin Oberman <rkoberman@gmail.com >>> <mailto:rkoberman@gmail.com>> wrote: >>> >>> On Mon, Sep 26, 2022 at 2:58 AM Dan Mahoney <freebsd@gushi.org >>> <mailto:freebsd@gushi.org>> wrote: >>> >>> All, >>> >>> A quick question: >>> >>> If a pkg depends on python, but not a specific version, it >>> will simply pick a version to install (I guess, whatever >>> version was the default when the pkg was built, 3.8 right >>> now), correct? >>> >>> If you have 3.9 installed, that will satifsfy dependencies, >>> and it won't install python3.8, correct? Or are the dependent >>> versions for interpretec languages in pkg locked to whatever >>> the default is? >>> >>> Assuming "any python will work", If you have 3.8 installed, >>> and later install 3.9 -- is there any easy way to point your >>> package at the new version as the new dependency, without >>> deinstalling/reinstalling it? >>> >>> -Dan >>> >>> >>> It will use the version specified as default in >>> /usr/ports/Mk/bsd.default-versions.mk >>> <http://bsd.default-versions.mk/>. >> >> To be clear, I'm talking about pkg install, not port building. >> >> So I understand -- that value is somehow baked in to the package >> tree somewhere? Because pkg alone doesn't look at the ports tree >> on the installing machine(you do not need to have ports extracted >> to install packages), nor do I believe it looks at make.conf, >> >> If so, where in pkg do I find the default version? Is it >> somewhere in the repository that's fetched before I install any >> packages? >> >> -Dan >> >> >> You are correct. But the packages are built using the same Makefile >> and the same defaults as when built from ports for the specified >> version of FreeBSD as if it was built from ports. The Mk files are >> updated with ports, so all packages change when the change is >> committed to the defaults file, though they will only take effect when >> the quarter changes unless you're using LATEST packages. > > Okay, so in either the package file, or the repo file, is there a bit > that says "whatever is the default" or that explicitly says "if there's > not a python, install 3.8"? There is PYTHON_DEFAULT (set to 3.9 ATM) in ports/Mk/bsd.default-versions.mk. You can override this for example by an entry in /etc/make.conf: DEFAULT_VERSIONS+= python=3.10 python3=3.10 > > I realize I'm asking weird minute questions, but I'm noticing that > across our fleet we have some blend of machines that are 3.7, 3.8, and > 3.9, and trying to just remove 3.7 attempts to deinstall packages that > would work with 3.8. To update from one Python version to another, there are descriptions in /usr/ports/UPDATING, see entry from 20220626. After changing Python itself (i.e. from 3.7 to 3.9), rebuilding depending py3x-packages will do this version change for you (i.e. from py3.7-* to py3.9-*, ...). It works via the so called flavors. I hope I have not misunderstood your request and that these hints are somehow useful ;) Best wishes, Rainer > > -Dan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?65597c37-813b-d0ed-ea9f-8591b68cf097>