On Thu, Feb 26, 2009 at 11:34 PM, Aaron Griffin <[email protected]> wrote: > > So, ok, from a db-scripts point of view, we're going to have to do the > following: > > when a new package is added: > copy old package file from ftp to build dir > generate delta from old file -> new file (in staging)
$ oldfile=tzdata-2009a-1-x86_64.pkg.tar.gz $ newfile=tzdata-2009b-1-x86_64.pkg.tar.gz $ pkgdelta $oldfile $newfile ==> Generating delta from version 2009a-1 to version 2009b-1 ==> Generated delta : 'tzdata-2009a-1_to_2009b-1-x86_64.delta' > add new pkg and delta to DB > ? add new delta info _somewhere_? $ repo-add repo.db.tar.gz $newfile $pkgname*.delta Adding the package will create a tzdata-2009b-1 entry in the database. Adding the delta will create a tzdata-2009b-1/deltas file, with only one line containing the information about the tzdata-2009a-1_to_2009b-1-x86_64.delta (supposing it was the first delta for tzdata which was added to the database) > copy new pkg and delta to ftp > > Is this correct? If so, it's not all THAT complex. Yup it is correct. > Less so if repo-add > could simply spit out the deltas on it's own - if it can, we can > simply add the logic to copy od packages to the build dir before > calling repo-add, repo-add realizes there's another package there and > uses it for deltas. > Indeed, it should be possible to put that in repo-add, I seriously considered that option a while ago. But using pkgdelta and repo-add on delta files should be easy enough, as you can see above. > Additionally, we run a cleanup script every few hours to remove old > and/or unused packages > this logic would simply need to be changed to scan deltas and leave > $RETAINED_DELTAS for each package. > > I haven't been following the delta stuff too much, can we put the > deltas in a totally unrelated directory? Is there delta information > stored in the pacman DB? If so, the cleanup gets far more complicated? If you can get a list of the delta filenames you want to remove, just pass them to repo-remove to remove their information from the pacman DB. $ repo-remove repo.db.tar.gz *.delta _______________________________________________ pacman-dev mailing list [email protected] http://www.archlinux.org/mailman/listinfo/pacman-dev
