Date: Fri, 3 Sep 2004 09:48:55 +0300 From: Ruslan Ermilov <ru@freebsd.org> To: ctodd@chrismiller.com Cc: freebsd-hackers@freebsd.org Subject: Re: How to customize a release? Message-ID: <20040903064854.GE32264@ip.net.ua> In-Reply-To: <200409021619.18602.jhb@FreeBSD.org> References: <Pine.BSI.4.58L.0409021203480.12150@vp4.netgate.net> <200409021538.26944.jhb@FreeBSD.org> <Pine.BSI.4.58L.0409021258160.12150@vp4.netgate.net> <200409021619.18602.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Hi Chris,
On Thu, Sep 02, 2004 at 04:19:18PM -0400, John Baldwin wrote:
> On Thursday 02 September 2004 04:07 pm, ctodd@chrismiller.com wrote:
> > John,
> > Thanks for the quick reply.
> >
> > > There is a 'KERNELS' variable that is helpful.
> >
> > I see this in the Makefile, but if I were to use KERNELS=MYKERNEL will
> > that prevent the other standard kernels from being built?
> >
Let me know if you believe this is unclear and should be improved (from the
release(7) manpage):
: release.3 Makes and installs the GENERIC kernel as well as any
^^^^^^^ ^^^^^^^^^^^^^^
: other kernels listed in KERNELS.
^^^^^^^^^^^^^ ^^^^^^^^^^
:
: KERNELS Specifies a list of additional kernel configura-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: tions to compile and install into the ``base'' dis-
: tribution. Each kernel is installed into
: /boot/<config> so that it can be booted from the
: loader via ``boot <config>''.
> > > Also, look at LOCAL_PATCHES and LOCAL_SCRIPTS as far as how to patch a
> > > release build. Note that you can include patches to
> > > src/release/Makefile in LOCAL_PATCHES if need be. :)
> >
> > LOCAL_PATCHES is what I'm using now (waiting for build to finish to see
> > how it worked). I was hoping for a way to populate the src tree without
> > doing a full release so I could create the patches, then run make release
> > only once (it took 5 hours on my devel system last time). At this point
> > I've already done that, but for the next time I'd like to work more
> > efficiently.
> >
What do you mean, I don't get it?
> > BTW, I see I overlooked the RELEASENOUPDATE variable in the man page, so
> > that answers my question about preventing CVS updates on "make rerelease".
> > Unfortunately make rerelease didn't rebuild anything in /R/stage (I got
> > "ftp.1 is up to date"). Am I supposed to delete the stage directories to
> > force a rebuild, or do I need to do a full release to incorporate any
> > minor changes?
>
> I just delete the files in ${CHROOTDIR}/usr/obj/usr/src/release to get it to
> rebuild the targets I want.
>
So do I.
One more hint: suppose you want to rebuild world inside the chroot. Then
you have two options with "make rerelease": one is to *not* use RELEASENOUPDATE
-- it will then use CVS to update your source tree (beware this doesn't work
if you ran "make release" with EXTSRCDIR). Another is to run "make rerelease"
with RELEASENOUPDATE and remove ${CHROOTDIR}/tmp/.world_done before doing it.
In any case, buildworld will be rebuilt with -DNOCLEAN, which should be fast.
To force rebuild of other stages, you need to remove particular files under
${CHROOTDIR}/usr/obj/usr/src/release/ (as has been already mentioned).
Cheers,
--
Ruslan Ermilov
ru@FreeBSD.org
FreeBSD committer
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (FreeBSD)
iD8DBQFBOBPWqRfpzJluFF4RAlP+AJ9DDKJ/R2w53dutphNa5qsKv2hD/ACdHKfQ
VetB+gqx9bsw6A0Q/QEI1Wc=
=j+tU
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040903064854.GE32264>
