[Pkg-rust-maintainers] Bug#1079071: dh-cargo: fails to build glycin-loaders when lto is disabled via DEB_BUILD_OPTIONS

Matthias Geiger werdahias at debian.org
Mon Aug 19 20:23:49 BST 2024


Package: dh-cargo
Version: 31
Severity: normal
X-Debbugs-Cc: werdahias at debian.org

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256


I ran into this when building glycin-loaders:

=============================================
   debian/rules override_dh_auto_configure
make[1]: Entering directory '/<<PKGBUILDDIR>>'
/usr/share/cargo/bin/cargo prepare-debian debian/cargo_registry --link-from-system
debian cargo wrapper: options, profiles, parallel, lto: ['parallel=6', 'optimize=-lto', 'optimize=-lto'] [] ['-j6'] -1
debian cargo wrapper: rust_type, gnu_type: x86_64-unknown-linux-gnu, x86_64-linux-gnu
debian cargo wrapper: linking /usr/share/cargo/registry/* into /<<PKGBUILDDIR>>/debian/cargo_registry/
rm -f Cargo.lock
dh_auto_configure -- \
- -Dloaders="glycin-heif, glycin-image-rs, glycin-svg" \
- -Dhost_arch="x86_64-unknown-linux-gnu"
	cd obj-x86_64-linux-gnu && DEB_PYTHON_INSTALL_LAYOUT=deb LC_ALL=C.UTF-8 meson setup .. --wrap-mode=nodownload --buildtype=plain --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=lib/x86_64-linux-gnu -Dpython.bytecompile=-1 "-Dloaders=glycin-heif, glycin-image-rs, glycin-svg" -Dhost_arch=x86_64-unknown-linux-gnu
The Meson build system
Version: 1.5.1
Source dir: /<<PKGBUILDDIR>>
Build dir: /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu
Build type: native build
Project name: glycin-loaders
Project version: 1.0.1
Rust compiler for the host machine: rustc -C linker=cc (rustc 1.79.0)
Rust linker for the host machine: rustc -C linker=cc ld.bfd 2.43
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: YES (/usr/bin/pkg-config) 1.8.1
Run-time dependency libseccomp found: YES 2.5.5
Run-time dependency libheif found: YES 1.18.1
Run-time dependency cairo found: YES 1.18.0
Run-time dependency gtk4 found: YES 4.14.4
Program cargo found: YES (/usr/share/cargo/bin/cargo)
Configuring tmp-glycin-heif using configuration
Program msgfmt found: YES (/usr/bin/msgfmt)
Configuring tmp-glycin-image-rs using configuration
Configuring tmp-glycin-svg using configuration
Program meson found: YES
Program /<<PKGBUILDDIR>>/build-aux/setup-integration-test.py found: YES (/<<PKGBUILDDIR>>/build-aux/setup-integration-test.py)
Build targets in project: 9

glycin-loaders 1.0.1

  User defined options
    buildtype         : plain
    libdir            : lib/x86_64-linux-gnu
    localstatedir     : /var
    prefix            : /usr
    sysconfdir        : /etc
    wrap_mode         : nodownload
    python.bytecompile: -1
    host_arch         : x86_64-unknown-linux-gnu
    loaders           : glycin-heif, glycin-image-rs, glycin-svg

Found ninja-1.12.1 at /usr/bin/ninja
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
   dh_auto_build
	cd obj-x86_64-linux-gnu && LC_ALL=C.UTF-8 ninja -j6 -v
[0/9] env LOCALEDIR=/usr/share/locale /usr/share/cargo/bin/cargo build --target-dir /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/cargo_target/loaders --profile release --manifest-path /<<PKGBUILDDIR>>/Cargo.toml --package glycin-heif
debian cargo wrapper: options, profiles, parallel, lto: ['parallel=6', 'optimize=-lto'] [] ['-j6'] -1
debian cargo wrapper: rust_type, gnu_type: x86_64-unknown-linux-gnu, x86_64-linux-gnu
debian cargo wrapper: running subprocess (['env', 'RUST_BACKTRACE=1', '/usr/bin/cargo', '-Zavoid-dev-deps', 'build', '--verbose', '--verbose', '-j6', '--target', 'x86_64-unknown-linux-gnu', '--target-dir', '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/cargo_target/loaders', '--profile', 'release', '--manifest-path', '/<<PKGBUILDDIR>>/Cargo.toml', '--package', 'glycin-heif', '--config profile.release.lto = false'],) {}
error: unexpected argument '--config profile.release.lto ' found

  tip: a similar argument exists: '--config'

Usage: cargo build --verbose... --jobs <N> --target [<TRIPLE>] --target-dir <DIRECTORY> --profile <PROFILE-NAME> --manifest-path <PATH> --package [<SPEC>] --config <KEY=VALUE>

For more information, try '--help'.
FAILED: loaders/glycin-heif-bin 
========================================================

Note that I passed along "optimize=-lto" to disable lto via
DEB_BUILD_OPTIONS. This causes the build to fail. Right now I use a hack
via sed'ing lto to false.
.
Also seems weird that the option is passed along twice ?
It would be great if this could get fixed so I can drop the hack.


best,

werdahias


- -- System Information:
Debian Release: trixie/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.10.3-amd64 (SMP w/16 CPU threads; PREEMPT)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: OpenRC (via /run/openrc), PID 1: init
LSM: AppArmor: enabled

Versions of packages dh-cargo depends on:
ii  cargo      1.79.0+dfsg1-2
ii  debhelper  13.18
ii  perl       5.38.2-5
ii  python3    3.12.5-1

dh-cargo recommends no packages.

dh-cargo suggests no packages.

- -- no debconf information

-----BEGIN PGP SIGNATURE-----

iIsEARYIADMWIQQUWTv/Sl6/b+DpcW7svtu2B7myvgUCZsObuRUcd2VyZGFoaWFz
QGRlYmlhbi5vcmcACgkQ7L7btge5sr4F+gEAwpxJ1qc8KDnlQuVJyAUtcGxopGOS
idsl51sDrfVrk+YA/2sS8VAQLam43LH/5BqFiQCS1thfppiWELf6qX5iqoEH
=nXCl
-----END PGP SIGNATURE-----



More information about the Pkg-rust-maintainers mailing list