1 |
Dnia 2015-01-24, o godz. 10:31:57 |
2 |
Michał Górny <mgorny@g.o> napisał(a): |
3 |
|
4 |
> Support prefixing groups of USE_EXPAND flags with 'USE_EXPAND:' in user |
5 |
> configuration package.use and similar files. This provides a convenient |
6 |
> way of declaring specifying multiple USE_EXPAND flags and matches the |
7 |
> syntax supported by Paludis. Example: |
8 |
> |
9 |
> dev-util/netbeans NETBEANS_MODULES: php webcommon extide |
10 |
> media-libs/mesa osmesa VIDEO_CARDS: intel nouveau |
11 |
> |
12 |
> X-Gentoo-Bug: 471776 |
13 |
> X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=471776 |
14 |
> --- |
15 |
> man/portage.5 | 6 ++++++ |
16 |
> pym/portage/package/ebuild/_config/UseManager.py | 24 +++++++++++++++++++++--- |
17 |
> 2 files changed, 27 insertions(+), 3 deletions(-) |
18 |
> |
19 |
> diff --git a/man/portage.5 b/man/portage.5 |
20 |
> index 189561c..5ac3100 100644 |
21 |
> --- a/man/portage.5 |
22 |
> +++ b/man/portage.5 |
23 |
> @@ -792,6 +792,10 @@ documentation for QT. Easy as pie my friend! |
24 |
> .nf |
25 |
> \- comments begin with # (no inline comments) |
26 |
> \- one DEPEND atom per line with space-delimited USE flags |
27 |
> +\- USE flags can be prefixed with USE_EXPAND name followed by a colon (:) |
28 |
> +and a space. In this case, all the names following it are treated |
29 |
> +as values for the USE_EXPAND. Note that if you need to remove earlier |
30 |
> +assignments or defaults, you need to explicitly specify '\-*'. |
31 |
> .fi |
32 |
> |
33 |
> .I Example: |
34 |
> @@ -800,6 +804,8 @@ documentation for QT. Easy as pie my friend! |
35 |
> =x11\-libs/gtk+\-2* doc |
36 |
> # disable mysql support for QT |
37 |
> x11\-libs/qt \-mysql |
38 |
> +# set preferred video card for all packages |
39 |
> +*/* VIDEO_CARDS: \-* radeon |
40 |
> .fi |
41 |
> .TP |
42 |
> .BR repos.conf |
43 |
> diff --git a/pym/portage/package/ebuild/_config/UseManager.py b/pym/portage/package/ebuild/_config/UseManager.py |
44 |
> index 3a4ec22..7e235ef 100644 |
45 |
> --- a/pym/portage/package/ebuild/_config/UseManager.py |
46 |
> +++ b/pym/portage/package/ebuild/_config/UseManager.py |
47 |
> @@ -145,7 +145,7 @@ class UseManager(object): |
48 |
> useflag = prefixed_useflag[1:] |
49 |
> else: |
50 |
> useflag = prefixed_useflag |
51 |
> - if useflag_re.match(useflag) is None: |
52 |
> + if useflag_re.match(prefixed_useflag) is None: |
53 |
|
54 |
Argv, wrong. I know you named it 'prefixed_useflag' to confuse me! |
55 |
|
56 |
> writemsg(_("--- Invalid USE flag in '%s': '%s'\n") % |
57 |
> (file_name, prefixed_useflag), noiselevel=-1) |
58 |
> else: |
59 |
> @@ -202,12 +202,19 @@ class UseManager(object): |
60 |
> useflag_re = _get_useflag_re(eapi) |
61 |
> for k, v in file_dict.items(): |
62 |
> useflags = [] |
63 |
> + use_expand_prefix = '' |
64 |
> for prefixed_useflag in v: |
65 |
> + if extended_syntax and prefixed_useflag[-1] == ":": |
66 |
> + use_expand_prefix = prefixed_useflag[:-1].lower() + "_" |
67 |
> + continue |
68 |
> + |
69 |
> if prefixed_useflag[:1] == "-": |
70 |
> useflag = prefixed_useflag[1:] |
71 |
> + prefixed_useflag = "-" + use_expand_prefix + useflag |
72 |
> else: |
73 |
> + prefixed_useflag = use_expand_prefix + prefixed_useflag |
74 |
> useflag = prefixed_useflag |
75 |
> - if useflag_re.match(useflag) is None: |
76 |
> + if useflag_re.match(prefixed_useflag) is None: |
77 |
> writemsg(_("--- Invalid USE flag for '%s' in '%s': '%s'\n") % |
78 |
> (k, file_name, prefixed_useflag), noiselevel=-1) |
79 |
> else: |
80 |
> @@ -227,7 +234,18 @@ class UseManager(object): |
81 |
> pusedict = grabdict_package( |
82 |
> os.path.join(location, file_name), recursive=1, allow_wildcard=True, allow_repo=True, verify_eapi=False) |
83 |
> for k, v in pusedict.items(): |
84 |
> - ret.setdefault(k.cp, {})[k] = tuple(v) |
85 |
> + l = [] |
86 |
> + use_expand_prefix = '' |
87 |
> + for flag in v: |
88 |
> + if flag[-1] == ":": |
89 |
> + use_expand_prefix = flag[:-1].lower() + "_" |
90 |
> + continue |
91 |
> + if flag[0] == "-": |
92 |
> + nv = "-" + use_expand_prefix + flag[1:] |
93 |
> + else: |
94 |
> + nv = use_expand_prefix + flag |
95 |
> + l.append(nv) |
96 |
> + ret.setdefault(k.cp, {})[k] = tuple(l) |
97 |
> |
98 |
> return ret |
99 |
> |
100 |
|
101 |
|
102 |
|
103 |
-- |
104 |
Best regards, |
105 |
Michał Górny |