Mail Archives: cygwin/2003/07/31/05:21:48
Hello,
I am sorry if this covers things already discussed on this list or some
other list (I suspect it might), but a quick search through the archives
failed to provide anything.
I tend (like I suspect many other people) to update my cygwin every
couple of weeks. As cygwin by default keeps packages it downloads it
would make sense to distribute patches to existing files.
As a tiny example:
emacs-21.2-11.tar.bzip2 : 8MB
emacs-21.2-12.tar.bzip2 : 8MB
patch: 177K
emacs-21.2-11-src.tar.bzip2 : 19MB
emacs-21.2-12-src.tar.bzip2 : 19MB
patch : 3K (!)
My plan (at the moment) for how the patches will work is as follows:
Each file: /dir1/dir2/file.tar.bz2
can have a patch def file, called /dir1/dir2/file.tar.bz2.patchlist
This will include a list of files there are patches from (with md5) and
a list of all the patches that exist, and their size.
A simple algorithm will then take this list, a list of all copies of the
package that are currently on the computer, and the package we want to
reach, and see what the cheapest patching route is to get there (for
those interested, this would be done by a simple application of
dykstra's algorithm)
If this is cheaper than downloading the whole package, then one or more
patch files are downloaded and then applied to get the new package.
Exactly where to store patches I haven't decided yet.
Patches will be a "privalige", not a "right". If it turns out that some
large package has such a large update (or for example the optimisation
level is changed on the binary package) that the patch is too large,
then there will simply not be a patch.
As I would like to try to do something useful for the cygwin project, I
am currently working on a proof-of-principle patcher that seems to be
working well.
I would like to try to pull this into the main cygwin setup tree, and
was wondering if there is any kind of document that specifies exactly
how files will be set out on both the computer and the server, of if I
should just parse the code and see where it says files live? :)
Any comments (even "Someone is already working on that" or "Go away and
stop bothering us") much appresiated! :)
Chris
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -