Re: How poudriere's PACKAGE_FETCH_WHITELIST should work?
- In reply to: Mark Millard : "Re: How poudriere's PACKAGE_FETCH_WHITELIST should work?"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 16 Feb 2023 08:56:08 UTC
On Wed, 15 Feb 2023 18:10:10 -0800 Mark Millard <marklmi@yahoo.com> wrote: > On Feb 15, 2023, at 17:22, Tatsuki Makino <tatsuki_makino@hotmail.com> wrote: > > > I was introduced to this feature in a reply to an email titled "[through-able] poudriere: I don't want to rebuild rust with PORTREVISION bump of curl" that I wrote on or about 2023-01-20. > > > > This still means that the dependencies held in the package must match up to the version number to be used, right? > > As I wrote in that e-mail, the dependent packages can be checked with the following command, which poudriere also seems to use. > > pkg query -F somewhere/llvm10-10.0.1_10.pkg '%do %dn-%dv' > > > > In the current porttree, python39 is 3.9.16_1. If this package has already been created locally, it would seem that the llvm* package that depends on python39-3.9.16 or earlier would not be used when fetched, is that correct? > > > > # note that I avoided recreating llvm13 and llvm15 that way :) > > > > Turns out my notes did not apply: the person I replied to was > using quarterly and so things were apparently not changing. > > But I'd not checked the transitive closures for the various > ports involved for the 2023Q1 context. Using rust and its > curl dependency as an example: > > curl in turn depends on at least devel/pkgconf , lang/perl5.32 , > security/ca_root_nss , www/libnghttp2 , security/libssh2 , > and dns/libpsl . So there is a fair list of things that can > cause curl to rebuild, which in turn leads to rust potentially > rebuilding, even if the rebuild result for rust ends up not > being installed for lack of a version bump: existing install > is still expected to be compatible given the lack of a version > bump. > > The way rebuilds happen is that an update to the likes of, > say, security/libssh2 deletes the old package. Then curl's > package is deleted because of the lack of a package for > security/libssh2 . (This is before security/libssh2 or > anything is rebuilt.) Then rust for similar reasons. Deleting > the packages does not delete the installs (important later). > Then the deleted packages are rebuilt so that they are > available to future pkg commands, even if it turns out that > some of the installed ones would not be updated by the likes > of a "pkg upgrade" in the same time frame (version numbering). And poudriere (at least ports-mgmt/poudriere) sometimes fails trying to use "recorded as existing, but deleted for rebuild" pkgs, at least -S option is set. These usually are finally succeeds on next or after following several runs. Does this annoyance fixed on ports-mgmt/poudriere-devel? > > Again, I've not gone looking for changes in the transitive > closure of the dependencies. I'm just noting some of the > general structure. I've not checked if this explains all the > specifics that happened. > > Going in the other direction, there may be more that is > involved than I know about. But I've observed the delete > sequences and later rebuild sequences that do not lead > to updated installs of various things rebuilt. (A lot over > the years.) > > === > Mark Millard > marklmi at yahoo.com > > > -- Tomoaki AOKI <junchoon@dec.sakura.ne.jp>