[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#612341: could anyone summarize the status on libjpeg-turbo WNPPs?



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


Reply to: