Subject: Re: SOC project proposal: easy updates
To: Julian Coleman <jdc@coris.org.uk>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-misc
Date: 03/15/2007 12:04:17
On Thu, 15 Mar 2007, Julian Coleman wrote:

> > I'd say that the project should be re-written to propose a port of the
> > existing FreeBSD tools for doing the same thing. There is no good
> > reason to re-invent the wheel.
> 
> Do you mean for both the build side and for the client side?  If so, do
> we need syspkgs - what purpose would they serve?  Or would this be a
> combination of syspkgs and the FreeBSD tools?

This was discussed a lot recently. Some suggested we should just provide 
complete files (such as included in syspkgs) and not binary diffs (like 
FreeBSD's binary updates).

Your proposal says:

   The NetBSD build process should be extended to compare the results of
   the "base" system build (e.g. 3.0) and the results of the "update" 
   system build (e.g. 3.0.1).

Do you have further details on how you'd like this to be done?

As mentioned in the FreeBSD binary updates whitepaper, my Puget Sound 
Technology system just created MD5 checksums for all files of resulting 
install and then compared after patching. Then I manually reviewed the 
changed files to determine if there was any noise. (FreeBSD automates 
this.)

I tarred up the new files and appended to a self-extracting sh script 
that backed up previous files, can roll back changes, list files, and 
give info about the update.

I think we don't need to do binary diffs. But just use syspkgs. Tell the 
users that new syspkgs are available (even in database, like 
pkg_summary(5), or in security announcements) and let the user upgrade 
with pkg_add. (By the way, I have a pkg_add that overwrites files instead 
of deleting existing package and removing files first; I have used it 
hundreds of times for over a year on various NetBSD and Linux systems but 
not recently; most of it is in pkgsrc-wip.)

  Jeremy C. Reed