maintainer-feedback requested: [Bug 251509] Mk/Uses/gnome.mk: USE_GNOME_IMPL does not propagate :build etc, creating bogus dependencies

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Dec 1 18:46:06 UTC 2020


Bugzilla Automation <bugzilla at FreeBSD.org> has asked freebsd-x11 (Nobody)
<x11 at FreeBSD.org> for maintainer-feedback:
Bug 251509: Mk/Uses/gnome.mk: USE_GNOME_IMPL does not propagate :build etc,
creating bogus dependencies
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=251509



--- Description ---
graphics/libdrm has this:

MANPAGES_USE=		GNOME=libxslt:build

Obviously the intention is to use libxslt only during the build.

Now, gnome.mk has:

libxslt_USE_GNOME_IMPL= libxml2

and the way these implications are handled is (minus the unknown check):

. for component in ${USE_GNOME:C/^([^:]+).*/\1/}
_USE_GNOME+=	${${component}_USE_GNOME_IMPL} ${component}
. endfor

Oops, the :build flag is lost (literally deleted by the :C/../../ and never
handled), not propagated, so we basically have USE_GNOME=libxml2 — so this ends
up in the pkg +MANIFEST:

  "deps": {
    "libpciaccess": {
      "origin": "devel/libpciaccess",
      "version": "0.16"
    },
    "libxml2": {
      "origin": "textproc/libxml2",
      "version": "2.9.10_1"
    }
  },

But libdrm does not actually depend on libxml2 at runtime!!

---

How I noticed this is that poudriere fails to install anything that depends on
libdrm:

===>   mesa-devel-20.3.b.786 depends on package: libva>0 - not found
===>   Installing existing package /packages/All/libva-2.9.1.tzst
[unrelenting.technology] Installing libva-2.9.1...
[unrelenting.technology] `-- Installing libXfixes-5.0.3_2...
[unrelenting.technology] `-- Extracting libXfixes-5.0.3_2: .......... done
[unrelenting.technology] `-- Installing libdrm-2.4.103,1...
[unrelenting.technology] |   `-- Installing libpciaccess-0.16...
[unrelenting.technology] |   | `-- Installing pciids-20201025...
[unrelenting.technology] |   | `-- Extracting pciids-20201025: ..... done
[unrelenting.technology] |   `-- Extracting libpciaccess-0.16: ......... done
pkg-static: Missing dependency 'libxml2'


…granted, it *shouldn't* fail, it should find the libxml2 dependency, which of
course *was* added to RUN_DEPENDS at the port level, so something went wrong in
poudriere for me here. but I'm glad it did, because idk if anyone would've
found that issue otherwise.


More information about the freebsd-x11 mailing list