Subject: SOC project proposal: easy updates
To: NetBSD tech-install mailing list <tech-install@netbsd.org>
From: Julian Coleman <jdc@coris.org.uk>
List: tech-misc
Date: 03/15/2007 03:42:27
Hi,
How does this sound as an SoC project proposal?
Thanks,
J
- - 8< - - - - - - - - - - - - - Cut here - - - - - - - - - - - - - >8 - -
Easy updates for NetBSD systems
Project summary:
Estimated difficulty: Medium
Person/group of contact: Julian Coleman <jdc AT netbsd.org>
Person/group of contact: tech-misc mailing list
Person/group of contact: tech-install mailing list
Add the ability to easily update NetBSD systems with security patches and
OS updates.
This project involves work in two major areas. The first area is the
NetBSD build process, where the framework for updates needs be added
into the build process. The second area is the client side, where the
mechanisms for discovering and installing updates need to be written.
There is unfinished work where all the installed files in the NetBSD
system are tagged with a system package (syspkg) name. This work needs
to be finished, so that all installed system files are recorded in a
similar fashion to the way that pkgsrc files are recorded. This will
be an additional part of the NetBSD build process.
For system updates, for example the change from 3.0 to 3.0.1 or 3.1, not
all the installed system files are updated. 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).
This comparison will generate a collection of system packages that need
to be installed in order to update the system to the newer version.
Security patches, which usually affect a small number of system packages
could be handled in the same way. For ease of installation and
administration, each update should be a superset of the previous ones.
On the client side, a tool needs to be written to handle system package
updates. This could be an extension to the existing `sysinst` program.
The tool needs to compare the list of currently installed system packages
with the list of newer system packages available for download. For
example, the program could determine that the the base system is 3.0 and
discover that there are updates available to 3.0.1, 3.0.2 and 3.1, as well
as security patches for 3.0.2 and 3.1. The way in which this information
is generated for the client tool needs to be determined, as it needs to an
integral part of the build process, above.
The client tool needs to be able to safely backup the existing system
packages and install the new versions. When the user is happy with the
new packages, the previous versions can be removed.
Project deliverables:
build system: "database" of installed system packages, with versions
build system: ability to compare two NetBSD builds to determine which
system packages are changed
build system: creation of downloadable system package "update list" for
updated packages
client tool: query and compare installed system package list and update
list(s) from server(s)
client tool: backup obsoleted system packages, download and install
updated system packages
Background investigations:
NetBSD build process
NetBSD syspkg infrastructure
pkgsrc databse of installed files and packages
Other OS update mechanisms (e.g. FreeBSD)
Knowledge required:
C programming
Makefile programming
Shell script programming
- - 8< - - - - - - - - - - - - - Cut here - - - - - - - - - - - - - >8 - -
--
My other computer also runs NetBSD / Sailing at Newbiggin
http://www.netbsd.org/ / http://www.newbigginsailingclub.org/