pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pango, cairoi, and libXft (was: Re: helping test for 2022Q2)



TL;DR:

    The duplicate detection works very well, and discovered some pkgsrc
    packages which are not happy with base system libXft. Which
    basically forces it to build as a package even for a native X11
    install.

On Tue 21 Jun 2022 at 06:32:07 -0400, Greg Troxel wrote:

> Rhialto <rhialto%falu.nl@localhost> writes:
> 
> > NetBSD/amd64 9.2 in a pkg_comp1 chroot with 9.2. Using native X11.
> >
> > x11/gtk2 suddenly isn't happy with the built-in Xft and wants to build
> > it, which is blocked from happening. Where should I look?
> >
> > => Full dependency libXft>=2.3.3nb1: NOT found
> > => Verifying bin-install for ../../x11/libXft
> 
> Builds for me.  What does
>   pkg-config --modversion xft
> say in your chroot?  Mine says 2.3.3.
> Is your x11-links package ok?

I added lots of .info lines to the various makefile fragments, and I
found out it was caused by my setting in /etc/mk.conf, which I have
there for some time:

PREFER.freetype2 = pkgsrc               # cairo is ok with base version but pango isn't.
PREFER.fontconfig = ${PREFER.freetype2} # cairo is ok with base version but pango isn't.


However, there is apparently now a proper check that a package which is
marked as builtin (such as libXft) can't depend on one that isn't (which
indeed makes sense).

And libXft depends on freetype2.

So I took out these settings, and now I have two problems: both pango
and cairo don't build.

pango:

It can't find harfbuzz (even though it is installed) then downloads
another copy(!!!) and fails to build that:

...
Found pkg-config: /tmp/pkgsrc/devel/pango/default/.tools/bin/pkg-config (1.8.0)
Run-time dependency glib-2.0 found: YES 2.70.5
Run-time dependency gobject-2.0 found: YES 2.70.5
Run-time dependency gio-2.0 found: YES 2.70.5
Run-time dependency fribidi found: YES 1.0.11
Dependency libthai skipped: feature libthai disabled
WARNING: Found CMake '/tmp/pkgsrc/devel/pango/default/.tools/bin/false' but couldn't run it
Found CMake: NO
Run-time dependency harfbuzz found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency harfbuzz
Cloning into 'harfbuzz'...
remote: Enumerating objects: 2978, done.
remote: Counting objects: 100% (2978/2978), done.
remote: Compressing objects: 100% (1751/1751), done.
remote: Total 2978 (delta 1469), reused 1924 (delta 1162), pack-reused 0
Receiving objects: 100% (2978/2978), 18.06 MiB | 5.57 MiB/s, done.
Resolving deltas: 100% (1469/1469), done.

Executing subproject harfbuzz

harfbuzz| Project name: harfbuzz
...
harfbuzz| Checking for function "uselocale" : NO
harfbuzz| Checking for function "newlocale" : YES
harfbuzz| Program gen-hb-version.py found: YES (/tmp/pkgsrc/devel/pango/default/pango-1.50.7/subprojects/harfbuzz/src/gen-hb-version.py)
harfbuzz| Configuring hb-version.h with command

subprojects/harfbuzz/src/meson.build:1:0: ERROR: Command "/tmp/pkgsrc/devel/pango/default/pango-1.50.7/subprojects/harfbuzz/src/gen-hb-version.py 4.3.0 /tmp/pkgsrc/devel/pango/default/pango-1.50.7/output/subprojects/harfbuzz/src/hb-version.h /tmp/pkgsrc/devel/pango/default/pango-1.50.7/subprojects/harfbuzz/src/hb-version.h.in" failed with status 127.

A full log can be found at /tmp/pkgsrc/devel/pango/default/pango-1.50.7/output/meson-logs/meson-log.txt
*** Error code 1

Stop.

If I set the freetype option back, it fails sooner, because it depeds on
libXft, which fails again because "ERROR: Package set is using native
X11 component".

So the duplicate detection works a bit too well.
If I remove the .include
"../../meta-pkgs/modular-xorg/avoid-duplicate.mk" from libXft/Makefile,
then it gets built as a pkgsrc package. Then pango suddenly finds
harfbuzz and builds ok.


Cairo also fails, already in the configure phase (something related to
fontconfig, it seems):

...
Cecking whether cairo's GLX functions feature could be enabled... no (not required by any backend)
checking for cairo's WGL functions feature...
checking whether cairo's WGL functions feature could be enabled... no (not required by any backend)
checking for cairo's script surface backend feature...
checking whether cairo's script surface backend feature could be enabled... yes
checking for cairo's FreeType font backend feature...
checking for FREETYPE... no
checking freetype2 libtool version... 23.4.17 - OK
checking whether cairo's FreeType font backend feature could be enabled... yes
checking for cairo's Fontconfig font backend feature...
checking for FONTCONFIG... no
checking whether cairo's Fontconfig font backend feature could be enabled... no (requires fontconfig >= 2.2.95)
configure: error:  Fontconfig font backend feature could not be enabled
*** Error code 1

Stop.
make[1]: stopped in /usr/pkgsrc/graphics/cairo
WARNING: *** Please consider adding c++ to USE_LANGUAGES in the package Makefile.
*** Error code 1

Stop.
make: stopped in /usr/pkgsrc/graphics/cairo

If I set my freetype option back, cairo builds.

So I guess that the duplicate detection works very well, and discovered
some pkgsrc packages which are not happy with base system libXft. Which
basically forces it to build as a package even for a native X11 install.

-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



Home | Main Index | Thread Index | Old Index