From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-python@lists.gentoo.org
Subject: [gentoo-python] PYTHON_USEDEP - '?' vs '(-)?' USE-deps
Date: Tue, 22 Jan 2013 17:11:28 +0100 [thread overview]
Message-ID: <20130122171128.65d22f6c@pomiocik.lan> (raw)
[-- Attachment #1: Type: text/plain, Size: 2097 bytes --]
Hello,
There has been some debate whether we should be using plain '?'
USE-dependencies or the USE-default form '(-)?'. I have reviewed
the practical differences between them (using portage), and I'd like
to shortly summarize them.
Just for clarity, the general problem: dev-python/foo depends
on dev-python/setuptools. Therefore, the Python implementations enabled
in dev-python/foo, need to be enabled (and supported) in setuptools
as well.
The 'flag?' syntax requires the dependency to have flag in IUSE
(the implementation in PYTHON_COMPAT). If it's not there, the package
does not satisfy the dependency *even if* the flag is disabled.
IOW, dev-python/foo deps on dev-python/bar. foo has python3_3
in PYTHON_COMPAT, bar-2 does not. Even people with python3_3 disabled
won't be able to emerge bar-2 as a dependency of foo.
The 'flag(-)?' syntax assumes that a missing flag in the dependency
is equivalent to the flag being disabled. In this particular case, it
means that the dependency won't be satisfied if py3.3 is enabled.
That was for the formal part. Now the practical implications.
1. No version of the dependency supports the requested implementation:
portage: with both variants, refuses to merge the package, shows a bit
about missing USE flags
repoman: with 'flag?' variant, complains about it for most profiles with
an error of missing dep. with 'flag(-)?' variant, no errors nor
warnings.
+1 for 'flag?'
2. The newest version of the dependency doesn't support the requested
implementation:
portage:
- with 'flag?', always uses the older version,
- with 'flag(-)?', uses the older version only if the unsupported
implementation is enabled.
repoman: no errors nor warnings.
+1 for 'flag(-)?'
I'd say that the both cases are not 'good enough'. 'flag?' is a bit
saner for QA, 'flag(-)?' for when QA fails (and people use repoman
--force because they NEED that python3.3 so much)...
Maybe we should make repoman more paranoid about missing flags
in the first place?
--
Best regards,
Michał Górny
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 316 bytes --]
reply other threads:[~2013-01-22 16:11 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130122171128.65d22f6c@pomiocik.lan \
--to=mgorny@gentoo.org \
--cc=gentoo-python@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox