Date: Wed, 14 May 2014 09:12:20 -0700 (PDT) From: Sean Eric Fagan <sef@Kithrup.COM> To: freebsd-pkg@freebsd.org Subject: Re: Delta packages Message-ID: <201405141612.s4EGCKwU000644@kithrup.com>
next in thread | raw e-mail | index | archive | help
Matthew Seaman <m.seaman@infracaninophile.co.uk> wrote: >full-fledged delta package we'd probably be thinking in terms of >generating some sort of diff between old and new manifests. I've already got a tool to do that. (What it actually does is copy all the bits I can from the new manifest, and copy all the new or modified files and directories from the new one, and generate a list of rm/rmdir's for the deleted files and directories. The intent is that, afterwards, it should look just as if you'd installed the new version. As an example, however: the txz file for python27 had the new version at 4.4mbytes; the delta file just about half that.) > * upgrade package foo-1.0.0 to foo-1.0.1 > * automatically produces delta/foo-1.0.1-1.0.0.txz > * should there be problems with foo-1.0.1 can then rollback by > applying the delta package. Hah. I hadn't thought about making the reverse, but the code doesn't care, doesn't it? >> Second question: Any objections to it in principal? > >On the contrary. This would make a really great addition. Please do >send patches / pull requests. I'd hoped for some assistance with it, as the pkg code is pretty ... large :). As I said, I've got something to create the delta files, so I guess I'll start looking at modifying the package code. The things I know it needs to do are: * The manifest needs a key/value indicating what the old version is. * It needs to extract the files, replacing any that are modified (and updating their checksum/owner/group/mode as necessary). * Then it needs to update the package version with the new version. (If I can't get the pkg code to do it, I can do all of that manually with a large hammer. I'd prefer not to, obviously.)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201405141612.s4EGCKwU000644>