1 |
Daniel Pielmeier wrote: |
2 |
> 2009/11/16 Thomas Kahle <tom111@×××.de>: |
3 |
>> Hi, |
4 |
>> I am trying to make an ebuild that uses the subversion eclass. |
5 |
>> This seems to disbehave when used with epatch. |
6 |
>> The problem is that epatch directly works on the downloaded svn-sources |
7 |
>> (in /usr/portage/distfiles/svn-src) When they have been patched once, |
8 |
>> any future emerge will fail because the patch cannot be applied again. |
9 |
>> What is wrong here? |
10 |
|
11 |
> You should not use epatch in the svn repo (DISTDIR) itself. Patching |
12 |
> should be done after copying the checkout to WORKDIR |
13 |
|
14 |
Thats true. Actually all that was missing was |
15 |
cd "${S}" |
16 |
I (wrongly) assumed to be cd'ed to ${S} automatically. |
17 |
|
18 |
> Take a look at the eclass [1,2]. Eclasses for live sources have there |
19 |
> own patching facility. |
20 |
> For the subversion.eclass this should be setting the ESVN_PATCHES variable. |
21 |
|
22 |
Description of this variable says: |
23 |
"List of patches to apply prior to fetching the sources". I find this |
24 |
confusing. What can you patch before you have the sources? |
25 |
|
26 |
> I guess this is because functions from the eutils and base eclass |
27 |
> (which provide patching functions) are overwritten from the live |
28 |
> source eclass and the other way round depending on the order of |
29 |
> inheritance. If you do inherit subversion eutils bootstrapping is not |
30 |
> available and if you do inherit eutils subversion epatch is not |
31 |
> available. You can work around this by directly calling the function |
32 |
> from the eclass but an own patching functionality in the live eclass |
33 |
> is more convenient. At least this is my theory :) |
34 |
|
35 |
Wait a minute. Now that I'm in the correct directory I source eutils |
36 |
before subversion and still have epatch available...? |
37 |
Thanks for theorizing in any case. Looking at the eclass helps a little. |
38 |
|
39 |
cheers |
40 |
Thomas |
41 |
|
42 |
>> By the way, does an ebuild that uses subversion eclass need to state |
43 |
>> dev-util/subversion in its dependencies?? |
44 |
>> |
45 |
> |
46 |
> Again take a look in the eclass [1,2]. It sets subversion as dependency |
47 |
> |
48 |
> [1] http://sources.gentoo.org/viewcvs.py/gentoo-x86/eclass/subversion.eclass?view=markup |
49 |
> [2] $PORTDIR/eclass/subversion.eclass |
50 |
> |
51 |
|
52 |
|
53 |
-- |
54 |
Thomas Kahle |
55 |
|
56 |
The fundamental theorem of algebra is open source. Like any other |
57 |
mathematical theorem it can be applied free of charge and everybody |
58 |
has access to its proof and can convince himself how it works. Why |
59 |
should software be any different? |