Re: An example poudriere-devel pkgclean failure, multiple issues involved

From: Bryan Drewery <bdrewery_at_FreeBSD.org>
Date: Sat, 25 Sep 2021 17:04:34 UTC
On 9/25/2021 12:31 AM, Mark Millard wrote:
> 
> 
> On 2021-Sep-24, at 12:06, Bryan Drewery <bdrewery at FreeBSD.org> wrote:
> 
>> On 9/22/2021 12:26 PM, Mark Millard wrote:
>>> When I just tried to pkgclean -a I got:
>>>
>>> # poudriere pkgclean -jmain-CA7 -a -y
>>> [00:00:00] Gathering all expected packages
>>> [00:00:00] Creating the reference jail... done
>>> [00:00:03] Mounting system devices for main-CA7-default
>>> [00:00:03] Mounting ports from: /usr/ports
>>> [00:00:03] Mounting packages from: 
>>> [00:00:03] Mounting distfiles from: /usr/ports/distfiles
>>> [00:00:03] Copying /var/db/ports from: /usr/local/etc/poudriere.d/options
>>> [00:00:03] Appending to make.conf: /usr/local/etc/poudriere.d/make.conf
>>> [00:00:03] Appending to make.conf: /usr/local/etc/poudriere.d/main-CA7-make.conf
>>> /etc/resolv.conf -> /usr/local/poudriere/data/.m/main-CA7-default/ref/etc/resolv.conf
>>> [00:00:03] Starting jail main-CA7-default
>>> [00:00:04] Loading MOVED for /usr/local/poudriere/data/.m/main-CA7-default/ref/usr/ports
>>> [00:00:05] Ports supports: FLAVORS SELECTED_OPTIONS
>>> [00:00:05] Gathering ports metadata
>>> [00:02:11] Calculating ports order and dependencies
>>> [00:02:46] Sanity checking the repository
>>> [00:02:46] Unqueueing existing packages
>>> [00:02:50] Sanity checking build queue
>>> [00:02:52] Error: Packages stuck in queue (depended on but not in queue): HPCombi-0.0.6_1
>>
>> I had not seen this one before. I was able to repro it locally. git
>> bisect run is amazing and identified the bad commit. I'll probably have
>> a fix in a few days.
>>
>>> IPA-1.08_2
>>> R-cran-s2-1.0.6
>>> . . .
>>> zig-0.8.1
>>> zxid-1.42_1
>>> [: -gt: unexpected operator
>>> [: -gt: unexpected operator
>>> [: -gt: unexpected operator
>>> /usr/local/share/poudriere/pkgclean.sh: POUDRIERE_BUILD_TYPE: parameter not set
>>
>> This is fixed in Poudriere git at least.
>>
>> Thanks for ccing me.
>>
> 
> You are welcome.
> 
> I tried another use of pkgclean after building lang/rust explicitly
> (just to measure some resource use via a patched top). But the
> context is not as up to date:
> 
> # poudriere version
> poudriere-git-3.3.99.20210907_1
> 
> I tried to see what the following would do:
> 
> # poudriere pkgclean -j13_0R-CA72 -a -f ~/origins/CA72-origins.txt 
> [00:00:00] Gathering all expected packages
> [00:00:00] Creating the reference jail... done
> [00:00:05] Mounting system devices for 13_0R-CA72-default
> [00:00:05] Mounting ports from: /usr/ports
> [00:00:05] Mounting packages from: 
> [00:00:05] Mounting distfiles from: /usr/ports/distfiles
> [00:00:05] Copying /var/db/ports from: /usr/local/etc/poudriere.d/options
> [00:00:05] Appending to make.conf: /usr/local/etc/poudriere.d/make.conf
> [00:00:05] Appending to make.conf: /usr/local/etc/poudriere.d/13_0R-CA72-make.conf
> /etc/resolv.conf -> /usr/local/poudriere/data/.m/13_0R-CA72-default/ref/etc/resolv.conf
> [00:00:05] Starting jail 13_0R-CA72-default
> [00:00:07] Loading MOVED for /usr/local/poudriere/data/.m/13_0R-CA72-default/ref/usr/ports
> [00:00:08] Ports supports: FLAVORS SELECTED_OPTIONS
> [00:00:08] Gathering ports metadata
> [00:03:01] Warning: (graphics/qgis): make: "/etc/make.conf" line 69: Need an operator
> [00:03:01] Warning: (graphics/qgis): make: Fatal errors encountered -- cannot continueError: Error looking up dependencies for graphics/qgis
> [00:03:01] Warning: (graphics/qgis-ltr): make: "/etc/make.conf" line 69: Need an operator
> [00:03:01] Warning: (graphics/qgis-ltr): make: Fatal errors encountered -- cannot continueError: Error looking up dependencies for graphics/qgis-ltr
> [00:05:46] Warning: (www/chromium): make: "/usr/ports/www/chromium/Makefile" line 210: warning: "/usr/bin/grep mempcpy /usr/include/string.h" returned non-zero status
> [00:06:39] Error: Fatal errors encountered gathering initial ports metadata
> [: -gt: unexpected operator
> [: -gt: unexpected operator
> [: -gt: unexpected operator
> /usr/local/share/poudriere/pkgclean.sh: POUDRIERE_BUILD_TYPE: parameter not set
> [00:06:39] Cleaning up
> [00:06:39] Unmounting file systems
> 
> The (www/chromium) one is for:
> 
> BASE_MEMPCPY!=  ${GREP} mempcpy ${CROSS_SYSROOT}/usr/include/string.h

I fixed that in the chromium port yesterday.

> 
> which is oroginal material, not something of mine.
> 
> It is less obvious what line 69 "Need an operator" messags are for
> in /etc/make.conf is since the file is probably generated from other
> files. Is it line 69 of /usr/local/etc/poudriere.d/make.conf ? That

Not quite as it uses that to generate a temporary one. You could add a
cat ${dst_makeconf} or cp or something at the end of setup_makeconf() in
/usr/local/share/poudriere/common.sh to get to the make.conf being used.

> would be:
> 
> #.if ${.MAKE.LEVEL} == 0
> 
> But that is a comment line.
> 
> It is not obvious how to get rid of ust the temporary www/rust package
> in a supported way.

Just rm -f the file from the packages dir. pkgclean doesn't do much
special. There is a hidden cache that is related but it will be cleaned
up when accessed or on the next successful pkgclean.

> 
> ===
> Mark Millard
> marklmi at yahoo.com
> ( dsl-only.net went
> away in early 2018-Mar)
> 


-- 
Bryan Drewery