From owner-freebsd-hackers Wed Jan 17 18:58:50 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id SAA00514 for hackers-outgoing; Wed, 17 Jan 1996 18:58:50 -0800 (PST) Received: from vector.jhs.local (slip139-92-42-176.emea.ibm.net [139.92.42.176]) by freefall.freebsd.org (8.7.3/8.7.3) with ESMTP id SAA00504 Wed, 17 Jan 1996 18:57:58 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by vector.jhs.local (8.7.3/8.6.9) with SMTP id OAA02448; Wed, 17 Jan 1996 14:52:47 +0100 (MET) Message-Id: <199601171352.OAA02448@vector.jhs.local> X-Authentication-Warning: vector.jhs.local: Host localhost [127.0.0.1] didn't use HELO protocol To: Poul-Henning Kamp cc: hackers@freebsd.org, "Jordan K. Hubbard" , Ollivier Robert , joerg@freebsd.org Subject: Re: Building a "custom" release of 2.1.0 Reply-To: "Julian H. Stacey" Organization: Vector Systems Ltd. (Internet Unix & C Consultants) Address: Holz Strasse 27d, 80469 Munich, Germany Phone: +49.89.268616 Fax: +49.89.2608126 (pending reconfig) Web: http://www.freebsd.org/~jhs/ Mailer: EXMH version 1.6.5 95 12 11 In-reply-to: Your message of "Tue, 16 Jan 1996 09:02:18 +0100." <423.821779338@critter.tfs.com> Date: Wed, 17 Jan 1996 14:52:47 +0100 From: "Julian H. Stacey" Sender: owner-hackers@freebsd.org Precedence: bulk Hi, Reference: > From: Poul-Henning Kamp > Subject: Re: Building a "custom" release of 2.1.0 > Date: Tue, 16 Jan 1996 09:02:18 +0100 > Message-id: <423.821779338@critter.tfs.com> Hackers, Poul-Henning wrote a private reply to my mail-list posting, The main thread & some of his reply are appended, + my follow-up. Intervening "> ...." sequences represent text from phk that politicians generally class as "a robust & frank exchange of views" ;-) > > Jordan, > > What was the rationale for FreeBSD going over to requiring CVS just to > > produce a release ? FreeBSD didn't use to do it that way. > ..... > > Involving CVS takes longer, uses more disc, so why ? > > Is it because the process becomes less stable, more likely to break, > > & thus is some kind of sensitivity/stability test ? > ..... > No, it's because it becomes more reliable and reproducible and it saves > a complete reinstall of a machine to make a sterile environment for the > release building process. I'm familiar with sterile OS builds, & techniques to build a new bin/ tree & use that for the next build etc, & checking such as gcc stage3 comparisons etc, it's just the CVS inclusion I'm puzzled by. If FreeBSD were doing a 2 stage {make all , install, chroot, remake } I wouldn't be querying the time taken, it's just the mandatory inbuilt CVS that's not obvious. > It's been this way since 2.0 actually so > ...... I know, I didn't ask 'till now, as now more people will be investigating the mechanism, it's interesting to know what extra benefits was obtained from the extra inconvenience of a slower build & more disk required. > We have actually had a lot > less build failures and botched release candidates since then. Yes, I understand how a CVS can offer us tracing, rollback, etc, but _Why_ does an automatic process that necessitates inbuilt CVS help the process, rather than leaving CVS unbundled from the process, & just manually running a command to extract the tree out of cvs into a /usr/src/ & then taking it from there ? > The prime focus of src/release/Makefile is to be a reliable process. > It's not intended to conserve rain-forest nor diskspace, and user- > friendliness is not even in the dictionary. > > If you don't have 1GB of disk to play on I recall Jordan told a respondent his ~600 M should do ? > and plenty of days to do so, Yes, releases are never easy. > then don't bother even thinking about it. > .............. I assumed it was done for a good reason, I just want to know _what_ the reason was (& if the reason will apply to other folks who'd like to try running the release build mechanism). > .......... I'm just interested to know why you do it the way you do :-) > .............. In 85/86 I automated the Siemens production of Sinix (+ some packages), to 2 or more releases, 2 architectures & 7 European languages. I never found it necessary to slow or bloat the process with SCCS (our base then didn't use CVS); so I'm interested to know what the embedded mandatory CVS has given us (that a manual pre-extract would not have)) . In the FreeBSD-1.* series we didnt incur the bloat & drag of CVS so I'm merely asking: _why_, what did it gain us (& is it still essential, & unavoidable ) ? Naturally reading release/Makefile provides details, but that just directs anyone interested to analyse the Makefile for complex current methodology. What I originally asked, (& I suspect a few others might be interested in), was a simple brief explanation of not _how_ CVS is called, but _why_ CVS is integrated in the build ? ( I have been under the impression CVS in FreeBSD release production is used for more than a simple checkout prior to make world ? ) This is not a criticism of the mechanism, just a simple wish to hear it's basics, in a few succinct words from whoever knows it. Julian -- Julian H. Stacey jhs@freebsd.org http://www.freebsd.org/~jhs/