Subject: Re: everything is a dependency and preventing removal
To: None <tech-pkg@netbsd.org>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-pkg
Date: 01/10/2003 10:41:06
On Fri, 10 Jan 2003, Frank Cusack wrote:

> Shouldn't be too hard to create a target which does not recursively update.
>
> save +REQUIRED_BY
> save +CONTENTS
> install-in-place
> remove (diff of old +CONTENTS and new +CONTENTS)

This is the hard part. If it was just a list of files, then it would be
easy.

But it also has @exec, @unexec for copying files, making symlinks,
removing directories, deleting from and adding entries to info files,
updating /etc/shells, running ldconfig, setting up GConf schemas, shutting
down the gconfd service, building ScrollKeeper catalog database, ...

But maybe that doesn't matter. Because this functionality is probably only
needed for a few essential packages.

So I am looking at sh-utils, pkg_install, gtar, and then maybe libc (which
could be hard to update in place) and kernel and a /bin/sh shell.

So with updating sh-utils in place, it could run just the @unexec (to
remove info entry) before installing new sh-utils. Then do the diff to
remove any old files (if needed). And then do the @dirrm.

gtar-base is okay.

> restore +REQUIRED_BY


   Jeremy C. Reed
   http://bsd.reedmedia.net/