llvm-toolchain/debian
Sylvestre Ledru 5821a6165d Extends the lintian override as it is causing other issues:
lintian.llvm-toolchain-snapshot source.invalid-arch-string-in-source-relation riscv64 [build-depends: ocaml-nox [amd64 arm64 armhf ppc64el riscv64 s390x]]
    lintian.llvm-toolchain-snapshot source.invalid-arch-string-in-source-relation riscv64 [build-depends: ocaml-findlib [amd64 arm64 armhf ppc64el riscv64 s390x]]
    lintian.llvm-toolchain-snapshot source.invalid-arch-string-in-source-relation riscv64 [build-depends: libctypes-ocaml-dev [amd64 arm64 armhf ppc64el riscv64 s390x]]
    lintian.llvm-toolchain-snapshot source.invalid-arch-string-in-source-relation riscv64 [build-depends: dh-ocaml [amd64 arm64 armhf ppc64el riscv64 s390x]]
2021-08-28 09:46:22 +02:00
..
patches Update changelog, add an omp-riscv64 patch not yet upstreamed to help omp build successfully there 2021-08-27 11:21:58 +02:00
source Extends the lintian override as it is causing other issues: 2021-08-28 09:46:22 +02:00
tests Replace use of deprecated $ADTTMP with $AUTOPKGTEST_TMP. 2020-10-31 14:08:14 +01:00
changelog Update changelog, add an omp-riscv64 patch not yet upstreamed to help omp build successfully there 2021-08-27 11:21:58 +02:00
clang-format-X.Y.install.in * Cmake migration. Done by Andrew Wilkins. Many thanks to him 2016-02-08 12:49:57 +00:00
clang-format-X.Y.lintian-overrides.in Manage all files using .in mecanism. It will simplify the upgrade of 2014-07-28 11:34:35 +00:00
clang-format-X.Y.manpages.in Bring back the lto (gone with the cmake migration) 2016-08-08 16:53:25 +00:00
clang-tidy-X.Y.install.in Also install run-clang-tidy.py & clang-tidy-diff.py (also installed in 2015-11-16 09:39:05 +00:00
clang-tidy-X.Y.links.in Create symlink to run-clang-tidy-X.Y.py to remove its .py extension (Closes: #892089) 2018-03-28 08:55:54 +02:00
clang-tidy-X.Y.lintian-overrides.in Fix the lintian overrides for clang-tidy 2015-10-19 12:18:13 +00:00
clang-tidy-X.Y.manpages.in * Introduce clang-tidy-3.8 as a separate package. Replaces clang-modernize 2015-10-19 09:00:38 +00:00
clang-tools-X.Y.install.in hwasan_symbolize: bring it back 2020-11-01 15:09:00 +01:00
clang-tools-X.Y.links.in hwasan_symbolize: bring it back 2020-11-01 15:09:00 +01:00
clang-tools-X.Y.lintian-overrides.in Create clang-tools-4.0 and move the various clang tools into it 2017-11-20 11:07:53 +00:00
clang-tools-X.Y.manpages.in Create clang-tools-4.0 and move the various clang tools into it 2017-11-20 11:07:53 +00:00
clang-X.Y-doc.docs.in Adjust the paths with the move to git project 2019-10-20 11:24:40 +02:00
clang-X.Y-doc.install.in install more files in the clang doc package 2019-08-13 17:52:57 +02:00
clang-X.Y-examples.examples.in Manage all files using .in mecanism. It will simplify the upgrade of 2014-07-28 11:34:35 +00:00
clang-X.Y.install.in Make CMake find_package(Clang) work. Fixes upstream bug https://bugs.llvm.org/show_bug.cgi?id=37128 2018-05-08 12:27:10 +02:00
clang-X.Y.links.in Fix the install of clang bash completion 2018-10-10 15:06:08 +02:00
clang-X.Y.lintian-overrides.in Silent executable-not-elf-or-script usr/lib/llvm-8/share/clang/bash-autocomplete.sh 2019-01-17 10:28:08 +01:00
clang-X.Y.manpages.in Create clang-tools-4.0 and move the various clang tools into it 2017-11-20 11:07:53 +00:00
clangd-X.Y.install.in Ship clangd-8 as a new package (Closes: #932432) 2019-07-31 22:38:49 +02:00
clangd-X.Y.manpages.in Ship clangd-8 as a new package (Closes: #932432) 2019-07-31 22:38:49 +02:00
compat Revert "Bump debhelper from old 9 to 12." 2019-12-09 17:30:17 +01:00
control First attempt to fix riscv64 build, by fixing build deps and correctly enabling ocaml/lld and other features. 2021-08-27 08:45:23 +02:00
copyright Add debian/* to the copyright file. Uses the same license as LLVM 2020-09-02 13:55:52 +02:00
debian_path.h Remove old stuff 2013-12-02 17:04:04 +00:00
libc++1-X.Y.install.in Revert "make libc++ packages coinstallable" 2018-09-17 22:10:18 +05:30
libc++1-X.Y.links.in Revert "make libc++ packages coinstallable" 2018-09-17 22:10:18 +05:30
libc++1-X.Y.lintian-overrides.in Revert "make libc++ packages coinstallable" 2018-09-17 22:10:18 +05:30
libc++-X.Y-dev.install.in * experimental New snapshot release 2020-03-25 15:48:02 +01:00
libc++-X.Y-dev.links.in Remove useless symlink /usr/include/c++ -> ../lib/llvm-7/include/c++ (Closes: #913400) 2018-11-17 09:22:22 +01:00
libc++-X.Y-dev.lintian-overrides.in Remove libc++fs.a (done upstream) 2019-03-22 00:00:13 +01:00
libc++abi1-X.Y.install.in Revert "make libc++ packages coinstallable" 2018-09-17 22:10:18 +05:30
libc++abi1-X.Y.links.in Revert "make libc++ packages coinstallable" 2018-09-17 22:10:18 +05:30
libc++abi1-X.Y.lintian-overrides.in Revert "make libc++ packages coinstallable" 2018-09-17 22:10:18 +05:30
libc++abi-X.Y-dev.install.in Revert "make libc++ packages coinstallable" 2018-09-17 22:10:18 +05:30
libc++abi-X.Y-dev.links.in Revert "make libc++ packages coinstallable" 2018-09-17 22:10:18 +05:30
libc++abi-X.Y-dev.lintian-overrides.in Fix some lintian warnings from libcxx* integration 2018-08-14 14:11:19 +00:00
libclang1-X.Y.install.in merge recent changes 2016-08-08 09:16:54 +00:00
libclang1-X.Y.links.in * Cmake migration. Done by Andrew Wilkins. Many thanks to him 2016-02-08 12:49:57 +00:00
libclang1-X.Y.lintian-overrides.in fix another override 2019-07-14 20:15:24 +02:00
libclang1-X.Y.symbols.in * Add new symbols to libclang1: 2020-09-06 17:02:58 +02:00
libclang-common-X.Y-dev.install.in Use dh-exec to exclude lib/libPolly*.a on powerpc and powerpcspe 2020-08-29 18:32:43 +02:00
libclang-common-X.Y-dev.links.in Manage all files using .in mecanism. It will simplify the upgrade of 2014-07-28 11:34:35 +00:00
libclang-cppX.Y-dev.install.in fix links 2020-03-03 08:12:57 +01:00
libclang-cppX.Y-dev.links.in remove a link which would prevent lib to be coinstsallable 2020-03-03 10:01:27 +01:00
libclang-cppX.Y.install.in Fix the libclang-cpp* packages 2020-03-02 20:31:38 +01:00
libclang-cppX.Y.links.in Fix the libclang-cpp* packages 2020-03-02 20:31:38 +01:00
libclang-X.Y-dev.install.in Merge remote-tracking branch 'origin/10' into snapshot 2020-03-03 11:59:33 +01:00
libclang-X.Y-dev.links.in * Cmake migration. Done by Andrew Wilkins. Many thanks to him 2016-02-08 12:49:57 +00:00
libclc-X.Y-dev.install.in libclc: be more prescriptive for the install + test script 2021-05-01 16:28:55 +02:00
libclc-X.Y.install.in debian: Include SPIR-V (*.spv) outputs in libclc package 2021-08-19 00:33:09 -07:00
liblld-X.Y-dev.install.in Install usr/lib/llvm-11/lib/cmake/lld/*.cmake in liblld-11-dev 2020-05-17 09:56:05 +02:00
liblld-X.Y.install.in * Also install liblldMachO2.a in liblld 2020-04-01 11:05:04 +02:00
liblld-X.Y.links.in Move python2.7 to python3 for clang binaries, Reupload to sid (Closes: #948409) 2020-01-08 12:17:34 +01:00
liblldb-X.Y-dev.install.in * New snapshot release 2019-07-14 00:39:48 +02:00
liblldb-X.Y-dev.links.in Add the missing lldb symlinks (Closes: #872237) 2017-10-01 20:55:23 +00:00
liblldb-X.Y.install.in remove old comments 2019-12-04 11:40:54 +01:00
liblldb-X.Y.links.in Add the missing lldb symlinks (Closes: #872237) 2017-10-01 20:55:23 +00:00
liblldb-X.Y.lintian-overrides.in * Generate manpages for lli, lldb-mi & git-clang-format 2016-08-08 09:06:17 +00:00
libllvm-X.Y-ocaml-dev.dirs.in Manage all files using .in mecanism. It will simplify the upgrade of 2014-07-28 11:34:35 +00:00
libllvm-X.Y-ocaml-dev.install.in New snapshot release 2017-05-06 08:02:18 +00:00
libllvm-X.Y-ocaml-dev.lintian-overrides.in Manage all files using .in mecanism. It will simplify the upgrade of 2014-07-28 11:34:35 +00:00
libllvm-X.Y-ocaml-dev.META.in Manage all files using .in mecanism. It will simplify the upgrade of 2014-07-28 11:34:35 +00:00
libllvmX.Y.install.in Manage all files using .in mecanism. It will simplify the upgrade of 2014-07-28 11:34:35 +00:00
libllvmX.Y.links.in * Cmake migration. Done by Andrew Wilkins. Many thanks to him 2016-02-08 12:49:57 +00:00
libllvmX.Y.lintian-overrides.in Manage all files using .in mecanism. It will simplify the upgrade of 2014-07-28 11:34:35 +00:00
libomp5-X.Y.install.in Also install usr/lib/llvm-12/lib/libomptarget.so.12 in libomp5-12 2020-12-14 09:11:44 +01:00
libomp5-X.Y.links.in Revert "OpenMP packages are coinstallable" 2018-09-17 22:14:20 +05:30
libomp5-X.Y.lintian-overrides.in Revert "OpenMP packages are coinstallable" 2018-09-17 22:14:20 +05:30
libomp5-X.Y.symbols.in * Refresh the openmp symbol list 2021-02-28 15:08:24 +01:00
libomp-X.Y-dev.install.in fix merge 2020-09-02 22:35:48 +02:00
libomp-X.Y-dev.links.in Bring back usr/lib/@DEB_HOST_MULTIARCH@/{libiomp5.so, libomp5.so} symlink for gcc (Closes: #912641) 2018-11-06 10:49:25 +01:00
libomp-X.Y-doc.docs.in Integrating OpenMP in toolchain 2018-07-10 21:05:15 +00:00
libomp-X.Y.links.in OpenMP integration follow ups 2018-08-07 17:11:41 +00:00
libunwind-X.Y-dev.install.in Generate libunwind-12 & libunwind-12-dev packages 2021-07-30 14:27:04 +02:00
libunwind-X.Y-dev.links.in Generate libunwind-12 & libunwind-12-dev packages 2021-07-30 14:27:04 +02:00
libunwind-X.Y-dev.lintian-overrides.in Generate libunwind-12 & libunwind-12-dev packages 2021-07-30 14:27:04 +02:00
libunwind-X.Y.install.in Generate libunwind-12 & libunwind-12-dev packages 2021-07-30 14:27:04 +02:00
libunwind-X.Y.links.in Generate libunwind-12 & libunwind-12-dev packages 2021-07-30 14:27:04 +02:00
libunwind-X.Y.lintian-overrides.in Generate libunwind-12 & libunwind-12-dev packages 2021-07-30 14:27:04 +02:00
lld-X.Y.install.in also install usr/bin/ld64.lld.darwinnew-12 2020-11-26 20:47:24 +01:00
lld-X.Y.manpages.in fix the declaration typo 2018-02-13 12:21:41 +00:00
lldb-X.Y.install.in Merge remote-tracking branch 'origin/9' into snapshot 2019-10-05 21:09:33 +02:00
lldb-X.Y.links.in Add a symlink to fix lldb-X.Y - for real (Closes: #881993) 2017-12-22 14:16:54 +00:00
lldb-X.Y.lintian-overrides.in * sync from 1:3.4.2-9~exp1 2014-09-01 17:07:05 +00:00
lldb-X.Y.manpages.in lldb-mi was removed 2019-08-13 17:47:13 +02:00
lldb-X.Y.postinst.in Manage all files using .in mecanism. It will simplify the upgrade of 2014-07-28 11:34:35 +00:00
llvm-priv-dev.dirs Temporary work about a global llvm-toolchain packages 2013-01-10 16:41:04 +00:00
llvm-X.Y-dev.dirs.in Manage all files using .in mecanism. It will simplify the upgrade of 2014-07-28 11:34:35 +00:00
llvm-X.Y-dev.install.in * Disable again LTO 2021-04-15 13:33:03 +02:00
llvm-X.Y-dev.links.in LLVMConfig.cmake was installed into wrong location 2016-10-31 13:02:26 +00:00
llvm-X.Y-doc.dirs.in Manage all files using .in mecanism. It will simplify the upgrade of 2014-07-28 11:34:35 +00:00
llvm-X.Y-doc.install.in Adjust the paths with the move to git project 2019-10-20 11:24:40 +02:00
llvm-X.Y-examples.dirs.in Manage all files using .in mecanism. It will simplify the upgrade of 2014-07-28 11:34:35 +00:00
llvm-X.Y-examples.examples.in Install llvm examples in llvm-11-examples (Closes: #969339) 2020-09-29 21:04:35 +02:00
llvm-X.Y-examples.links.in Manage all files using .in mecanism. It will simplify the upgrade of 2014-07-28 11:34:35 +00:00
llvm-X.Y-linker-tools.install.in Add missing file 2021-04-16 20:55:20 +02:00
llvm-X.Y-runtime.binfmt.in Manage all files using .in mecanism. It will simplify the upgrade of 2014-07-28 11:34:35 +00:00
llvm-X.Y-runtime.install.in Install a lli-child-target 2016-08-08 08:13:04 +00:00
llvm-X.Y-runtime.lintian-overrides.in fix various issues 2014-09-01 17:06:54 +00:00
llvm-X.Y-runtime.manpages.in * Generate manpages for lli, lldb-mi & git-clang-format 2016-08-08 09:06:17 +00:00
llvm-X.Y-runtime.postinst.in Update the binfmt-support postinstall to match what is done elsewhere in Debian 2020-07-08 14:00:03 +02:00
llvm-X.Y-runtime.prerm.in Update the binfmt-support postinstall to match what is done elsewhere in Debian 2020-07-08 14:00:03 +02:00
llvm-X.Y-tools.dirs.in * Bring back llvm-4.0-tools to life 2016-07-21 07:17:50 +00:00
llvm-X.Y-tools.install.in Install split-file in llvm-X-tools (like lit) 2020-08-04 19:03:09 +02:00
llvm-X.Y.dirs.in Manage all files using .in mecanism. It will simplify the upgrade of 2014-07-28 11:34:35 +00:00
llvm-X.Y.install.in Also ship dsymutil 2018-03-19 08:38:56 +01:00
llvm-X.Y.lintian-overrides.in ignore the json lintian warning 2016-07-02 15:15:08 +00:00
llvm-X.Y.manpages.in do not ship the manpage of bugpoint 2016-08-08 14:57:27 +00:00
NEWS prepare a news about the bootstrap stage2 phase 2018-11-16 13:04:37 +01:00
orig-tar.sh Propose simplification in version determination by deleting all non numeric characters 2021-04-09 16:59:42 +02:00
pollycc.in pollycc is now generated (it was containing 3.2 instead of 3.3) 2013-06-14 12:14:36 +00:00
prepare-new-release.sh also sed debian/tests/integration-test-suite-test file on new release 2021-08-27 08:44:49 +02:00
python3-clang-X.Y.install.in Move python2.7 to python3 for clang binaries, Reupload to sid (Closes: #948409) 2020-01-08 12:17:34 +01:00
python3-lldb-X.Y.install.in * Fix some paths, upstream moved from site-packages 2019-12-03 14:04:52 +01:00
python3-lldb-X.Y.links.in Fix link for python3-lldb package 2020-01-23 09:18:49 +01:00
qualify-clang.sh also remove test.cpp 2021-08-17 12:28:16 +02:00
README prepare -12 2020-07-15 17:26:34 +02:00
README.source * Don't use gold on ppc64el. It fails to build in that case 2020-10-31 14:14:06 +01:00
rules First attempt to fix riscv64 build, by fixing build deps and correctly enabling ocaml/lld and other features. 2021-08-27 08:45:23 +02:00
TODO update of the todo list 2019-03-26 09:34:02 +01:00
unpack.sh New upsream release 2021-07-11 23:50:01 +02:00
watch Use secure URI in debian/watch. 2019-12-08 21:02:49 +01:00

Organization of the repository
==============================

The debian package for each LLVM point release is maintained as a git branch.
For example, the 10 release lives at in the "10" branch.

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
    git clone git@salsa.debian.org:pkg-llvm-team/llvm-toolchain.git -b $f $f
done

Steps for manually building a snapshot release
==============================================

1) Retrieve the latest snapshot and create original tarballs.

   Run the orig-tar.sh script,

     $ sh snapshot/debian/orig-tar.sh

   which will retrieve the latest version for each LLVM subproject (llvm,
   clang, lldb, etc.) from the main development (upstream github). and repack it
   as a set of tarballs.

2) Unpack the original tarballs and apply quilt debian patches.

   From the branches/ directory run the unpack.sh script,

     $ sh unpack.sh

   which will unpack the source tree inside a new directory such as
   branches/llvm-toolchain-snapshot_3.9~+20191018225217+3b123a2be6d.
   (date+hour+short git hash).
   Depending on the current snapshot version number and git release,
   the directory name will be
   different.

   Quilt patches will then be applied.

3) Build the binary packages using,

     $ fakeroot debian/rules binary

When debugging, successive builds can be recompiled faster by using tools such
as ccache (PATH=/usr/lib/ccache:$PATH fakeroot debian/rules binary).

Retrieving a specific branch or release candidate with orig-tar.sh
==================================================================

When using orig-tar.sh, if you need to retrieve a specific branch, you can pass
the branch name as the first argument. For example, to get the 10 release
branch at
  https://github.com/llvm/llvm-project/branches
you should use,

  $ sh 10/debian/orig-tar.sh release/10.x

To retrieve a specific release candidate, you can pass the branch name as the
first argument, and the tag rc number as the second argument. For example, to
get the 9.0.1 release candidate rc3 at
  https://github.com/llvm/llvm-project/tags
you should use,

  $ sh 10/debian/orig-tar.sh 10.0.1 rc3

For a stable release, the syntax is:

 $ sh 10/debian/orig-tar.sh 10.0.0


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.

The script releases/snapshot/debian/prepare-new-release.sh is used when
preparing a new point release. It automatically replaces version numbers
in various files of the package.

Making a change to all versions
===============================

Sometimes, we want to make a change on all branches.
In that case, start to make the change from the older
version (example: 8), then, change branch (example: 9) and
$ git merge origin/8
to retrieve the changes


Change in major upstream version
================================
TODO update with the git commands

$ svn copy snapshot VERSION
$ svn commit -m "VERSION branched" VERSION
$ cd VERSION
$ sed -i -e '0,/llvm-toolchain-snapshot/s/llvm-toolchain-snapshot/llvm-toolchain-VERSION/' debian/changelog debian/control
$ svn commit -m "snapshot => VERSION"
$ cd ../snapshot
$ emacs debian/prepare-new-release.sh
# Change the version
$ bash debian/prepare-new-release.sh
$ svn commit -m "new snapshot release"

Now, try build build it.