[med-svn] [Git][med-team/sra-sdk][master] 5 commits: Account for ngs-sdk consolidation (and some intervening changes).

Aaron M. Ucko (@ucko) gitlab at salsa.debian.org
Tue Oct 11 03:34:45 BST 2022



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


Commits:
ffc855a4 by Aaron M. Ucko at 2022-10-10T22:29:31-04:00
Account for ngs-sdk consolidation (and some intervening changes).

* 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/{libngs-java.{jlibs,poms},ngs-java.pom(.asc)}: Adopt (and adapt)
  from ngs-sdk.
* debian/not-installed: Ignore usr/jar/*.jar (installed elsewhere, via
  jh_installlibs) and usr/lib64/lib*-static.a.
* debian/rules: Adopt (and adapt) assorted build logic from ngs-sdk.

- - - - -
5f7d0ecd by Aaron M. Ucko at 2022-10-10T22:29:31-04:00
Install upstream NGS examples.

* debian/*ngs*.examples (new): Install upstream NGS examples.
* debian/not-installed: Ignore usr/share/examples* (installed
  elsewhere, via dh_installexamples).

- - - - -
2b6f18f2 by Aaron M. Ucko at 2022-10-10T22:29:31-04:00
Install javadoc output (already generated).

* debian/libngs-java-doc.javadoc: Enable javadoc installation.
* debian/not-installed: Ignore usr/share/javadoc/ngs-doc (installed
  elsewhere, via jh_installjavadoc).

- - - - -
b2a42b11 by Aaron M. Ucko at 2022-10-10T22:29:31-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.

- - - - -
036c1675 by Aaron M. Ucko at 2022-10-10T22:32:57-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+).

- - - - -


14 changed files:

- debian/changelog
- debian/control
- + debian/libngs-c++-dev.examples
- + debian/libngs-java-doc.javadoc
- + debian/libngs-java.examples
- + debian/libngs-java.jlibs
- + debian/libngs-java.poms
- + debian/ngs-java.pom
- + debian/ngs-java.pom.asc
- debian/not-installed
- debian/patches/series
- + debian/patches/use_soversions.patch
- + debian/python3-ngs.examples
- debian/rules


Changes:

=====================================
debian/changelog
=====================================
@@ -6,13 +6,35 @@ 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.
+    - Let python3-ngs bypass libncbi-ngs-dev and use libncbi-ngs3 directly.
+  * debian/libngs-java-doc.javadoc: Enable javadoc installation.
+  * debian/{libngs-java.{jlibs,poms},ngs-java.pom(.asc)}: Adopt (and adapt)
+    from ngs-sdk.
+  * debian/*ngs*.examples (new): Install upstream NGS examples.
+  * debian/not-installed: Ignore usr/jar/*.jar (installed elsewhere, via
+    jh_installlibs), usr/lib64/lib*-static.a, usr/share/examples*
+    (installed elsewhere, via dh_installexamples), and
+    usr/share/javadoc/ngs-doc (installed elsewhere, via jh_installjavadoc).
   * debian/patches/use_debian_packaged_re2.patch: Comment out an
     inappropriate add_dependencies call in test/sharq/CMakeLists.txt.
   * 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.
-
- -- Aaron M. Ucko <ucko at debian.org>  Fri, 26 Aug 2022 00:28:25 -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:32:56 -0400
 
 sra-sdk (2.11.3+dfsg-1) unstable; urgency=medium
 


=====================================
debian/control
=====================================
@@ -7,16 +7,20 @@ Section: science
 Priority: optional
 Build-Depends: debhelper-compat (= 13),
                cmake,
-               libngs-sdk-dev (>= 2.11.2),
+               d-shlibs,
+               dh-python,
+               javahelper,
                libncbi-vdb-dev (>= 3.0.0+dfsg~),
-               libvdb-sqlite-dev,
                libfuse-dev,
                libhdf5-dev,
                libmagic-dev,
                libre2-dev,
                libxml2-dev,
                libzstd-dev,
-               python3,
+               markdown | libtext-markdown-perl | discount <!nodoc>,
+               maven-repo-helper,
+               python3-all,
+               python3-distutils,
                default-jdk,
                flex,
                bison
@@ -74,3 +78,149 @@ Description: utilities for the NCBI Sequence Read Archive
  Tool options may change in the next release. Version 1 tool options
  will remain supported wherever possible in order to preserve
  operation of any existing scripts.
+
+Package: libngs-c++3
+Multi-Arch: same
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends},
+         ${misc:Depends}
+Description: Next Generation Sequencing language Bindings (C++ runtime)
+ NGS is a new, domain-specific API for accessing reads, alignments and
+ pileups produced from Next Generation Sequencing. The API itself is
+ independent from any particular back-end implementation, and supports
+ use of multiple back-ends simultaneously. It also provides a library for
+ building new back-end "engines". The engine for accessing SRA data is
+ contained within the sister repository ncbi-vdb.
+ .
+ The API is currently expressed in C++, Java and Python languages. The
+ design makes it possible to maintain a high degree of similarity between
+ the code in one language and code in another - especially between C++
+ and Java.
+
+Package: libngs-c++-dev
+Multi-Arch: same
+Architecture: any
+Section: libdevel
+Depends: ${misc:Depends},
+         libngs-c++3 (= ${binary:Version})
+Description: Next Generation Sequencing language Bindings (C++ development)
+ NGS is a new, domain-specific API for accessing reads, alignments and
+ pileups produced from Next Generation Sequencing. The API itself is
+ independent from any particular back-end implementation, and supports
+ use of multiple back-ends simultaneously. It also provides a library for
+ building new back-end "engines". The engine for accessing SRA data is
+ contained within the sister repository ncbi-vdb.
+ .
+ The API is currently expressed in C++, Java and Python languages. The
+ design makes it possible to maintain a high degree of similarity between
+ the code in one language and code in another - especially between C++
+ and Java.
+ .
+ This is the development package for C++ usage.
+
+Package: libncbi-ngs3
+Multi-Arch: same
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends},
+         ${misc:Depends}
+Description: Next Generation Sequencing language Bindings (full runtime)
+ NGS is a new, domain-specific API for accessing reads, alignments and
+ pileups produced from Next Generation Sequencing. The API itself is
+ independent from any particular back-end implementation, and supports
+ use of multiple back-ends simultaneously. It also provides a library for
+ building new back-end "engines". The engine for accessing SRA data is
+ contained within the sister repository ncbi-vdb.
+ .
+ The API is currently expressed in C++, Java and Python languages. The
+ design makes it possible to maintain a high degree of similarity between
+ the code in one language and code in another - especially between C++
+ and Java.
+
+Package: libncbi-ngs-dev
+Multi-Arch: same
+Architecture: any
+Section: libdevel
+Depends: ${misc:Depends},
+         libncbi-ngs3 (= ${binary:Version}),
+         libngs-c++-dev (= ${binary:Version})
+Description: Next Generation Sequencing language Bindings (C++ development)
+ NGS is a new, domain-specific API for accessing reads, alignments and
+ pileups produced from Next Generation Sequencing. The API itself is
+ independent from any particular back-end implementation, and supports
+ use of multiple back-ends simultaneously. It also provides a library for
+ building new back-end "engines". The engine for accessing SRA data is
+ contained within the sister repository ncbi-vdb.
+ .
+ The API is currently expressed in C++, Java and Python languages. The
+ design makes it possible to maintain a high degree of similarity between
+ the code in one language and code in another - especially between C++
+ and Java.
+ .
+ This is the full development package.
+
+Package: libngs-java
+Multi-Arch: same
+Architecture: any
+Section: java
+Depends: ${misc:Depends},
+         ${java:Depends},
+         libncbi-ngs-dev (= ${binary:Version})
+Recommends: ${java:Recommends}
+Suggests: libngs-java-doc
+Description: Next Generation Sequencing language Bindings (Java bindings)
+ NGS is a new, domain-specific API for accessing reads, alignments and
+ pileups produced from Next Generation Sequencing. The API itself is
+ independent from any particular back-end implementation, and supports
+ use of multiple back-ends simultaneously. It also provides a library for
+ building new back-end "engines". The engine for accessing SRA data is
+ contained within the sister repository ncbi-vdb.
+ .
+ The API is currently expressed in C++, Java and Python languages. The
+ design makes it possible to maintain a high degree of similarity between
+ the code in one language and code in another - especially between C++
+ and Java.
+ .
+ Java bindings.
+
+Package: libngs-java-doc
+Multi-Arch: foreign
+Architecture: all
+Section: doc
+Depends: ${misc:Depends}
+Description: Next Generation Sequencing language Bindings (Java documentation)
+ NGS is a new, domain-specific API for accessing reads, alignments and
+ pileups produced from Next Generation Sequencing. The API itself is
+ independent from any particular back-end implementation, and supports
+ use of multiple back-ends simultaneously. It also provides a library for
+ building new back-end "engines". The engine for accessing SRA data is
+ contained within the sister repository ncbi-vdb.
+ .
+ The API is currently expressed in C++, Java and Python languages. The
+ design makes it possible to maintain a high degree of similarity between
+ the code in one language and code in another - especially between C++
+ and Java.
+ .
+ Documentation for the Java bindings.
+
+Package: python3-ngs
+Architecture: any
+Section: python
+Depends: ${python3:Depends},
+         ${misc:Depends},
+         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
+ independent from any particular back-end implementation, and supports
+ use of multiple back-ends simultaneously. It also provides a library for
+ building new back-end "engines". The engine for accessing SRA data is
+ contained within the sister repository ncbi-vdb.
+ .
+ The API is currently expressed in C++, Java and Python languages. The
+ design makes it possible to maintain a high degree of similarity between
+ the code in one language and code in another - especially between C++
+ and Java.
+ .
+ Python3 bindings.


=====================================
debian/libngs-c++-dev.examples
=====================================
@@ -0,0 +1 @@
+ngs/ngs-sdk/examples/*


=====================================
debian/libngs-java-doc.javadoc
=====================================
@@ -0,0 +1 @@
+debian/tmp/usr/share/javadoc/ngs-doc usr/share/doc/libngs-java/api


=====================================
debian/libngs-java.examples
=====================================
@@ -0,0 +1 @@
+ngs/ngs-java/examples/*


=====================================
debian/libngs-java.jlibs
=====================================
@@ -0,0 +1 @@
+obj-*/lib/ngs-java.jar


