Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 02 Oct 1999 23:30:35 +0800
From:      Peter Wemm <peter@netplex.com.au>
To:        "Daniel C. Sobral" <dcs@newsguy.com>
Cc:        Marcel Moolenaar <marcel@scc.nl>, Daniel Eischen <eischen@vigrid.com>, des@flood.ping.uio.no, current@FreeBSD.ORG
Subject:   Re: new sigset_t and upgrading: a proposal 
Message-ID:  <19991002153035.CA7CB1C03@overcee.netplex.com.au>
In-Reply-To: Your message of "Sat, 02 Oct 1999 18:01:41 %2B0900." <37F5C9F5.6A2BA9AA@newsguy.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
"Daniel C. Sobral" wrote:
> Marcel Moolenaar wrote:
> > 
> > > But this still doesn't entirely solve the problem.  You still have
> > > to build and install a new kernel before installing the world.
> > > While this is typically what most -current folks do anyways, it
> > > still prevents backing up to a previous kernel after the install
> > > world.
> > 
> > You can easily install a kernel as part of the upgrade process. A
> > complete upgrade would be something like:
> > 
> > 1. Verify and/or install cross-compilation tools
> > 2. Build world
> > 3. Build kernel
> > 4. Copy tools that are used by the install process
> > 5. install kernel
> > 6. install world
> > 7. reboot
> > 
> > If you install a kernel before installing world, you can easily recover
> > when the install world fails: reboot. The new kernel is capable of
> > running those binaries that got installed before the breakage.
> 
> You missed the point. This is -current, right? You do all of the
> above, and then reboot and find out that the new kernel doesn't
> work. What do you do? The default procedure is to boot kernel.old.

Read my lips:   *NEVER* do a 'make world' until you've got a new bootable
kernel.  You can go back to a 'kernel.old' in 5 seconds.  Undoing a 'make
world' because a new kernel doesn't workd is a major drama.

Just Don't Do It, at least not on -current where a kernel isn't expected
to work every time.

You can run a -current userland *months* behind your kernel, as long as you
take care of libkvm and friends.

Our kernel development process is done with backwards compatability in
mind, not forward compatability.  You can't expect last week's kernel to
know about the new syscalls that are used after you committed to a
buildworld.  You can expect an old world to work though.

Many people I talk with regularly go *months* between building world but on
the other hand build a kernel every few days or so (including me).

Don't use modules if you are doing this though, or keep a /modules and /
modules.old to go with the kernel.  (ie: when you do a 'make install' of
the kernel, move /modules to /modules.old, mkdir /modules and then build/
install fresh kld's.  Modules are only really useful in -current under
certain curcumstances.  Mostly this is 1) if you are developing a subsystem
(eg: vinum) and need a rapid turnaround without a reboot, and 2) if you are
running a fairly stable build, ie: not doing recompiles for months at a
time.  Especially don't use a vinum module (for example) if you're doing
near daily kernel builds, use the static compilation option instead.

Cheers,
-Peter



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




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