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]