=====================================
debian/libngs-java.poms
=====================================
@@ -0,0 +1,29 @@
+# List of POM files for the package
+# Format of this file is:
+# <path to pom file> [option]*
+# where option can be:
+#   --ignore: ignore this POM and its artifact if any
+#   --ignore-pom: don't install the POM. To use on POM files that are created
+#     temporarily for certain artifacts such as Javadoc jars. [mh_install, mh_installpoms]
+#   --no-parent: remove the <parent> tag from the POM
+#   --package=<package>: an alternative package to use when installing this POM
+#      and its artifact
+#   --has-package-version: to indicate that the original version of the POM is the same as the upstream part
+#      of the version for the package.
+#   --keep-elements=<elem1,elem2>: a list of XML elements to keep in the POM
+#      during a clean operation with mh_cleanpom or mh_installpom
+#   --artifact=<path>: path to the build artifact associated with this POM,
+#      it will be installed when using the command mh_install. [mh_install]
+#   --java-lib: install the jar into /usr/share/java to comply with Debian
+#      packaging guidelines
+#   --usj-name=<name>: name to use when installing the library in /usr/share/java
+#   --usj-version=<version>: version to use when installing the library in /usr/share/java
+#   --no-usj-versionless: don't install the versionless link in /usr/share/java
+#   --dest-jar=<path>: the destination for the real jar.
+#     It will be installed with mh_install. [mh_install]
+#   --classifier=<classifier>: Optional, the classifier for the jar. Empty by default.
+#   --site-xml=<location>: Optional, the location for site.xml if it needs to be installed.
+#     Empty by default. [mh_install]
+#
+
+debian/ngs-java.pom --has-package-version --usj-name=ngs-java


