I would like to propose that we stop fighting upstream and just
accept the default png layout.  For details, see the PLIST chunk
of the patch below.

Currently we force the png headers, all three of them, into a
separate directory, which has in turn forced us to add
-I${LOCALBASE}/include/libpng all over the ports tree.  This is
stupid.

I'm not fond of all the png -> png15 symlinks, but they don't hurt.
FreeBSD, NetBSD, and Debian all use the default layout, too.

One change we might want to keep (not included below) is s/-lpng15/-lpng/
in libpng.pc to keep the WANTLIB churn down.

Comments?


Index: Makefile
===================================================================
RCS file: /cvs/ports/graphics/png/Makefile,v
retrieving revision 1.91
diff -u -p -r1.91 Makefile
--- Makefile    15 Apr 2013 02:38:43 -0000      1.91
+++ Makefile    1 Jun 2013 17:17:20 -0000
@@ -3,9 +3,11 @@
 COMMENT=       library for manipulating PNG images
 
 VERSION=       1.5.15
+REVISION=      1
 DISTNAME=      libpng-${VERSION}
 PKGNAME=       png-${VERSION}
-SHARED_LIBS=   png     15.1
+SHARED_LIBS=   png15   15.1 \
+               png     15.1
 CATEGORIES=    graphics
 DPB_PROPERTIES=        parallel
 MASTER_SITES=  ${MASTER_SITE_SOURCEFORGE:=libpng/}
@@ -17,17 +19,11 @@ PERMIT_PACKAGE_CDROM=       Yes
 
 WANTLIB=       m z
 
-SUBST_VARS=    VERSION
+CONFIGURE_STYLE=gnu
+CONFIGURE_ARGS=        ${CONFIGURE_SHARED}
 
-FAKE_FLAGS=    PREFIX="${PREFIX}"
-
-MAKE_ENV=      CC="${CC}"
-MAKE_FILE=     scripts/makefile.openbsd
-MAKE_FLAGS=    SHLIB_MAJOR=${LIBpng_VERSION:R} \
-               SHLIB_MINOR=${LIBpng_VERSION:E} \
-               PNGLIB_VERSION=${VERSION}
-
-do-configure:
-       cp ${WRKSRC}/scripts/pnglibconf.h.prebuilt ${WRKBUILD}/pnglibconf.h
+post-install:
+       cd ${PREFIX}/lib; \
+           ln -s libpng15.so.${LIBpng15_VERSION} libpng.so.${LIBpng_VERSION}
 
 .include <bsd.port.mk>
