1 |
On Sat, 25 Jul 2009 12:28:44 +0200 |
2 |
Arfrever Frehtes Taifersar Arahesis <Arfrever@g.o> wrote: |
3 |
> I would like to present the plan of support for multiple ABIs. It |
4 |
> should be sufficient for Python modules and might be also appropriate |
5 |
> for some other ABI types (e.g. for Ruby modules). |
6 |
|
7 |
How do you plan to handle the intersection of ABIs? What if you have to |
8 |
build or depend upon a Python module for both 32 and 64 bit ABIs, and |
9 |
for both 2.5 and 2.6? What if you have a package that provides both |
10 |
Ruby and Python code, where the two ABIs are independent rather than a |
11 |
product? |
12 |
|
13 |
> 4.1. Implicitly specified ABI dependencies. During calculation of |
14 |
> dependencies of given package, Portage will verify if all |
15 |
> dependencies, which use given ABI type, have been built with enabled |
16 |
> support for these ABIs, which are enabled for given package. |
17 |
|
18 |
How do you say "I need only a single ABI for this, even though it looks |
19 |
like I need every ABI I'm built with"? For example, if your Python |
20 |
module, being built for 2.5 and 2.6, runs (but does not use in a |
21 |
library sense) a Python program that comes as part of a Python package |
22 |
that is buildable with multiple ABIs? |
23 |
|
24 |
> 4.2. Explicitly specified ABI dependencies. {,P,R}DEPEND variables |
25 |
> will support specifying ABI dependencies in explicit way. |
26 |
> {,P,R}DEPEND variables will also support ABI conditionals. I suggest |
27 |
> using {ABI_type[comma-delimited values]} syntax, but it can be |
28 |
> changed. |
29 |
|
30 |
I think we're trying to avoid introducing new special characters if we |
31 |
can get away with using existing ones. You can overload [] and existing |
32 |
conditionals if you're careful. |
33 |
|
34 |
Having said that, you can probably do everything you described slightly |
35 |
less elegantly just using things that're already in EAPI 3. |
36 |
|
37 |
-- |
38 |
Ciaran McCreesh |