=====================================
debian/ngs-java.pom
=====================================
@@ -0,0 +1,34 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>gov.nih.nlm.ncbi</groupId>
+    <artifactId>ngs-java</artifactId>
+    <packaging>jar</packaging>
+    <description>ngs api</description>
+    <version>1.2.4</version>
+    <name>ngs-java</name>
+    <organization>
+        <name>gov.nih.nlm.ncbi</name>
+    </organization>
+    <url>https://github.com/ncbi/ngs</url>
+    <licenses>
+        <license>
+            <name>NCBI License</name>
+            <url>https://raw.githubusercontent.com/ncbi/ngs/master/LICENSE</url>
+            <distribution>repo</distribution>
+        </license>
+    </licenses>
+    <scm>
+        <url>git at github.com:ncbi/ngs.git</url>
+        <connection>scm:git:git at github.com:ncbi/ngs.git</connection>
+    </scm>
+    <developers>
+        <developer>
+            <id>sra-tools</id>
+            <name>SRA Development Team</name>
+            <url>https://github.com/ncbi/ngs</url>
+        </developer>
+    </developers>
+    <dependencies>
+    </dependencies>
+</project>


=====================================
debian/ngs-java.pom.asc
=====================================
@@ -0,0 +1,17 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.22 (GNU/Linux)
+
+iQIcBAABAgAGBQJXT1zbAAoJEDjMz9QjSUPXa3MP/R/VLwop1po7RHVmVgWpb+cT
+tS+VH5bvh8UldGLF3+U4QNrtDDMJIEie2U5a5F4N9nvtgE+Q/LBT2toxUMLj4WXC
+38ir7Fa6lNZwe1I9Z9xGVpWLmh6Usn2BDwmDkAwNYP1VM4tf5mUwx0cVcBWtGdVP
+7uqBzvKcycc4e6DKyJkDBUtEpe1pa5S7CiFC/Wq8KmpSeT+JO074IIqUdrSvoaQL
+V3UB9Eye15+bYvE7cWwFyTCH3LmVK5QNVh6EkpKoAIvq2f4Zp1RIxbHbZdt3XIps
+qfgUJqNdnNG1pdLTLPsxMCpHsDIuMdySZQq97nHzfzAX+YRRD3q+O8mT6RoH5dOT
+v13ffJKMQIsVnbVqMvHlngPQ/YcjzLwc+ccxtFzxaQswC4ew83YRieNMauVOupv2
+nkUK1+qUz/6QDT5vKfhJNjyc9+GAesaGVj3ou0fPNoza5KEf9fPqx5dZekaBPdKA
+qpxnHAg4NTfBbnYRYicMb/CGVJ988SWGFbwfIK0hYq8f8b9nSr0S78LHhzoinCWX
+rYenAoBNqV852k0ZMmXdMUDZK8YfLFffL7BTqNSn8UROGHrNwjRDir4bH6wusMES
+AVsM4T3T1ua5P7D2no68JlNQ6fGdvJC0qG9grmU3egamMn9Yw4VhjYW22Gg+t/Cx
+TIYgR09r86nQL4Ym9x9k
+=mIby
+-----END PGP SIGNATURE-----


