How to customize a release?
Ruslan Ermilov
ru at freebsd.org
Thu Sep 2 23:49:04 PDT 2004
Hi Chris,
On Thu, Sep 02, 2004 at 04:19:18PM -0400, John Baldwin wrote:
> On Thursday 02 September 2004 04:07 pm, ctodd at 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 at FreeBSD.org
FreeBSD committer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20040903/13b11da5/attachment.bin
More information about the freebsd-hackers
mailing list