From c7d388292fd1afd9ce77c8ad766ecfd3c3b9baa6 Mon Sep 17 00:00:00 2001 From: Faidon Liambotis Date: Fri, 5 Jan 2024 18:05:11 +0200 Subject: [PATCH] Convert libclang-common-*-dev to Arch: all/M-A: foreign libclang-common-*-dev is an Architecture: any package, possibly due to the fact that it contained compiler-rt before it was split off to a separate package. It is not marked as Multi-Arch: same, despite the hinter suggesting to do so, presumably due to identical files. Convert it to Architecture: all / Multi-Arch: foreign instead. This requires the removal of the arch: any dependency libllvm17, which is spurious anyway. However, for extra safety, add version specifiers to other packages that do depend on (an unversioned) libllvm17, such as clang. --- debian/control | 17 +++++++++++------ debian/control.in | 17 +++++++++++------ 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/debian/control b/debian/control index b58c452d..e06a0142 100644 --- a/debian/control +++ b/debian/control @@ -44,7 +44,9 @@ Vcs-Browser: https://salsa.debian.org/pkg-llvm-team/llvm-toolchain/tree/17 Package: clang-17 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs}, - ${dep:devlibs-objc}, libclang-common-17-dev (= ${binary:Version}), + ${dep:devlibs-objc}, + libllvm17 (= ${binary:Version}), + libclang-common-17-dev (= ${source:Version}), llvm-17-linker-tools (= ${binary:Version}), libclang1-17 (= ${binary:Version}), libc6-dev, binutils Provides: c-compiler, objc-compiler, c++-compiler @@ -92,7 +94,8 @@ Description: Tool to format C/C++/Obj-C code Package: clang-tidy-17 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, python3, - libllvm17 (= ${binary:Version}), libclang-common-17-dev, + libllvm17 (= ${binary:Version}), + libclang-common-17-dev (= ${source:Version}), clang-tools-17, python3-yaml Description: clang-based C++ linter tool Provide an extensible framework for diagnosing and fixing typical programming @@ -103,7 +106,8 @@ Description: clang-based C++ linter tool Package: clangd-17 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - libclang-common-17-dev (= ${binary:Version}) + libllvm17 (= ${binary:Version}), + libclang-common-17-dev (= ${source:Version}), Description: Language server that provides IDE-like features to editors clangd understands your C++ code and adds smart features to your editor: - code completion @@ -154,7 +158,7 @@ Architecture: any Section: libdevel Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs}, ${dep:devlibs-objc}, libclang1-17 (= ${binary:Version}), - libclang-common-17-dev (= ${binary:Version}) + libclang-common-17-dev (= ${source:Version}) Description: Clang library - Development package Clang project is a C, C++, Objective C and Objective C++ front-end based on the LLVM compiler. Its goal is to offer a replacement to the @@ -167,9 +171,10 @@ Description: Clang library - Development package libclang1-17. Package: libclang-common-17-dev -Architecture: any +Architecture: all +Multi-Arch: foreign Section: libdevel -Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm17 (= ${binary:Version}) +Depends: ${shlibs:Depends}, ${misc:Depends}, Recommends: libclang-rt-17-dev (>= 1:16~++20230115053056+df5fc4504b86-1~exp1) Description: Clang library - Common development package Clang project is a C, C++, Objective C and Objective C++ front-end diff --git a/debian/control.in b/debian/control.in index f83a0c73..f86e194e 100644 --- a/debian/control.in +++ b/debian/control.in @@ -44,7 +44,9 @@ Vcs-Browser: https://salsa.debian.org/pkg-llvm-team/llvm-toolchain/tree/@BRANCH_ Package: clang-@LLVM_VERSION@ Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs}, - ${dep:devlibs-objc}, libclang-common-@LLVM_VERSION@-dev (= ${binary:Version}), + ${dep:devlibs-objc}, + libllvm@LLVM_VERSION@ (= ${binary:Version}), + libclang-common-@LLVM_VERSION@-dev (= ${source:Version}), llvm-@LLVM_VERSION@-linker-tools (= ${binary:Version}), libclang1-@LLVM_VERSION@ (= ${binary:Version}), libc6-dev, binutils Provides: c-compiler, objc-compiler, c++-compiler @@ -92,7 +94,8 @@ Description: Tool to format C/C++/Obj-C code Package: clang-tidy-@LLVM_VERSION@ Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, python3, - libllvm@LLVM_VERSION@ (= ${binary:Version}), libclang-common-@LLVM_VERSION@-dev, + libllvm@LLVM_VERSION@ (= ${binary:Version}), + libclang-common-@LLVM_VERSION@-dev (= ${source:Version}), clang-tools-@LLVM_VERSION@, python3-yaml Description: clang-based C++ linter tool Provide an extensible framework for diagnosing and fixing typical programming @@ -103,7 +106,8 @@ Description: clang-based C++ linter tool Package: clangd-@LLVM_VERSION@ Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - libclang-common-@LLVM_VERSION@-dev (= ${binary:Version}) + libllvm@LLVM_VERSION@ (= ${binary:Version}), + libclang-common-@LLVM_VERSION@-dev (= ${source:Version}), Description: Language server that provides IDE-like features to editors clangd understands your C++ code and adds smart features to your editor: - code completion @@ -154,7 +158,7 @@ Architecture: any Section: libdevel Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs}, ${dep:devlibs-objc}, libclang1-@LLVM_VERSION@ (= ${binary:Version}), - libclang-common-@LLVM_VERSION@-dev (= ${binary:Version}) + libclang-common-@LLVM_VERSION@-dev (= ${source:Version}) Description: Clang library - Development package Clang project is a C, C++, Objective C and Objective C++ front-end based on the LLVM compiler. Its goal is to offer a replacement to the @@ -167,9 +171,10 @@ Description: Clang library - Development package libclang1-@LLVM_VERSION@. Package: libclang-common-@LLVM_VERSION@-dev -Architecture: any +Architecture: all +Multi-Arch: foreign Section: libdevel -Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm@LLVM_VERSION@ (= ${binary:Version}) +Depends: ${shlibs:Depends}, ${misc:Depends}, Recommends: libclang-rt-@LLVM_VERSION@-dev (>= 1:16~++20230115053056+df5fc4504b86-1~exp1) Description: Clang library - Common development package Clang project is a C, C++, Objective C and Objective C++ front-end