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

Re: Do not link GNOME apps with libpng3



Hi,

FWIW, the solution we're planning for Red Hat is to create a symlink
"libpng10.so" to the old libpng, then link imlib and gnome-libs
against -lpng10. This way the ABI of imlib/gnome-libs is preserved,
but -lpng can be moved to libpng3.

I'll attach the imlib and gnome-libs patches. (This step also requires
creating /usr/include/png-1.0/png.h and killing off all -I/usr/include
in imlib.)

It would be nice to encourage the upstream png maintainer to support
parallel install as the GNOME 1/2 platforms do, but I haven't yet had
a chance to write a long explanation of how and why in order to send
that off to him.
 
I think it would be bad for Debian to break the GNOME 1 ABI for this
trivial reason, since GNOME upstream has gone to huge lengths not to
break it. And the libpng ABI changes are really trivial (renamed a
global variable, added a struct field, I think - very small changes).
After the enormous effort of upstream GNOME to maintain ABI it'd be
pretty lame to break ABI because of a variable rename or two in
libpng.

Havoc

--- imlib-1.9.10/configure.in.png10	Mon Jan  7 18:34:18 2002
+++ imlib-1.9.10/configure.in	Mon Jan  7 18:36:56 2002
@@ -40,6 +40,8 @@
 else 
 	AC_MSG_RESULT(yes)
 
+CFLAGS="-I /usr/include/png-1.0 $CFLAGS"
+
 if test "x$GDK_IMLIB" != x; then
   oLIBS="$LIBS"
   oCFLAGS="$CFLAGS"
@@ -280,7 +282,7 @@
     $GX_LIBS),
   AC_MSG_WARN(*** Native GIF support will not be built (GIF header not found) ***))
 
-AC_CHECK_LIB(png, png_read_info,
+AC_CHECK_LIB(png10, png_read_info,
   AC_CHECK_HEADER(png.h,
     png_ok=yes,
     png_ok=no),
@@ -310,9 +312,9 @@
 #fi
 
 if test "$png_ok" = yes; then
-	PNGLIBS="-lpng -lz"
+	PNGLIBS="-lpng10 -lz"
 	AC_SUBST(HAVE_LIBPNG)
-	SUPPORT_LIBS="$SUPPORT_LIBS -lpng -lz"; AC_DEFINE(HAVE_LIBPNG)
+	SUPPORT_LIBS="$SUPPORT_LIBS -lpng10 -lz"; AC_DEFINE(HAVE_LIBPNG)
 else
 	AC_MSG_WARN(*** Native PNG support will NOT be built (PNG version us 1.0.2, get 1.0.3) ***)
 fi

--- imlib-1.9.10/configure.in.cppflags	Tue Jan  8 15:05:58 2002
+++ imlib-1.9.10/configure.in	Tue Jan  8 15:06:11 2002
@@ -160,8 +160,6 @@
   GX_LIBS="$GTK_LIBS"
 fi
 
-CPPFLAGS="$CPPFLAGS -I$includedir -I$prefix/include"
-
 SUPPORT_LIBS=""
 
 dnl Test for shared memory headers and semantics, unless we are

--- gnome-libs-1.4.1.2.90/configure.in.png10	Tue Jan  8 14:25:31 2002
+++ gnome-libs-1.4.1.2.90/configure.in	Tue Jan  8 14:49:16 2002
@@ -296,7 +296,7 @@
                png_ok=yes,png_ok=no)
   AC_MSG_RESULT($png_ok)
   if test "$png_ok" = yes; then
-    PNG_LIBS="-lpng $Z_LIBS"; AC_DEFINE(HAVE_LIBPNG)
+    PNG_LIBS="-lpng10 $Z_LIBS"; AC_DEFINE(HAVE_LIBPNG)
   fi
 fi
 



Reply to: