(sorry my mail got delayed, the datacenter with my mail server had an
outage)
On Tue 21 Jun 2022 at 14:00:46 -0400, Greg Troxel wrote:
>
> I'm really not sure what's going on.
>
> Two thoughts:
>
> * Are you really sure you have
> - a consistent tree, all cvs up -A
I made sure to run this again; I have some local changes in some
packages that might be suitable for committing but that's for another
time.
> - no stale workdirs
It's a tmpfs and I rm'ed it again
> - everything up to date?
cvs update -A completed successfully
> * Partial PREFER_PKGSRC considered harmful
>
> If you are going to prefer_pkgsrc for something, you should do that
> for everything that depends on it. Yes, it ought to warn if you
> don't.
I should indeed have set PREFER.libXft too, I agree. And setting that
is supposed to fix the situation, I gather. But...
pkg_comp:default.conf# pwd
/usr/pkgsrc/x11/libXft
pkg_comp:default.conf# make show-var VARNAME=PREFER.libXft
pkgsrc
pkg_comp:default.conf# make show-var VARNAME=X11_TYPE
native
pkg_comp:default.conf# make
=> Bootstrap dependency digest>=20211023: found digest-20220214
WARNING: [license.mk] Every package should define a LICENSE.
ERROR: This package has set PKG_SKIP_REASON:
ERROR: Package set is using native X11 component
*** Error code 1
Stop.
make: stopped in /usr/pkgsrc/x11/libXft
This should build the package, I would think.
So where does this message come from? In this directory's Makefile there is
.include "../../meta-pkgs/modular-xorg/avoid-duplicate.mk"
which contains amongst other lines,
.include "../../mk/bsd.fast.prefs.mk"
.if ${X11_TYPE} == "native"
. if exists(${X11BASE}/lib/${X11_LIB_NAME}.so)
PKG_SKIP_REASON+= "Package set is using native X11 component"
. endif
and /usr/X11R7/lib/libXft.so exists.
It doesn't seem to look at PREFER.libXft at all.
One could imagine that bsd.fast.prefs.mk could (for packages like these
where PREFER.name == pkgsrc) set X11_TYPE to something other than
"native", but it doesn't, as shown by the `make show-var` above. I'm not
sure where exactly the value is set, but it seems correct to me.
One way to make avoid-duplicate.mk look at PREFER.foo could be
Index: avoid-duplicate.mk
===================================================================
RCS file: /cvsroot/pkgsrc/meta-pkgs/modular-xorg/avoid-duplicate.mk,v
retrieving revision 1.4
diff -u -r1.4 avoid-duplicate.mk
--- avoid-duplicate.mk 10 Apr 2022 08:52:01 -0000 1.4
+++ avoid-duplicate.mk 23 Jun 2022 20:45:50 -0000
@@ -2,7 +2,7 @@
.include "../../mk/bsd.fast.prefs.mk"
-.if ${X11_TYPE} == "native"
+.if ${PREFER.${X11_BIN_NAME}${X11_LIB_NAME}${X11_DRV_NAME}} == "native"
. if !empty(X11_BIN_NAME)
. if exists(${X11BASE}/bin/${X11_BIN_NAME})
PKG_SKIP_REASON+= "Package set is using native X11 component"
I tried ${PREFER.${PKGBASE}} == "native" as the condition first, but it
seems that PKGBASE is not known yet at the right time. Hence the hack,
which is needed because the name can be in 3 different variables.
Hopefully they match the package name, too.
The condition ${X11_TYPE} == "native" isn't really needed if the
PREFER.foo is already native, and the conditions further down won't
match anyway for non-native setups.
-Olaf.
--
___ "Buying carbon credits is a bit like a serial killer paying someone else to
\X/ have kids to make his activity cost neutral." -The BOFH falu.nl@rhialto
Attachment:
signature.asc
Description: PGP signature