Bug#1057231: btrfs-progs: installs files into /lib/udev/rules.d

2023-12-01 Thread Chris Hofstaedtler
Control: retitle -1 btrfs-progs: will FTBFS when udev.pc changes udevdir
Control: tags -1 + ftbfs

* Chris Hofstaedtler  [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 /<>/debian/tmp/usr/lib/udev/rules.d
/usr/bin/install -c -m644 64-btrfs-dm.rules 64-btrfs-zoned.rules 
/<>/debian/tmp/usr/lib/udev/rules.d
...
make[1]: Leaving directory '/<>'
   debian/rules override_dh_install
make[1]: Entering directory '/<>'
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 '/<>'
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



Bug#1057231: btrfs-progs: installs files into /lib/udev/rules.d

2023-12-01 Thread Chris Hofstaedtler
Package: btrfs-progs
Version: 6.3.2-1
Severity: normal
User: helm...@debian.org
Usertags: dep17m2

Dear Maintainer,

your package installs the files /lib/udev/rules.d/64-btrfs-dm.rules
and /lib/udev/rules.d/64-btrfs-zoned.rules.

For the ongoing UsrMerge effort [1], /lib needs to become "empty", IOW no
package should install a file there. Instead, files should be installed
into /usr/lib.

Apparently these paths are hard-coded, either in the upstream build system
or the packaging.

Please change your package to install into /usr/lib/udev/rules.d at your
earliest convenience. Per the wiki, it is useful to first upload to
experimental and wait a few days for the dumat tool to evaluate the
change, and only then upload to unstable.

At a later point during the trixie cycle, I expect this bug will become
release-critical.

Thanks for considering,
Chris

[1] https://wiki.debian.org/UsrMerge