[med-svn] [Git][med-team/sra-sdk][master] 3 commits: Use proper versioned SONAMEs, including from Python.

Aaron M. Ucko (@ucko) gitlab at salsa.debian.org
Tue Oct 11 13:52:39 BST 2022



Aaron M. Ucko pushed to branch master at Debian Med / sra-sdk


Commits:
46eed109 by Aaron M. Ucko at 2022-10-10T22:38:03-04:00
Use proper versioned SONAMEs, including from Python.

* debian/control: Let python3-ngs bypass libncbi-ngs-dev and use
  libncbi-ngs3 directly.
* debian/patches/use_soversions.patch (new): Give shared libraries
  proper versioned SONAMEs; use them from the Python bindings.

- - - - -
c0749172 by Aaron M. Ucko at 2022-10-10T22:38:03-04:00
debian/rules: More tuneups.

* Pass VDB header path via -DVDB_INCDIR rather than via general
  compilation flags.
* Install configuration files explicitly; the CMake setup insists on
  putting them in the wrong place for us.
* Extend bin deversioning to *+ (i.e., kar+).

- - - - -
724a4d3e by Aaron M. Ucko at 2022-10-10T22:39:15-04:00
Drop build dependency on libvdb-sqlite-dev, now internal to sra-sdk.

- - - - -


5 changed files:

- debian/changelog
- debian/control
- debian/patches/series
- + debian/patches/use_soversions.patch
- debian/rules


Changes:

=====================================
debian/changelog
=====================================
@@ -6,9 +6,12 @@ sra-sdk (3.0.0+dfsg-1) UNRELEASED; urgency=medium
   * Build-Depends: default-jdk, flex, bison
 
   [ Aaron M. Ucko ]
-  * debian/control: Account for consolidation of ngs-sdk (albeit with some
-    intervening changes, notably library restructuring); take the
-    opportunity to add a -java-doc package.
+  * debian/control:
+    - Account for consolidation of ngs-sdk (albeit with some intervening
+      changes, notably library restructuring); take the opportunity to add
+      a -java-doc package.
+    - Let python3-ngs bypass libncbi-ngs-dev and use libncbi-ngs3 directly.
+    - Drop build dependency on libvdb-sqlite-dev, now internal to sra-sdk.
   * debian/libngs-java-doc.javadoc: Enable javadoc installation.
   * debian/{libngs-java.{jlibs,poms},ngs-java.pom(.asc)}: Adopt (and adapt)
     from ngs-sdk.
@@ -22,9 +25,17 @@ sra-sdk (3.0.0+dfsg-1) UNRELEASED; urgency=medium
   * Add more patches for remaining build issues: fix_javadoc_build.patch,
     link_magic_dynamically.patch, link_vdb_dynamically.patch, and
     use_debian_packaged_compression_libs.patch.
-  * debian/rules: Adopt (and adapt) assorted build logic from ngs-sdk.
-
- -- Aaron M. Ucko <ucko at debian.org>  Mon, 10 Oct 2022 22:19:40 -0400
+  * debian/patches/use_soversions.patch (new): Give shared libraries
+    proper versioned SONAMEs; use them from the Python bindings.
+  * debian/rules:
+    - Adopt (and adapt) assorted build logic from ngs-sdk.
+    - Pass VDB header path via -DVDB_INCDIR rather than via general
+      compilation flags.
+    - Install configuration files explicitly; the CMake setup insists on
+      putting them in the wrong place for us.
+    - Extend bin deversioning to *+ (i.e., kar+).
+
+ -- Aaron M. Ucko <ucko at debian.org>  Mon, 10 Oct 2022 22:39:14 -0400
 
 sra-sdk (2.11.3+dfsg-1) unstable; urgency=medium
 


=====================================
debian/control
=====================================
@@ -11,7 +11,6 @@ Build-Depends: debhelper-compat (= 13),
                dh-python,
                javahelper,
                libncbi-vdb-dev (>= 3.0.0+dfsg~),
-               libvdb-sqlite-dev,
                libfuse-dev,
                libhdf5-dev,
                libmagic-dev,
@@ -210,7 +209,7 @@ Architecture: any
 Section: python
 Depends: ${python3:Depends},
          ${misc:Depends},
-         libncbi-ngs-dev (= ${binary:Version})
+         libncbi-ngs3 (= ${binary:Version})
 Description: Next Generation Sequencing language Bindings (Python3 bindings)
  NGS is a new, domain-specific API for accessing reads, alignments and
  pileups produced from Next Generation Sequencing. The API itself is


=====================================
debian/patches/series
=====================================
@@ -30,3 +30,4 @@ use_debian_packaged_re2.patch
 use_debian_packaged_compression_libs.patch
 link_magic_dynamically.patch
 fix_javadoc_build.patch
+use_soversions.patch


