On Sat, Jun 01, 2013 at 07:37:57PM +0200, Christian Weisgerber wrote:
> 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?
This is very welcome..
> 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]
>
--
Cheers,
Jasper
"Stay Hungry. Stay Foolish"