Subject: Re: cvs.netbsd.org down?
To: Patrick Welche <prlw1@newn.cam.ac.uk>
From: Jon Buller <jon@bullers.net>
List: tech-pkg
Date: 05/18/2001 14:28:21
Patrick Welche <prlw1@newn.cam.ac.uk> wrote:

> On Thu, May 17, 2001 at 09:30:07PM -0700, Jon Buller wrote:
> ... 
> > Ack! What bad timing.  I just tried to upgrade guile since I didn't
> > have a whole lot better to do at the moment.  This went and upgraded
> > readline and libtool for me, but in the process (and without any
> > warning) it nuked PostgreSQL.  I presume PGSQL needs readline...
> 
> I don't know which version is in pkgsrc, but since January
> pgsql is very happy with NetBSD's libedit as found in -current..
> 
> % ldd `which psql`
> /usr/local/pgsql/bin/psql:
>          -lcrypt.0 => /usr/lib/libcrypt.so.0
>          -lresolv.1 => /usr/lib/libresolv.so.1
>          -lpq.2 => /usr/local/pgsql/lib/libpq.so.2
>          -lz.0 => /usr/lib/libz.so.0
>          -lm.0 => /usr/lib/libm387.so.0
>          -lm.0 => /usr/lib/libm.so.0
>          -lutil.5 => /usr/lib/libutil.so.5
>          -ledit.2 => /usr/lib/libedit.so.2  <<<<<<<<  Hello Jarmomir ;)
>          -ltermcap.0 => /usr/lib/libtermcap.so.0
>          -lc.12 => /usr/lib/libc.so.12
> 
> and of course pgsql doesn't *need* readline, it's just friendlier.

I just checked mine, and it doesn't use it either.  The old one was 7.0.2
from around last October I think.  I often check the make file to make a
quick guess how big a build it is going to be, but that wouldn't have
helped with my suprise.  (So I should have done a s/needs/needed/ on
my readline comment 8^)

I think my main point is still that you can get a (big/bad) suprise
because of all the dependencies fooling you into thinking something
you are doing is small when it's really not.  (In my case Guile ->
readline -> old PostgreSQL.)  I see two ways of making the situation
a bit better.

Quick and easy is to put up some warnings, like showing the dependency
list at pkg_delete time so you can bail if it's going to take
something out that you didn't expect.  It can be argued that you
should simply be more careful, and I agree with that, but imagine
what would happen if rm -rf followed symlinks.  I think I would
never use rm -rf in that case, for fear that I had buried a symlink
somewhere that would get me in big trouble.  I'm starting to feel
that way about pkg_delete.

Another thing that I think would help a lot would be the ability
for pkg_delete to be undone.  Perhaps by copying the PLIST files
to some backup directory.  Then if the new package didn't build,
or pkg_delete nuked something you wanted back, you could have things
moved back to where they belong.  Then, after you are comfortable
with the new setup, you could clear out the backup stuff and put
the space to better use.  (I'm sort of thinking of the way Solaris
does patches, if you've ever seen that.)

So since I haven't dealt with the package infrastructure much, I
have two questions: 1) Anyone want to start on something like this?
(I thing agc just announced a big start, but I'm not totally sure
yet.) 2) Anyone want to give me some pointers on where to start?
(OK, here's three 8^)  3) Am I just totally out of my mind, and
should give up computers for good?  (Or maybe just decide that I
can't handle anything better than the most popular OS for a x86
and get rid of my Sparcstation.)

Jon