=====================================
debian/patches/use_soversions.patch
=====================================
@@ -0,0 +1,52 @@
+--- a/ngs/ngs-python/ngs/LibManager.py
++++ b/ngs/ngs-python/ngs/LibManager.py
+@@ -211,9 +211,9 @@ class LibManager:
+         if platform.system() == "Windows":
+             return ".dll"
+         elif platform.system() == "Darwin":
+-            return ".dylib"
++            return ".3.dylib"
+         elif platform.system() == "Linux":
+-            return ".so"
++            return ".so.3"
+         else:
+             return ""
+ 
+--- a/build/env.cmake
++++ b/build/env.cmake
+@@ -389,20 +389,22 @@ function(MakeLinksShared target name ins
+             set( LIBSUFFIX ".${SHLX}.${VERSION}" )
+             set( MAJLIBSUFFIX ".${SHLX}.${MAJVERS}" )
+         endif()
+-        add_custom_command(TARGET ${target}
+-            POST_BUILD
+-            COMMAND rm -f lib${name}${LIBSUFFIX}
+-            COMMAND mv lib${name}.${SHLX} lib${name}${LIBSUFFIX}
+-            COMMAND ln -f -s lib${name}${LIBSUFFIX} lib${name}${MAJLIBSUFFIX}
+-            COMMAND ln -f -s lib${name}${MAJLIBSUFFIX} lib${name}.${SHLX}
+-            WORKING_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
+-        )
++        set_target_properties(
++	    ${target} PROPERTIES VERSION ${VERSION} SOVERSION ${MAJVERS})
++        #add_custom_command(TARGET ${target}
++        #    POST_BUILD
++        #    COMMAND rm -f lib${name}${LIBSUFFIX}
++        #    COMMAND mv lib${name}.${SHLX} lib${name}${LIBSUFFIX}
++        #    COMMAND ln -f -s lib${name}${LIBSUFFIX} lib${name}${MAJLIBSUFFIX}
++        #    COMMAND ln -f -s lib${name}${MAJLIBSUFFIX} lib${name}.${SHLX}
++        #    WORKING_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
++        #)
+ 
+-        set_property(
+-            TARGET    ${target}
+-            APPEND
+-            PROPERTY ADDITIONAL_CLEAN_FILES "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${name}${LIBSUFFIX};${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${name}${MAJLIBSUFFIX};${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${name}.${SHLX}"
+-        )
++        #set_property(
++        #    TARGET    ${target}
++        #    APPEND
++        #    PROPERTY ADDITIONAL_CLEAN_FILES "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${name}${LIBSUFFIX};${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${name}${MAJLIBSUFFIX};${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${name}.${SHLX}"
++        #)
+ 
+         if ( ${install} )
+             install( PROGRAMS  ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${name}${LIBSUFFIX}


=====================================
debian/rules
=====================================
@@ -8,9 +8,6 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 
 pkg := sra-toolkit
 
-export DEB_CFLAGS_MAINT_APPEND   = -I/usr/include/ncbi-vdb
-export DEB_CXXFLAGS_MAINT_APPEND = -I/usr/include/ncbi-vdb
-
 include /usr/share/dpkg/architecture.mk
 include /usr/share/dpkg/buildflags.mk
 
@@ -36,10 +33,26 @@ override_dh_auto_clean:
 	rm -rf ngs/ngs-python/build
 
 override_dh_auto_configure:
-	dh_auto_configure -- -DVDB_LIBDIR=/usr/lib/${DEB_HOST_MULTIARCH}
+	dh_auto_configure -- -DVDB_LIBDIR=/usr/lib/${DEB_HOST_MULTIARCH} \
+	    -DVDB_INCDIR=/usr/include/ncbi-vdb
 
+KFG_INC  = /usr/include/ncbi-vdb/kfg/ncbi
+KFG_DEST = debian/sra-toolkit/etc/ncbi
 override_dh_auto_install:
-	dh_auto_install -- KONFIG_DIR=$(CURDIR)/debian/sra-toolkit/etc/ncbi
+	dh_auto_install
+	# build/install.sh $(KFG_INC) \
+	# 		 $(CURDIR)/tools/vdb-copy \
+	# 		 $(KFG_DEST) \
+	# 		 $(KFG_DEST) \
+	# 		 debian/sra-toolkit/usr/bin \
+	# 		 debian/sra-toolkit/usr/lib/$(DEB_HOST_MULTIARCH) \
+	# 		 $(CURDIR)/shared/kfgsums
+	build/install-kfg.sh default.kfg $(KFG_INC) $(KFG_DEST) \
+			     $(KFG_INC)/kfgsums
+	build/install-kfg.sh certs.kfg $(KFG_INC) $(KFG_DEST) \
+			     $(KFG_INC)/kfgsums
+	build/install-kfg.sh vdb-copy.kfg $(CURDIR)/tools/vdb-copy $(KFG_DEST) \
+			     $(CURDIR)/shared/kfgsums
 	d-shlibmove --commit \
 		    --multiarch \
 		    --devunversioned \
@@ -79,7 +92,7 @@ override_dh_install:
 	    mv -v $$bin $$base-orig && \
 	    ln -snfv $${vdriver%%.[0-9]*} $$vbase || exit $$? ; \
 	done && \
-	for bin in *[a-z] ; do \
+	for bin in *[a-z+] ; do \
 	    bin2=$$(readlink $$bin) ; \
 	    bin3=$$(readlink "$$bin2") ; \
 	    case $$bin2 in \



View it on GitLab: https://salsa.debian.org/med-team/sra-sdk/-/compare/036c1675841d316a3eb8d47172178d08972e16df...724a4d3e5077e84043c5aca43b8632afd62c4a51

-- 
View it on GitLab: https://salsa.debian.org/med-team/sra-sdk/-/compare/036c1675841d316a3eb8d47172178d08972e16df...724a4d3e5077e84043c5aca43b8632afd62c4a51
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20221011/6ed206c4/attachment-0001.htm>


More information about the debian-med-commit mailing list