Index: patches/patch-scripts_libpng-config-body_in
===================================================================
RCS file: patches/patch-scripts_libpng-config-body_in
diff -N patches/patch-scripts_libpng-config-body_in
--- patches/patch-scripts_libpng-config-body_in 25 Mar 2013 00:21:37 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
-$OpenBSD: patch-scripts_libpng-config-body_in,v 1.1 2013/03/25 00:21:37 brad 
Exp $
---- scripts/libpng-config-body.in.orig Sat Mar 23 20:59:22 2013
-+++ scripts/libpng-config-body.in      Sat Mar 23 21:00:37 2013
-@@ -83,6 +83,7 @@ while test $# -gt 0; do
- 
-     --static)
-         R_opts=""
-+        libs="${libs} ${static_libs}"
-         ;;
- 
-     *)
Index: patches/patch-scripts_libpng_pc_in
===================================================================
RCS file: patches/patch-scripts_libpng_pc_in
diff -N patches/patch-scripts_libpng_pc_in
--- patches/patch-scripts_libpng_pc_in  15 Apr 2013 02:38:43 -0000      1.26
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,17 +0,0 @@
-$OpenBSD: patch-scripts_libpng_pc_in,v 1.26 2013/04/15 02:38:43 brad Exp $
---- scripts/libpng.pc.in.orig  Wed Mar 27 21:21:27 2013
-+++ scripts/libpng.pc.in       Thu Apr 11 21:30:19 2013
-@@ -1,10 +1,11 @@
- prefix=@prefix@
- exec_prefix=@exec_prefix@
- libdir=@libdir@
--includedir=@includedir@/libpng15
-+includedir=@includedir@
- 
- Name: libpng
- Description: Loads and saves PNG files
- Version: 1.5.15
--Libs: -L${libdir} -lpng15
-+Libs: -L${libdir} -lpng
-+Libs.private: -lz -lm
- Cflags: -I${includedir}
Index: patches/patch-scripts_makefile_openbsd
===================================================================
RCS file: patches/patch-scripts_makefile_openbsd
diff -N patches/patch-scripts_makefile_openbsd
--- patches/patch-scripts_makefile_openbsd      15 Apr 2013 02:38:43 -0000      
1.40
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,108 +0,0 @@
-$OpenBSD: patch-scripts_makefile_openbsd,v 1.40 2013/04/15 02:38:43 brad Exp $
---- scripts/makefile.openbsd.orig      Wed Mar 27 21:21:27 2013
-+++ scripts/makefile.openbsd   Thu Apr 11 21:29:02 2013
-@@ -7,8 +7,10 @@
- # and license in png.h
- 
- PREFIX?= /usr/local
-+BINDIR= ${PREFIX}/bin
- LIBDIR=       ${PREFIX}/lib
--MANDIR= ${PREFIX}/man/cat
-+MANDIR= ${PREFIX}/man/man
-+INCDIR= ${PREFIX}/include/libpng
- 
- SHLIB_MAJOR=  15
- SHLIB_MINOR=  1.5.15
-@@ -22,15 +24,34 @@ HDRS=      png.h pngconf.h pnglibconf.h
- 
- CFLAGS+= -W -Wall
- CPPFLAGS+= -I${.CURDIR}
-+LDADD=        -lz -lm
- 
- NOPROFILE= Yes
- 
--CLEANFILES+= pngtest.o pngtest pnglibconf.h
-+CLEANFILES+= pngtest.o pngtest pngvalid.o pngvalid pnglibconf.h libpng-config
- 
- MAN=  libpng.3 libpngpf.3 png.5
--DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO \
--       libpng-manual.txt
- 
-+all: pnglibconf.h ${_LIBS} libpng-config libpng.pc
-+
-+beforedepend: pnglibconf.h
-+
-+libpng.pc:
-+      sed < scripts/libpng.pc.in -e s'!@prefix@!$(PREFIX)!' \
-+              -e 's!@exec_prefix@!$(BINDIR)!' -e 's!@libdir@!$(LIBDIR)!' \
-+              -e 's!@includedir@!$(INCDIR)!'  \
-+              -e 's!@PNGLIB_VERSION@!$(PNGLIB_VERSION)!' > libpng.pc
-+
-+libpng-config:
-+      ( cat scripts/libpng-config-head.in; \
-+      echo prefix=\"$(PREFIX)\"; \
-+      echo I_opts=\"-I$(INCDIR)\"; \
-+      echo L_opts=\"-L$(LIBDIR)\"; \
-+      echo libs=\"-lpng\"; \
-+      echo static_libs=\"-lz -lm\"; \
-+      cat scripts/libpng-config-body.in ) > libpng-config
-+      chmod +x libpng-config
-+
- # see scripts/pnglibconf.mak for more options
- pnglibconf.h: scripts/pnglibconf.h.prebuilt
-       cp scripts/pnglibconf.h.prebuilt $@
-@@ -41,13 +62,20 @@ pngtest.o: pngtest.c
- pngtest:      pngtest.o
-       ${CC} ${LDFLAGS} ${.ALLSRC} -o ${.TARGET} -L${.OBJDIR} -lpng -lz -lm
- 
--test: pngtest
--      cd ${.OBJDIR} && env \
--              LD_LIBRARY_PATH="${.OBJDIR}" ${.OBJDIR}/pngtest
-+pngvalid.o:   contrib/libtests/pngvalid.c
-+      ${CC} ${CPPFLAGS} ${CFLAGS} -c ${.ALLSRC} -o ${.TARGET}
- 
-+pngvalid:     pngvalid.o
-+      ${CC} ${LDFLAGS} ${.ALLSRC} -o ${.TARGET} -L${.OBJDIR} -lpng -lz -lm
-+
-+test regress: pngtest pngvalid
-+      @LD_LIBRARY_PATH="${.OBJDIR}" srcdir=. ./test-pngtest.sh
-+      @LD_LIBRARY_PATH="${.OBJDIR}" ./test-pngvalid-simple.sh
-+      @LD_LIBRARY_PATH="${.OBJDIR}" ./test-pngvalid-full.sh
-+
- beforeinstall:
--      if [ ! -d ${DESTDIR}${PREFIX}/include/libpng ]; then \
--        ${INSTALL} -d -o root -g wheel ${DESTDIR}${PREFIX}/include; \
-+      if [ ! -d ${DESTDIR}${INCDIR} ]; then \
-+        ${INSTALL} -d -o root -g wheel ${DESTDIR}${INCDIR}; \
-       fi
-       if [ ! -d ${DESTDIR}${LIBDIR} ]; then \
-         ${INSTALL} -d -o root -g wheel ${DESTDIR}${LIBDIR}; \
-@@ -61,22 +89,18 @@ beforeinstall:
-       if [ ! -d ${DESTDIR}${MANDIR}5 ]; then \
-         ${INSTALL} -d -o root -g wheel ${DESTDIR}${MANDIR}5; \
-       fi
--      if [ ! -d ${DESTDIR}${PREFIX}/share/doc/png ]; then \
--        ${INSTALL} -d -o root -g wheel ${DESTDIR}${PREFIX}/share/doc/png; \
-+      if [ ! -d ${DESTDIR}${LIBDIR}/pkgconfig ]; then \
-+        ${INSTALL} -d -o root -g wheel ${DESTDIR}${LIBDIR}/pkgconfig; \
-       fi
- 
- afterinstall:
--      @rm -f ${DESTDIR}${LIBDIR}/libpng_pic.a
-       @rm -f ${DESTDIR}${LIBDIR}/debug/libpng.a
--      @rm -f ${DESTDIR}${PREFIX}/include/png.h
--      @rm -f ${DESTDIR}${PREFIX}/include/pngconf.h
--      @rm -f ${DESTDIR}${PREFIX}/include/pnglibconf.h
-       @rmdir ${DESTDIR}${LIBDIR}/debug 2>/dev/null || true
-+      ${INSTALL} ${INSTALL_COPY} -o ${BINOWN} -g ${BINGRP} \
-+              -m ${BINMODE} libpng-config ${DESTDIR}${BINDIR}
-       ${INSTALL} ${INSTALL_COPY} -o ${SHAREOWN} -g ${SHAREGRP} \
--              -m ${NONBINMODE} ${HDRS} ${DESTDIR}${PREFIX}/include
-+              -m ${NONBINMODE} ${HDRS} ${DESTDIR}${INCDIR}
-       ${INSTALL} ${INSTALL_COPY} -o ${SHAREOWN} -g ${SHAREGRP} \
--              -m ${NONBINMODE} ${HDRS} ${DESTDIR}${PREFIX}/include
--      ${INSTALL} ${INSTALL_COPY} -o ${SHAREOWN} -g ${SHAREGRP} \
--              -m ${NONBINMODE} ${DOCS} ${DESTDIR}${PREFIX}/share/doc/png
-+              -m ${NONBINMODE} libpng.pc ${DESTDIR}${LIBDIR}/pkgconfig
- 
- .include <bsd.lib.mk>
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/graphics/png/pkg/PLIST,v
retrieving revision 1.26
diff -u -p -r1.26 PLIST
--- pkg/PLIST   25 Mar 2013 00:21:37 -0000      1.26
+++ pkg/PLIST   1 Jun 2013 17:17:20 -0000
@@ -1,13 +1,22 @@
 @comment $OpenBSD: PLIST,v 1.26 2013/03/25 00:21:37 brad Exp $
 bin/libpng-config
-include/libpng/
-include/libpng/png.h
-include/libpng/pngconf.h
-include/libpng/pnglibconf.h
+bin/libpng15-config
+include/libpng15/
+include/libpng15/png.h
+include/libpng15/pngconf.h
+include/libpng15/pnglibconf.h
+include/png.h
+include/pngconf.h
+include/pnglibconf.h
 lib/libpng.a
+lib/libpng.la
 @lib lib/libpng.so.${LIBpng_VERSION}
+lib/libpng15.a
+lib/libpng15.la
+@lib lib/libpng15.so.${LIBpng15_VERSION}
 lib/pkgconfig/
 lib/pkgconfig/libpng.pc
+lib/pkgconfig/libpng15.pc
 @man man/man3/libpng.3
 @man man/man3/libpngpf.3
 @man man/man5/png.5
-- 
Christian "naddy" Weisgerber                          [email protected]

Reply via email to