Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Jan 1996 14:52:47 +0100
From:      "Julian H. Stacey" <jhs@vector.jhs.local>
To:        Poul-Henning Kamp <phk@critter.tfs.com>
Cc:        hackers@freebsd.org, "Jordan K. Hubbard" <jkh@time.cdrom.com>, Ollivier Robert <roberto@keltia.freenix.fr>, joerg@freebsd.org
Subject:   Re: Building a "custom" release of 2.1.0 
Message-ID:  <199601171352.OAA02448@vector.jhs.local>
In-Reply-To: Your message of "Tue, 16 Jan 1996 09:02:18 %2B0100." <423.821779338@critter.tfs.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
Hi, Reference:
> From: Poul-Henning Kamp <phk@critter.tfs.com> 
> 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/



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