Sender: gnats@._ERASE_.FreeBSD.org To: jhs@._ERASE_. From: gnats-admin@._ERASE_.FreeBSD.org Subject: Re: ports/24658: diff for [4.2-RELEASE] src/release/Makefile Date: Fri, 26 Jan 2001 18:20:04 +0100 Thank you very much for your problem report. It has the internal identification `ports/24658'. The individual assigned to look at your report is: freebsd-ports. You can access the state of your problem report at any time via this link: http://www.freebsd.org/cgi/query-pr.cgi?pr=24658 >Category: ports >Responsible: freebsd-ports >Synopsis: Enhancement to src/release/Makefile >Arrival-Date: Fri Jan 26 09:20:01 PST 2001 SEND-PR: -*- send-pr -*- SEND-PR: Lines starting with `SEND-PR' will be removed automatically, as SEND-PR: will all comments (text enclosed in `<' and `>'). SEND-PR: SEND-PR: Please consult the send-pr man page `send-pr(1)' or the Texinfo SEND-PR: manual if you are not sure how to fill out a problem report. SEND-PR: SEND-PR: Note that the Synopsis field is mandatory. The Subject (for SEND-PR: the mail) will be made the same as Synopsis unless explicitly SEND-PR: changed. SEND-PR: SEND-PR: Choose from the following categories: SEND-PR: SEND-PR: advocacy alpha bin conf docs gnu SEND-PR: i386 kern misc ports sparc SEND-PR: To: FreeBSD-gnats-submit@._ERASE_.freebsd.org Subject: diff for [4.2-RELEASE] src/release/Makefile From: jhs@._ERASE_. Reply-To: jhs@._ERASE_. X-send-pr-version: 3.2 >Submitter-Id: current-users >Originator: Julian Stacey jhs@._ERASE_. >Organization: FreeBSD >Confidential: no >Synopsis: Enhancement to src/release/Makefile >Severity: non-critical >Priority: medium >Category: ports >Release: FreeBSD 4.2-RELEASE i386 >Class: change-request >Environment: - Building a release while the cvs tree is not frozen, & is thus subject to transient incoming inconsistencies from asynchronous commits to ports/. - Using my local generic FreeBSD 4.2-RELEASE i386 build engine. (not my customised personal host). >Description: This diff increases the chance of succesfully making a release without needing NOPORTS or NOPORTREADMES, even in the face of an inconsistent ports tree. EG in ports/audio/ extracted from ctm cvs-cur 7067: Makefile had SUBDIR+=ripit-atapi but ripit-atapi/ was already empty except for an empty files/ directory. That inconsistency broke make release. My patch should avoid similar future problems. (Historical note: By or before ctm cvs-cur 7073 the SUBDIR+= in ports/audio/Makefile was removed to match the empty ripit-atapi/ . But the older 4.2-WC-CDROM/Disc2/CVS-Repo/ports.tar.gz shows ports/audio/ripit-atapi/ with 11 files. ) >How-To-Repeat: Create an inconsistent cvs/ports subdir with a SUBDIR+= pointing to an empty directory, then wait for cvs -P used below to prune the empty directory to non existance & then `make readmes` (from `make release` fails. (Note `cd ports/audio; make readmes` does not fail on mere empty directories, but as cvs fails to create an empty directory, make fails) su ; cd /usr/src/release ; make release CHROOTDIR=/a_dir_with_a_gig_free \ MACHINE_ARCH=i386 RELEASETAG=RELENG_4_2_0_RELEASE \ PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games \ CVSROOT=/usr1/cvs BUILDNAME=4.2-RELEASE >Fix: Apply diff, (after removing some/all of comment block). *** 4.2-RELEASE/src/release/Makefile Fri Jan 26 15:17:08 2001 --- new/src/release/Makefile Fri Jan 26 16:01:30 2001 *************** *** 170,175 **** --- 169,185 ---- DOCREL= doc.1 .endif + # If you are an optimist & hope all 4000 ports are in perfect order, + # uncomment next line (or assert it on command line), + # PREANPORTS=-P + # else leave it commented out, if you prefer to waste a little space & have + # a better chance of having "make readmes" run to completion. + # 4.2-RELEASE ports/audio/ripit-atapi is an example of a directory containing + # just an empty directory "files". A cvs -P does not create ripit-atapi, + # but audio/Makefile has SUBDIR+= ripit-atapi, & hangs "make readmes" + # with 2 x "cd: can''t cd to ripit-atapi" + # An alternate more drastic way to avoid make breaking is assert NOPORTREADMES + .if !defined(NOPORTREADMES) MAKEREADMES= make readmes PORTSDIR=${CHROOTDIR}/usr/ports .else *************** *** 222,230 **** .endif .if !defined(NOPORTS) .if defined(PORTSRELEASETAG) ! cd ${CHROOTDIR}/usr && rm -rf ports && cvs -R -d ${CVSROOT} co -P -r ${PORTSRELEASETAG} ${RELEASEPORTSMODULE} && cd ports && ${MAKEREADMES} .else ! cd ${CHROOTDIR}/usr && rm -rf ports && cvs -R -d ${CVSROOT} co -P ${RELEASEPORTSMODULE} && cd ports && ${MAKEREADMES} .endif .endif .if !defined(NODOC) --- 232,240 ---- .endif .if !defined(NOPORTS) .if defined(PORTSRELEASETAG) ! cd ${CHROOTDIR}/usr && rm -rf ports && cvs -R -d ${CVSROOT} co ${PREANPORTS} -r ${PORTSRELEASETAG} ${RELEASEPORTSMODULE} && cd ports && ${MAKEREADMES} .else ! cd ${CHROOTDIR}/usr && rm -rf ports && cvs -R -d ${CVSROOT} co ${PREANPORTS} ${RELEASEPORTSMODULE} && cd ports && ${MAKEREADMES} .endif .endif .if !defined(NODOC) *************** *** 246,252 **** cd ${CHROOTDIR}/usr/src && cvs -R -q update -P -d -r ${RELEASETAG} .endif .if !defined(NOPORTS) ! cd ${CHROOTDIR}/usr/ports && cvs -R -q update -P -d .endif .if !defined(NODOC) cd ${CHROOTDIR}/usr/doc && cvs -R -q update -P -d --- 256,262 ---- cd ${CHROOTDIR}/usr/src && cvs -R -q update -P -d -r ${RELEASETAG} .endif .if !defined(NOPORTS) ! cd ${CHROOTDIR}/usr/ports && cvs -R -q update ${PREANPORTS} -d .endif .if !defined(NODOC) cd ${CHROOTDIR}/usr/doc && cvs -R -q update -P -d