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.gabriel@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 <dcommander@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:
Attachment:
pgpmjjStshyVs.pgp
Description: Digitale PGP-Unterschrift