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

Re: GNOME 1 ABI involving libpng



I fear this thread is heading towards a flamefest which won't help us or our
users. This is my attempt to solve the situation in a constructive manner;
please consider it in that light.


On Tue, Aug 27, 2002 at 09:37:27 +0200, Christian Marillat wrote:
> Ryan Murray <rmurray@debian.org> writes:
> > Can someone give me at least ONE reason why we should be breaking the
> > ABI of GNOME 1

> One good reason is that :

That's not a good reason (anymore), as I'll show below.

Do you have any other reasons? If not, let's move sid's GNOME1 back to png2
ASAP so it works again and remains compatible with our releases and those of
other distributions.

> $ sudo apt-get install libpng2-dev -s
> Reading Package Lists... Done
> Building Dependency Tree... Done
> The following packages will be REMOVED:
[long list of -dev packages]

So? Let's fix the root cause of that problem then, by having a libpng2-dev
package that can coexist with libpng3-dev.

The attached patch does that: it introduces a "libpng2-altdev" package that
(unlike libpng2-dev) can be installed alongside libpng3-dev and can be used
to build libpng2-dependent packages without needing a chroot or removing
lots of libpng3-dev-dependent -dev packages.

Those packages require only small changes to use it, mainly:
- change "Build-Depends: libpng2-dev" to "Build-Depends: libpng2-altdev"
- include png(conf).h from /usr/include/png2 rather than /usr/include
- link "-lpng2" rather than "-lpng"

As libpng2-dev continues to exist, there is no need for a "we need to
rebuild everything now" mass rebuild of libpng2-dependent packages. Of
course, if we move back GNOME1 to png2, that rebuild should be done fairly
fast, we've had more than enough GNOME1 breakage in sid IMHO.

