public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
@ 2013-11-13 10:28 Martin Vaeth
  2013-11-13 11:39 ` Tom Wijsman
                   ` (2 more replies)
  0 siblings, 3 replies; 111+ messages in thread
From: Martin Vaeth @ 2013-11-13 10:28 UTC (permalink / raw
  To: gentoo-dev

Hello.

The new "features" use.stable.mask and package.use.stable.mask
have turned maintaining systems with mixed ARCH and ~ARCH keywords
into a nightmare:

Similarly to the (fortunately dropped) concept of forcing
useflags if certain packages are installed this forces a
magic on the user which can hardly be managed since it is
not clearly presented to the user but hidden in some profiles.

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:

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:

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).

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.

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).

2. Just a few days ago dev-lang/python-exec:2 became stable
on amd64, but dev-python/python-exec:2 is still ~amd64.
Just to be sure to not miss anything, I have put the latter
into package.accept_keywords, and hell break loose:
Portaqe wanted me to emerge the git version of
dev-lang/python-exec:0 and reemerge dozens of packages.
I needed hours to find out what is the actual cause:
The package.accept_keywords caused the use.stable.mask of
python_targets_pypy2_0 und python_targets_python3_3 to become
ineffective for dev-python/python-exec, but of course it is still
effective for dev-lang/python-exec which is not be the case
if I unmask the git version of dev-lang/python-exec.

This is completely confusing since nowhere the git-version
is marked differently than the non-git version.

So, yes, portage's behaviour can be explained, but, no,
it is not understandable by a user who wants portage
to report what is really wrong and who does not want
to check manually by reading all profiles and hunt down
for reasons why certain flags are magically forced/disabled.

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.

Best Regards
Martin



^ permalink raw reply	[flat|nested] 111+ messages in thread

end of thread, other threads:[~2013-11-17 21:41 UTC | newest]

Thread overview: 111+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 ` [gentoo-dev] " Michał Górny
2013-11-13 15:02   ` 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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox