public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Tom Wijsman <TomWij@gentoo.org>
To: vaeth@mathematik.uni-wuerzburg.de
Cc: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
Date: Wed, 13 Nov 2013 12:39:53 +0100	[thread overview]
Message-ID: <20131113123953.623ac06d@TOMWIJ-GENTOO> (raw)
In-Reply-To: <slrnl86l1s.j7e.vaeth@lounge.imp.fu-berlin.de>

[-- Attachment #1: Type: text/plain, Size: 7518 bytes --]

On Wed, 13 Nov 2013 10:28:02 +0000 (UTC)
Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> wrote:

> 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:

They are considered unsupported by many; so, going down that path you
need to be acquainted with Portage enough to keep a consistent system.

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

That's one approach, it might also be used when a package can be
stabilized but a certain of feature of the package cannot; eg.
USE="minimal" could be broken on a certain package because it removed a
bit too much, thus it could be stabilized with USE="-minimal" forced.

Anyhow, I think we should make sure to weight "why we need to have it"
against "how it bothers which users"; and not just focus on users alone.

And other than that, are there alternatives? Something we can do better?

Sometimes problems can be resolved by better communication too; perhaps
there are things we can inform the user about in pkg_postinst, or
improve Portage to let the user know of a particular forced USE flag.

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

That are indeed the two approaches, I don't see a problem with putting
the version itself in accept_keywords or overriding the profile;
furthermore, overriding forced and/or masked USE flag is the exception,
it doesn't happen so frequently so I doubt this is a huge problem.

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

System upgrades have to be done carefully; so, the user skipping it is
something we cannot account for except perhaps providing support for
the user receiving some kind of verbose summary of such forces / masks
being present at the end of the emerge output. But you'll have to
contact the Portage developers to achieve such improvements.

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

Most of these reasons can be uniquely determined from the output; but
indeed, some might yield the same output, but this is again something
that the Portage developers can improve and not a reason for removal.

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

This confuses me; isn't the goal to have one multilib apprach or the
other? Especially due to the blockers between them.

I agree Portage output can be better, I'm not sure if use.stable.mask
is really the problem here though; but rather the nature of mixing them.

> 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:

Hell indeed breaks loose if you mix stable and unstable; but note that
this package had an accident, see the related news item for details.

> Portaqe wanted me to emerge the git version of
> dev-lang/python-exec:0 and reemerge dozens of packages.

This is a consequence of that hell; if you don't agree and this is due
to the Portage tree, please show the dependency chain that causes this.

> 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,

It doesn't matter, dev-python/python-exec installs no contents.

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

Which one is not meant to do anyway; and from what you wrote, I don't
think you intent to either.

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

Marked in which way? One is stable, the other unkeyworded.

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

Which output are we discussing here?

If it is due to the hell above, we warn users up front for that.

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

That is to be expected on such stabilizations, I doubt they are
unnecessary; if I misunderstood, feel free to give an example.

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

  reply	other threads:[~2013-11-13 11:45 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 [this message]
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

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=20131113123953.623ac06d@TOMWIJ-GENTOO \
    --to=tomwij@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