Date: Fri, 23 Mar 2007 04:54:58 GMT From: Yoshihiro Ota<ota@j.email.ne.jp> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/110693: Port does not rebuild newer version if work dir of old versions are not removed Message-ID: <200703230454.l2N4swPX010064@www.freebsd.org> Resent-Message-ID: <200703230500.l2N50Brk068746@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 110693 >Category: ports >Synopsis: Port does not rebuild newer version if work dir of old versions are not removed >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Mar 23 05:00:11 GMT 2007 >Closed-Date: >Last-Modified: >Originator: Yoshihiro Ota >Release: 7.0-CURRENT >Organization: >Environment: latest port tree >Description: Port installs older version/revision if you don't cleanup your work directories. Even if port revision number increases after updaing ports tree, the previous revision is installed since *_COOKIEs only use port's name only. In my case, I did csup and then 'cd /usr/ports/x11/gnome && make install' everyday until it finishes. It took about a week to install all dependencies. During the period some ports were updated and version number or revision number were increased. In one of the run-depend chains, it required the newest port, but port build system didn't rebuild it because an old version was already built and was there. I do not run 'make clean' because it takes very long time. Instead, I have WRKDIRPREFIX set and have one filesystem assigned for port work areas so that I can use newfs to wipe out everything. >How-To-Repeat: This could be done with any ports, but, for example, % cd /usr/ports/ports-mgmt/pkg_tree % make install % vi Makefile -- increase PORTREVISION from 1 to 2. % make {de,re}install OR portupgrade -wW pkg_tree This installs the old (revision 1) version but installed package has revision 2. >Fix: Patch attached with submission follows: --- Mk/bsd.port.mk.orig Wed Mar 7 01:58:20 2007 +++ Mk/bsd.port.mk Wed Mar 7 21:18:46 2007 @@ -2088,12 +2088,13 @@ REINPLACE_CMD?= ${SED} ${REINPLACE_ARGS} # Names of cookies used to skip already completed stages -EXTRACT_COOKIE?= ${WRKDIR}/.extract_done.${PORTNAME}.${PREFIX:S/\//_/g} -CONFIGURE_COOKIE?= ${WRKDIR}/.configure_done.${PORTNAME}.${PREFIX:S/\//_/g} -INSTALL_COOKIE?= ${WRKDIR}/.install_done.${PORTNAME}.${PREFIX:S/\//_/g} -BUILD_COOKIE?= ${WRKDIR}/.build_done.${PORTNAME}.${PREFIX:S/\//_/g} -PATCH_COOKIE?= ${WRKDIR}/.patch_done.${PORTNAME}.${PREFIX:S/\//_/g} -PACKAGE_COOKIE?= ${WRKDIR}/.package_done.${PORTNAME}.${PREFIX:S/\//_/g} +COOKIE_SUFFIX?= ${PORTNAME}-${PORTVERSION}_${PORTREVISION}.${PREFIX:S/\//_/g} +EXTRACT_COOKIE?= ${WRKDIR}/.extract_done.${COOKIE_SUFFIX} +CONFIGURE_COOKIE?= ${WRKDIR}/.configure_done.${COOKIE_SUFFIX} +INSTALL_COOKIE?= ${WRKDIR}/.install_done.${COOKIE_SUFFIX} +BUILD_COOKIE?= ${WRKDIR}/.build_done.${COOKIE_SUFFIX} +PATCH_COOKIE?= ${WRKDIR}/.patch_done.${COOKIE_SUFFIX} +PACKAGE_COOKIE?= ${WRKDIR}/.package_done.${COOKIE_SUFFIX} # How to do nothing. Override if you, for some strange reason, would rather # do something. >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200703230454.l2N4swPX010064>