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>
next in thread | previous in thread | raw e-mail | index | archive | help
>>>> 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).
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4BC5DCDD.2060902>