Bug#1061133: libsoup3: Build profiles don't actually work

Simon McVittie smcv at debian.org
Fri Jan 19 10:47:36 GMT 2024


On Fri, 19 Jan 2024 at 00:51:50 +0000, Simon McVittie wrote:
> On Fri, 19 Jan 2024 at 01:17:36 +0100, John Paul Adrian Glaubitz wrote:
> > it seems that specifying multiple
> > build profiles for a build dependency means that the build dependency is
> > removed only if all of the specified profiles are activated.
> 
> It can work either way. You can either write
> 
>     dep <!nocheck> <!noinsttest>

FYI, this is the one libsoup3 is using (correctly for its particular
situation), and it means:

    (!nocheck) || (!noinsttest)

> or
>     dep <!nocheck !noinsttest>

whereas this one would mean

    (!nocheck) && (!noinsttest)

and that would be wrong for what libsoup3 is doing.

Unfortunately, comparing with architecture restrictions doesn't
work as a mnemonic for which way round this is, because positive
architecture restrictions like [amd64 i386] are "||", but negative
architecture restrictions like [!m68k !sh4] are "&&". This makes sense
for architectures because you can only be one architecture at a time,
but build profiles can be set or not set independently of each other,
so they need a more elaborate syntax.

> > This, however, means that that the "nocheck" profile has to be there to
> > boostreap libsoup3 which deactivates "libgnutls28-dev" which makes the
> > build fail since this build dependency is mandatory.
> 
> *That* sounds like the real bug here. In what way does it fail?

Steps to reproduce (on amd64 but I don't think that matters), in a
minimal-ish chroot/container (I used debian:sid-slim in Podman):

# apt update
# apt upgrade
# apt build-dep . --arch-only -Pnocheck,noinsttest
# dpkg-buildpackage -B -Pnocheck,noinsttest

Expected result:
- it builds
- build-time tests (dh_auto_test) are skipped
- the libsoup-3.0-tests package is not generated

Actual result:
../meson.build:293:13: ERROR: Dependency "gnutls" not found, tried pkgconfig

> From a quick look at libsoup3, it seems like it might only need
> GNUTLS for part of the test suite, and therefore needs to pass
> -Dpkcs11_tests=disabled to meson via dh_auto_configure (overriding
> -Dauto_features=enabled) whenever both of these profiles are disabled?

Yes, this. Please see the commit that I'm about to push (the commit hook
should set this bug as pending when I do).

    smcv



More information about the pkg-gnome-maintainers mailing list