ports/110693: Port does not rebuild newer version if work dir of old versions are not removed
Yoshihiro Ota
ota at j.email.ne.jp
Fri Mar 23 05:00:11 UTC 2007
>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:
More information about the freebsd-ports-bugs
mailing list