Date: Tue, 10 May 2011 18:11:10 +0200 From: Matthias Andree <mandree@FreeBSD.org> To: FreeBSD-gnats-submit@FreeBSD.org Cc: dinoex@FreeBSD.org Subject: ports/156930: [PATCH] graphics/netpbm: fix upgrade hell, fix parallel build Message-ID: <E1QJpWg-000ABZ-OS@apollo.emma.line.org> Resent-Message-ID: <201105101620.p4AGK7s9003594@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 156930 >Category: ports >Synopsis: [PATCH] graphics/netpbm: fix upgrade hell, fix parallel build >Confidential: no >Severity: critical >Priority: high >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue May 10 16:20:06 UTC 2011 >Closed-Date: >Last-Modified: >Originator: Matthias Andree >Release: FreeBSD 8.2-RELEASE amd64 >Organization: >Environment: System: FreeBSD apollo.emma.line.org 8.2-RELEASE FreeBSD 8.2-RELEASE #65: Fri Feb 25 01:47:50 CET 2011 >Description: Hi Dirk, note that the current shape of netpbm frequently breaks portmaster upgrades, too, so we should get rid of it as soon as possible. Find below a patch to fix two major issues in graphics/netpbm: 1. the addition to files/patch-Makefile.common fixes the "compile with netpbm version installed" problem. We can remove the pre-configure check. I've tested this with the old 10.28 headers in /usr/local/include (taken from a package), broke before the patch, no ill effects after. Basically we just make sure that -I$(LOCALBASE)/include comes after all the local includes. And certainly we don't want to wedge a PORTREVISION-bumped build... This wasn't too hard, was it? 2. The pre-build line makes it safe to build the whole package in parallel. Consequently mark MAKE_JOBS_SAFE. Tested on a real quad-core computer (AMD Phenom II X4) several times, no build failures. Port maintainer (dinoex@FreeBSD.org) is cc'd. Generated with FreeBSD Port Tools 0.99 >How-To-Repeat: >Fix: --- netpbm-10.35.80_3.patch begins here --- Index: Makefile =================================================================== RCS file: /home/ncvs/ports/graphics/netpbm/Makefile,v retrieving revision 1.197 diff -u -u -r1.197 Makefile --- Makefile 10 May 2011 04:46:59 -0000 1.197 +++ Makefile 10 May 2011 15:58:35 -0000 @@ -22,7 +22,7 @@ jasper.4:${PORTSDIR}/graphics/jasper \ xml2.5:${PORTSDIR}/textproc/libxml2 -MAKE_JOBS_UNSAFE= yes +MAKE_JOBS_SAFE= yes USE_PERL5= yes USE_GMAKE= yes @@ -43,9 +43,6 @@ .endif pre-configure: - @if [ -e ${DESTDIR}/${LOCALBASE}/include/pm.h ]; then \ - (${ECHO_MSG} "===> Cannot build with netpbm installed, please deinstall first"; exit 1) \ - fi @${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \ -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/pm_config.in.h @@ -57,6 +54,10 @@ @${LN} -sf ${WRKSRC}/lib/util/nstring.h ${WRKSRC}/lib/util/pm_nstring.h cd ${WRKSRC} && buildtools/stamp-date > ${WRKSRC}/lib/compile.h +# This snippet is all it takes to make the port as of 10.35.80 MAKE_JOBS_SAFE: +pre-build: + ${GMAKE} -C ${WRKSRC}/lib/util + post-install: @${ECHO_MSG} "===> Installing man pages..." @${REINPLACE_CMD} -e 's|doc/USERDOC|${DOCSDIR}/USERDOC|g' \ Index: files/patch-Makefile.common =================================================================== RCS file: /home/ncvs/ports/graphics/netpbm/files/patch-Makefile.common,v retrieving revision 1.3 diff -u -u -r1.3 patch-Makefile.common --- files/patch-Makefile.common 12 Oct 2002 16:36:45 -0000 1.3 +++ files/patch-Makefile.common 10 May 2011 15:55:06 -0000 @@ -1,6 +1,15 @@ ---- Makefile.common.orig Wed Oct 9 11:17:24 2002 -+++ Makefile.common Sat Oct 12 00:00:00 2002 -@@ -231,19 +231,19 @@ +--- ./Makefile.common.orig 2006-11-13 05:14:19.000000000 +0100 ++++ ./Makefile.common 2011-05-10 15:44:47.000000000 +0200 +@@ -68,7 +68,7 @@ + + include $(SRCDIR)/Makefile.version + +-INCLUDES2 := $(INCLUDES) -I$(SRCDIR)/$(SUBDIR) -I. -I importinc ++INCLUDES2 := $(shell echo "$(INCLUDES) " | sed -Ee 's|-I$(LOCALBASE)/include/?[ ]+||g;') -I$(SRCDIR)/$(SUBDIR) -I. -Iimportinc -I$(LOCALBASE)/include + + ifeq ($(NETPBMLIBTYPE),unixstatic) + NETPBMLIBFNAME = libnetpbm.$(STATICLIBSUFFIX) +@@ -408,19 +408,19 @@ INSTALLBIN_TARGETS = $(BINARIES:%=%_installbin) netpbm_installbin .PHONY: $(INSTALLBIN_TARGETS) $(INSTALLBIN_TARGETS): $(PKGDIR)/bin --- netpbm-10.35.80_3.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1QJpWg-000ABZ-OS>