=====================================
debian/not-installed
=====================================
@@ -1,4 +1,8 @@
+usr/jar/*.jar
 usr/lib/x86_64-linux-gnu
+usr/lib64/lib*-static.a
+usr/share/examples*
+usr/share/javadoc/ngs-doc
 usr/sra-tools/linux/gcc/x86_64/rel/bin/*
 usr/sra-tools/linux/gcc/x86_64/rel/ilib/*
 usr/sra-tools/linux/gcc/x86_64/rel/obj/shared/*


=====================================
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/python3-ngs.examples
=====================================
@@ -0,0 +1 @@
+ngs/ngs-python/examples/*


=====================================
debian/rules
=====================================
@@ -8,24 +8,81 @@ 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
 
+build3vers := $(shell py3versions -sv)
+
 %:
-	dh $@ --buildsystem=cmake
+	dh $@ --buildsystem=cmake \
+	    --with python3,javahelper,jh_maven_repo_helper
 
 OUTDIR=$(CURDIR)/debian/tmp
-MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+
+override_dh_auto_clean:
+	dh_auto_clean
+	rm -rf ngs/ngs-java/$(DEB_HOST_MULTIARCH)
+	rm -rf ngs/ngs-bam/$(DEB_HOST_MULTIARCH)
+	rm -f ngs/ngs-bam/Makefile.config
+	rm -f ngs/ngs-bam/Makefile.config.install.linux.x86_64.prl
+	rm -f ngs/ngs-bam/Makefile.config.linux.x86_64
+	rm -f ngs/ngs-bam/reconfigure
+	rm -rf ngs/ngs-sdk/ngs/unix/generic
+
+	rm -rf ngs/ngs-sdk/$(DEB_HOST_MULTIARCH)
+	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 \
+		    --exclude-a \
+		    --exclude-la \
+		    --movedev "debian/*/usr/lib*/libncbi-ngs.a*" \
+			usr/lib/$(DEB_HOST_MULTIARCH) \
+		    --override "s/libncbi-vdb3-dev/libncbi-vdb-dev/" \
+		    debian/*/usr/lib*/libncbi-ngs.so
+# Ignore spurious failures from pluses; --ignorelibdep only partially helps.
+	d-shlibmove --commit \
+		    --multiarch \
+		    --devunversioned \
+		    --exclude-a \
+		    --exclude-la \
+		    --movedev "debian/*/usr/lib*/lib*c++.a*" \
+			usr/lib/$(DEB_HOST_MULTIARCH) \
+		    --movedev "debian/tmp/usr/include/*" usr/include \
+		    --ignorelibdep \
+		    debian/*/usr/lib*/libngs-c++.so | \
+		tee /dev/stderr | LC_ALL=C grep '^[a-z]' | sh
 
 override_dh_install:
 	# upstream installs versioned *.a libs - we only want a single version
