[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gentoo-dev
Subject:    [gentoo-dev] Automatic distfile construction from old tarball+patch
From:       Tom Payne <gentoo () tompayne ! org>
Date:       2003-03-28 18:52:38
[Download RAW message or body]

Hi --

I use Gentoo over a dialup, so I'm biased.

Is there any work in progress to allow portage to download a patch to an
existing source tarball rather than download a new big tarball? This would
be mainly useful for big packages -- kernel, XFree, tetex, apache, etc.

What I have in mind is some kind of simple dependency (although it doesn't
need to be as complicated as make). e.g. for the kernel:

linux-2.4.20.tar.bz2 = 
linux-2.4.19.tar.bz2 + http://www.kernel.org/pub/linux/kernel/v2.4/patch-2.4.20.bz2
|| http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.20.tar.bz2 \

This would be interpreted as linux-2.4.20.tar.bz2 can be built from
linux-2.4.19.tar.bz2 (if it exists) and the specified patch OR you can
download linux-2.4.20.tar.bz2 directly.

This functionality should be relatively easy to implement and retrofit, say
by specifying a SRC_URI_RULES variable in the ebuild and overriding fetch to
interpret it.

Possible problems:
1. md5sums of new vs. old+patch tarballs might be different.
2. might make testing ebuilds more complicated if you need to test both new
and old+patch tarballs.
3. might need some logic to determine when to download patches and when to
just download new tarball (i.e. compute minimum download size). However, the
heuristic 'always use patches if old tarball exists' is probably good
enough, and could easily be overridden by a command line switch to emerge.
4. patches might need to be applied in a package specific manner, which
would mean (at best) some extra code in the ebuild or (at worst) that this
could only be done on a per-package basis.

Major advantages:
1. Smaller downloads for everyone -- faster and cheaper!
2. Gentoo ISOs could include source tarballs rather than binary packages so
network-challenged users can feasibly install Gentoo from stage 1 -- only
patches would need to be downloaded.

Thoughts? I'd really like this implemented, and I think it would make Gentoo
an even better distribution. I'm happy to have a stab at implementing it,
but it would probably be quicker for an emerge guru to do it (I'm a Ruby
person, not a Python person).

Regards,

Tom

--
gentoo-dev@gentoo.org mailing list

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic