Date: Wed, 14 Apr 2010 08:18:53 -0700 From: Tim Kientzle <kientzle@freebsd.org> To: Garrett Cooper <gcooper@freebsd.org> Cc: David Forsythe <dforsyth@freebsd.org>, Perforce Change Reviews <perforce@freebsd.org>, Florent Thoumie <flz@esat.net> Subject: Re: PERFORCE change 176831 for review Message-ID: <4BC5DCDD.2060902@freebsd.org> In-Reply-To: <v2j364299f41004140100gdd528438j17ef6ae6d2962cae@mail.gmail.com> References: <201004121230.o3CCUsIX029146@repoman.freebsd.org> <4BC3EB5B.5070801@freebsd.org> <l2y364299f41004122249q2f5734a7j89be807581e42dac@mail.gmail.com> <4BC53714.80805@freebsd.org> <r2x364299f41004140053y7b43d454qb7804e111d1920a6@mail.gmail.com> <g2v364299f41004140056pee1cde28laee26c8d5d1c9d19@mail.gmail.com> <v2j364299f41004140100gdd528438j17ef6ae6d2962cae@mail.gmail.com>
index | next in thread | previous in thread | raw e-mail
>>>> But I really do believe that single-pass direct
>>>> install is feasible and is eventually where we want
>>>> to be. The key insight for me was when Florent recently
>>>> pointed out that you could just read the +CONTENTS,
>>>> then do a verify pass, then extract everything.
>>>> (Any conflict during the extraction pass
>>>> would be a fatal error: delete everything
>>>> extracted so far and scream loudly.)
>>> Agreed on the final point. I'm kind of interested though about the
>>> first point -- the verify pass -- are you verifying that the contents
>>> are sane on the disk or in the tarball? If so, why not just verify the
>>> contents after the fact...
That is:
* Read and parse +CONTENTS
* Check the package database to verify that
dependent packages exist and that no conflicting
packages exist. If there's a problem, ask the
user what to do. (This gets complicated.)
* Check the disk to verify that none of the files
listed in +CONTENTS already exist on disk. If so,
there's a conflict and we must ask the user
what to do (this gets complicated).
* Extract all of the files, failing if there is a
file in the tarball that wasn't listed in +CONTENTS
or if there is a file in the tarball that already
exists on disk (which must have been created in the
intervening window).
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4BC5DCDD.2060902>