+	for d in debian/lib*-dev/usr/lib/$(DEB_HOST_MULTIARCH) ; do \
+	    for slib in $$d/lib*.a ; do \
+		mv $$d/`readlink $$slib` $$slib ; \
+		mv $$d/`readlink $$slib` $$slib ; \
+	    done ; \
+	done
 	ls -l debian/tmp/usr/bin
 	cd debian/tmp/usr/bin && \
 	for bin in *-orig.* ; do \
@@ -35,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 \
@@ -47,6 +104,14 @@ override_dh_install:
 	rm -f debian/*/usr/bin/magic
 	# Formally supply a standard installation ID to satisfy sratools
 	echo '/LIBS/GUID = "$(DEBIAN_GUID)"' >debian/$(pkg)/etc/ncbi/debian.kfg
+	set -e && for i in $(build3vers); do \
+	    cd ngs/ngs-python; \
+	    python$$i ./setup.py install --install-layout=deb \
+	        --root $(CURDIR)/debian/python3-ngs; \
+	    cd ..; \
+	done
+	find debian -name "*.pyc" -delete
+	find debian -type d -name __pycache__ | xargs rm -rf
 
 override_dh_auto_test:
 ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
@@ -55,3 +120,14 @@ endif
 
 override_dh_prep:
 	dh_prep -X debian/tmp
+
+# require network, not automatically run
+# use it when the pom file must be re-downloaded from maven repo
+BASE_URL:=https://repo.maven.apache.org/maven2/gov/nih/nlm/ncbi/ngs-java
+WGET=wget --no-clobber
+get-poms:
+	$(RM) debian/ngs-java.pom debian/ngs-java.pom.asc
+	# extract upstream version
+	$(WGET) -O debian/ngs-java.pom $(BASE_URL)/$(DEB_VERSION_UPSTREAM)/ngs-java-$(DEB_VERSION_UPSTREAM).pom && \
+	$(WGET) -O debian/ngs-java.pom.asc $(BASE_URL)/$(DEB_VERSION_UPSTREAM)/ngs-java-$(DEB_VERSION_UPSTREAM).pom.asc
+	gpg --trust-model=always --status-fd 1 --no-default-keyring --keyring debian/sra-tools.gpg --verify debian/ngs-java.pom.asc



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

-- 
View it on GitLab: https://salsa.debian.org/med-team/sra-sdk/-/compare/76e793579bf953d031b6a2820361624c40262d2e...036c1675841d316a3eb8d47172178d08972e16df
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/dfaa497f/attachment-0001.htm>


More information about the debian-med-commit mailing list