From 5cda29f50904e3c99bd831157ac8fce29fbf04ca Mon Sep 17 00:00:00 2001 From: Matthias Klose Date: Fri, 24 Nov 2023 17:45:03 +0100 Subject: [PATCH] * libclang1-17: Only encode the major version in the soname. Closes: #1056126. --- debian/changelog | 1 + debian/libclang-X.Y-dev.links.in | 6 +++--- debian/libclang1-X.Y.links.in | 6 +++--- debian/libclang1-X.Y.symbols.in | 2 +- debian/patches/libclang-major-version-only.diff | 11 +++++++++++ debian/patches/series | 1 + debian/rules | 4 ++++ 7 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 debian/patches/libclang-major-version-only.diff diff --git a/debian/changelog b/debian/changelog index 1a862485..da975607 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,7 @@ llvm-toolchain-17 (1:17.0.5-2) UNRELEASED; urgency=medium * Don't build-depend on llvm-spirv-17 on armel and mipsel (LLVM 17 is not yet built on these architectures). * Fix stripping build flags on Ubuntu/ppc64el. + * libclang1-17: Only encode the major version in the soname. Closes: #1056126. [ Sylvestre Ledru ] * Add a symlink for libc++experimental.a to /usr/lib/*/libc++experimental.a diff --git a/debian/libclang-X.Y-dev.links.in b/debian/libclang-X.Y-dev.links.in index a82e6089..7cd10c4d 100644 --- a/debian/libclang-X.Y-dev.links.in +++ b/debian/libclang-X.Y-dev.links.in @@ -1,3 +1,3 @@ -usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.@LLVM_VERSION_FULL@ usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so -usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.@LLVM_VERSION_FULL@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang.so -usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.@LLVM_VERSION_FULL@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so +usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.@LLVM_VERSION@ usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so +usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang.so +usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so diff --git a/debian/libclang1-X.Y.links.in b/debian/libclang1-X.Y.links.in index dc4b7a44..f735225c 100644 --- a/debian/libclang1-X.Y.links.in +++ b/debian/libclang1-X.Y.links.in @@ -1,4 +1,4 @@ # as upstream -usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.@LLVM_VERSION_FULL@ usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.1 -usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang.so.1 -usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.@LLVM_VERSION_FULL@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so.1 +usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.@LLVM_VERSION@ usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.1 +usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so.@LLVM_VERSION@ +usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so.@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang.so.1 diff --git a/debian/libclang1-X.Y.symbols.in b/debian/libclang1-X.Y.symbols.in index 49724304..2f07205d 100644 --- a/debian/libclang1-X.Y.symbols.in +++ b/debian/libclang1-X.Y.symbols.in @@ -1,4 +1,4 @@ -libclang-@LLVM_VERSION@.so.@LLVM_VERSION_FULL@ libclang1-@LLVM_VERSION@ #MINVER# +libclang-@LLVM_VERSION@.so.@LLVM_VERSION@ libclang1-@LLVM_VERSION@ #MINVER# (optional)LLVM_13@LLVM_13 1:15.0.7-3 (optional)LLVM_16@LLVM_16 1:16.0.2-1 (optional)LLVM_17@LLVM_17 1:17.0.1-1 diff --git a/debian/patches/libclang-major-version-only.diff b/debian/patches/libclang-major-version-only.diff new file mode 100644 index 00000000..36800f38 --- /dev/null +++ b/debian/patches/libclang-major-version-only.diff @@ -0,0 +1,11 @@ +--- a/clang/tools/libclang/CMakeLists.txt ++++ b/clang/tools/libclang/CMakeLists.txt +@@ -196,7 +196,7 @@ + OBJECT_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libclang.map) + + set_target_properties(libclang PROPERTIES +- VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}${LLVM_VERSION_SUFFIX} ++ VERSION ${LLVM_VERSION_MAJOR} + ${LIBCLANG_SOVERSION_ARG}) + endif() + endif() diff --git a/debian/patches/series b/debian/patches/series index 1bb20ec6..633aba14 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -149,3 +149,4 @@ bolt-disable-emit-relocs.patch link-grpc.diff D158066-simd-ppc64el.patch ubuntu-releases.patch +libclang-major-version-only.diff diff --git a/debian/rules b/debian/rules index 0641f0ec..f5413cb5 100755 --- a/debian/rules +++ b/debian/rules @@ -13,12 +13,14 @@ 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)) +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_SNAPSHOT := $(shell dpkg-parsechangelog | sed -rne "s,^Version: 1:(.*),\1,p") ifeq ($(LLVM_VERSION),$(LLVM_VERSION_FULL)) LLVM_VERSION_FULL := $(LLVM_VERSION).0.0 endif +LLVM_VERSION_NEXT := $(shell echo $(LLVM_VERSION_FULL) | awk -F. '{ OFS="."; $$NF+=1; print}') SOURCE_NAME := $(shell dpkg-parsechangelog -S Source) ifneq (,$(findstring snapshot,$(SOURCE_NAME))) @@ -604,7 +606,9 @@ stamps/preconfigure: 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_EPOCH@|$(LLVM_EPOCH)|g" \ -e "s|@LLVM_VERSION_FULL@|$(LLVM_VERSION_FULL)|g" \ + -e "s|@LLVM_VERSION_NEXT@|$(LLVM_VERSION_NEXT)|g" \ -e "s|@LLVM_VERSION@|$(LLVM_VERSION)|g" $$f > $$f2; \ done