Bug 285863 - devel/glib20: fails poudriere testport (covered by QAT on the package cluster)
Summary: devel/glib20: fails poudriere testport (covered by QAT on the package cluster)
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-desktop (Team)
URL:
Keywords: regression
: 285869 (view as bug list)
Depends on:
Blocks: 281083
  Show dependency treegraph
 
Reported: 2025-04-03 13:51 UTC by Jan Beich
Modified: 2025-04-06 09:25 UTC (History)
5 users (show)

See Also:
arrowd: maintainer-feedback+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Beich freebsd_committer freebsd_triage 2025-04-03 13:51:16 UTC
Regressed by ports 7b5824485cbe because poudriere (at least 3.4.99.20250209) doesn't uninstall BUILD_DEPENDS during "install" phase in order to avoid dependency loop.

$ poudriere testport -j 134amd64 devel/glib20
[...]
=======================<phase: install        >============================
===== env: DEVELOPER_MODE=yes STRICT_DEPENDS=yes USER=root UID=0 GID=0
===>  Installing for glib-2.82.4,2

===>  glib-2.82.4,2 conflicts with installed package(s): 
      glib-bootstrap-2.82.4,2

      They install files into the same place.
      You may want to stop build with Ctrl + C.
===>  Checking if glib is already installed
===>   Registering installation for glib-2.82.4,2
[134amd64-default-job-01] Installing glib-2.82.4,2...
pkg-static: glib-2.82.4,2 conflicts with glib-bootstrap-2.82.4,2 (installs files into the same place).  Problematic file: /usr/local/bin/gapplication
*** Error code 1

Alternatively, enable testport for all ports a la QAT https://pkg-status.freebsd.org/?all=1&type=qat&jailname=134amd64

$ printf 'PORTTESTING=1\nPORTTESTING_RECURSIVE=1\nPORTTESTING_FATAL=no' \
  >>/usr/local/etc/poudriere.conf
$ poudriere bulk -j 134amd64 devel/glib20
Comment 1 Gleb Popov freebsd_committer freebsd_triage 2025-04-03 13:52:51 UTC
What's the problem exactly? This error occurs on the last stage of testport, when all the building and plist checking is done.
Comment 2 Jan Beich freebsd_committer freebsd_triage 2025-04-03 14:14:49 UTC
Skipped ports when testing for plist regressions en masse. Mainly affects QAT (used to spam maintainers in the past), committers working on patch series (global testport is convenient) and anyone doing post-commit review (tree health).

Here's how I've originally discovered it:

$ poudriere bulk -j 134amd64 -f /path/to/my_ports.txt
[...]
[00:02:12] [01] [00:01:30] Finished   devel/glib20@default | glib-2.82.4,2: Failed: install
[00:02:13] [01] [00:01:31] Skipping   devel/appstream | AppStream-1.0.4: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   games/openfodder | OpenFodder-1.9.2: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   multimedia/ab-av1 | ab-av1-0.9.3: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   sysutils/accountsservice | accountsservice-23.13.9_3: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   x11-toolkits/aquamarine | aquamarine-0.8.0: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   accessibility/at-spi2-core | at-spi2-core-2.54.1_1: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   accessibility/atkmm | atkmm-2.28.4: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   multimedia/av1an | av1an-0.4.4_2: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   net/avahi-app | avahi-app-0.8_6: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   x11/babl | babl-0.1.112: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   sysutils/bsdisks | bsdisks-0.37: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   x11-wm/cage | cage-0.2.0_1: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   x11-wm/cagebreak | cagebreak-2.4.0_1: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   graphics/cairo | cairo-1.18.2,3: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   graphics/cairomm | cairomm-1.14.5: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   x11-wm/chamfer | chamfer-s20240928: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   graphics/colord | colord-1.4.7_3: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   sysutils/consolekit2 | consolekit2-1.2.6_5: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   sysutils/contractor | contractor-0.3.5: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   x11-wm/cosmic-comp | cosmic-comp-1.0.0.a.6.44: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   print/cups | cups-2.4.11_1: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   devel/dbus-glib | dbus-glib-0.114: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[00:02:13] [01] [00:01:31] Skipping   devel/desktop-file-utils | desktop-file-utils-0.28: Dependent port devel/glib20@default | glib-2.82.4,2 failed
[...]
Comment 3 Jan Beich freebsd_committer freebsd_triage 2025-04-03 14:20:37 UTC
To workaround I've temporarily disabled global testport (PORTTESTING et al.), built devel/glib20 then enabled it again. Obviously, QAT is automatic and won't know how to deal with such a bustage. 

