diff --git a/debian/changelog b/debian/changelog index d8efae62..02428a2a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,10 @@ llvm-toolchain-19 (1:19.1.0-4) UNRELEASED; urgency=medium * Adjust the workaround for apt.llvm.org version upgrades https://github.com/llvm/llvm-project/issues/109276 + [ Matthias Klose ] + * Don't relax versioned shlibs dependencies for snapshot builds and + release versions. + -- Matthias Klose Wed, 18 Sep 2024 17:26:29 +0200 llvm-toolchain-19 (1:19.1.0-3) unstable; urgency=medium diff --git a/debian/rules b/debian/rules index 9892410e..f72b1628 100755 --- a/debian/rules +++ b/debian/rules @@ -12,11 +12,12 @@ GXX_VERSIONED_PACKAGE := $(shell dpkg-query -W -f '$${Depends}' g++ | grep -o GXX_VERSIONED_EXECUTABLE := $(shell dpkg -L $(GXX_VERSIONED_PACKAGE) | grep '/usr/bin/g++-[0-9][0-9.]*' | xargs ls -d | tail -n1 ) GCC_VERSION := $(subst /usr/bin/g++-,,$(GXX_VERSIONED_EXECUTABLE)) +PKG_VERSION := $(shell dpkg-parsechangelog | awk '/^Version:/ {print $$2}') LLVM_EPOCH := 1: -LLVM_VERSION := $(shell dpkg-parsechangelog | sed -rne "s,^Version: 1:([0-9]+).*,\1,p") -LLVM_VERSION_FULL := $(shell dpkg-parsechangelog | sed -rne "s,^Version: 1:([0-9.]+)(~|-)(.*),\1,p") -LLVM_VERSION_MINOR := $(shell dpkg-parsechangelog | sed -rne "s,^Version: 1:[0-9]+\.([0-9]+)\.[0-9]+.*,\1,p") -LLVM_VERSION_SNAPSHOT := $(shell dpkg-parsechangelog | sed -rne "s,^Version: 1:(.*),\1,p") +LLVM_VERSION := $(shell echo $(PKG_VERSION) | sed -rne "s,^1:([0-9]+).*,\1,p") +LLVM_VERSION_FULL := $(shell echo $(PKG_VERSION) | sed -rne "s,^1:([0-9.]+)(~|-)(.*),\1,p") +LLVM_VERSION_MINOR := $(shell echo $(PKG_VERSION) | sed -rne "s,^1:[0-9]+\.([0-9]+)\.[0-9]+.*,\1,p") +LLVM_VERSION_SNAPSHOT := $(shell echo $(PKG_VERSION) | sed -rne "s,^1:(.*),\1,p") ifeq ($(LLVM_VERSION),$(LLVM_VERSION_FULL)) LLVM_VERSION_FULL := $(LLVM_VERSION).0.0 LLVM_VERSION_MINOR := 0 @@ -1429,23 +1430,26 @@ endif rm -rf $(TARGET_BUILD) +# for apt.llvm.org and prerelease versions, we are depending on the +# upstream version. After release, assume that the ABIs don't change +# anymore with the point releases (X.Y.1, Y.Y.2, ...) +LLVM_RELEASE := $(LLVM_EPOCH)$(LLVM_VERSION).$(LLVM_VERSION_MINOR).0 override_dh_makeshlibs: -# for apt.llvm.org - if echo $(LLVM_VERSION_SNAPSHOT)| grep -q "~++"; then \ - dh_makeshlibs -plibclang$(SONAME_EXT)-$(LLVM_VERSION); \ - dh_makeshlibs -pliblldb-$(LLVM_VERSION); \ - dh_makeshlibs -plibllvm$(LLVM_VERSION); \ - dh_makeshlibs -plibomp$(SONAME_OPENMP)-$(LLVM_VERSION); \ - else \ - dh_makeshlibs -plibclang$(SONAME_EXT)-$(LLVM_VERSION) \ - '-Vlibclang$(SONAME_EXT)-$(LLVM_VERSION) (>= 1:19.1.0)'; \ - dh_makeshlibs -pliblldb-$(LLVM_VERSION) \ - '-Vliblldb-$(LLVM_VERSION) (>= 1:19.1.0)'; \ - dh_makeshlibs -plibllvm$(LLVM_VERSION) \ - '-Vlibllvm$(LLVM_VERSION) (>= 1:19.1.0)'; \ - dh_makeshlibs -plibomp$(SONAME_OPENMP)-$(LLVM_VERSION) \ - '-Vlibomp$(SONAME_OPENMP)-$(LLVM_VERSION) (>= 1:19.1.0)'; \ - fi +ifneq (,$(findstring ~,$(PKG_VERSION)) + dh_makeshlibs -plibclang$(SONAME_EXT)-$(LLVM_VERSION) + dh_makeshlibs -pliblldb-$(LLVM_VERSION) + dh_makeshlibs -plibllvm$(LLVM_VERSION) + dh_makeshlibs -plibomp$(SONAME_OPENMP)-$(LLVM_VERSION) +else + dh_makeshlibs -plibclang$(SONAME_EXT)-$(LLVM_VERSION) \ + '-Vlibclang$(SONAME_EXT)-$(LLVM_VERSION) (>= $(LLVM_RELEASE))' + dh_makeshlibs -pliblldb-$(LLVM_VERSION) \ + '-Vliblldb-$(LLVM_VERSION) (>= $(LLVM_RELEASE))' + dh_makeshlibs -plibllvm$(LLVM_VERSION) \ + '-Vlibllvm$(LLVM_VERSION) (>= $(LLVM_RELEASE))' + dh_makeshlibs -plibomp$(SONAME_OPENMP)-$(LLVM_VERSION) \ + '-Vlibomp$(SONAME_OPENMP)-$(LLVM_VERSION) (>= $(LLVM_RELEASE))' +endif dh_makeshlibs --remaining-packages -V override_dh_shlibdeps: