From 6fb05958638f308a66cacbe54f922c0446de5df6 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 10 Dec 2022 16:35:19 +0100 Subject: [PATCH] transform debian/control into debian/control.in --- debian/README | 8 +- debian/changelog | 6 + debian/control.in | 853 ++++++++++++++++++++++++++++++++++++++++++++++ debian/rules | 8 + 4 files changed, 874 insertions(+), 1 deletion(-) create mode 100644 debian/control.in diff --git a/debian/README b/debian/README index cdf5f885..aa6d4d2f 100644 --- a/debian/README +++ b/debian/README @@ -9,10 +9,15 @@ The current snapshot release is maintained in the "snapshot" branch. The easiest way to get all branches is probably to have one clone per version: -for f in 8 9 10 snapshot; do +for f in 14 15 snapshot; do git clone git@salsa.debian.org:pkg-llvm-team/llvm-toolchain.git -b $f $f done +debian/control is generated from debian/control.in by running: + +ebian/rules preconfigure + + Steps for manually building a snapshot release ============================================== @@ -78,6 +83,7 @@ Additional maintainer scripts The script qualify-clang.sh that is found at the git debian/ directory should be used to quickly test a newly built package. It runs a short set of sanity-check tests and regression tests. +It is executed in autopkgtest. The script releases/snapshot/debian/prepare-new-release.sh is used when preparing a new point release. It automatically replaces version numbers diff --git a/debian/changelog b/debian/changelog index 7744b446..5b72a647 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +llvm-toolchain-14 (1:14.0.6-10~exp2) UNRELEASED; urgency=medium + + * transform debian/control into debian/control.in + + -- Sylvestre Ledru Sat, 10 Dec 2022 16:34:17 +0100 + llvm-toolchain-14 (1:14.0.6-10~exp1) experimental; urgency=medium * More WebAssembly (wasm32/wasm64) work: diff --git a/debian/control.in b/debian/control.in new file mode 100644 index 00000000..3cebecc8 --- /dev/null +++ b/debian/control.in @@ -0,0 +1,853 @@ +Source: llvm-toolchain-@LLVM_VERSION@ +Section: devel +Priority: optional +Rules-Requires-Root: no +Maintainer: LLVM Packaging Team +Uploaders: Sylvestre Ledru , Gianfranco Costamagna +Build-Depends: debhelper (>= 10.0), cmake, ninja-build, + chrpath, texinfo, sharutils, + libelf-dev, + libffi-dev, + lsb-release, patchutils, diffstat, xz-utils, python3-dev, + libedit-dev, libncurses5-dev, swig, python3-six, python3-sphinx (>= 1.3.6), + binutils-dev, + libxml2-dev, + libjsoncpp-dev, pkg-config, + lcov, procps, help2man, zlib1g-dev, + g++-multilib [amd64 i386 kfreebsd-amd64 mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32], + libjs-mathjax, python3-recommonmark, + doxygen, gfortran, + ocaml-base [amd64 arm64 armhf ppc64el riscv64 s390x] | ocaml-nox [amd64 arm64 armhf ppc64el riscv64 s390x], + ocaml-findlib [amd64 arm64 armhf ppc64el riscv64 s390x], + libctypes-ocaml-dev [amd64 arm64 armhf ppc64el riscv64 s390x], + dh-exec, dh-ocaml [amd64 arm64 armhf ppc64el riscv64 s390x], + libpfm4-dev [linux-any], python3-setuptools, libz3-dev, + llvm-spirv-14 [ amd64 arm64 armel armhf mips64el mipsel ppc64el s390x ] | hello [!i386], + spirv-tools [ linux-any ] | hello [ !i386], + wasi-libc, + libcurl4-dev, + libgrpc++-dev [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x], + protobuf-compiler-grpc [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x], + libprotobuf-dev [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x], + protobuf-compiler [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] +# "| hello" is for older buster/bionic distros without spirv support +Build-Conflicts: oprofile +Standards-Version: 4.2.1 +Homepage: https://www.llvm.org/ +Vcs-Git: https://salsa.debian.org/pkg-llvm-team/llvm-toolchain.git -b @BRANCH_NAME@ +Vcs-Browser: https://salsa.debian.org/pkg-llvm-team/llvm-toolchain/tree/@BRANCH_NAME@ + +# ------------- clang ------------- + +Package: clang-@LLVM_VERSION@ +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs}, + ${dep:devlibs-objc}, libclang-common-@LLVM_VERSION@-dev (= ${binary:Version}), + llvm-@LLVM_VERSION@-linker-tools (= ${binary:Version}), + libclang1-@LLVM_VERSION@ (= ${binary:Version}), libc6-dev, binutils +Provides: c-compiler, objc-compiler, c++-compiler +Recommends: llvm-@LLVM_VERSION@-dev, python3 +# libomp-@LLVM_VERSION@-dev +Suggests: clang-@LLVM_VERSION@-doc, wasi-libc +Description: C, C++ and Objective-C compiler + 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 + GNU Compiler Collection (GCC). + . + Clang implements all of the ISO C++ 1998, 11, 14 and 17 standards and also + provides most of the support of C++20. + +Package: clang-tools-@LLVM_VERSION@ +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, clang-@LLVM_VERSION@ (= ${binary:Version}), + python3 +Description: clang-based tools for C/C++ developments + 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 + GNU Compiler Collection (GCC). + . + Clang implements all of the ISO C++ 1998, 11, 14 and 17 standards and also + provides most of the support of C++20. + . + This package contains some clang-based tools like scan-build, clang-cl, etc. + +Package: clang-format-@LLVM_VERSION@ +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, python3, + libllvm@LLVM_VERSION@ (= ${binary:Version}) +Description: Tool to format C/C++/Obj-C code + Clang-format is both a library and a stand-alone tool with the goal of + automatically reformatting C++ sources files according to configurable + style guides. To do so, clang-format uses Clang's Lexer to transform an + input file into a token stream and then changes all the whitespace around + those tokens. The goal is for clang-format to both serve both as a user + tool (ideally with powerful IDE integrations) and part of other + refactoring tools, e.g. to do a reformatting of all the lines changed + during a renaming. + . + This package also provides vim and emacs plugins. + +Package: clang-tidy-@LLVM_VERSION@ +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, python3, + libllvm@LLVM_VERSION@ (= ${binary:Version}), libclang-common-@LLVM_VERSION@-dev, + clang-tools-@LLVM_VERSION@, python3-yaml +Description: clang-based C++ linter tool + Provide an extensible framework for diagnosing and fixing typical programming + errors, like style violations, interface misuse, or bugs that can be deduced + via static analysis. clang-tidy is modular and provides a convenient interface + for writing new checks. + +Package: clangd-@LLVM_VERSION@ +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, + libclang-common-@LLVM_VERSION@-dev (= ${binary: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 + - compile errors + - go-to-definition + - and more. + . + clangd is a language server that implements the Language Server Protocol; + it can work with many editors through a plugin. + +Package: clang-@LLVM_VERSION@-doc +Architecture: all +Section: doc +Depends: ${shlibs:Depends}, ${misc:Depends}, libjs-mathjax +Description: C, C++ and Objective-C compiler - Documentation + 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 + GNU Compiler Collection (GCC). + . + Clang implements all of the ISO C++ 1998, 11, 14 and 17 standards and also + provides most of the support of C++20. + . + This package contains the documentation. + +Package: libclang1-@LLVM_VERSION@ +Section: libs +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Pre-Depends: ${misc:Pre-Depends} +Description: C interface to the Clang library + 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 + GNU Compiler Collection (GCC). + . + Clang implements all of the ISO C++ 1998, 11, 14 and 17 standards and also + provides most of the support of C++20. + . + This package contains the Clang library. + . + The C Interface to Clang provides a relatively small API that exposes + facilities for parsing source code into an abstract syntax tree (AST), + loading already-parsed ASTs, traversing the AST, associating physical source + locations with elements within the AST, and other facilities that support + Clang-based development tools. + +Package: libclang-@LLVM_VERSION@-dev +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}) +Breaks: llvm-@LLVM_VERSION@-dev (<< 1:14.0.4-2) +Replaces: llvm-@LLVM_VERSION@-dev (<< 1:14.0.4-2) +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 + GNU Compiler Collection (GCC). + . + Clang implements all of the ISO C++ 1998, 11, 14 and 17 standards and also + provides most of the support of C++20. + . + This package contains the Clang headers to develop extensions over + libclang1-@LLVM_VERSION@. + +Package: libclang-common-@LLVM_VERSION@-dev +Architecture: any +Section: libdevel +Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm@LLVM_VERSION@ (= ${binary:Version}) +Description: Clang library - Common 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 + GNU Compiler Collection (GCC). + . + Clang implements all of the ISO C++ 1998, 11, 14 and 17 standards and also + provides most of the support of C++20. + . + This package contains the Clang generic headers and some libraries + (profiling, etc). + +Package: libclang-cpp@LLVM_VERSION@ +Section: libs +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm@LLVM_VERSION@ (= ${binary:Version}) +Pre-Depends: ${misc:Pre-Depends} +Description: C++ interface to the Clang library + 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 + GNU Compiler Collection (GCC). + . + Clang implements all of the ISO C++ 1998, 11, 14 and 17 standards and also + provides most of the support of C++20. + . + This package contains the Clang C++ library. + . + The C++ Interface to Clang provides an API that exposes + facilities for parsing source code into an abstract syntax tree (AST), + loading already-parsed ASTs, traversing the AST, associating physical source + locations with elements within the AST, and other facilities that support + Clang-based development tools. + +Package: libclang-cpp@LLVM_VERSION@-dev +Architecture: any +Section: libdevel +Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs}, + libclang-cpp@LLVM_VERSION@ (= ${binary:Version}) +# Move of libclang-cpp.so into libclang-cpp@LLVM_VERSION@.dev +Description: C++ interface to the Clang library + 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 + GNU Compiler Collection (GCC). + . + Clang implements all of the ISO C++ 1998, 11, 14 and 17 standards and also + provides most of the support of C++20. + . + This package contains the Clang C++ library. + . + The C++ Interface to Clang provides an API that exposes + facilities for parsing source code into an abstract syntax tree (AST), + loading already-parsed ASTs, traversing the AST, associating physical source + locations with elements within the AST, and other facilities that support + Clang-based development tools. + . + This package contains symlinks without a version number, which needed by + linker at build time. + + +Package: libfuzzer-@LLVM_VERSION@-dev +Architecture: linux-any +Section: libdevel +Depends: ${shlibs:Depends}, ${misc:Depends}, clang-@LLVM_VERSION@ (= ${binary:Version}) +Description: Library for coverage-guided fuzz testing + LibFuzzer is a library for in-process, coverage-guided, evolutionary fuzzing + of other libraries. + . + LibFuzzer is similar in concept to American Fuzzy Lop (AFL), but it performs + all of its fuzzing inside a single process. This in-process fuzzing can be + more restrictive and fragile, but is potentially much faster as there is no + overhead for process start-up. + . + The fuzzer is linked with the library under test, and feeds fuzzed inputs to + the library via a specific fuzzing entrypoint (aka 'target function'); the + fuzzer then tracks which areas of the code are reached, and generates mutations + on the corpus of input data in order to maximize the code coverage. The code + coverage information for libFuzzer is provided by LLVM's SanitizerCoverage + instrumentation. + + +Package: python3-clang-@LLVM_VERSION@ +Section: python +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, python3, libclang-@LLVM_VERSION@-dev +Replaces: python-clang-x.y, +Conflicts: python-clang-x.y +Provides: python-clang-x.y +Description: Clang Python Bindings + 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 + GNU Compiler Collection (GCC). + . + Clang implements all of the ISO C++ 1998, 11, 14 and 17 standards and also + provides most of the support of C++20. + . + This binding package provides access to the Clang compiler and libraries. + +Package: clang-@LLVM_VERSION@-examples +Architecture: any +Section: doc +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Clang examples + 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 + GNU Compiler Collection (GCC). + . + Clang implements all of the ISO C++ 1998, 11, 14 and 17 standards and also + provides most of the support of C++20. + . + This package contains the Clang examples. + +# ------------- LLVM ------------- + +Package: libllvm@LLVM_VERSION@ +Architecture: any +Section: libs +Depends: ${shlibs:Depends}, ${misc:Depends} +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: Modular compiler and toolchain technologies, runtime library + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + This package contains the LLVM runtime library. + +Package: llvm-@LLVM_VERSION@-linker-tools +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Modular compiler and toolchain technologies - Plugins + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + This package contains the LLVMgold and LLVMPolly linker plugins. + +Package: llvm-@LLVM_VERSION@ +Architecture: any +Suggests: llvm-@LLVM_VERSION@-doc +Depends: llvm-@LLVM_VERSION@-runtime (= ${binary:Version}), + llvm-@LLVM_VERSION@-linker-tools (= ${binary:Version}), + ${shlibs:Depends}, ${misc:Depends} +Recommends: llvm-@LLVM_VERSION@-dev +Description: Modular compiler and toolchain technologies + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both + as an offline code representation (to communicate code between + compiler phases and to run-time systems) and as the compiler internal + representation (to analyze and transform programs). This persistent + code representation allows a common set of sophisticated compiler + techniques to be applied at compile-time, link-time, install-time, + run-time, or "idle-time" (between program runs). + . + The strengths of the LLVM infrastructure are its extremely + simple design (which makes it easy to understand and use), + source-language independence, powerful mid-level optimizer, automated + compiler debugging support, extensibility, and its stability and + reliability. LLVM is currently being used to host a wide variety of + academic research projects and commercial projects. LLVM includes C + and C++ front-ends, a front-end for a Forth-like language (Stacker), + a young scheme front-end, and Java support is in development. LLVM can + generate code for X96, SparcV10, PowerPC or many other architectures. + +Package: llvm-@LLVM_VERSION@-runtime +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +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 + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both + as an offline code representation (to communicate code between + compiler phases and to run-time systems) and as the compiler internal + representation (to analyze and transform programs). This persistent + code representation allows a common set of sophisticated compiler + techniques to be applied at compile-time, link-time, install-time, + run-time, or "idle-time" (between program runs). + . + This package provides the minimal required to execute programs in LLVM + format. + +Package: llvm-@LLVM_VERSION@-dev +Architecture: any +Depends: ${shlibs:Depends}, libffi-dev, ${misc:Depends}, + llvm-@LLVM_VERSION@ (= ${binary:Version}), libllvm@LLVM_VERSION@ (= ${binary:Version}), libtinfo-dev, + llvm-@LLVM_VERSION@-tools (= ${binary:Version}), libclang-cpp@LLVM_VERSION@ (= ${binary:Version}), + libz3-dev, libxml2-dev +Description: Modular compiler and toolchain technologies, libraries and headers + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both + as an offline code representation (to communicate code between + compiler phases and to run-time systems) and as the compiler internal + representation (to analyze and transform programs). This persistent + code representation allows a common set of sophisticated compiler + techniques to be applied at compile-time, link-time, install-time, + run-time, or "idle-time" (between program runs). + . + This package provides the libraries and headers to develop applications + using llvm. + +Package: llvm-@LLVM_VERSION@-tools +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, python3, + python3-pygments, python3-yaml, +# Because of yaml-bench +Description: Modular compiler and toolchain technologies, tools + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both + as an offline code representation (to communicate code between + compiler phases and to run-time systems) and as the compiler internal + representation (to analyze and transform programs). This persistent + code representation allows a common set of sophisticated compiler + techniques to be applied at compile-time, link-time, install-time, + run-time, or "idle-time" (between program runs). + . + This package provides tools for testing. + +Package: libllvm-@LLVM_VERSION@-ocaml-dev +Section: ocaml +Architecture: amd64 arm64 armhf ppc64el s390x riscv64 +Suggests: llvm-@LLVM_VERSION@-doc +Depends: ${shlibs:Depends}, ${misc:Depends}, ${ocaml:Depends}, llvm-@LLVM_VERSION@-dev (= ${binary:Version}) +Replaces: libllvm-x.y-ocaml-dev +Conflicts: libllvm-x.y-ocaml-dev +Provides: ${ocaml:Provides}, libllvm-x.y-ocaml-dev +Description: Modular compiler and toolchain technologies, OCaml bindings + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both + as an offline code representation (to communicate code between + compiler phases and to run-time systems) and as the compiler internal + representation (to analyze and transform programs). This persistent + code representation allows a common set of sophisticated compiler + techniques to be applied at compile-time, link-time, install-time, + run-time, or "idle-time" (between program runs). + . + This package provides the OCaml bindings to develop applications using llvm. + +Package: llvm-@LLVM_VERSION@-doc +Section: doc +Architecture: all +Depends: ${misc:Depends}, libjs-jquery, libjs-underscore +Description: Modular compiler and toolchain technologies, documentation + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both + as an offline code representation (to communicate code between + compiler phases and to run-time systems) and as the compiler internal + representation (to analyze and transform programs). This persistent + code representation allows a common set of sophisticated compiler + techniques to be applied at compile-time, link-time, install-time, + run-time, or "idle-time" (between program runs). + . + This package contains all documentation (extensive). + +Package: llvm-@LLVM_VERSION@-examples +Section: doc +Architecture: all +Depends: ${misc:Depends}, llvm-@LLVM_VERSION@-dev (>= ${source:Version}), llvm-@LLVM_VERSION@-dev (<< ${source:Version}+c~) +Description: Modular compiler and toolchain technologies, examples + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both + as an offline code representation (to communicate code between + compiler phases and to run-time systems) and as the compiler internal + representation (to analyze and transform programs). This persistent + code representation allows a common set of sophisticated compiler + techniques to be applied at compile-time, link-time, install-time, + run-time, or "idle-time" (between program runs). + . + This package contains examples for using LLVM, both in developing + extensions to LLVM and in using it to compile code. + + +# ------------- lld ------------- + +Package: lld-@LLVM_VERSION@ +Architecture: amd64 arm64 armel armhf i386 mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 riscv64 +# ia64 hurd powerpc have been removed +Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm@LLVM_VERSION@ (= ${binary:Version}) +Pre-Depends: ${misc:Pre-Depends} +Description: LLVM-based linker + LLD is a new, high-performance linker. It is built as a set of reusable + components which highly leverage existing libraries in the larger LLVM + Project. + +Package: liblld-@LLVM_VERSION@ +Architecture: amd64 arm64 armel armhf i386 mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 riscv64 +# ia64 hurd powerpc have been removed +Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm@LLVM_VERSION@ (= ${binary:Version}) +Pre-Depends: ${misc:Pre-Depends} +Section: libs +Description: LLVM-based linker, library + LLD is a new, high-performance linker. It is built as a set of reusable + components which highly leverage existing libraries in the larger LLVM + Project. + . + This package contains the LLD runtime library. + +Package: liblld-@LLVM_VERSION@-dev +Section: libdevel +Architecture: amd64 arm64 armel armhf i386 mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 riscv64 +# ia64 hurd powerpc have been removed +Depends: ${shlibs:Depends}, ${misc:Depends}, lld-@LLVM_VERSION@ (= ${binary:Version}), + liblld-@LLVM_VERSION@ (= ${binary:Version}) +Pre-Depends: ${misc:Pre-Depends} +Description: LLVM-based linker, header files + LLD is a new, high-performance linker. It is built as a set of reusable + components which highly leverage existing libraries in the larger LLVM + Project. + . + This package provides the header files to build extension over lld. + + +# ------------- lldb ------------- + +Package: lldb-@LLVM_VERSION@ +Architecture: amd64 arm64 armel armhf i386 ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc hppa m68k sh4 x32 +# ia64 hurd powerpc powerpcspe ppc64 alpha riscv64 s390x sparc64 mipsel mips64el have been removed +Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm@LLVM_VERSION@ (= ${binary:Version}), llvm-@LLVM_VERSION@-dev, + python3-lldb-@LLVM_VERSION@ +Pre-Depends: ${misc:Pre-Depends} +Description: Next generation, high-performance debugger + LLDB is a next generation, high-performance debugger. It is built as a set of + reusable components which highly leverage existing libraries in the larger LLVM + Project, such as the Clang expression parser and LLVM disassembler. + +Package: liblldb-@LLVM_VERSION@ +Architecture: amd64 arm64 armel armhf i386 ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc hppa m68k sh4 x32 +# ia64 hurd powerpc powerpcspe ppc64 alpha riscv64 s390x sparc64 mipsel mips64el have been removed +Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm@LLVM_VERSION@ (= ${binary:Version}) +Pre-Depends: ${misc:Pre-Depends} +Section: libs +Description: Next generation, high-performance debugger, library + LLDB is a next generation, high-performance debugger. It is built as a set of + reusable components which highly leverage existing libraries in the larger LLVM + Project, such as the Clang expression parser and LLVM disassembler. + . + This package contains the LLDB runtime library. + +Package: python3-lldb-@LLVM_VERSION@ +Section: python +Architecture: amd64 arm64 armel armhf i386 ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc hppa m68k sh4 x32 +# ia64 hurd powerpc powerpcspe ppc64 alpha riscv64 s390x sparc64 mipsel mips64el have been removed +Depends: ${shlibs:Depends}, ${misc:Depends}, ${python3:Depends}, liblldb-@LLVM_VERSION@ (= ${binary:Version}), python3-six +Conflicts: python3-lldb-x.y +Replaces: python3-lldb-x.y +Provides: python3-lldb-x.y +Pre-Depends: ${misc:Pre-Depends} +Description: Next generation, high-performance debugger, python3 lib + LLDB is a next generation, high-performance debugger. It is built as a set of + reusable components which highly leverage existing libraries in the larger LLVM + Project, such as the Clang expression parser and LLVM disassembler. + . + This binding package provides access to lldb. + +Package: liblldb-@LLVM_VERSION@-dev +Section: libdevel +Architecture: amd64 arm64 armel armhf i386 ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc hppa m68k sh4 x32 +# ia64 hurd powerpc powerpcspe ppc64 alpha riscv64 s390x sparc64 mipsel mips64el have been removed +Depends: ${shlibs:Depends}, ${misc:Depends}, lldb-@LLVM_VERSION@ (= ${binary:Version}) +Pre-Depends: ${misc:Pre-Depends} +Description: Next generation, high-performance debugger, header files + LLDB is a next generation, high-performance debugger. It is built as a set of + reusable components which highly leverage existing libraries in the larger LLVM + Project, such as the Clang expression parser and LLVM disassembler. + . + This package provides the header files to build extension over lldb. + + +# ------------- openmp ------------- +# 44 because it was the first version in which openmp & libc++ have been +# managed in llvm-defaults + +Package: libomp-@LLVM_VERSION@-dev +Section: libdevel +Architecture: amd64 arm64 armhf i386 mips64el ppc64el ppc64 riscv64 +Depends: libomp5-@LLVM_VERSION@ (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Suggests: libomp-@LLVM_VERSION@-doc +Breaks: libiomp-dev (<< 3.7-1), libomp-dev (<< 44), llvm-@LLVM_VERSION@ (<< 1:14~++20211011113307+f7ca54289c14) +Provides: libomp-x.y-dev +Conflicts: libomp-x.y-dev +Replaces: libomp-x.y-dev, llvm-@LLVM_VERSION@ (<< 1:14~++20211011113307+f7ca54289c14) +Description: LLVM OpenMP runtime - dev package + The runtime is the part of the OpenMP implementation that your code is + linked against, and that manages the multiple threads in an OpenMP program + while it is executing. + +Package: libomp5-@LLVM_VERSION@ +Multi-Arch: same +Architecture: amd64 arm64 armhf i386 mips64el ppc64el ppc64 riscv64 +Depends: ${shlibs:Depends}, ${misc:Depends} +Breaks: libomp5 (<< 44) +Provides: libomp-x.y +Conflicts: libomp-x.y +Replaces: libomp-x.y +Description: LLVM OpenMP runtime + The runtime is the part of the OpenMP implementation that your code is + linked against, and that manages the multiple threads in an OpenMP program + while it is executing. + +Package: libomp-@LLVM_VERSION@-doc +Section: doc +Architecture: amd64 arm64 armhf i386 mips64el ppc64el ppc64 riscv64 +Depends: ${shlibs:Depends}, ${misc:Depends}, libjs-jquery +Replaces: libiomp-x.y-doc +Breaks: libiomp-x.y-doc +Description: LLVM OpenMP runtime - Documentation + The runtime is the part of the OpenMP implementation that your code is + linked against, and that manages the multiple threads in an OpenMP program + while it is executing. + . + This package contains the documentation of this package. + +# ------------- libcxx ------------- + +Package: libc++1-@LLVM_VERSION@ +Section: libs +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: ${shlibs:Depends}, ${misc:Depends} +Suggests: clang +Breaks: libc++1 (<< 44) +Provides: libc++-x.y +Conflicts: libc++-x.y +Replaces: libc++-x.y +Description: LLVM C++ Standard library + libc++ is another implementation of the C++ standard library. + . + Features and Goals + . + * Correctness as defined by the C++ standards. + * Fast execution. + * Minimal memory use. + * Fast compile times. + * ABI compatibility with gcc's libstdc++ for some low-level features such + as exception objects, rtti and memory allocation. + * Extensive unit tests. + +Package: libc++-@LLVM_VERSION@-dev +Section: libdevel +Architecture: any +Multi-Arch: same +Depends: libc++1-@LLVM_VERSION@ (= ${binary:Version}), ${misc:Depends}, + libunwind-@LLVM_VERSION@-dev [amd64 arm64 armhf i386 mips64el ppc64el ppc64 riscv64] +Breaks: libc++-dev (<< 44) +Provides: libc++-x.y-dev +Conflicts: libc++-x.y-dev +Replaces: libc++-x.y-dev +Description: LLVM C++ Standard library (development files) + libc++ is another implementation of the C++ standard library + . + Features and Goals + . + * Correctness as defined by the C++ standards. + * Fast execution. + * Minimal memory use. + * Fast compile times. + * ABI compatibility with gcc's libstdc++ for some low-level features such + as exception objects, rtti and memory allocation. + * Extensive unit tests. + +Package: libc++-@LLVM_VERSION@-dev-wasm32 +Section: libdevel +Architecture: all +Multi-Arch: foreign +Depends: wasi-libc, libc++abi-@LLVM_VERSION@-dev-wasm32, ${misc:Depends} +Provides: libc++-x.y-dev-wasm32 +Conflicts: libc++-x.y-dev-wasm32 +Replaces: libc++-x.y-dev-wasm32 +Description: LLVM C++ Standard library (WASI) + libc++ is another implementation of the C++ standard library + . + Features and Goals + . + * Correctness as defined by the C++ standards. + * Fast execution. + * Minimal memory use. + * Fast compile times. + * ABI compatibility with gcc's libstdc++ for some low-level features such + as exception objects, rtti and memory allocation. + * Extensive unit tests. + . + This package provides a version for the 32-bit WebAssembly System Interface. + +# ------------- libcxxabi ------------- + +Package: libc++abi1-@LLVM_VERSION@ +Section: libs +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: ${shlibs:Depends}, ${misc:Depends} +Breaks: libc++abi1 (<< 44) +Provides: libc++abi-x.y +Conflicts: libc++abi-x.y +Replaces: libc++abi-x.y +Description: LLVM low level support for a standard C++ library + libc++abi is another implementation of low level support for a standard C++ + library. + . + Features and Goals + . + * Correctness as defined by the C++ standards. + * Provide a portable sublayer to ease the porting of libc++ + +Package: libc++abi-@LLVM_VERSION@-dev +Section: libdevel +Architecture: any +Multi-Arch: same +Depends: libc++abi1-@LLVM_VERSION@ (= ${binary:Version}), ${misc:Depends} +Breaks: libc++abi-dev (<= 44) +Provides: libc++abi-x.y-dev +Conflicts: libc++abi-x.y-dev +Replaces: libc++abi-x.y-dev +Description: LLVM low level support for a standard C++ library (development files) + libc++abi is another implementation of low level support for a standard C++ + library. + . + Features and Goals + . + * Correctness as defined by the C++ standards. + * Provide a portable sublayer to ease the porting of libc++ + +Package: libc++abi-@LLVM_VERSION@-dev-wasm32 +Section: libdevel +Architecture: all +Multi-Arch: foreign +Depends: wasi-libc, ${misc:Depends} +Provides: libc++abi-x.y-dev-wasm32 +Conflicts: libc++abi-x.y-dev-wasm32 +Replaces: libc++abi-x.y-dev-wasm32 +Description: LLVM low level support for a standard C++ library (WASI) + libc++abi is another implementation of low level support for a standard C++ + library. + . + Features and Goals + . + * Correctness as defined by the C++ standards. + * Provide a portable sublayer to ease the porting of libc++ + . + This package provides a version for the 32-bit WebAssembly System Interface. + +# ------------- libclc ------------- + +Package: libclc-@LLVM_VERSION@ +Section: libs +Architecture: all +Multi-Arch: foreign +Depends: + ${misc:Depends}, + libclc-@LLVM_VERSION@-dev (= ${binary:Version}), + libclang-common-@LLVM_VERSION@-dev, +Breaks: libclc-amdgcn, libclc-ptx, libclc-r600 +Provides: libclc-x.y +Conflicts: libclc-x.y +Replaces: libclc-x.y, libclc-amdgcn, libclc-ptx, libclc-r600, +Description: OpenCL C language implementation - platform support + libclc is an open implementation of the OpenCL C programming language, + as specified by the OpenCL 1.1 Specification. + . + This package contains support for the amdgcn (AMD GPU), PTX and r600 + platforms. + +Package: libclc-@LLVM_VERSION@-dev +Section: libdevel +Architecture: all +Multi-Arch: foreign +Depends: + ${misc:Depends}, +Breaks: libclc-dev +Provides: libclc-x.y-dev +Conflicts: libclc-x.y-dev +Replaces: libclc-dev, libclc-x.y-dev +Description: OpenCL C language implementation - development files + libclc is an open implementation of the OpenCL C programming language, + as specified by the OpenCL 1.1 Specification. + . + This package contains development header files. + +# ------------- libunwind ------------- + +Package: libunwind-@LLVM_VERSION@ +Section: libs +Architecture: amd64 arm64 armhf i386 mips64el ppc64el ppc64 riscv64 +Multi-Arch: same +Depends: ${shlibs:Depends}, + ${misc:Depends} +Provides: libunwind-x.y +Conflicts: libunwind-x.y +Replaces: libunwind-x.y +Description: production-quality unwinder + libunwind is a production-quality unwinder, with platform support for DWARF + unwind info, SjLj, and ARM EHABI. + . + The low level libunwind API was designed to work either in-process (aka local) + or to operate on another process (aka remote), but only the local path has + been implemented. Remote unwinding remains as future work. + +Package: libunwind-@LLVM_VERSION@-dev +Section: libdevel +Architecture: amd64 arm64 armhf i386 mips64el ppc64el ppc64 riscv64 +Multi-Arch: same +Depends: + ${misc:Depends}, + libunwind-@LLVM_VERSION@ (= ${binary:Version}) +Provides: libunwind-dev, libunwind-x.y-dev +Conflicts: libunwind-dev, libunwind-x.y-dev +Replaces: libunwind-dev, libunwind-x.y-dev +Description: production-quality unwinder + libunwind is a production-quality unwinder, with platform support for DWARF + unwind info, SjLj, and ARM EHABI. + . + The low level libunwind API was designed to work either in-process (aka local) + or to operate on another process (aka remote), but only the local path has + been implemented. Remote unwinding remains as future work. + +# ------------- mlir ------------- + +Package: mlir-@LLVM_VERSION@-tools +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Multi-Level Intermediate Representation tools + Novel approach to building reusable and extensible compiler infrastructure. + MLIR aims to address software fragmentation, improve compilation for + heterogeneous hardware, significantly reduce the cost of building domain + specific compilers, and aid in connecting existing compilers together. + . + This package provides tools. + +Package: libmlir-@LLVM_VERSION@ +Section: libs +Architecture: any +Multi-Arch: same +Depends: ${shlibs:Depends}, + ${misc:Depends} +Provides: libmlir-x.y +Conflicts: libmlir-x.y +Replaces: libmlir-x.y +Description: Multi-Level Intermediate Representation library + Novel approach to building reusable and extensible compiler infrastructure. + MLIR aims to address software fragmentation, improve compilation for + heterogeneous hardware, significantly reduce the cost of building domain + specific compilers, and aid in connecting existing compilers together. + + +Package: libmlir-@LLVM_VERSION@-dev +Section: libdevel +Architecture: any +Multi-Arch: same +Depends: + ${misc:Depends}, + libmlir-@LLVM_VERSION@ (= ${binary:Version}) +Breaks: libmlir-dev +Provides: libmlir-x.y-dev +Conflicts: libmlir-x.y-dev +Replaces: libmlir-dev, libmlir-x.y-dev +Description: Multi-Level Intermediate Representation library + Novel approach to building reusable and extensible compiler infrastructure. + MLIR aims to address software fragmentation, improve compilation for + heterogeneous hardware, significantly reduce the cost of building domain + specific compilers, and aid in connecting existing compilers together. + + diff --git a/debian/rules b/debian/rules index 2b389879..93e9f558 100755 --- a/debian/rules +++ b/debian/rules @@ -20,6 +20,13 @@ ifeq ($(LLVM_VERSION),$(LLVM_VERSION_FULL)) LLVM_VERSION_FULL := $(LLVM_VERSION).0.0 endif +SOURCE_NAME := $(shell dpkg-parsechangelog -S Source) +ifneq (,$(findstring snapshot,$(SOURCE_NAME))) + BRANCH_NAME=snapshot +else + BRANCH_NAME=$(LLVM_VERSION) +endif + SONAME_EXT := 1 # clang soname has started with llvm-toolchain-13. # it is normal that 13 is what is seen in 14 or later version as @@ -473,6 +480,7 @@ preconfigure: f2=$$(echo $$f | sed 's/\.in$$//;s/X\.Y/$(LLVM_VERSION)/'); \ echo "$$f => $$f2"; \ sed -e 's|@DEB_HOST_MULTIARCH@|$(DEB_HOST_MULTIARCH)|g' \ + -e "s|@BRANCH_NAME@|$(BRANCH_NAME)|g" \ -e "s|@OCAML_STDLIB_DIR@|$(OCAML_STDLIB_DIR)|g" \ -e "s|@LLVM_VERSION_FULL@|$(LLVM_VERSION_FULL)|g" \ -e "s|@LLVM_VERSION@|$(LLVM_VERSION)|g" $$f > $$f2; \