ORed build profiles
Trying to work with ORed build profiles, either I fail to understand how
to work with these, or something is wrong with the implementation.
llvm-toolchain-21 in unstable introduces a pkg.llvm.noclang build
profile, to be able to only build the llvm related packages, not
building anything else clang, flang, bolt, lld, lldb related. That works.
However when adding additional pkg.llvm.noflang, pkg.llvm.nolld, ...
build profiles for some more fine grained control (attached diff), as in
Package: lld-21
Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolld>
then all the packages with an ORed build profile are NOT built by
default. I'm not expecting this. dpkg doesn't complain about the
syntax of this field.
Looking at
https://wiki.debian.org/BuildProfileSpec#The_Package-List_field
the spec seems to be a little bit ambiguous about that field, not giving
a spec, but just some examples, and no example for ORed build profiles,
and not explaining what the examples are supposed to do.
There's also nothing told about the precedence of the operators, (NOT
(!), OR (+), AND (,)).
If there's a better place to talk about this spec (better in a bug
report), please let me know.
Matthias
diff -Nru llvm-toolchain-21-21.1.6/debian/changelog llvm-toolchain-21-21.1.6/debian/changelog
--- llvm-toolchain-21-21.1.6/debian/changelog 2025-11-21 15:09:31.000000000 +0100
+++ llvm-toolchain-21-21.1.6/debian/changelog 2025-11-22 18:56:32.000000000 +0100
@@ -1,3 +1,9 @@
+llvm-toolchain-21 (1:21.1.6-2) UNRELEASED; urgency=medium
+
+ * Test build (ORed build profiles).
+
+ -- Matthias Klose <doko@debian.org> Sat, 22 Nov 2025 18:56:32 +0100
+
llvm-toolchain-21 (1:21.1.6-1) unstable; urgency=medium
* LLVM 21.1.6 release.
diff -Nru llvm-toolchain-21-21.1.6/debian/control llvm-toolchain-21-21.1.6/debian/control
--- llvm-toolchain-21-21.1.6/debian/control 2025-11-21 13:23:26.000000000 +0100
+++ llvm-toolchain-21-21.1.6/debian/control 2025-11-22 18:56:28.000000000 +0100
@@ -547,8 +547,8 @@
# ------------- lld -------------
Package: lld-21
-Build-Profiles: <!pkg.llvm.noclang>
-#Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolld>
+#Build-Profiles: <!pkg.llvm.noclang>
+Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolld>
Architecture: amd64 arm64 armel armhf i386 loong64 m68k mips64el mipsel ppc64 ppc64el riscv64 s390x sparc sparc64 x32
Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm21 (= ${binary:Version})
Pre-Depends: ${misc:Pre-Depends}
@@ -558,8 +558,8 @@
Project.
Package: liblld-21
-Build-Profiles: <!pkg.llvm.noclang>
-#Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolld>
+#Build-Profiles: <!pkg.llvm.noclang>
+Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolld>
Architecture: amd64 arm64 armel armhf i386 loong64 m68k mips64el mipsel ppc64 ppc64el riscv64 s390x sparc sparc64 x32
Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm21 (= ${binary:Version})
Pre-Depends: ${misc:Pre-Depends}
@@ -572,8 +572,8 @@
This package contains the LLD runtime library.
Package: liblld-21-dev
-Build-Profiles: <!pkg.llvm.noclang>
-#Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolld>
+#Build-Profiles: <!pkg.llvm.noclang>
+Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolld>
Section: libdevel
Architecture: amd64 arm64 armel armhf i386 loong64 m68k mips64el mipsel ppc64 ppc64el riscv64 s390x sparc sparc64 x32
Depends: ${shlibs:Depends}, ${misc:Depends}, lld-21 (= ${binary:Version}),
@@ -590,8 +590,8 @@
# ------------- lldb -------------
Package: lldb-21
-Build-Profiles: <!pkg.llvm.noclang>
-#Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolldb>
+#Build-Profiles: <!pkg.llvm.noclang>
+Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolldb>
Architecture: amd64 arm64 armel armhf i386 loong64 m68k ppc64el riscv64 s390x x32
Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm21 (= ${binary:Version}),
python3-lldb-21
@@ -602,8 +602,8 @@
Project, such as the Clang expression parser and LLVM disassembler.
Package: liblldb-21
-Build-Profiles: <!pkg.llvm.noclang>
-#Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolldb>
+#Build-Profiles: <!pkg.llvm.noclang>
+Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolldb>
Architecture: amd64 arm64 armel armhf i386 loong64 m68k ppc64el riscv64 s390x x32
Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm21 (= ${binary:Version})
Pre-Depends: ${misc:Pre-Depends}
@@ -616,8 +616,8 @@
This package contains the LLDB runtime library.
Package: python3-lldb-21
-Build-Profiles: <!pkg.llvm.noclang>
-#Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolldb>
+#Build-Profiles: <!pkg.llvm.noclang>
+Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolldb>
Section: python
Architecture: amd64 arm64 armel armhf i386 loong64 m68k ppc64el riscv64 s390x x32
Depends: ${shlibs:Depends}, ${misc:Depends}, ${python3:Depends}, liblldb-21 (= ${binary:Version})
@@ -993,8 +993,8 @@
# ------------- bolt -------------
Package: bolt-21
-Build-Profiles: <!pkg.llvm.noclang>
-#Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nobolt>
+#Build-Profiles: <!pkg.llvm.noclang>
+Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nobolt>
Architecture: amd64 arm64
Depends: ${shlibs:Depends}, ${misc:Depends}, libbolt-21-dev (= ${binary:Version}),
Pre-Depends: ${misc:Pre-Depends}
@@ -1003,8 +1003,8 @@
execution profile gathered by sampling profiler.
Package: libbolt-21-dev
-Build-Profiles: <!pkg.llvm.noclang>
-#Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nobolt>
+#Build-Profiles: <!pkg.llvm.noclang>
+Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nobolt>
Section: libdevel
Architecture: amd64 arm64
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -1015,9 +1015,9 @@
# ------------- flang -------------
Package: flang-21
-Build-Profiles: <!pkg.llvm.noclang>
+#Build-Profiles: <!pkg.llvm.noclang>
# FIXME: the next one doesn't work. why?
-#Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.noflang>
+Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.noflang>
# no 32bit support
# https://github.com/llvm/llvm-project/issues/59845
Architecture: amd64 arm64 ppc64el ppc64 sparc64 riscv64 loong64
@@ -1031,9 +1031,9 @@
of examples, some functionalities are still missing.
Package: libflang-21-dev
-Build-Profiles: <!pkg.llvm.noclang>
+#Build-Profiles: <!pkg.llvm.noclang>
# FIXME: the next one doesn't work. why?
-#Build-Profiles: <!pkg.llvm.noclang> <!pkg.llvm.noflang>
+Build-Profiles: <!pkg.llvm.noclang> <!pkg.llvm.noflang>
Architecture: amd64 arm64 ppc64el ppc64 sparc64 riscv64 loong64
Section: libdevel
Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs},
diff -Nru llvm-toolchain-21-21.1.6/debian/control.in llvm-toolchain-21-21.1.6/debian/control.in
--- llvm-toolchain-21-21.1.6/debian/control.in 2025-11-12 19:01:09.000000000 +0100
+++ llvm-toolchain-21-21.1.6/debian/control.in 2025-11-22 18:56:17.000000000 +0100
@@ -547,8 +547,8 @@
# ------------- lld -------------
Package: lld-@LLVM_VERSION@
-Build-Profiles: <!pkg.llvm.noclang>
-#Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolld>
+#Build-Profiles: <!pkg.llvm.noclang>
+Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolld>
Architecture: @LLD_ARCHS@
Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm@LLVM_VERSION@ (= ${binary:Version})
Pre-Depends: ${misc:Pre-Depends}
@@ -558,8 +558,8 @@
Project.
Package: liblld-@LLVM_VERSION@
-Build-Profiles: <!pkg.llvm.noclang>
-#Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolld>
+#Build-Profiles: <!pkg.llvm.noclang>
+Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolld>
Architecture: @LLD_ARCHS@
Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm@LLVM_VERSION@ (= ${binary:Version})
Pre-Depends: ${misc:Pre-Depends}
@@ -572,8 +572,8 @@
This package contains the LLD runtime library.
Package: liblld-@LLVM_VERSION@-dev
-Build-Profiles: <!pkg.llvm.noclang>
-#Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolld>
+#Build-Profiles: <!pkg.llvm.noclang>
+Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolld>
Section: libdevel
Architecture: @LLD_ARCHS@
Depends: ${shlibs:Depends}, ${misc:Depends}, lld-@LLVM_VERSION@ (= ${binary:Version}),
@@ -590,8 +590,8 @@
# ------------- lldb -------------
Package: lldb-@LLVM_VERSION@
-Build-Profiles: <!pkg.llvm.noclang>
-#Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolldb>
+#Build-Profiles: <!pkg.llvm.noclang>
+Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolldb>
Architecture: @LLDB_ARCHS@
Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm@LLVM_VERSION@ (= ${binary:Version}),
python3-lldb-@LLVM_VERSION@
@@ -602,8 +602,8 @@
Project, such as the Clang expression parser and LLVM disassembler.
Package: liblldb-@LLVM_VERSION@
-Build-Profiles: <!pkg.llvm.noclang>
-#Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolldb>
+#Build-Profiles: <!pkg.llvm.noclang>
+Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolldb>
Architecture: @LLDB_ARCHS@
Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm@LLVM_VERSION@ (= ${binary:Version})
Pre-Depends: ${misc:Pre-Depends}
@@ -616,8 +616,8 @@
This package contains the LLDB runtime library.
Package: python3-lldb-@LLVM_VERSION@
-Build-Profiles: <!pkg.llvm.noclang>
-#Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolldb>
+#Build-Profiles: <!pkg.llvm.noclang>
+Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nolldb>
Section: python
Architecture: @LLDB_ARCHS@
Depends: ${shlibs:Depends}, ${misc:Depends}, ${python3:Depends}, liblldb-@LLVM_VERSION@ (= ${binary:Version})
@@ -993,8 +993,8 @@
# ------------- bolt -------------
Package: bolt-@LLVM_VERSION@
-Build-Profiles: <!pkg.llvm.noclang>
-#Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nobolt>
+#Build-Profiles: <!pkg.llvm.noclang>
+Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nobolt>
Architecture: @BOLT_ARCHS@
Depends: ${shlibs:Depends}, ${misc:Depends}, libbolt-@LLVM_VERSION@-dev (= ${binary:Version}),
Pre-Depends: ${misc:Pre-Depends}
@@ -1003,8 +1003,8 @@
execution profile gathered by sampling profiler.
Package: libbolt-@LLVM_VERSION@-dev
-Build-Profiles: <!pkg.llvm.noclang>
-#Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nobolt>
+#Build-Profiles: <!pkg.llvm.noclang>
+Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.nobolt>
Section: libdevel
Architecture: @BOLT_ARCHS@
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -1015,9 +1015,9 @@
# ------------- flang -------------
Package: flang-@LLVM_VERSION@
-Build-Profiles: <!pkg.llvm.noclang>
+#Build-Profiles: <!pkg.llvm.noclang>
# FIXME: the next one doesn't work. why?
-#Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.noflang>
+Build-Profiles: <!pkg.llvm.noclang> + <!pkg.llvm.noflang>
# no 32bit support
# https://github.com/llvm/llvm-project/issues/59845
Architecture: @FLANG_ARCHS@
@@ -1031,9 +1031,9 @@
of examples, some functionalities are still missing.
Package: libflang-@LLVM_VERSION@-dev
-Build-Profiles: <!pkg.llvm.noclang>
+#Build-Profiles: <!pkg.llvm.noclang>
# FIXME: the next one doesn't work. why?
-#Build-Profiles: <!pkg.llvm.noclang> <!pkg.llvm.noflang>
+Build-Profiles: <!pkg.llvm.noclang> <!pkg.llvm.noflang>
Architecture: @FLANG_ARCHS@
Section: libdevel
Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs},
Reply to: