Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Mar 1998 09:51:29 -0800 (PST)
From:      David Wolfskill <dhw@whistle.com>
To:        freebsd-stable@FreeBSD.ORG
Subject:   Re: after the release ... 
Message-ID:  <199803231751.JAA10716@pau-amma.whistle.com>

next in thread | raw e-mail | index | archive | help
>From: Cy Schubert - ITSD Open Systems Group <cschuber@uumail.gov.bc.ca>
>Date: Fri, 20 Mar 1998 23:48:52 -0800

>A LOT of thought needs to be put into this.

Very true.

>Patch packages would need to support pre-requisites, co-requisites and 
>be able to superceed other packages; and don't forget a backout process.

Agreed.

>A simpler approach would be to use Sun's approach which bundles related 
>patches into jumbo patches (though I'm partial to IBM's approach).

I have slightly more experience (both in duration & depth) with the
approach IBM use{s,d} with MVS (either /XA or /ESA), and confess to
slightly more comfort with that (vs. Sun's approach).

>Either way you just can't jump into this.  The first step would be to 
>have the base O/S managed via packages.  That would be big chunk of the 
>work.  Then there's designing a patch application (or borrowing one) 
>and managing patch releases.

IBM even has a separate product (SPM/E) to do this... and it's a
non-trival resource consumer (read "hog").

>Other questions to be answered would be, what O/S changes would be good 
>candidates for patches and what could wait for the next release?  Who 
>would make these decisions?  Who would package the patches?

Well, these seem similar in scope & nature to the issues of deciding
when some source gets committed....

>Another consideration:  What if somebody modifies the O/S at their 
>site.  MVS, for example, uses USERMODS which automatically get dumped 
>when patches (PTF's or APARFIXES), or new product (FMID's) are applied. 

Ummm....  Not necessarily.

What we did (when I was an MVS systems programmer) was write USERMODs,
and add them to the SPM/E database.  What this does (and may be what Cy
is referring to) is notify you if there's a conflict between the USERMOD
and a patch that needs to be applied.

With that knowledge, then, the maintainer would then:

* Go look up the docs to see what sort of change there is.  Sometimes
  the change doesn't really affect the operation of the USERMOD, and
  it's safe to:

  * Back out ("reject") the USERMOD.
  * Install ("apply") the patch.
  * (Possibly) modify the SMP/E packaging for the USERMOD so it will
    install cleanly.
  * Install ("apply") the USERMOD.

* Sometimes a patch really does change the interface that a USERMOD
  uses, and in that case, it may be necessary to re-work the USERMOD
  itself.

* Other times, the patch make the whole USERMOD in question either moot
  or impossible... but at least SMP/E will be rather noisy & let you
  know about it... so there's some hope you can find out about it
  beforehand, and make a decision as to what you're going to do.

> Would those of us maintaining FreeBSD sites be willing to follow a 
>regimen as specified by the chosen patch philosophy?  On the other hand 
>would Sun's simpler approach work -- if the file's checksum (MD5?) 
>doesn't match what the patch expects, abort?

The USERMOD approach has some very nice things -- not least of which was
the basic design (in MVS), such that if the system found the existence
of a load module with a specified name (in a certain restricted list of
system libraries, of course!), control would be passed to that module
with a documented parameter list, and the module could do certain things
-- typically involving returning one of several return codes (to
indicate that the operation should continue as if the module had not
been called, should be rejected with a whimper, should be re-tried, or
aborted).  The basic idea is that one makes a clean separation between
local code vs. "vendor" code.

>I think a lot of thought and discussion needs to be put into this 
>before we decide if this should be done or when, should it be decided 
>that we do it, what it should look like and whether the community is 
>willing to commit using such a tool (there's no sense doing it if no 
>one will be willing to follow the regimen).

There was, in the MVS world, a significant degree of resistance to the
use of SMP/E for packaging USERMODs... especially because of a lack of
discipline.

And it's rather like using RCS:  it works well, as long as everyone
"plays by the ruules" -- but when somone goes in as root, modifies a
file, tries to write it, is told it's a read-only file, and thinks "What
do you mean, 'read-only': I'm root, I can change anything!" and writes
the change anyway... well, things tend to go downhill....

>Date: Mon, 23 Mar 1998 11:31:08 +1030
>From: "Daniel O'Connor" <doconnor@gsoft.com.au>

>I mean if you could guarantee that the system would be in a given state then a 
>binary upgrade would be quite easy. The main problem IMHO would be making a 
>system which didn't mangle any custom stuff you've done to your machine..

That's where careful "packaging" of USERMODs comes in:  defining *all*
of the pre-requisites & co-requisites.

>I see making a 'patch' consist of a group of things to apply/change/suggest 
>which have pre/co-requisites, and if these are wrong(ie the checksum doesn't 
>match or the date is too new/old) then don't apply that group.. ie make each 
>group atomic, so that if part of it fails, then back the whole group out.

Yes, I think so....

>Date: Sun, 22 Mar 1998 22:57:12 -0800
>From: Greg Shenaut <greg@bogslab.ucdavis.edu>

>I think patches are very different from packages.  Packages are
>optional modules which can be added to a system; patches fix bugs
>in the system.

I'm comfortable with that terminology, and think that the distinction is
useful & valuable.

>Packages are distributed with the CD-ROM; it would
>make no sense for a patch to be distributed with a CD-ROM.

I wouldn't go quite that far, though I'd freely admit that it would make
more sense to have the content of the CD be fairly fixed, and have a
much more dynamic set of patches (and a somewhat less dynamic list of
which patches to apply to the CD to get a stable, working system).

Cheers,
david
-- 
David Wolfskill		dhw@whistle.com	(650) 577-7158	pager: (650) 401-0168

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



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