Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Jun 2003 10:07:28 -0700
From:      Marcel Moolenaar <marcel@xcllnt.net>
To:        Ruslan Ermilov <ru@FreeBSD.org>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/release Makefile
Message-ID:  <20030605170728.GA572@dhcp01.pn.xcllnt.net>
In-Reply-To: <20030605100007.GA42986@sunbay.com>
References:  <200306040517.h545HIY1051372@repoman.freebsd.org> <20030605100007.GA42986@sunbay.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jun 05, 2003 at 01:00:07PM +0300, Ruslan Ermilov wrote:
> On Tue, Jun 03, 2003 at 10:17:18PM -0700, Marcel Moolenaar wrote:
> > marcel      2003/06/03 22:17:18 PDT
> > 
> >   FreeBSD src repository
> > 
> >   Modified files:
> >     release              Makefile 
> >   Log:
> >   Have the port readmes follow the same logic as buildworld. We skip
> >   doing make readmes if /tmp/.skip_ports exists. This file is created
> >   after a complete run, which avoids that we do the lengthy operation
> >   again for a rerelease.
> >   When NOPORTS or NOPORTREADMES are defined, we create the file prior
> >   to starting the release.
> >   
> >   Revision  Changes    Path
> >   1.781     +5 -5      src/release/Makefile
> > 
> I think this is not quite right.  Instead, the /tmp/.ports_done
> should be created, similar to /tmp/.world_done, when ports are
> really done.

It is. The wording "complete run" is confusing. I meant a complete
run of the make readmes, not of the release itself.

> When NOPORTS or NOPORTREADMES are defined, we should just not be
> doing the relevant parts of "make release".

Which is exactly what happens. By making the different parts of
a release cycle optional by checking for the existence of files,
you can more easily interfere by creating files or removing them.
Files are also a good way to maintain state across make invocations.

> And of course, it
> should be possible to run "make -DNOPORTS release" first, and be
> able to run "make rerelease" later, and get the ports built.

It's not that simple AFAICT. If you follow a release -DNOPORTS -DNODOC
with a rerelease -DRELEASENOUPDATE, you won't have a ports tree
at all so you cannot possibly expect to have all the readmes built.
Your rerelease will probably fail.

Also, if you follow a release -DNOPORTS -DNODOC with a rerelease
without -DRELEASENOUPDATE, it will fail too because it will try
to update a non-existing tree and CVS doesn't like that.

Yes, if you don't have -DRELEASENOUPDATE and you previously did
checkout the ports collection, you'll update the ports tree and
we should remove /tmp/.skip_ports, like we remove /tmp/.world_done
after updating the source tree. The following patch should
achieve that:

Index: Makefile
===================================================================
RCS file: /home/ncvs/src/release/Makefile,v
retrieving revision 1.782
diff -u -r1.782 Makefile
--- Makefile    4 Jun 2003 22:24:43 -0000       1.782
+++ Makefile    5 Jun 2003 17:06:23 -0000
@@ -383,6 +383,7 @@
        rm -f ${CHROOTDIR}/tmp/.world_done
 .if !defined(NOPORTS)
        cd ${CHROOTDIR}/usr/ports && ${CVSPREFIX} cvs -R ${CVSARGS} -q update ${CVSCMDARGS} -P -d
+       rm -f ${CHROOTDIR}/tmp/.skip_ports
 .endif
 .if defined(DOMINIMALDOCPORTS) && ${DOMINIMALDOCPORTS} == "YES"
        for i in ${MINIMALDOCPORTS}; do \

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel@xcllnt.net



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030605170728.GA572>