[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: