Gentoo Archives: gentoo-dev

From: Mike Gilbert <floppym@g.o>
To: "Michał Górny" <mgorny@g.o>
Cc: Gentoo Dev <gentoo-dev@l.g.o>, Gentoo Python Project <python@g.o>
Subject: [gentoo-dev] Re: [PATCHES] python-utils-r1.eclass: Getter cleanup & ABIFLAGS preparation
Date: Sun, 08 Nov 2015 18:28:36
Message-Id: CAJ0EP41HtM7oRq9k_3tvM=AzcBnNDyD5_Wo97Kxv+yEC0Qx2aA@mail.gmail.com
In Reply to: [gentoo-dev] [PATCHES] python-utils-r1.eclass: Getter cleanup & ABIFLAGS preparation by "Michał Górny"
1 On Sun, Nov 8, 2015 at 4:35 AM, Michał Górny <mgorny@g.o> wrote:
2 > Hello, everyone.
3 >
4 > As you probably don't know, Justin lately noticed that we're carrying
5 > some ugly hacks in Python 3.2+ where we diverge from upstream and break
6 > binary compatibility for the sake of 'aesthetics'. While we're not yet
7 > ready to kill them completely (the current work being kept
8 > in python-soabi-cleanup branch), here's a batch of patches that clean up
9 > python-utils-r1 getters and future-proof them for restoring ABIFLAGS.
10 >
11 > In order:
12 >
13 > 1. updates tests to use py3.4 rather than py3.3,
14 > 2. prepares python_export() for spawning python,
15 > 3. gets includedir from python,
16 > 4. gets library path from python,
17 > 5. gets site-packages path from python,
18 > 6. adds API to get python-config path,
19 > 7. updates python_wrapper_setup() appropriately.
20 >
21 > Summarizing, when the changes are done, the eclass is going to hardcode
22 > less variables and call Python more often. Implications for ebuilds:
23 >
24 > a. calling the relevant getters will require build-time dependency on
25 > Python. Not that it really made sense without it -- why would you get
26 > library path or include directory if you're not going to link or compile
27 > against Python? Or why would you get sitedir if you're not going to
28 > install modules (=> byte-compile them)?
29 >
30 > b. ${PYTHON}-config hacks need to replaced by
31 > $(python_get_PYTHON_CONFIG). Direct python-config calls are still fine
32 > (wrapped by the eclass). The GNOME ebuilds which used the former syntax
33 > directly are already fixed in the branch.
34 >
35 > c. The getters will get a little slower. However, that shouldn't be
36 > really important since they are forbidden during metadata regen, and in
37 > ebuild runs we can expect the relevant Python version to be spawned
38 > anyway (=> hot cache).
39 >
40
41 This series looks good to me. Thanks for the work.