Control: retitle -1 btrfs-progs: will FTBFS when udev.pc changes udevdir
Control: tags -1 + ftbfs

* Chris Hofstaedtler <z...@debian.org> [231201 23:37]:
> Apparently these paths are hard-coded, either in the upstream build system
> or the packaging.

My apologies, the rebuild test failed to catch the real problem
here:

btrfs-progs upstream's configure(.ac) uses udevdir from udev.pc.
This is great.
However: the Debian packaging then hard-codes the /lib path. When
udev.pc changes udevdir, btrfs-progs will FTBFS. Build log snippet:

...
/usr/bin/install -c -m755 -d /<<PKGBUILDDIR>>/debian/tmp/usr/lib/udev/rules.d
/usr/bin/install -c -m644 64-btrfs-dm.rules 64-btrfs-zoned.rules 
/<<PKGBUILDDIR>>/debian/tmp/usr/lib/udev/rules.d
...
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
   debian/rules override_dh_install
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_install
dh_install: warning: Cannot find (any matches for) "lib/" (tried in ., 
debian/tmp)

dh_install: warning: btrfs-progs missing files: lib/
dh_install: error: missing files, aborting
make[1]: *** [debian/rules:45: override_dh_install] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:18: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2


A future proof option is to do something like this:

In d/rules, set:
    export deb_udevdir = $(shell pkg-config --variable=udevdir udev | sed 
s,^/,,)

In d/install, use:
    ${env:deb_udevdir}/rules.d


Best,
Chris

Reply via email to