Followup-For: Bug #775257 Control: tag -1 patch Hi Sylvestre,
attached is a patch to set a proper SONAME, this also fixes the missing ldconfig call issue. Let's ship a libiomp5.so symlink though. And while we are at it, convert the package to multiarch. There are still some issues noted by lintian ... Andreas PS: no git repository, so you only get one monolitic patch instead of 3 or 4 smaller ones
diff -Nru openmprtl-0.20150401/debian/README.source openmprtl-0.20150401/debian/README.source --- openmprtl-0.20150401/debian/README.source 2014-10-07 15:03:12.000000000 +0200 +++ openmprtl-0.20150401/debian/README.source 1970-01-01 01:00:00.000000000 +0100 @@ -1,9 +0,0 @@ -openmprtl for Debian --------------------- - -<this file describes information about the source package, see Debian policy -manual section 4.14. You WILL either need to modify or delete this file> - - - - diff -Nru openmprtl-0.20150401/debian/changelog openmprtl-0.20150401/debian/changelog --- openmprtl-0.20150401/debian/changelog 2015-04-27 18:40:10.000000000 +0200 +++ openmprtl-0.20150401/debian/changelog 2015-07-12 16:28:07.000000000 +0200 @@ -1,3 +1,11 @@ +openmprtl (0.20150401-2) UNRELEASED; urgency=medium + + * Set SONAME to libiomp.so.5 properly (Closes: #775257) + * Ship a libiomp5.so compat symlink. + * Convert to multiarch. + + -- Andreas Beckmann <a...@debian.org> Sun, 12 Jul 2015 14:52:13 +0200 + openmprtl (0.20150401-1) unstable; urgency=medium * Upload to unstable diff -Nru openmprtl-0.20150401/debian/control openmprtl-0.20150401/debian/control --- openmprtl-0.20150401/debian/control 2015-03-03 13:34:35.000000000 +0100 +++ openmprtl-0.20150401/debian/control 2015-07-12 16:19:52.000000000 +0200 @@ -19,8 +19,8 @@ while it is executing. Package: libiomp5 -Section: libs Architecture: any +Multi-Arch: same Depends: ${shlibs:Depends}, ${misc:Depends} Description: Intel OpenMP runtime The runtime is the part of the OpenMP implementation that your code is @@ -30,6 +30,7 @@ Package: libiomp5-dbg Section: debug Architecture: any +Multi-Arch: same Depends: ${shlibs:Depends}, ${misc:Depends}, libiomp5 (= ${binary:Version}) Description: Intel OpenMP runtime - Debug package The runtime is the part of the OpenMP implementation that your code is diff -Nru openmprtl-0.20150401/debian/docs openmprtl-0.20150401/debian/docs --- openmprtl-0.20150401/debian/docs 2014-10-07 15:03:12.000000000 +0200 +++ openmprtl-0.20150401/debian/docs 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -README.txt diff -Nru openmprtl-0.20150401/debian/libiomp-dev.docs openmprtl-0.20150401/debian/libiomp-dev.docs --- openmprtl-0.20150401/debian/libiomp-dev.docs 1970-01-01 01:00:00.000000000 +0100 +++ openmprtl-0.20150401/debian/libiomp-dev.docs 2014-10-07 15:03:12.000000000 +0200 @@ -0,0 +1 @@ +README.txt diff -Nru openmprtl-0.20150401/debian/libiomp-dev.install openmprtl-0.20150401/debian/libiomp-dev.install --- openmprtl-0.20150401/debian/libiomp-dev.install 2014-10-07 15:03:12.000000000 +0200 +++ openmprtl-0.20150401/debian/libiomp-dev.install 2015-07-12 16:11:24.000000000 +0200 @@ -1,2 +1,2 @@ tmp/*/*.h usr/include/ -tmp/*/unstripped/*.so usr/lib/ +tmp/*/unstripped/libiomp.so usr/lib/ diff -Nru openmprtl-0.20150401/debian/libiomp5.install openmprtl-0.20150401/debian/libiomp5.install --- openmprtl-0.20150401/debian/libiomp5.install 2014-10-07 15:03:12.000000000 +0200 +++ openmprtl-0.20150401/debian/libiomp5.install 2015-07-12 16:14:51.000000000 +0200 @@ -1 +1,2 @@ -tmp/lin_*/unstripped/libiomp5.so.5 usr/lib/ +tmp/lin_*/unstripped/libiomp.so.5 usr/lib/ +tmp/lin_*/unstripped/libiomp5.so usr/lib/ diff -Nru openmprtl-0.20150401/debian/libiomp5.lintian-overrides openmprtl-0.20150401/debian/libiomp5.lintian-overrides --- openmprtl-0.20150401/debian/libiomp5.lintian-overrides 2014-10-07 15:03:12.000000000 +0200 +++ openmprtl-0.20150401/debian/libiomp5.lintian-overrides 1970-01-01 01:00:00.000000000 +0100 @@ -1,4 +0,0 @@ -# The version is already inside -libiomp5: shlib-without-versioned-soname usr/lib/libiomp5.so.5 libiomp5.so -libiomp5: ldconfig-symlink-missing-for-shlib usr/lib/libiomp5.so usr/lib/libiomp5.so.5 libiomp5.so -libiomp5: postinst-must-call-ldconfig usr/lib/libiomp5.so.5 diff -Nru openmprtl-0.20150401/debian/libiomp5.symbols openmprtl-0.20150401/debian/libiomp5.symbols --- openmprtl-0.20150401/debian/libiomp5.symbols 2015-04-27 18:40:10.000000000 +0200 +++ openmprtl-0.20150401/debian/libiomp5.symbols 2015-07-12 16:16:11.000000000 +0200 @@ -1,4 +1,4 @@ -libiomp5.so libiomp5 #MINVER# +libiomp.so.5 libiomp5 #MINVER# GOMP_1.0@GOMP_1.0 0.20131209 GOMP_2.0@GOMP_2.0 0.20131209 GOMP_3.0@GOMP_3.0 0.20131209 diff -Nru openmprtl-0.20150401/debian/patches/soname.diff openmprtl-0.20150401/debian/patches/soname.diff --- openmprtl-0.20150401/debian/patches/soname.diff 2015-03-03 13:34:35.000000000 +0100 +++ openmprtl-0.20150401/debian/patches/soname.diff 2015-07-12 16:12:04.000000000 +0200 @@ -1,134 +1,25 @@ -Index: libomp_oss/tools/src/common-rules.mk -=================================================================== ---- libomp_oss.orig/tools/src/common-rules.mk -+++ libomp_oss/tools/src/common-rules.mk -@@ -168,7 +168,7 @@ expand-vars = $(perl) $(tools_dir)expand - # Note: to workaround CQ215229 $ld-flags-extra introduced to keep options be placed after objects - %$(dll) : %$(dll).lst $(def_file) $(res_file) .rebuild - $(target) -- $(ld) $(ld-flags-dll) $(ld-flags) $(ld-out)$@ $$(cat $<) $(ld-flags-extra) $(res_file) -+ $(ld) $(ld-flags-dll) $(ld-flags) $(ld-out)$@.$(VERSION) $$(cat $<) $(ld-flags-extra) $(res_file) - # If stripped pdb exist, rename it to normal pdb name. See devtools.mk for explanation. - ifneq "$(pdb_file)" "" - ifeq "$(DEBUG_INFO)" "off" -@@ -184,9 +184,9 @@ endif - %.dbg : %$(dll) .rebuild - $(target) - ifeq "$(arch)" "mic" -- x86_64-k1om-linux-objcopy --only-keep-debug $< $@ -+ x86_64-k1om-linux-objcopy --only-keep-debug $<.$(VERSION) $@ - else -- objcopy --only-keep-debug $< $@ -+ objcopy --only-keep-debug $<.$(VERSION) $@ - endif - - -Index: libomp_oss/src/makefile.mk -=================================================================== ---- libomp_oss.orig/src/makefile.mk -+++ libomp_oss/src/makefile.mk -@@ -1041,12 +1041,12 @@ clean : - - $(lib_file) : $(if $(dbg_file),stripped,unstripped)/$(lib_file) - $(target) -- $(cp) $< $@ -+ $(cp) $<.$(VERSION) $@.$(VERSION) - - ifneq "$(dbg_file)" "" - $(dbg_file) : unstripped/$(dbg_file) - $(target) -- $(cp) $< $@ -+ $(cp) $< $@.$(VERSION) - endif - - ifneq "$(filter lin,$(os))" "" -@@ -1148,11 +1148,11 @@ endif - stripped/$(lib_file) : unstripped/$(lib_file) $(dbg_file) stripped/.dir .rebuild - $(target) - ifeq "$(arch)" "mic" -- x86_64-k1om-linux-objcopy --strip-debug $< $@.tmp -- x86_64-k1om-linux-objcopy --add-gnu-debuglink=$(dbg_file) $@.tmp $@ -+ x86_64-k1om-linux-objcopy --strip-debug $<.$(VERSION) $@.tmp -+ x86_64-k1om-linux-objcopy --add-gnu-debuglink=$(dbg_file).$(VERSION) $@.tmp $@.$(VERSION) - else -- objcopy --strip-debug $< $@.tmp -- objcopy --add-gnu-debuglink=$(dbg_file) $@.tmp $@ -+ objcopy --strip-debug $<.$(VERSION) $@.tmp -+ objcopy --add-gnu-debuglink=$(dbg_file).$(VERSION) $@.tmp $@.$(VERSION) - endif - - ifeq "$(os)" "mac" -@@ -1250,7 +1250,7 @@ libiomp.rc : ev-flags += -D KMP_FILE=$(l - - $(rc_file) : libiomp.rc .rebuild - $(target) -- $(cp) $< $@ -+ $(cp) $< $@.$(VERSION) - - kmp_dummy.c : .rebuild - $(target) -@@ -1276,8 +1276,6 @@ ifneq "$(arch)" "mic" - else - test_touch_items += test-touch-md - endif -- else -- test_touch_items += test-touch-rt +Author: Andreas Beckmann <a...@debian.org> +Description: set the SONAME of the libiomp5 library to libiomp.so.5 + +--- a/tools/src/common-defs.mk ++++ b/tools/src/common-defs.mk +@@ -185,7 +185,7 @@ else # lin, mic or mac + ifeq "$(os)" "mac" + dll = .dylib + else +- dll = .so ++ dll = .so.$(VERSION) endif - - force-test-touch : $(addsuffix /.force,$(test_touch_items)) $(addsuffix /.test,$(test_touch_items)) -@@ -1365,10 +1363,10 @@ ifneq "$(arch)" "mic" - # The second building runs linker in verbose mode and saves linker output for grepping. - define test-touch-commands - $(rm) $(dir $@)* -- $(tt-i)$(tt-c) $(tt-c-flags) $< $(tt-libs) $(tt-ld-flags) -+ $(tt-i)$(tt-c) $(tt-c-flags) $< $(tt-libs).$(VERSION) $(tt-ld-flags) - $(rm) $(tt-exe-file) - $(tt-i)$(tt-c) $(tt-c-flags) \ -- $< $(tt-libs) \ -+ $< $(tt-libs).$(VERSION) \ - $(tt-ld-flags) $(tt-ld-flags-v) \ - > $(dir $@)build.log 2>&1 - $(tt-i)$(tt-env) $(tt-exe-file) -@@ -1409,9 +1407,9 @@ ifeq "$(if $(filter lin,$(os)),os)-$(LIN - test-relo/.test : $(lib_item)$(dll) test-relo/.dir .rebuild - $(target) - ifeq "$(arch)" "mic" -- x86_64-k1om-linux-readelf -d $< > $(dir $@)readelf.log -+ x86_64-k1om-linux-readelf -d $<.$(VERSION) > $(dir $@)readelf.log - else -- readelf -d $< > $(dir $@)readelf.log -+ readelf -d $<.$(VERSION) > $(dir $@)readelf.log - endif - grep -e TEXTREL $(dir $@)readelf.log; [ $$? -eq 1 ] - $(touch) $@ -@@ -1430,7 +1428,7 @@ ifeq "$(if $(filter lin,$(os)),os)-$(LIN - - test-execstack/.test : $(lib_item)$(dll) test-execstack/.dir .rebuild - $(target) -- $(perl) $(tools_dir)check-execstack.pl $(oa-opts) $< -+ $(perl) $(tools_dir)check-execstack.pl $(oa-opts) $<.$(VERSION) - $(touch) $@ - endif - -@@ -1527,7 +1525,7 @@ ifneq "$(filter %-dyna win-%,$(os)-$(LIN - test-deps/.test : $(lib_file) $(tools_dir)check-depends.pl test-deps/.dir .rebuild - $(target) - $(td-i)$(perl) $(tools_dir)check-depends.pl $(oa-opts) \ -- $(if $(td_exp),--expected="$(subst $(space),$(comma),$(td_exp))") $< -+ $(if $(td_exp),--expected="$(subst $(space),$(comma),$(td_exp))") $<.$(VERSION) - $(touch) $@ - - endif -Index: libomp_oss/src/rules.mk -=================================================================== ---- libomp_oss.orig/src/rules.mk -+++ libomp_oss/src/rules.mk -@@ -44,7 +44,7 @@ $(out_cmn_dir)include_compat/% : % $(out - # goal or not. - $(out_lib_dir)% : % $(out_lib_dir).dir .rebuild - $(target) -- $(cp) $< $@ -+ $(cp) $<.$(VERSION) $@ - ifneq "$(out_lib_fat_dir)" "" - $(touch) $(dir $@).touch - endif + exe = $(empty) + cat = .cat +--- a/src/makefile.mk ++++ b/src/makefile.mk +@@ -838,7 +838,7 @@ else + ifeq "$(LIB_TYPE)" "stub" + _lib_item += stubs + endif +- _lib_item += $(VERSION) ++# _lib_item += $(VERSION) + ifeq "$(os)" "win" + ifeq "$(LINK_TYPE)" "dyna" + _lib_item += md diff -Nru openmprtl-0.20150401/debian/rules openmprtl-0.20150401/debian/rules --- openmprtl-0.20150401/debian/rules 2014-10-07 15:03:12.000000000 +0200 +++ openmprtl-0.20150401/debian/rules 2015-07-12 16:13:52.000000000 +0200 @@ -2,13 +2,15 @@ # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 SONAME=5 +DEB_HOST_MULTIARCH ?= $(dpkg-architecture -qDEB_HOST_MULTIARCH) %: dh $@ override_dh_auto_build: make compiler=gcc - cd tmp/lin_*/unstripped/ && ln -s libiomp5.so.$(SONAME) libiomp5.so + cd tmp/lin_*/unstripped/ && ln -s libiomp.so.$(SONAME) libiomp5.so + cd tmp/lin_*/unstripped/ && ln -s libiomp.so.$(SONAME) libiomp.so doxygen doc/doxygen/config cd doc/doxygen/generated/html/ && rm jquery.js && ln -s /usr/share/javascript/jquery/jquery.js @@ -16,5 +18,12 @@ rm -rf tmp/ dh_clean +override_dh_install: + dh_install + mkdir -p debian/libiomp5/usr/lib/$(DEB_HOST_MULTIARCH)/ + mv debian/libiomp5/usr/lib/libiomp* debian/libiomp5/usr/lib/$(DEB_HOST_MULTIARCH)/ + mkdir -p debian/libiomp-dev/usr/lib/$(DEB_HOST_MULTIARCH)/ + mv debian/libiomp-dev/usr/lib/libiomp* debian/libiomp-dev/usr/lib/$(DEB_HOST_MULTIARCH)/ + override_dh_strip: dh_strip -plibiomp5 --dbg-package=libiomp5-dbg