Hi Yaroslav, On Fr 22 Mär 2013 17:21:24 CET Mike Gabriel wrote:
Hi Yaroslav, hi all, On Mi 20 Mär 2013 20:26:24 CET Yaroslav Halchenko wrote:[...]I have worked-in (hopefully!) all comments/requests dicussed during the last days into libjpeg-turbo.git on collab-maint.I have also attempted to allow a smooth update of libjpeg-turbo bin:package in Ubuntu by this version.As there have been quite some commits on libjpeg-turbo.git for that, I have attached the (shorter) all-over diff between now and the last time you looked at the Git project to this mail.Request for more comments. Also: shall we upload to unstable or to experimental? Greets+thanks, Mike
Ok, then. I am through with libjpeg-turbo. I have re-added the dpkg-divert stuff and also found a conceptual problem with dpkg-divert and ldconfig that occurs in cases where the libjpeg.so.8.x.y in libjpeg8-turbo is older (lower in version) as the libjpeg.so.8.x.y in libjpeg8. As this is currently the situation in sid, this urgently had to be handled (see /debian/changelog).
Again, I have attached a diff with the latest changes to this mail.Note: the dpkg-divert stuff does not appear in /debian/changelog as it already was present in earlier versions of the package.
Mike -- DAS-NETZWERKTEAM mike gabriel, rothenstein 5, 24214 neudorf-bornstein fon: +49 (1520) 1976 148 GnuPG Key ID 0x25771B31 mail: mike.gabr...@das-netzwerkteam.de, http://das-netzwerkteam.de freeBusy: https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.xfb
diff --git a/debian/changelog b/debian/changelog index 351ead7..985f9e8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -24,6 +24,12 @@ libjpeg-turbo (1.2.90-1) UNRELEASED; urgency=low in early versions of this src:package). + Enable unit tests during package build. Clean up test images during dh_auto_clean. + + Provide a symlink (libjpeg.so.8.99.0) with libjpeg8-turbo that reliably + (almost) always supersedes any IJG libjpeg.so.8.x.y version. This will + trick SO_NAME symlinking of ldconfig in case the version of our + libjpeg.so.8.x.y is lower than the version number of IJG's + libjpeg.so.8.x.y (in the native libjpeg8 package). + + Harden build of jpegexiforient in /debian/extra/. * /debian/patches: + Add patch: 001_versioned-libjpegturbo.patch. Adds versioned .so file support for libturbojpeg.so. diff --git a/debian/control b/debian/control index 2320871..e3c1b83 100644 --- a/debian/control +++ b/debian/control @@ -20,16 +20,17 @@ Package: libturbojpeg1 Architecture: any Multi-Arch: same Section: libs -Pre-Depends: multiarch-support +Pre-Depends: + ${misc:Pre-Depends}, Depends: ${shlibs:Depends}, ${misc:Depends}, -Provides: - libturbojpeg, Replaces: libturbojpeg, Conflicts: libturbojpeg, +Provides: + libturbojpeg, Description: TurboJPEG runtime library - SIMD optimized This library is based on libjpeg-turbo and not on the IJG JPEG. . @@ -47,12 +48,12 @@ Depends: libturbojpeg1 (= ${binary:Version}), libc-dev, ${misc:Depends}, -Provides: - libturbojpeg-dev, Conflicts: libturbojpeg-dev, Replaces: libturbojpeg-dev, +Provides: + libturbojpeg-dev, Description: Development files for the turbo JPEG library This library is based on libjpeg-turbo and not on the IJG JPEG. . @@ -66,18 +67,17 @@ Package: libjpeg8-turbo Architecture: any Multi-Arch: same Section: libs -Pre-Depends: multiarch-support +Pre-Depends: + ${misc:Pre-Depends}, Depends: ${shlibs:Depends}, ${misc:Depends}, Conflicts: - libjpeg8, libjpeg-turbo8, Replaces: - libjpeg8, + libjpeg8 (<< 9), libjpeg-turbo8, Provides: - libjpeg8, libjpeg-turbo8, Description: IJG JPEG compliant runtime library - SIMD optimized This package provides a runtime library supporting the Independent JPEG @@ -101,13 +101,17 @@ Depends: libjpeg8-turbo (= ${binary:Version}), libc-dev, ${misc:Depends}, -Provides: - libjpeg-dev, - libjpeg-turbo8-dev, Conflicts: - libjpeg8-dev, + libjpeg62-dev, + libjpeg7-dev, libjpeg-turbo8-dev, Replaces: + libjpeg62-dev, + libjpeg7-dev, + libjpeg8-dev, + libjpeg-turbo8-dev, +Provides: + libjpeg-dev, libjpeg8-dev, libjpeg-turbo8-dev, Description: Development files for the IJG JPEG library @@ -137,12 +141,17 @@ Depends: libjpeg8-turbo (= ${binary:Version}), ${misc:Depends}, Conflicts: + libjpeg62-dbg, + libjpeg7-dbg, libjpeg8-dbg, libjpeg-turbo8-dbg, Replaces: + libjpeg62-dbg, + libjpeg7-dbg, libjpeg8-dbg, libjpeg-turbo8-dbg, Provides: + libjpeg-dbg, libjpeg8-dbg, libjpeg-turbo8-dbg, Description: Debugging symbols for the libjpeg8-turbo library @@ -164,10 +173,10 @@ Description: Debugging symbols for the libjpeg8-turbo library Package: libjpeg-turbo-progs Architecture: any Depends: - libc6, + ${shlibs:Depends}, libjpeg8-turbo (= ${binary:Version}), ${misc:Depends}, -Conflicts: +Breaks: libjpeg-progs, Replaces: libjpeg-progs, diff --git a/debian/extra/Makefile b/debian/extra/Makefile index b34f7ac..8999c45 100644 --- a/debian/extra/Makefile +++ b/debian/extra/Makefile @@ -1,4 +1,5 @@ -CFLAGS = -O2 -Wall -g +CFLAGS ?= -O2 -Wall -g +LDFLAGS ?= CC = cc INSTALL = install -m755 -o root -g root INSTALLDIR = install -m755 -o root -g root -d @@ -10,7 +11,7 @@ mandir = $(prefix)/share/man/man1 all: jpegexiforient jpegexiforient: jpegexiforient.c - $(CC) $(CFLAGS) -o jpegexiforient jpegexiforient.c + $(CC) $(CFLAGS) $(LDFLAGS) -o jpegexiforient jpegexiforient.c clean: -rm -f jpegexiforient install: diff --git a/debian/libjpeg-turbo-progs.postrm b/debian/libjpeg-turbo-progs.postrm new file mode 100755 index 0000000..ed9d0f2 --- /dev/null +++ b/debian/libjpeg-turbo-progs.postrm @@ -0,0 +1,43 @@ +#!/bin/sh +# postrm script for libjpeg-turbo-progs + +set -e + +case "$1" in + remove|abort-install|disappear) + dpkg-divert --package libjpeg-turbo-progs --rename \ + --remove /usr/bin/rdjpgcom + dpkg-divert --package libjpeg-turbo-progs --rename \ + --remove /usr/bin/wrjpgcom + dpkg-divert --package libjpeg-turbo-progs --rename \ + --remove /usr/bin/jpegtran + dpkg-divert --package libjpeg-turbo-progs --rename \ + --remove /usr/bin/cjpeg + dpkg-divert --package libjpeg-turbo-progs --rename \ + --remove /usr/bin/djpeg + + dpkg-divert --package libjpeg-turbo-progs --rename \ + --remove /usr/share/man/man1/wrjpgcom.1.gz + dpkg-divert --package libjpeg-turbo-progs --rename \ + --remove /usr/share/man/man1/cjpeg.1.gz + dpkg-divert --package libjpeg-turbo-progs --rename \ + --remove /usr/share/man/man1/djpeg.1.gz + dpkg-divert --package libjpeg-turbo-progs --rename \ + --remove /usr/share/man/man1/rdjpgcom.1.gz + dpkg-divert --package libjpeg-turbo-progs --rename \ + --remove /usr/share/man/man1/jpegtran.1.gz + + ;; + + purge|upgrade|failed-upgrade|abort-upgrade) + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 diff --git a/debian/libjpeg-turbo-progs.preinst b/debian/libjpeg-turbo-progs.preinst new file mode 100755 index 0000000..c791117 --- /dev/null +++ b/debian/libjpeg-turbo-progs.preinst @@ -0,0 +1,55 @@ +#!/bin/sh +# preinst script for libjpeg-turbo-progs +# +# Moving files from package libjpeg-progs out of the way... + +set -e + +case "$1" in + install) + + dpkg-divert --package libjpeg-turbo-progs --rename \ + --divert /usr/share/man/man1/wrjpgcom-ijg.1.gz \ + --add /usr/share/man/man1/wrjpgcom.1.gz + dpkg-divert --package libjpeg-turbo-progs --rename \ + --divert /usr/share/man/man1/cjpeg-ijg.1.gz \ + --add /usr/share/man/man1/cjpeg.1.gz + dpkg-divert --package libjpeg-turbo-progs --rename \ + --divert /usr/share/man/man1/djpeg-ijg.1.gz \ + --add /usr/share/man/man1/djpeg.1.gz + dpkg-divert --package libjpeg-turbo-progs --rename \ + --divert /usr/share/man/man1/rdjpgcom-ijg.1.gz \ + --add /usr/share/man/man1/rdjpgcom.1.gz + dpkg-divert --package libjpeg-turbo-progs --rename \ + --divert /usr/share/man/man1/jpegtran-ijg.1.gz \ + --add /usr/share/man/man1/jpegtran.1.gz + + dpkg-divert --package libjpeg-turbo-progs --rename \ + --divert /usr/bin/rdjpgcom-ijg \ + --add /usr/bin/rdjpgcom + dpkg-divert --package libjpeg-turbo-progs --rename \ + --divert /usr/bin/wrjpgcom-ijg \ + --add /usr/bin/wrjpgcom + dpkg-divert --package libjpeg-turbo-progs --rename \ + --divert /usr/bin/jpegtranm-ijg \ + --add /usr/bin/jpegtran + dpkg-divert --package libjpeg-turbo-progs --rename \ + --divert /usr/bin/cjpeg-ijg \ + --add /usr/bin/cjpeg + dpkg-divert --package libjpeg-turbo-progs --rename \ + --divert /usr/bin/djpeg-ijg \ + --add /usr/bin/djpeg + ;; + + upgrade|abort-upgrade) + ;; + + *) + echo "preinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 diff --git a/debian/libjpeg8-turbo-dev.postrm b/debian/libjpeg8-turbo-dev.postrm new file mode 100755 index 0000000..e0b8ba3 --- /dev/null +++ b/debian/libjpeg8-turbo-dev.postrm @@ -0,0 +1,27 @@ +#!/bin/sh +# postrm script for libjpeg8-turbo-dev + +set -e + +case "$1" in + remove|abort-install|disappear) + HOST_MULTIARCH=`dpkg-architecture -qDEB_HOST_MULTIARCH` + + dpkg-divert --package libjpeg8-turbo-dev --rename \ + --remove /usr/lib/$HOST_MULTIARCH/libjpeg.so + dpkg-divert --package libjpeg8-turbo-dev --rename \ + --remove /usr/lib/$HOST_MULTIARCH/libjpeg.a + ;; + + purge|upgrade|failed-upgrade|abort-upgrade) + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; + esac + +#DEBHELPER# + +exit 0 diff --git a/debian/libjpeg8-turbo-dev.preinst b/debian/libjpeg8-turbo-dev.preinst new file mode 100755 index 0000000..dcc73e7 --- /dev/null +++ b/debian/libjpeg8-turbo-dev.preinst @@ -0,0 +1,33 @@ +#!/bin/sh +# preinst script for libjpeg8-turbo-dev +# +# Moving files from package libjpeg8-dev out of the way... + +set -e + +case "$1" in + install) + HOST_MULTIARCH=`dpkg-architecture -qDEB_HOST_MULTIARCH` + + dpkg-divert --package libjpeg8-turbo-dev --rename \ + --divert /usr/lib/$HOST_MULTIARCH/libjpeg-ijg.so \ + --add /usr/lib/$HOST_MULTIARCH/libjpeg.so + dpkg-divert --package libjpeg8-turbo-dev --rename \ + --divert /usr/lib/$HOST_MULTIARCH/libjpeg-ijg.a \ + --add /usr/lib/$HOST_MULTIARCH/libjpeg.a + rm -f /usr/lib/$HOST_MULTIARCH/libjpeg.so + rm -f /usr/lib/$HOST_MULTIARCH/libjpeg.a + ;; + + upgrade|abort-upgrade) + ;; + + *) + echo "preinst called with unknown argument \`$1'" >&2 + exit 1 + ;; + esac + +#DEBHELPER# + +exit 0 diff --git a/debian/libjpeg8-turbo.lintian-overrides b/debian/libjpeg8-turbo.lintian-overrides index 84b7dcf..674777f 100644 --- a/debian/libjpeg8-turbo.lintian-overrides +++ b/debian/libjpeg8-turbo.lintian-overrides @@ -1,5 +1,6 @@ # yes, we specifically want linkers to depend on the standard libjpeg name libjpeg8-turbo: shlibs-declares-dependency-on-other-package libjpeg8 (>= 8) +libjpeg8-turbo: symbols-declares-dependency-on-other-package libjpeg8 #MINVER# # yes, the package has a different name libjpeg8-turbo: package-name-doesnt-match-sonames libjpeg8 # upstream (DRC <dcomman...@users.sourceforge.net>) states that the below issue diff --git a/debian/libjpeg8-turbo.postrm b/debian/libjpeg8-turbo.postrm new file mode 100755 index 0000000..0f99fde --- /dev/null +++ b/debian/libjpeg8-turbo.postrm @@ -0,0 +1,27 @@ +#!/bin/sh +# postrm script for libjpeg8-turbo + +set -e + +case "$1" in + remove|abort-install|disappear) + HOST_MULTIARCH=`dpkg-architecture -qDEB_HOST_MULTIARCH` + + dpkg-divert --package libjpeg8-turbo --rename \ + --remove /usr/lib/$HOST_MULTIARCH/libjpeg.so.8.0.2 + dpkg-divert --package libjpeg8-turbo --rename \ + --remove /usr/lib/$HOST_MULTIARCH/libjpeg.so.8 + ;; + + purge|upgrade|failed-upgrade|abort-upgrade) + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; + esac + +#DEBHELPER# + +exit 0 diff --git a/debian/libjpeg8-turbo.preinst b/debian/libjpeg8-turbo.preinst new file mode 100755 index 0000000..14fbf94 --- /dev/null +++ b/debian/libjpeg8-turbo.preinst @@ -0,0 +1,33 @@ +#!/bin/sh +# preinst script for libjpeg8-turbo +# +# Moving files from package libjpeg8 out of the way... + +set -e + +case "$1" in + install) + HOST_MULTIARCH=`dpkg-architecture -qDEB_HOST_MULTIARCH` + + dpkg-divert --package libjpeg8-turbo --rename \ + --divert /usr/lib/$HOST_MULTIARCH/libjpeg-ijg.so.8.0.2 \ + --add /usr/lib/$HOST_MULTIARCH/libjpeg.so.8.0.2 + dpkg-divert --package libjpeg8-turbo --rename \ + --divert /usr/lib/$HOST_MULTIARCH/libjpeg-ijg.so.8 \ + --add /usr/lib/$HOST_MULTIARCH/libjpeg.so.8 + rm -f /usr/lib/$HOST_MULTIARCH/libjpeg.so.8.0.2 + rm -f /usr/lib/$HOST_MULTIARCH/libjpeg.so.8 + ;; + + upgrade|abort-upgrade) + ;; + + *) + echo "preinst called with unknown argument \`$1'" >&2 + exit 1 + ;; + esac + +#DEBHELPER# + +exit 0 diff --git a/debian/libturbojpeg1.postinst b/debian/libturbojpeg1.postinst deleted file mode 100755 index bf1f031..0000000 --- a/debian/libturbojpeg1.postinst +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -set -e - -if [ "$1" = "configure" ]; then - ldconfig -fi - -#DEBHELPER# diff --git a/debian/libturbojpeg1.postrm b/debian/libturbojpeg1.postrm deleted file mode 100755 index 84f9e91..0000000 --- a/debian/libturbojpeg1.postrm +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -set -e - -if [ "$1" = "remove" ]; then - ldconfig -fi - -#DEBHELPER# diff --git a/debian/rules b/debian/rules index d4d4dc0..96cc3d5 100755 --- a/debian/rules +++ b/debian/rules @@ -36,15 +36,21 @@ override_dh_auto_configure: override_dh_auto_build: dh_auto_build -v - $(MAKE) -C debian/extra CC=$(CC) CFLAGS="$(CFLAGS) -Wall" + $(MAKE) -C debian/extra CC=$(CC) CFLAGS="$(CPPFLAGS) $(CFLAGS) -Wall" LDFLAGS="$(LDFLAGS)" override_dh_install: $(MAKE) -C debian/extra install prefix=/usr DESTDIR=$(CURDIR)/debian/tmp - : # fix jconfig.h + : # fix jconfig.h rm -f debian/tmp/usr/include/jconfig.h mkdir -p debian/tmp/usr/include/$(DEB_HOST_MULTIARCH) sed -e "s/#\(undef\|define\) HAVE_\(LOCALE\|\(STD\(DEF\|LIB\)\)\)_H 1//g" \ jconfig.h > debian/tmp/usr/include/$(DEB_HOST_MULTIARCH)/jconfig.h + + : # A very dirty hack, provide a symlink with libjpeg8-turbo that + : # supersedes any libjpeg.so.8.x.y version. That will trick SO_NAME symlinking + : # of ldconfig. + cd debian/tmp/usr/lib/${DEB_HOST_MULTIARCH}/ && ln -s libjpeg.so.8.* libjpeg.so.8.99.0 + dh_install override_dh_installchangelogs:
pgpKrJAj8YOJW.pgp
Description: Digitale PGP-Unterschrift