Bug#1012368: Please add support for systemd-binfmt
Michael Biebl
biebl at debian.org
Sun Jun 5 19:37:29 BST 2022
Package: llvm-14-runtime
Version: 1:14.0.4-4
Severity: wishlist
Tags: patch
User: pkg-systemd-maintainers at lists.alioth.debian.org
Usertags: systemd-binfmt
Hi,
your package llvm-14-runtime declares a dependency (Recommends) on
binfmt-support and ships binfmt-support configuration files in
/usr/share/binfmts/.
systemd provides a builtin, cross-distro facility named systemd-binfmt to
register binary formats.
You can read more about it at
https://www.freedesktop.org/software/systemd/man/systemd-binfmt.html
https://www.freedesktop.org/software/systemd/man/binfmt.d.html
https://www.kernel.org/doc/html/latest/admin-guide/binfmt-misc.html
The systemd package provides a dpkg file trigger so it is sufficient to
simply install configuration files in /usr/lib/binfmt.d/, no
modifications in the maintainer scripts are necessary.
The attached patch adds support for systemd-binfmt and adjusts the
dependency on binfmt-support accordingly, so binfmt-support is no longer
installed automatically if systemd is already available.
It also updates the autopkgtest suite to no longer require
binfmt-support.
Regards,
Michael
-------------- next part --------------
diff -Nru llvm-toolchain-14-14.0.4/debian/control llvm-toolchain-14-14.0.4/debian/control
--- llvm-toolchain-14-14.0.4/debian/control 2022-05-31 14:06:12.000000000 +0200
+++ llvm-toolchain-14-14.0.4/debian/control 2022-06-05 20:33:34.000000000 +0200
@@ -337,7 +337,7 @@
Package: llvm-14-runtime
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
-Recommends: binfmt-support
+Recommends: binfmt-support | systemd
Description: Modular compiler and toolchain technologies, IR interpreter
LLVM is a collection of libraries and tools that make it easy to build
compilers, optimizers, just-in-time code generators, and many other
diff -Nru llvm-toolchain-14-14.0.4/debian/llvm-X.Y-runtime.binfmt.conf.in llvm-toolchain-14-14.0.4/debian/llvm-X.Y-runtime.binfmt.conf.in
--- llvm-toolchain-14-14.0.4/debian/llvm-X.Y-runtime.binfmt.conf.in 1970-01-01 01:00:00.000000000 +0100
+++ llvm-toolchain-14-14.0.4/debian/llvm-X.Y-runtime.binfmt.conf.in 2022-06-05 20:33:34.000000000 +0200
@@ -0,0 +1 @@
+:llvm- at LLVM_VERSION@-runtime.binfmt:M::BC::/usr/bin/lli- at LLVM_VERSION@:
diff -Nru llvm-toolchain-14-14.0.4/debian/llvm-X.Y-runtime.install.in llvm-toolchain-14-14.0.4/debian/llvm-X.Y-runtime.install.in
--- llvm-toolchain-14-14.0.4/debian/llvm-X.Y-runtime.install.in 2022-04-27 08:35:30.000000000 +0200
+++ llvm-toolchain-14-14.0.4/debian/llvm-X.Y-runtime.install.in 2022-06-05 20:33:34.000000000 +0200
@@ -5,4 +5,5 @@
usr/bin/lli-child-target- at LLVM_VERSION@
debian/llvm- at LLVM_VERSION@-runtime.binfmt usr/share/binfmts/
+debian/llvm- at LLVM_VERSION@-runtime.binfmt.conf usr/lib/binfmt.d/
diff -Nru llvm-toolchain-14-14.0.4/debian/qualify-clang.sh llvm-toolchain-14-14.0.4/debian/qualify-clang.sh
--- llvm-toolchain-14-14.0.4/debian/qualify-clang.sh 2022-05-25 10:28:00.000000000 +0200
+++ llvm-toolchain-14-14.0.4/debian/qualify-clang.sh 2022-06-05 20:33:34.000000000 +0200
@@ -305,9 +305,7 @@
clang-$VERSION -O3 -emit-llvm foo.c -c -o foo.bc
chmod +x foo.bc
# only run if the binfmt is installed correctly
-/usr/sbin/update-binfmts --display llvm-$VERSION-runtime.binfmt &> foo.log || true
-if grep -q "interpreter = /usr/bin/lli-" foo.log; then
- /usr/sbin/update-binfmts --enable llvm-$VERSION-runtime.binfmt || true
+if grep -q "enabled" /proc/sys/fs/binfmt_misc/llvm-${VERSION}-runtime.binfmt; then
if ! ./foo.bc|grep -q "lli foo"; then
echo "executing ./foo.bc failed"
./foo.bc || true
diff -Nru llvm-toolchain-14-14.0.4/debian/tests/control llvm-toolchain-14-14.0.4/debian/tests/control
--- llvm-toolchain-14-14.0.4/debian/tests/control 2022-05-31 14:06:41.000000000 +0200
+++ llvm-toolchain-14-14.0.4/debian/tests/control 2022-06-05 20:33:34.000000000 +0200
@@ -1,5 +1,5 @@
Test-Command: bash -v ./debian/qualify-clang.sh
-Depends: @, cmake, make, g++, file, dpkg-dev, binfmt-support
+Depends: @, cmake, make, g++, file, dpkg-dev
# Comment the dbgsym package because of bug #917528
# dbgsym packages not being available in testing
# clang-14-dbgsym, libclang1-14-dbgsym
More information about the Pkg-llvm-team
mailing list