From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 60814138A1A for ; Sat, 24 Jan 2015 09:38:30 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 750D3E099E; Sat, 24 Jan 2015 09:38:29 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id CE319E0998 for ; Sat, 24 Jan 2015 09:38:28 +0000 (UTC) Received: from pomiot.lan (87-205-67-137.adsl.inetia.pl [87.205.67.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: mgorny) by smtp.gentoo.org (Postfix) with ESMTPSA id 4CC693406C2; Sat, 24 Jan 2015 09:38:27 +0000 (UTC) Date: Sat, 24 Jan 2015 10:38:21 +0100 From: =?UTF-8?B?TWljaGHFgiBHw7Nybnk=?= To: gentoo-portage-dev@lists.gentoo.org Subject: Re: [gentoo-portage-dev] [PATCH v2] Support USE_EXPAND prefixes in package.use and relevant files Message-ID: <20150124103821.508c587c@pomiot.lan> In-Reply-To: <1422091917-5384-1-git-send-email-mgorny@gentoo.org> References: <1422091917-5384-1-git-send-email-mgorny@gentoo.org> Organization: Gentoo X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.25; x86_64-pc-linux-gnu) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-portage-dev@lists.gentoo.org Reply-to: gentoo-portage-dev@lists.gentoo.org MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; boundary="Sig_/xOuxMt0WHwAy5A_BjwxTGyR"; protocol="application/pgp-signature" X-Archives-Salt: 636f9ba4-1434-4cc0-b674-c5cd3cde7c1d X-Archives-Hash: 58203d428f52e0f2d46d52e1ac11ce98 --Sig_/xOuxMt0WHwAy5A_BjwxTGyR Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Dnia 2015-01-24, o godz. 10:31:57 Micha=C5=82 G=C3=B3rny napisa=C5=82(a): > Support prefixing groups of USE_EXPAND flags with 'USE_EXPAND:' in user > configuration package.use and similar files. This provides a convenient > way of declaring specifying multiple USE_EXPAND flags and matches the > syntax supported by Paludis. Example: >=20 > dev-util/netbeans NETBEANS_MODULES: php webcommon extide > media-libs/mesa osmesa VIDEO_CARDS: intel nouveau >=20 > X-Gentoo-Bug: 471776 > X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=3D471776 > --- > man/portage.5 | 6 ++++++ > pym/portage/package/ebuild/_config/UseManager.py | 24 ++++++++++++++++++= +++--- > 2 files changed, 27 insertions(+), 3 deletions(-) >=20 > diff --git a/man/portage.5 b/man/portage.5 > index 189561c..5ac3100 100644 > --- a/man/portage.5 > +++ b/man/portage.5 > @@ -792,6 +792,10 @@ documentation for QT. Easy as pie my friend! > .nf > \- comments begin with # (no inline comments) > \- one DEPEND atom per line with space-delimited USE flags > +\- USE flags can be prefixed with USE_EXPAND name followed by a colon (:) > +and a space. In this case, all the names following it are treated > +as values for the USE_EXPAND. Note that if you need to remove earlier > +assignments or defaults, you need to explicitly specify '\-*'. > .fi > =20 > .I Example: > @@ -800,6 +804,8 @@ documentation for QT. Easy as pie my friend! > =3Dx11\-libs/gtk+\-2* doc > # disable mysql support for QT > x11\-libs/qt \-mysql > +# set preferred video card for all packages > +*/* VIDEO_CARDS: \-* radeon > .fi > .TP > .BR repos.conf > diff --git a/pym/portage/package/ebuild/_config/UseManager.py b/pym/porta= ge/package/ebuild/_config/UseManager.py > index 3a4ec22..7e235ef 100644 > --- a/pym/portage/package/ebuild/_config/UseManager.py > +++ b/pym/portage/package/ebuild/_config/UseManager.py > @@ -145,7 +145,7 @@ class UseManager(object): > useflag =3D prefixed_useflag[1:] > else: > useflag =3D prefixed_useflag > - if useflag_re.match(useflag) is None: > + if useflag_re.match(prefixed_useflag) is None: Argv, wrong. I know you named it 'prefixed_useflag' to confuse me! > writemsg(_("--- Invalid USE flag in '%s': '%s'\n") % > (file_name, prefixed_useflag), noiselevel=3D-1) > else: > @@ -202,12 +202,19 @@ class UseManager(object): > useflag_re =3D _get_useflag_re(eapi) > for k, v in file_dict.items(): > useflags =3D [] > + use_expand_prefix =3D '' > for prefixed_useflag in v: > + if extended_syntax and prefixed_useflag[-1] =3D=3D ":": > + use_expand_prefix =3D prefixed_useflag[:-1].lower() + "_" > + continue > + > if prefixed_useflag[:1] =3D=3D "-": > useflag =3D prefixed_useflag[1:] > + prefixed_useflag =3D "-" + use_expand_prefix + useflag > else: > + prefixed_useflag =3D use_expand_prefix + prefixed_useflag > useflag =3D prefixed_useflag > - if useflag_re.match(useflag) is None: > + if useflag_re.match(prefixed_useflag) is None: > writemsg(_("--- Invalid USE flag for '%s' in '%s': '%s'\n") % > (k, file_name, prefixed_useflag), noiselevel=3D-1) > else: > @@ -227,7 +234,18 @@ class UseManager(object): > pusedict =3D grabdict_package( > os.path.join(location, file_name), recursive=3D1, allow_wildcard=3DT= rue, allow_repo=3DTrue, verify_eapi=3DFalse) > for k, v in pusedict.items(): > - ret.setdefault(k.cp, {})[k] =3D tuple(v) > + l =3D [] > + use_expand_prefix =3D '' > + for flag in v: > + if flag[-1] =3D=3D ":": > + use_expand_prefix =3D flag[:-1].lower() + "_" > + continue > + if flag[0] =3D=3D "-": > + nv =3D "-" + use_expand_prefix + flag[1:] > + else: > + nv =3D use_expand_prefix + flag > + l.append(nv) > + ret.setdefault(k.cp, {})[k] =3D tuple(l) > =20 > return ret > =20 --=20 Best regards, Micha=C5=82 G=C3=B3rny --Sig_/xOuxMt0WHwAy5A_BjwxTGyR Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQJ8BAEBCgBmBQJUw2gNXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ2REJCMDdDQzRGMERBRDA2RUEwQUZFNDFC MDdBMUFFQUVGQjQ0NjRFAAoJELB6GurvtEZOUk8P/AhBshkCXWgPDDpC6D5k+9rb ueZ0eQe32iZqEeS+SlimzTUaujQVVu2MdkWJPDbkZ1LP14CmBXz/HSkTcn7o8KFM nPfFUQ4NxihmFtFYX3PiCxYB9AID8gcauQ/CcoGbDckHH5yHh7I3TWuCpWGx9H+q GKPPaXdAw2Q48rVhH420wAyw1Vvz5I0g/zWAuOluxPaus1MP/3GdROymWKNc8oYT AOSZSbabHLBEh3Lma+Mp+xiceBFxzruMUM4IGtezhEM5gGmfv5HQstxhtIpwY6pl Unur8VCoEwrOIYxUvbqHkWWUPyr4OEuhzUostxUW/tT70ByxYnEJWMbuJiH//nM1 PQjpXQBLJ95O+hr1l3AQ9lwsfBQx+I3hbDGhmf2i4mHdHhYU591D+gM3wSP45fCE +ImjgUCSns0FuJ+/JBpDxq8DYnTfypuDwiG8Wbauu6AzevPBd/sijx6P5su/O774 RAehe18RzrbsJTfDSsA4cVlNQETXwYUc1vZmzl9ABZdZV3FtyjYoBP1SVLhB2mZh JcA1wKQLQZ8lGQ0AGA2SmefmGKmv6qNkGbcTbww+qRhvuo30NwHSU/1SC0m6e+JZ eFAXUzKqiXA/vfGVSSXiBS8I9dciUOmmfXOtLLuP9WhV34xSCEY/25SuZ6cr4i8O cXSFp5DvrDjefd3YUc3l =lMgU -----END PGP SIGNATURE----- --Sig_/xOuxMt0WHwAy5A_BjwxTGyR--