From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Cc: vaeth@mathematik.uni-wuerzburg.de
Subject: Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
Date: Wed, 13 Nov 2013 15:10:12 +0100 [thread overview]
Message-ID: <20131113151012.04145837@gentoo.org> (raw)
In-Reply-To: <slrnl86l1s.j7e.vaeth@lounge.imp.fu-berlin.de>
[-- Attachment #1: Type: text/plain, Size: 5809 bytes --]
Dnia 2013-11-13, o godz. 10:28:02
Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> napisał(a):
> As I understand, it tries to solve a "social" issue
> (that an ARCH user might set a USE-flag which eventually
> pulls in an ~ARCH package) on a technical level
> (by forcibly disabling the USE-flag for the user).
> Solving social problems by technical means is never a good
> idea:
Then you don't understand it.
The basic issue is that we couldn't stabilize a package without
stabilizing all of its optional dependencies. For example, consider
Python 3.3. In order to get proper testing of it on testing, we had to
enable support for it in packages. But when we introduced that support,
the package immediately gained a dep on python:3.3.
If the package was supposed to go stable, we would either have to
stabilize Python 3.3 (too early for that), wait for Python 3.3
(resulting in very long to infinite) or drop Python 3.3 support. There
were even cases when I had to revbump a package in order to keep
'limited' revision to stabilize and 'full' to keep testing.
Just to be clear -- this isn't only a social issue. This is a valid QA
concern that we had no distinction between 'flags that are fine on
stable' and 'flags that are not'. If some flags work and some do not,
resulting in 'unsatisfiable dep' errors, this is technical.
> While the former gives the stable user a clear message
> what is going wrong (after all, many stable users want
> some package which has not a stable version yet, so this
> should be something everybody should be able to handle),
> the latter hides causes and makes things almost unpredictable:
Answer yourself the following questions: does portage suggest removing
the flag in the case? Does portage in any way explain that a particular
dependency was pulled in due to USE flag?
It's easy to use words like 'clear message' when you want to prove your
point. And I have no idea what you mean by 'something everybody should
be able to handle', unless you assume that the main purpose of a stable
system is to turn it into mixed-keyword system.
And just in case: the proper course of action then is to *report
a bug*. And in the end, thanks to your glorified solution, we end up
with dozens or hundreds of 'CANTFIX' bugs.
> Even if the user has put the dependency into
> package.accept_keywords, he will not be able to use the
> USE-flag on his packages unless
> *he puts stable versions into package.accept_keywords*
> (or - simlarly worse - overrides the profile).
If you have a problem with USE flag being masked, you unmask the USE
flag. It is simple like this.
I don't agree with the whole idea of unmasking flags via playing with
accept_keywords. In my opinion, it's just a terrible bug or mis-design.
It's not something that should be encouraged, or even happen.
If you unmask testing package just to get testing keywords, you quickly
lose the point of having stable keywords. Putting just the stable
versions is a pointless nightmare.
Even worse than that, people with mixed systems get extra flags even if
they don't want them. And this is an easy way to have them end up with
half of the system on testing.
> The really bad thing is that this is happening by magic
> "behind the user's back", i.e. contradicting the user's setting
> of USE-flag and package.use: If the user does not carefully
> read emerge's -v output, he even does not get informed that
> the support for his unstable package is dropped from the
> stable package, despite he might have specified the corresponding
> USE-flag globally. Even worse, even when reading the output
> carefully, the user cannot understand the reason:
> Since there are many reasons why use-flags can appear in ()
> he will probably not even conjecture that actually something
> will not be working as he expected.
It's magic only because you did it wrong.
> Here are some other examples of negative effects happening
> just recently to me, ordered from not so severe to very bad:
>
> 1. For several reasons I always want the most current
> emul-linux-x86* libraries, so they are in package.accept_keywords.
> Due to global ABI_X86=32 (which I also want), this forced me
> of course to put several libraries to ~amd64 since only
> new version support this. Some of the libraries are actually
> stable, so I have removed them from package.accept_keywords.
> So far, so good.
> But suddenly portage spitted unexplainable dependency errors,
> and I only expert users manually reading the profiles can
> understand that the reason is that use.stable.mask requires
> that stable versions need to be keyworded ~amd64
> (or use.stable.mask has to be overridden in my profile).
Which wouldn't happen if package.accept_keywords didn't implicitly
unmask flags.
> 2. Just a few days ago dev-lang/python-exec:2 became stable
> on amd64, but dev-python/python-exec:2 is still ~amd64.
And this was a bug that would have been fixed if you cared reporting it
straight to us rather than kept is as an argument.
> 3. As a side effect of 2., I realized that libreoffice and a dozen
> further packages get forced a rebuild. So, if eventually
> python-3.3 becomes stable and is removed from use.stable.mask,
> all stable users will have to rebuild almost their whole world,
> because python-exec then has one more "dummy" USE-flag. The same
> will happen again if pypy-2.0 becomes stable.
> So a lot of unnecessary rebuilds happen to stable users because
> of {package.,}use.stable.mask which most of the developers
> (who are often ~amd64 users) do not realize.
I don't get this. A masked flag is equivalent to a disabled flag. What
would cause the rebuild then?
--
Best regards,
Michał Górny
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 966 bytes --]
next prev parent reply other threads:[~2013-11-13 14:10 UTC|newest]
Thread overview: 111+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-13 10:28 [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask Martin Vaeth
2013-11-13 11:39 ` Tom Wijsman
2013-11-13 13:25 ` Thomas Kahle
2013-11-13 13:37 ` Rich Freeman
2013-11-13 14:00 ` Tom Wijsman
2013-11-13 14:30 ` [gentoo-dev] " Duncan
2013-11-13 14:55 ` Thomas Kahle
2013-11-13 15:16 ` Ian Stakenvicius
2013-11-13 18:56 ` Daniel Campbell
2013-11-13 20:21 ` James Potts
2013-11-13 21:22 ` Kent Fredric
2013-11-17 10:20 ` Sergey Popov
2013-11-13 13:56 ` [gentoo-dev] " Tom Wijsman
2013-11-13 14:38 ` [gentoo-dev] " Martin Vaeth
2013-11-13 14:04 ` Martin Vaeth
2013-11-13 14:10 ` Michał Górny [this message]
2013-11-13 15:02 ` [gentoo-dev] " Ian Stakenvicius
2013-11-13 15:58 ` Rich Freeman
2013-11-13 23:49 ` Patrick Lauer
2013-11-14 5:13 ` Michał Górny
2013-11-14 12:03 ` Patrick Lauer
2013-11-14 12:13 ` Rich Freeman
2013-11-14 12:30 ` Patrick Lauer
2013-11-14 12:45 ` Rich Freeman
2013-11-14 19:07 ` Thomas Sachau
2013-11-14 19:35 ` Ciaran McCreesh
2013-11-14 23:40 ` Patrick Lauer
2013-11-14 17:51 ` Michał Górny
2013-11-14 23:38 ` Patrick Lauer
2013-11-14 12:21 ` Ben de Groot
2013-11-14 12:32 ` Rich Freeman
2013-11-14 12:57 ` Ben de Groot
2013-11-14 15:12 ` Rich Freeman
2013-11-14 16:38 ` Ben de Groot
2013-11-14 17:32 ` Rich Freeman
2013-11-15 6:53 ` Ben de Groot
2013-11-15 7:13 ` Ulrich Mueller
2013-11-15 11:08 ` [gentoo-dev] " Duncan
2013-11-15 14:30 ` Ian Stakenvicius
2013-11-15 15:30 ` Duncan
2013-11-15 12:14 ` [gentoo-dev] " Patrick Lauer
2013-11-15 14:27 ` Ian Stakenvicius
2013-11-15 13:33 ` Rich Freeman
2013-11-15 22:39 ` Michał Górny
2013-11-15 23:06 ` Tom Wijsman
2013-11-16 8:22 ` Pacho Ramos
2013-11-16 10:57 ` Thomas Sachau
2013-11-17 16:09 ` hasufell
2013-11-17 16:35 ` Tom Wijsman
2013-11-17 16:52 ` Ciaran McCreesh
2013-11-16 12:39 ` [gentoo-dev] " Martin Vaeth
2013-11-16 12:46 ` Michał Górny
2013-11-16 20:24 ` Kent Fredric
2013-11-16 21:52 ` Michał Górny
2013-11-17 0:53 ` Kent Fredric
2013-11-16 22:52 ` Duncan
2013-11-13 15:23 ` Martin Vaeth
2013-11-13 15:41 ` Mike Gilbert
2013-11-14 0:11 ` Tom Wijsman
2013-11-13 15:42 ` Kent Fredric
2013-11-13 16:05 ` Martin Vaeth
2013-11-13 17:05 ` "Paweł Hajdan, Jr."
2013-11-13 15:44 ` Michał Górny
2013-11-13 16:52 ` Martin Vaeth
2013-11-13 17:03 ` Peter Stuge
2013-11-13 17:49 ` Rich Freeman
2013-11-13 18:24 ` Peter Stuge
2013-11-13 18:50 ` Rich Freeman
2013-11-15 4:56 ` [gentoo-dev] " Matt Turner
2013-11-15 5:23 ` Kent Fredric
2013-11-15 15:54 ` Peter Stuge
2013-11-15 16:05 ` Ian Stakenvicius
2013-11-15 20:18 ` [gentoo-dev] " Martin Vaeth
2013-11-15 20:22 ` Peter Stuge
2013-11-16 12:46 ` Andreas K. Huettel
2013-11-17 17:04 ` Martin Vaeth
2013-11-17 17:15 ` Michał Górny
2013-11-17 18:46 ` Martin Vaeth
2013-11-17 19:32 ` hasufell
2013-11-17 20:16 ` Tom Wijsman
2013-11-17 17:24 ` Tom Wijsman
2013-11-17 19:10 ` Martin Vaeth
2013-11-17 19:57 ` Tom Wijsman
2013-11-17 18:56 ` Ian Stakenvicius
2013-11-17 19:18 ` Martin Vaeth
2013-11-17 19:27 ` Michał Górny
2013-11-17 19:51 ` Martin Vaeth
2013-11-17 21:41 ` Andreas K. Huettel
2013-11-16 12:50 ` Andreas K. Huettel
2013-11-16 12:58 ` Michał Górny
2013-11-17 18:13 ` Andreas K. Huettel
2013-11-17 18:18 ` Michał Górny
2013-11-15 19:24 ` [gentoo-dev] " Tom Wijsman
2013-11-15 19:24 ` Tom Wijsman
2013-11-15 19:31 ` Ian Stakenvicius
2013-11-15 19:36 ` Matt Turner
2013-11-15 20:00 ` Tom Wijsman
2013-11-15 20:10 ` Peter Stuge
2013-11-15 20:24 ` Tom Wijsman
2013-11-15 20:25 ` Matt Turner
2013-11-15 20:53 ` Tom Wijsman
2013-11-15 21:09 ` Peter Stuge
2013-11-15 21:27 ` Tom Wijsman
2013-11-15 21:21 ` Matt Turner
2013-11-15 21:38 ` Tom Wijsman
2013-11-15 21:45 ` Matt Turner
2013-11-15 22:08 ` Tom Wijsman
2013-11-15 21:57 ` Peter Stuge
2013-11-15 22:13 ` Tom Wijsman
2013-11-15 22:26 ` Peter Stuge
2013-11-15 22:58 ` Tom Wijsman
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=20131113151012.04145837@gentoo.org \
--to=mgorny@gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
--cc=vaeth@mathematik.uni-wuerzburg.de \
/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