Christian, Ryan and others have good arguments against the GNOME1 png2->3
transition (breaking compatibility with our and others' releases, going
against upstream's wishes); so far, you have given one argument for it
(easier building of packages) which I think I have offered a constructive
solution for. Can we now please move forward by unbreaking GNOME1 by going
back to png2?

Ray
-- 
The Internet interprets attempts at proprietary control as damage and routes
around it.
	Eric S. Raymond
diff -r -u libpng-1.0.12.old/debian/changelog libpng-1.0.12/debian/changelog
--- libpng-1.0.12.old/debian/changelog	2002-08-28 11:38:01.000000000 +0200
+++ libpng-1.0.12/debian/changelog	2002-08-28 11:34:17.000000000 +0200
@@ -1,3 +1,13 @@
+libpng (1.0.12-5.1) unstable; urgency=HIGH
+
+  * UNRELEASED
+
+  * Introduce "libpng2-altdev" package to allow building of code that needs
+    the png2 ABI for compatibility reasons (in particular, GNOME1) on systems
+    where libpng3-dev is installed as well.
+
+ -- J.H.M. Dassen (Ray) <jdassen@debian.org>  Wed, 28 Aug 2002 11:34:12 +0200
+
 libpng (1.0.12-5) unstable; urgency=HIGH
 
   * security fix backported from 1.0.14, error handling for color depth. 
diff -r -u libpng-1.0.12.old/debian/control libpng-1.0.12/debian/control
--- libpng-1.0.12.old/debian/control	2002-08-28 11:38:01.000000000 +0200
+++ libpng-1.0.12/debian/control	2002-08-28 11:37:46.000000000 +0200
@@ -3,7 +3,7 @@
 Section: libs
 Priority: optional
 Standards-Version: 3.5.5.0
-Build-depends: zlib1g-dev
+Build-Depends: zlib1g-dev
 
 Package: libpng2
 Architecture: any
@@ -24,3 +24,15 @@
 Description: PNG library - development
  libpng is a library implementing an interface for reading and writing
  PNG (Portable Network Graphics) format files.
+
+Package: libpng2-altdev
+Architecture: any
+Section: devel
+Depends: libpng2 (=${Source-Version}), libc6-dev, zlib1g-dev
+Description: Old PNG library - development
+ libpng is a library implementing an interface for reading and writing
+ PNG (Portable Network Graphics) format files.
+ .
+ This package allows the building of applications and libraries that require
+ the older png2 ABI on systems where libpng2-dev cannot be installed due
+ to conflicts with libpng3-dev.
diff -r -u libpng-1.0.12.old/debian/rules libpng-1.0.12/debian/rules
--- libpng-1.0.12.old/debian/rules	2002-08-28 11:38:01.000000000 +0200
+++ libpng-1.0.12/debian/rules	2002-08-28 11:38:54.000000000 +0200
@@ -20,6 +20,7 @@
 
 tmpdir = $(shell pwd)/debian/tmp
 tmpdir-dev = $(tmpdir)-dev
+tmpdir-altdev = $(tmpdir)-altdev
 instdirs = $(tmpdir) \
 	$(tmpdir)/DEBIAN \
 	$(tmpdir)/usr/share/doc/libpng2 \
@@ -32,7 +33,13 @@
 	$(tmpdir-dev)/usr/share/man/man3 \
 	$(tmpdir-dev)/usr/share/man/man5 \
 	$(tmpdir-dev)/usr/share/doc/libpng2/examples \
-	$(tmpdir-dev)/usr/share/doc-base
+	$(tmpdir-dev)/usr/share/doc-base \
+	$(tmpdir-altdev) \
+	$(tmpdir-altdev)/DEBIAN \
+	$(tmpdir-altdev)/usr \
+	$(tmpdir-altdev)/usr/include \
+	$(tmpdir-altdev)/usr/include/png2 \
+	$(tmpdir-altdev)/usr/lib
 
 build:
 	$(checkdir)
@@ -71,6 +78,11 @@
 	install -m 644 libpng.3 libpngpf.3 $(tmpdir-dev)/usr/share/man/man3/.
 	ln -s libpng.so.$(version) $(tmpdir)/usr/lib/libpng.so.$(soversion)
 	ln -s libpng.so.$(soversion) $(tmpdir-dev)/usr/lib/libpng.so
+	install -m 644 libpng.a $(tmpdir-altdev)/usr/lib/libpng2.a
+	$(DEBSTRIP) --strip-debug $(tmpdir-altdev)/usr/lib/libpng2.a
+	install -m 644 png.h $(tmpdir-altdev)/usr/include/png2/png.h
+	install -m 644 pngconf.h $(tmpdir-altdev)/usr/include/png2/pngconf.h
+	ln -s libpng.so.$(soversion) $(tmpdir-altdev)/usr/lib/libpng2.so
 	dpkg-shlibdeps libpng.so
 	# Copyrights
 	install -m 644 debian/changelog \
@@ -92,10 +104,13 @@
 	install -m 644 debian/docbase $(tmpdir-dev)/usr/share/doc-base/libpng
 	chown -R root.root $(tmpdir)
 	chmod -R g-ws $(tmpdir-dev)
+	chmod -R g-ws $(tmpdir-altdev)
 	dpkg-gencontrol -Pdebian/tmp -plibpng2 -isp
 	dpkg-gencontrol -Pdebian/tmp-dev -plibpng2-dev -isp
+	dpkg-gencontrol -Pdebian/tmp-altdev -plibpng2-altdev -isp
 	dpkg --build $(tmpdir) ..
 	dpkg --build $(tmpdir-dev) ..
+	dpkg --build $(tmpdir-altdev) ..
 
 define checkdir
 	test -f debian/rules
diff -r -u libpng-1.0.12.old/debian/shlibs libpng-1.0.12/debian/shlibs
--- libpng-1.0.12.old/debian/shlibs	2002-08-28 11:38:01.000000000 +0200
+++ libpng-1.0.12/debian/shlibs	2002-08-28 11:48:40.000000000 +0200
@@ -1 +1,2 @@
 libpng	2	libpng2 (>=1.0.12)
+libpng2	2	libpng2 (>=1.0.12)

Reply to: