Gentoo Archives: gentoo-dev

From: Tom Payne <gentoo@××××××××.org>
To: gentoo-dev@g.o
Subject: [gentoo-dev] Automatic distfile construction from old tarball+patch
Date: Fri, 28 Mar 2003 18:53:08
Message-Id: 20030328185238.GB3827@tompayne.org
1 Hi --
2
3 I use Gentoo over a dialup, so I'm biased.
4
5 Is there any work in progress to allow portage to download a patch to an
6 existing source tarball rather than download a new big tarball? This would
7 be mainly useful for big packages -- kernel, XFree, tetex, apache, etc.
8
9 What I have in mind is some kind of simple dependency (although it doesn't
10 need to be as complicated as make). e.g. for the kernel:
11
12 linux-2.4.20.tar.bz2 =
13 linux-2.4.19.tar.bz2 + http://www.kernel.org/pub/linux/kernel/v2.4/patch-2.4.20.bz2
14 || http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.20.tar.bz2 \
15
16 This would be interpreted as linux-2.4.20.tar.bz2 can be built from
17 linux-2.4.19.tar.bz2 (if it exists) and the specified patch OR you can
18 download linux-2.4.20.tar.bz2 directly.
19
20 This functionality should be relatively easy to implement and retrofit, say
21 by specifying a SRC_URI_RULES variable in the ebuild and overriding fetch to
22 interpret it.
23
24 Possible problems:
25 1. md5sums of new vs. old+patch tarballs might be different.
26 2. might make testing ebuilds more complicated if you need to test both new
27 and old+patch tarballs.
28 3. might need some logic to determine when to download patches and when to
29 just download new tarball (i.e. compute minimum download size). However, the
30 heuristic 'always use patches if old tarball exists' is probably good
31 enough, and could easily be overridden by a command line switch to emerge.
32 4. patches might need to be applied in a package specific manner, which
33 would mean (at best) some extra code in the ebuild or (at worst) that this
34 could only be done on a per-package basis.
35
36 Major advantages:
37 1. Smaller downloads for everyone -- faster and cheaper!
38 2. Gentoo ISOs could include source tarballs rather than binary packages so
39 network-challenged users can feasibly install Gentoo from stage 1 -- only
40 patches would need to be downloaded.
41
42 Thoughts? I'd really like this implemented, and I think it would make Gentoo
43 an even better distribution. I'm happy to have a stab at implementing it,
44 but it would probably be quicker for an emerge guru to do it (I'm a Ruby
45 person, not a Python person).
46
47 Regards,
48
49 Tom
50
51 --
52 gentoo-dev@g.o mailing list