UPDATING@20250402 didn't mention such a manual intervention would be required.
Comment 4 Gleb Popov freebsd_committer freebsd_triage 2025-04-03 14:24:35 UTC
I didn't even know about such a feature. I think this should be somehow solved at the poudriere level. I'll ask Brian.
Comment 5 Jason E. Hale freebsd_committer freebsd_triage 2025-04-03 22:18:08 UTC
I have global poudriere testing enabled in poudriere.conf and am seeing this as well. Thanks for the workaround tip, Jan!
Comment 6 Gleb Popov freebsd_committer freebsd_triage 2025-04-04 06:33:22 UTC
*** Bug 285869 has been marked as a duplicate of this bug. ***
Comment 7 Helge Oldach 2025-04-04 06:38:18 UTC
*** Bug 285869 has been marked as a duplicate of this bug. ***
Comment 8 commit-hook freebsd_committer freebsd_triage 2025-04-04 19:15:25 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=87b108e9d6140e94d3c26d8ca64136c26b53a318

commit 87b108e9d6140e94d3c26d8ca64136c26b53a318
Author:     Gleb Popov <arrowd@FreeBSD.org>
AuthorDate: 2025-04-04 10:20:02 +0000
Commit:     Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2025-04-04 19:11:59 +0000

    devel/gobject-introspection: Override PREFIX for the @bootstrap flavor

    This allows to break the install-time conflict between gobject-introspection
    and gobject-introspection-bootstrap

    PR:             285863

 devel/glib20/Makefile                | 9 ++++++++-
 devel/gobject-introspection/Makefile | 4 ++--
 2 files changed, 10 insertions(+), 3 deletions(-)
Comment 9 commit-hook freebsd_committer freebsd_triage 2025-04-04 19:15:27 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=464ad90a6b30cf06ce90bbdceadcb5875b7b2b2c

commit 464ad90a6b30cf06ce90bbdceadcb5875b7b2b2c
Author:     Gleb Popov <arrowd@FreeBSD.org>
AuthorDate: 2025-04-04 08:13:38 +0000
Commit:     Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2025-04-04 19:11:59 +0000

    devel/glib20: Override PREFIX for the @bootstrap flavor

    This allows to break the install-time conflict between glib and glib-bootstrap

    PR:             285863

 devel/glib20/Makefile                | 11 +++++------
 devel/gobject-introspection/Makefile | 15 +++++++++++++--
 2 files changed, 18 insertions(+), 8 deletions(-)
Comment 10 Gleb Popov freebsd_committer freebsd_triage 2025-04-05 14:53:33 UTC
The problem should be fixed now. Jan, please check it out and close the PR if it works for you.
Comment 11 Jan Beich freebsd_committer freebsd_triage 2025-04-06 09:25:37 UTC
Seems to work fine. @bootstrap flavors still fail due to plist but those don't block other ports in QAT, global testport or when explicitly passing -rkt. That non-fatal error looks generic i.e., testport -P on *any* port fails to clean up PREFIX itself.

$ poudriere bulk -rkt -Cj 134amd64 devel/glib20@all devel/gobject-introspection@all x11-toolkits/gtk40
[...]
[00:05:05] Built ports: devel/py-wheel044@py311 devel/py-setuptools@py311 devel/glib20@default devel/gobject-introspection@default x11-toolkits/gtk40
[00:05:05] Failed ports: devel/glib20@bootstrap:deinstall devel/gobject-introspection@bootstrap:deinstall
[...]

$ cat /usr/local/poudriere/data/logs/bulk/134amd64-default/latest/logs/errors/glib-bootstrap-2.82.4_1,2.log
[...]
=>> Checking for extra files and directories
grep: /wrkdirs/usr/ports/devel/glib20/work-default/.PLIST.mktmp: No such file or directory
=>> Error: Files or directories left over:
@dir /usr/local/glib-bootstrap

$ cat /usr/local/poudriere/data/logs/bulk/134amd64-default/latest/logs/esurvive PORTTESTING_FATAL=no (aka bulk -k), so won'trrors/gobject-introspection-bootstrap-1.82.0_1,1.log
[...]
=>> Checking for extra files and directories
grep: /wrkdirs/usr/ports/devel/gobject-introspection/work-default/.PLIST.mktmp: No such file or directory
=>> Error: Files or directories left over:
@dir /usr/local/gobject-introspection-bootstrap