public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] berkdb and gdbm in global USE defaults
@ 2017-01-27  3:33 Mike Gilbert
  2017-01-27  7:54 ` Mart Raudsepp
                   ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Mike Gilbert @ 2017-01-27  3:33 UTC (permalink / raw)
  To: Gentoo Dev

I recently ran into a REQUIRED_USE constraint that required I select
between berkdb and gdbm for an email client.

Looking through our profiles, I see we have both berkdb and gdbm
enabled "globally".

default/linux/make.defaults:USE="berkdb crypt ipv6 ncurses nls pam
readline ssl tcpd zlib"
releases/make.defaults:USE="acl gdbm nptl unicode"

Is there any reason to have these USE flags enabled globally?

These USE seem pretty package-specific in scope. On my system, they
are used by around a dozen of 1000+ installed packages. I think it
might make sense to migrate them to appropriate IUSE defaults, or
leave them disabled where they do not provide critical functionality.


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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2017-01-27  3:33 [gentoo-dev] berkdb and gdbm in global USE defaults Mike Gilbert
@ 2017-01-27  7:54 ` Mart Raudsepp
  2017-01-27  8:32   ` Fabian Groffen
  2017-01-27 16:22   ` Mike Gilbert
  2017-01-27 16:56 ` [gentoo-dev] " Michael Orlitzky
  2018-04-07 18:44 ` William Hubbs
  2 siblings, 2 replies; 22+ messages in thread
From: Mart Raudsepp @ 2017-01-27  7:54 UTC (permalink / raw)
  To: gentoo-dev

Ühel kenal päeval, N, 26.01.2017 kell 22:33, kirjutas Mike Gilbert:
> I recently ran into a REQUIRED_USE constraint that required I select
> between berkdb and gdbm for an email client.

There shouldn't be a REQUIRED_USE constraint that forces you to select
one or the other. The maintainer should be giving the choice of both,
but if only one can be chosen, the maintainer should make the choice
for you by preferring one of them. Likely gdbm, given berkdb licensing
saga.
Though I guess this is a little bit more problematic when that DB is
long living, but I think it should still work good enough with this
guideline.

Then there is no need to think about what is enabled globally or not.
Point being, use REQUIRED_USE sparingly, and rarely a good idea to
block things with common global USE flags, or demand a local USE flag
based on a default enabled global USE flag without locally USE
defaulting that global flag too - and other such cases.

I'd talk to the maintainer(s) of such package(s) via bugzilla or other
means and discuss such REQUIRED_USE potential overuse.

> Looking through our profiles, I see we have both berkdb and gdbm
> enabled "globally".
> 
> default/linux/make.defaults:USE="berkdb crypt ipv6 ncurses nls pam
> readline ssl tcpd zlib"
> releases/make.defaults:USE="acl gdbm nptl unicode"
> 
> Is there any reason to have these USE flags enabled globally?
> 
> These USE seem pretty package-specific in scope. On my system, they
> are used by around a dozen of 1000+ installed packages. I think it
> might make sense to migrate them to appropriate IUSE defaults, or
> leave them disabled where they do not provide critical functionality.



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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2017-01-27  7:54 ` Mart Raudsepp
@ 2017-01-27  8:32   ` Fabian Groffen
  2017-01-27 10:58     ` Kent Fredric
  2017-01-27 12:01     ` Dirkjan Ochtman
  2017-01-27 16:22   ` Mike Gilbert
  1 sibling, 2 replies; 22+ messages in thread
From: Fabian Groffen @ 2017-01-27  8:32 UTC (permalink / raw)
  To: gentoo-dev

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

Replying here because I think said email client is the one I recently
added REQUIRED_USE constraints for.

Reason I added it is because it greatly simplified the ebuild: it's not
just bdb and gdbm, but also tokyocabinet, qdbm and lmdb, with as result
a lot of if-else-casing which implemented the implicit defaults before.
I didn't realise changing this to REQUIRED_USE resulted in a conflict on
default profiles, because I (obviously) have a package.use entry for the
package.

You mention REQUIRED_USE should be used sparingly, I think I see your
reasoning, but if so, then why did we add it in the first place?  Since
the ebuild will only use one of the db backends, when multiple are
selected, the package manager will falsely think both are in use (and
trigger rebuilds, etc.).  Isn't the point to express the actual
situation as correctly as possible for the PM to do a better job?
I also like the ebuild being way less convoluted, but I can overcome
that is necessary.

I'm interested to hear how other people feel about this.

Thanks,
Fabian


On 27-01-2017 09:54:00 +0200, Mart Raudsepp wrote:
> Ühel kenal päeval, N, 26.01.2017 kell 22:33, kirjutas Mike Gilbert:
> > I recently ran into a REQUIRED_USE constraint that required I select
> > between berkdb and gdbm for an email client.
> 
> There shouldn't be a REQUIRED_USE constraint that forces you to select
> one or the other. The maintainer should be giving the choice of both,
> but if only one can be chosen, the maintainer should make the choice
> for you by preferring one of them. Likely gdbm, given berkdb licensing
> saga.
> Though I guess this is a little bit more problematic when that DB is
> long living, but I think it should still work good enough with this
> guideline.
> 
> Then there is no need to think about what is enabled globally or not.
> Point being, use REQUIRED_USE sparingly, and rarely a good idea to
> block things with common global USE flags, or demand a local USE flag
> based on a default enabled global USE flag without locally USE
> defaulting that global flag too - and other such cases.
> 
> I'd talk to the maintainer(s) of such package(s) via bugzilla or other
> means and discuss such REQUIRED_USE potential overuse.
> 
> > Looking through our profiles, I see we have both berkdb and gdbm
> > enabled "globally".
> > 
> > default/linux/make.defaults:USE="berkdb crypt ipv6 ncurses nls pam
> > readline ssl tcpd zlib"
> > releases/make.defaults:USE="acl gdbm nptl unicode"
> > 
> > Is there any reason to have these USE flags enabled globally?
> > 
> > These USE seem pretty package-specific in scope. On my system, they
> > are used by around a dozen of 1000+ installed packages. I think it
> > might make sense to migrate them to appropriate IUSE defaults, or
> > leave them disabled where they do not provide critical functionality.
> 
> 

-- 
Fabian Groffen
Gentoo on a different level

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2017-01-27  8:32   ` Fabian Groffen
@ 2017-01-27 10:58     ` Kent Fredric
  2017-01-27 11:16       ` Mart Raudsepp
  2017-01-27 12:01     ` Dirkjan Ochtman
  1 sibling, 1 reply; 22+ messages in thread
From: Kent Fredric @ 2017-01-27 10:58 UTC (permalink / raw)
  To: gentoo-dev

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

On Fri, 27 Jan 2017 09:32:23 +0100
Fabian Groffen <grobian@gentoo.org> wrote:

> I'm interested to hear how other people feel about this.

Yeah. Pretty much my reaction to 

Mart Raudsepp <leio@gentoo.org> wrote:

> The maintainer should be giving the choice of both,
> but if only one can be chosen, the maintainer should make the choice
> for you by preferring one of them. Likely gdbm, given berkdb licensing
> saga.

Brought the same question to me:

If the design is intended to force your hand when you have both, what is indeed
the point of a REQUIRED_USE feature at all?

If "choose a useflag for the user" is something that is happening, it should
at least be *visible* to the user that this is happening, not being a silent
decision that didn't allow the user to have any say in the matter.

What if the feature you chose instead, was contrary to the one they wanted?

If anything, I think this is a suggestion that *maybe* we should a way to
specify a mechanism for allowing a default to be chosen from a mutually
exclusive set, and then:

a. Inform the user via pretend output that this automatic conflict reduction
   has been performed

b. Define a portage option that disables automatic conflict resolution for
   required USE, so users who hate (a) can turn it off.


But as it stands, Mart's suggestion of "Hey, just don't use required use,
decide for the user" stands essentially as a regression against portage itself.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2017-01-27 10:58     ` Kent Fredric
@ 2017-01-27 11:16       ` Mart Raudsepp
  2017-01-27 11:41         ` Mart Raudsepp
  0 siblings, 1 reply; 22+ messages in thread
From: Mart Raudsepp @ 2017-01-27 11:16 UTC (permalink / raw)
  To: gentoo-dev

Ühel kenal päeval, R, 27.01.2017 kell 23:58, kirjutas Kent Fredric:
> On Fri, 27 Jan 2017 09:32:23 +0100
> Fabian Groffen <grobian@gentoo.org> wrote:
> 
> > I'm interested to hear how other people feel about this.
> 
> Yeah. Pretty much my reaction to 
> 
> Mart Raudsepp <leio@gentoo.org> wrote:
> 
> > The maintainer should be giving the choice of both,
> > but if only one can be chosen, the maintainer should make the
> > choice
> > for you by preferring one of them. Likely gdbm, given berkdb
> > licensing
> > saga.
> 
> Brought the same question to me:
> 
> If the design is intended to force your hand when you have both, what
> is indeed
> the point of a REQUIRED_USE feature at all?

It can be very useful in some cases, especially when these cases
involve local USE flags in a way that the errors come after enabling
something locally in an unsuitable way.
But yes, ideally the package manager would have a clue about what
happened for the cases like the one in question, but REQUIRED_USE
provided a faster solution to some of the problems that could be
implemented in package managers in a reasonable time for the EAPI this
was introduced in.
We could work on top of this in a future EAPI.

> If "choose a useflag for the user" is something that is happening, it
> should
> at least be *visible* to the user that this is happening, not being a
> silent
> decision that didn't allow the user to have any say in the matter.
> 
> What if the feature you chose instead, was contrary to the one they
> wanted?
> 
> If anything, I think this is a suggestion that *maybe* we should a
> way to
> specify a mechanism for allowing a default to be chosen from a
> mutually
> exclusive set, and then:

Sure, I have some thoughts for this and a rough draft, at least in my
head :)
I don't have it as a priority to sketch it out well alone, but if
someone is honestly interested, I could braindump my ideas in realtime
medium. Or someone thinks of them themselves :)

> a. Inform the user via pretend output that this automatic conflict
> reduction
>    has been performed
> 
> b. Define a portage option that disables automatic conflict
> resolution for
>    required USE, so users who hate (a) can turn it off.
> 
> 
> But as it stands, Mart's suggestion of "Hey, just don't use required
> use,
> decide for the user" stands essentially as a regression against
> portage itself.


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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2017-01-27 11:16       ` Mart Raudsepp
@ 2017-01-27 11:41         ` Mart Raudsepp
  0 siblings, 0 replies; 22+ messages in thread
From: Mart Raudsepp @ 2017-01-27 11:41 UTC (permalink / raw)
  To: gentoo-dev

Ühel kenal päeval, R, 27.01.2017 kell 13:16, kirjutas Mart Raudsepp:
> If anything, I think this is a suggestion that *maybe* we should a
> > way to
> > specify a mechanism for allowing a default to be chosen from a
> > mutually
> > exclusive set, and then:
> 
> Sure, I have some thoughts for this and a rough draft, at least in my
> head :)
> I don't have it as a priority to sketch it out well alone, but if
> someone is honestly interested, I could braindump my ideas in
> realtime
> medium. Or someone thinks of them themselves :)

I wrote a bit about it in my USE_EXPAND=gui proposal.
https://archives.gentoo.org/gentoo-dev/message/cc39dfafcb33ac0d345c26c0
475723b8

That's the copy of my piratepad draft on the subject. In the end
there's a section on it under future ideas.

The initial thread start was
https://archives.gentoo.org/gentoo-dev/message/a2de58fcbf9f214362cd5fdb5f67e6b2
These were the only 2 e-mails in that thread, everyone was busy
bikeshedding my USE=gui proposal at
https://archives.gentoo.org/gentoo-dev/message/eecad370248118c474a0d819fa7f3576
with some of the multi-choice aspects coming up there.

Any future complaints by QA or otherwise about versioned gtk USE flags
and whatnot get pointed to these, to pick up and actually go forward
with this, not just complain. Anyhow, that's off-topic for the
REQUIRED_USE stuff here.


Mart


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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2017-01-27  8:32   ` Fabian Groffen
  2017-01-27 10:58     ` Kent Fredric
@ 2017-01-27 12:01     ` Dirkjan Ochtman
  2017-01-27 12:08       ` Kristian Fiskerstrand
  1 sibling, 1 reply; 22+ messages in thread
From: Dirkjan Ochtman @ 2017-01-27 12:01 UTC (permalink / raw)
  To: Gentoo Development

On Fri, Jan 27, 2017 at 4:33 AM, Mike Gilbert <floppym@gentoo.org> wrote:
> Looking through our profiles, I see we have both berkdb and gdbm
> enabled "globally".
>
> default/linux/make.defaults:USE="berkdb crypt ipv6 ncurses nls pam
> readline ssl tcpd zlib"
> releases/make.defaults:USE="acl gdbm nptl unicode"
>
> Is there any reason to have these USE flags enabled globally?

Good question... I already disable them, I think, as it doesn't really
make sense from my perspective to enable them globally. I think
letting packages set their own defaults with IUSE would probably be a
better solution.

On Fri, Jan 27, 2017 at 8:54 AM, Mart Raudsepp <leio@gentoo.org> wrote:
> Ühel kenal päeval, N, 26.01.2017 kell 22:33, kirjutas Mike Gilbert:
>> I recently ran into a REQUIRED_USE constraint that required I select
>> between berkdb and gdbm for an email client.
>
> There shouldn't be a REQUIRED_USE constraint that forces you to select
> one or the other. The maintainer should be giving the choice of both,
> but if only one can be chosen, the maintainer should make the choice
> for you by preferring one of them. Likely gdbm, given berkdb licensing
> saga.

I'm not sure this makes sense to me. If the package will actually
select one implementation out of a set, it makes sense to me that the
maintainer for that package makes that choice explicit towards the
user. In that case, setting REQUIRED_USE accordingly seems exactly
right. The maintainer should set a good default, but if the user's USE
settings are inconclusive in getting to the choice of implementation,
it's better to whine explicitly than try to guess implicitly what the
user wanted.

On Fri, Jan 27, 2017 at 9:32 AM, Fabian Groffen <grobian@gentoo.org> wrote:
> Replying here because I think said email client is the one I recently
> added REQUIRED_USE constraints for.
>
> Reason I added it is because it greatly simplified the ebuild: it's not
> just bdb and gdbm, but also tokyocabinet, qdbm and lmdb, with as result
> a lot of if-else-casing which implemented the implicit defaults before.
> I didn't realise changing this to REQUIRED_USE resulted in a conflict on
> default profiles, because I (obviously) have a package.use entry for the
> package.

I don't see Mike saying you got it wrong here. Reading your email, I
think you did the right thing.

Cheers,

Dirkjan


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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2017-01-27 12:01     ` Dirkjan Ochtman
@ 2017-01-27 12:08       ` Kristian Fiskerstrand
  2017-01-27 13:14         ` Fabian Groffen
  2017-01-27 16:27         ` Mart Raudsepp
  0 siblings, 2 replies; 22+ messages in thread
From: Kristian Fiskerstrand @ 2017-01-27 12:08 UTC (permalink / raw)
  To: gentoo-dev


[-- Attachment #1.1: Type: text/plain, Size: 2140 bytes --]

On 01/27/2017 01:01 PM, Dirkjan Ochtman wrote:
> On Fri, Jan 27, 2017 at 8:54 AM, Mart Raudsepp <leio@gentoo.org> wrote:
>> Ühel kenal päeval, N, 26.01.2017 kell 22:33, kirjutas Mike Gilbert:
>>> I recently ran into a REQUIRED_USE constraint that required I select
>>> between berkdb and gdbm for an email client.
>> There shouldn't be a REQUIRED_USE constraint that forces you to select
>> one or the other. The maintainer should be giving the choice of both,
>> but if only one can be chosen, the maintainer should make the choice
>> for you by preferring one of them. Likely gdbm, given berkdb licensing
>> saga.
> I'm not sure this makes sense to me. If the package will actually
> select one implementation out of a set, it makes sense to me that the
> maintainer for that package makes that choice explicit towards the
> user. In that case, setting REQUIRED_USE accordingly seems exactly
> right. The maintainer should set a good default, but if the user's USE
> settings are inconclusive in getting to the choice of implementation,
> it's better to whine explicitly than try to guess implicitly what the
> user wanted.

I tend to agree with this sentiment, explicit over implicit behavior
ensures better debugging ability and security considerations.

> 
> On Fri, Jan 27, 2017 at 9:32 AM, Fabian Groffen <grobian@gentoo.org> wrote:
>> Replying here because I think said email client is the one I recently
>> added REQUIRED_USE constraints for.
>>
>> Reason I added it is because it greatly simplified the ebuild: it's not
>> just bdb and gdbm, but also tokyocabinet, qdbm and lmdb, with as result
>> a lot of if-else-casing which implemented the implicit defaults before.
>> I didn't realise changing this to REQUIRED_USE resulted in a conflict on
>> default profiles, because I (obviously) have a package.use entry for the
>> package.
> I don't see Mike saying you got it wrong here. Reading your email, I
> think you did the right thing.

Yup

-- 
Kristian Fiskerstrand
OpenPGP keyblock reachable at hkp://pool.sks-keyservers.net
fpr:94CB AFDD 3034 5109 5618 35AA 0B7F 8B60 E3ED FAE3


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2017-01-27 12:08       ` Kristian Fiskerstrand
@ 2017-01-27 13:14         ` Fabian Groffen
  2017-01-27 16:27         ` Mart Raudsepp
  1 sibling, 0 replies; 22+ messages in thread
From: Fabian Groffen @ 2017-01-27 13:14 UTC (permalink / raw)
  To: gentoo-dev

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

On 27-01-2017 13:08:41 +0100, Kristian Fiskerstrand wrote:
> > On Fri, Jan 27, 2017 at 9:32 AM, Fabian Groffen <grobian@gentoo.org> wrote:
> >> Replying here because I think said email client is the one I recently
> >> added REQUIRED_USE constraints for.
> >>
> >> Reason I added it is because it greatly simplified the ebuild: it's not
> >> just bdb and gdbm, but also tokyocabinet, qdbm and lmdb, with as result
> >> a lot of if-else-casing which implemented the implicit defaults before.
> >> I didn't realise changing this to REQUIRED_USE resulted in a conflict on
> >> default profiles, because I (obviously) have a package.use entry for the
> >> package.
> > I don't see Mike saying you got it wrong here. Reading your email, I
> > think you did the right thing.
> 
> Yup

That blurb was more directed at Mart ;)  I think I just explained why I
did what I did.  The scenario in older ebuilds (without REQUIRED_USE)
was basically the scenario that Mart suggested to be perferable over the
new REQUIRED_USE scenario.

I'm not looking for wrong/right.  I'm looking for concensus on this
topic, then I will likely change the ebuild to match concensus.

Fabian


-- 
Fabian Groffen
Gentoo on a different level

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2017-01-27  7:54 ` Mart Raudsepp
  2017-01-27  8:32   ` Fabian Groffen
@ 2017-01-27 16:22   ` Mike Gilbert
  2017-01-27 16:56     ` Mart Raudsepp
  2017-01-27 18:40     ` Matt Turner
  1 sibling, 2 replies; 22+ messages in thread
From: Mike Gilbert @ 2017-01-27 16:22 UTC (permalink / raw)
  To: Gentoo Dev

On Fri, Jan 27, 2017 at 2:54 AM, Mart Raudsepp <leio@gentoo.org> wrote:
> Then there is no need to think about what is enabled globally or not.
> Point being, use REQUIRED_USE sparingly, and rarely a good idea to
> block things with common global USE flags, or demand a local USE flag
> based on a default enabled global USE flag without locally USE
> defaulting that global flag too - and other such cases.

I didn't really mean for this to turn into a thread about the merits
of REQUIRED_USE; in hindsight I should have left out that first
sentence.

Regardless of the REQUIRED_USE discussion, I don't think it makes
sense to have berkdb and gdbm in USE in make.defaults. I would like to
move them to IUSE defaults or package.use if necessary.


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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2017-01-27 12:08       ` Kristian Fiskerstrand
  2017-01-27 13:14         ` Fabian Groffen
@ 2017-01-27 16:27         ` Mart Raudsepp
  2017-01-27 16:46           ` William Hubbs
  1 sibling, 1 reply; 22+ messages in thread
From: Mart Raudsepp @ 2017-01-27 16:27 UTC (permalink / raw)
  To: gentoo-dev

Ühel kenal päeval, R, 27.01.2017 kell 13:08, kirjutas Kristian
Fiskerstrand:
> On 01/27/2017 01:01 PM, Dirkjan Ochtman wrote:
> > On Fri, Jan 27, 2017 at 8:54 AM, Mart Raudsepp <leio@gentoo.org>
> > wrote:
> > > Ühel kenal päeval, N, 26.01.2017 kell 22:33, kirjutas Mike
> > > Gilbert:
> > > > I recently ran into a REQUIRED_USE constraint that required I
> > > > select
> > > > between berkdb and gdbm for an email client.
> > > 
> > > There shouldn't be a REQUIRED_USE constraint that forces you to
> > > select
> > > one or the other. The maintainer should be giving the choice of
> > > both,
> > > but if only one can be chosen, the maintainer should make the
> > > choice
> > > for you by preferring one of them. Likely gdbm, given berkdb
> > > licensing
> > > saga.
> > 
> > I'm not sure this makes sense to me. If the package will actually
> > select one implementation out of a set, it makes sense to me that
> > the
> > maintainer for that package makes that choice explicit towards the
> > user. In that case, setting REQUIRED_USE accordingly seems exactly
> > right. The maintainer should set a good default, but if the user's
> > USE
> > settings are inconclusive in getting to the choice of
> > implementation,
> > it's better to whine explicitly than try to guess implicitly what
> > the
> > user wanted.
> 
> I tend to agree with this sentiment, explicit over implicit behavior
> ensures better debugging ability and security considerations.
> 

It breaks the highly sought after "Gentoo is about choice" mantra.
In this case, choice to not care and have the best chosen for me.



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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2017-01-27 16:27         ` Mart Raudsepp
@ 2017-01-27 16:46           ` William Hubbs
  2017-01-27 16:51             ` Kristian Fiskerstrand
  0 siblings, 1 reply; 22+ messages in thread
From: William Hubbs @ 2017-01-27 16:46 UTC (permalink / raw)
  To: gentoo-dev

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

On Fri, Jan 27, 2017 at 06:27:09PM +0200, Mart Raudsepp wrote:
> Ühel kenal päeval, R, 27.01.2017 kell 13:08, kirjutas Kristian
> Fiskerstrand:
> > On 01/27/2017 01:01 PM, Dirkjan Ochtman wrote:
> > > On Fri, Jan 27, 2017 at 8:54 AM, Mart Raudsepp <leio@gentoo.org>
> > > wrote:
> > > > Ühel kenal päeval, N, 26.01.2017 kell 22:33, kirjutas Mike
> > > > Gilbert:
> > > > > I recently ran into a REQUIRED_USE constraint that required I
> > > > > select
> > > > > between berkdb and gdbm for an email client.
> > > > 
> > > > There shouldn't be a REQUIRED_USE constraint that forces you to
> > > > select
> > > > one or the other. The maintainer should be giving the choice of
> > > > both,
> > > > but if only one can be chosen, the maintainer should make the
> > > > choice
> > > > for you by preferring one of them. Likely gdbm, given berkdb
> > > > licensing
> > > > saga.
> > > 
> > > I'm not sure this makes sense to me. If the package will actually
> > > select one implementation out of a set, it makes sense to me that
> > > the
> > > maintainer for that package makes that choice explicit towards the
> > > user. In that case, setting REQUIRED_USE accordingly seems exactly
> > > right. The maintainer should set a good default, but if the user's
> > > USE
> > > settings are inconclusive in getting to the choice of
> > > implementation,
> > > it's better to whine explicitly than try to guess implicitly what
> > > the
> > > user wanted.
> > 
> > I tend to agree with this sentiment, explicit over implicit behavior
> > ensures better debugging ability and security considerations.

I agree, I prefer explicit strongly over implicit.

> It breaks the highly sought after "Gentoo is about choice" mantra.
> In this case, choice to not care and have the best chosen for me.

Actually it doesn't. In this case the user should make a choice rather
than the maintainer silently making a choice behind their back.

William

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 163 bytes --]

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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2017-01-27 16:46           ` William Hubbs
@ 2017-01-27 16:51             ` Kristian Fiskerstrand
  0 siblings, 0 replies; 22+ messages in thread
From: Kristian Fiskerstrand @ 2017-01-27 16:51 UTC (permalink / raw)
  To: gentoo-dev


[-- Attachment #1.1: Type: text/plain, Size: 682 bytes --]

On 01/27/2017 05:46 PM, William Hubbs wrote:
>> It breaks the highly sought after "Gentoo is about choice" mantra.
>> In this case, choice to not care and have the best chosen for me.
> Actually it doesn't. In this case the user should make a choice rather
> than the maintainer silently making a choice behind their back.

There is an argument to be made for sane defaults in profiles as well as
default IUSE specification in this though to provide a better user
experience, but the underlying mechanism should be explicit.

-- 
Kristian Fiskerstrand
OpenPGP keyblock reachable at hkp://pool.sks-keyservers.net
fpr:94CB AFDD 3034 5109 5618 35AA 0B7F 8B60 E3ED FAE3


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2017-01-27  3:33 [gentoo-dev] berkdb and gdbm in global USE defaults Mike Gilbert
  2017-01-27  7:54 ` Mart Raudsepp
@ 2017-01-27 16:56 ` Michael Orlitzky
  2018-04-07 18:44 ` William Hubbs
  2 siblings, 0 replies; 22+ messages in thread
From: Michael Orlitzky @ 2017-01-27 16:56 UTC (permalink / raw)
  To: gentoo-dev

On 01/26/2017 10:33 PM, Mike Gilbert wrote:
> 
> Is there any reason to have these USE flags enabled globally?

They are quite uncritical.


> These USE seem pretty package-specific in scope. On my system, they
> are used by around a dozen of 1000+ installed packages. I think it
> might make sense to migrate them to appropriate IUSE defaults, or
> leave them disabled where they do not provide critical functionality.
> 

+1



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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2017-01-27 16:22   ` Mike Gilbert
@ 2017-01-27 16:56     ` Mart Raudsepp
  2017-01-27 18:40     ` Matt Turner
  1 sibling, 0 replies; 22+ messages in thread
From: Mart Raudsepp @ 2017-01-27 16:56 UTC (permalink / raw)
  To: gentoo-dev

Ühel kenal päeval, R, 27.01.2017 kell 11:22, kirjutas Mike Gilbert:
> On Fri, Jan 27, 2017 at 2:54 AM, Mart Raudsepp <leio@gentoo.org>
> wrote:
> > Then there is no need to think about what is enabled globally or
> > not.
> > Point being, use REQUIRED_USE sparingly, and rarely a good idea to
> > block things with common global USE flags, or demand a local USE
> > flag
> > based on a default enabled global USE flag without locally USE
> > defaulting that global flag too - and other such cases.
> 
> I didn't really mean for this to turn into a thread about the merits
> of REQUIRED_USE; in hindsight I should have left out that first
> sentence.
> 
> Regardless of the REQUIRED_USE discussion, I don't think it makes
> sense to have berkdb and gdbm in USE in make.defaults. I would like
> to
> move them to IUSE defaults or package.use if necessary.

That sounds great to me when done with proper care as an interim
solution.
If they aren't both global enabled, the concerns about REQUIRED_USE
here are lessened.


Mart


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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2017-01-27 16:22   ` Mike Gilbert
  2017-01-27 16:56     ` Mart Raudsepp
@ 2017-01-27 18:40     ` Matt Turner
  2017-01-28  7:12       ` [gentoo-dev] " Duncan
  1 sibling, 1 reply; 22+ messages in thread
From: Matt Turner @ 2017-01-27 18:40 UTC (permalink / raw)
  To: gentoo development

On Fri, Jan 27, 2017 at 8:22 AM, Mike Gilbert <floppym@gentoo.org> wrote:
> On Fri, Jan 27, 2017 at 2:54 AM, Mart Raudsepp <leio@gentoo.org> wrote:
>> Then there is no need to think about what is enabled globally or not.
>> Point being, use REQUIRED_USE sparingly, and rarely a good idea to
>> block things with common global USE flags, or demand a local USE flag
>> based on a default enabled global USE flag without locally USE
>> defaulting that global flag too - and other such cases.
>
> I didn't really mean for this to turn into a thread about the merits
> of REQUIRED_USE; in hindsight I should have left out that first
> sentence.
>
> Regardless of the REQUIRED_USE discussion, I don't think it makes
> sense to have berkdb and gdbm in USE in make.defaults. I would like to
> move them to IUSE defaults or package.use if necessary.

I think you should feel free to proceed with such a change.

FWIW, disabling these USE flags (and fortran) are among the first
changes I made to a new make.conf.


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

* [gentoo-dev] Re: berkdb and gdbm in global USE defaults
  2017-01-27 18:40     ` Matt Turner
@ 2017-01-28  7:12       ` Duncan
  0 siblings, 0 replies; 22+ messages in thread
From: Duncan @ 2017-01-28  7:12 UTC (permalink / raw)
  To: gentoo-dev

Matt Turner posted on Fri, 27 Jan 2017 10:40:16 -0800 as excerpted:

> On Fri, Jan 27, 2017 at 8:22 AM, Mike Gilbert <floppym@gentoo.org>
> wrote:
>> On Fri, Jan 27, 2017 at 2:54 AM, Mart Raudsepp <leio@gentoo.org> wrote:
>>> Then there is no need to think about what is enabled globally or not.
>>> Point being, use REQUIRED_USE sparingly, and rarely a good idea to
>>> block things with common global USE flags, or demand a local USE flag
>>> based on a default enabled global USE flag without locally USE
>>> defaulting that global flag too - and other such cases.
>>
>> I didn't really mean for this to turn into a thread about the merits of
>> REQUIRED_USE; in hindsight I should have left out that first sentence.
>>
>> Regardless of the REQUIRED_USE discussion, I don't think it makes sense
>> to have berkdb and gdbm in USE in make.defaults. I would like to move
>> them to IUSE defaults or package.use if necessary.
> 
> I think you should feel free to proceed with such a change.
> 
> FWIW, disabling these USE flags (and fortran) are among the first
> changes I made to a new make.conf.

TL;DR: see last sentence/paragraph.

FWIW, changes like that, either at profile upgrade time (with over a 
decade on gentoo on the same system, both hardware and software 
incrementally updated over time, I've done a few of those in my time) or 
worse made arbitrarily to existing profiles, are a big reason I 
ultimately decided USE="-* ..." worked best for me.  Because if I depend 
on the profile to make the decision for me, eventually that decision is 
going to change, and I'll have to dig into what and why and decide what I 
want to do in any case, so it's better to simply deal with all that up 
front, and USE="-* ..." is the way that's done on gentoo.

That way, global changes to my USE flags are only made when I make them, 
and I'll generally know at least the high-level why (say an update from 
qt4/kde4 to qt5/plasma5, with requisite USE flag changes) in that case, 
instead of having to deduce someone else's reason from the git log.  (I 
may still need to research the lower level why qt5/plasma5 require the 
new flags and decide whether I can/want/need to override, via manual 
semantic-desktop patchout or the like, potentially, but that's an 
entirely different focus that unlike global profile default-use changes 
the normal user won't need to deal with.)

Not saying I disagree with the change, but please at least make it a new 
profile only change if at all possible, so as not to disturb existing 
users until they decide to switch profiles, at which point they should be 
expecting at least some level of system adjustment to the new profile.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman



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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2017-01-27  3:33 [gentoo-dev] berkdb and gdbm in global USE defaults Mike Gilbert
  2017-01-27  7:54 ` Mart Raudsepp
  2017-01-27 16:56 ` [gentoo-dev] " Michael Orlitzky
@ 2018-04-07 18:44 ` William Hubbs
  2018-04-07 18:55   ` Michael Orlitzky
  2 siblings, 1 reply; 22+ messages in thread
From: William Hubbs @ 2018-04-07 18:44 UTC (permalink / raw)
  To: gentoo-dev

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

On Thu, Jan 26, 2017 at 10:33:14PM -0500, Mike Gilbert wrote:
> I recently ran into a REQUIRED_USE constraint that required I select
> between berkdb and gdbm for an email client.
 
This has now hit stable and is affecting me because I can't upgrade the
email client without putting something in package.use.

> Looking through our profiles, I see we have both berkdb and gdbm
> enabled "globally".
> 
> default/linux/make.defaults:USE="berkdb crypt ipv6 ncurses nls pam
> readline ssl tcpd zlib"
> releases/make.defaults:USE="acl gdbm nptl unicode"
> 
> Is there any reason to have these USE flags enabled globally?
> 
> These USE seem pretty package-specific in scope. On my system, they
> are used by around a dozen of 1000+ installed packages. I think it
> might make sense to migrate them to appropriate IUSE defaults, or
> leave them disabled where they do not provide critical functionality.

I'm with floppym on this one. Is there a specific reason we enable them
globally?

Since there has been so little discussion on this thread, I will start
looking at what I need to do to remove these use flags from the
profiles.

Thanks,

William

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2018-04-07 18:44 ` William Hubbs
@ 2018-04-07 18:55   ` Michael Orlitzky
  2018-04-07 19:16     ` William Hubbs
  0 siblings, 1 reply; 22+ messages in thread
From: Michael Orlitzky @ 2018-04-07 18:55 UTC (permalink / raw)
  To: gentoo-dev

On 04/07/2018 02:44 PM, William Hubbs wrote:
> 
> I'm with floppym on this one. Is there a specific reason we enable them
> globally?

It's a relic from before we had IUSE defaults.


> Since there has been so little discussion on this thread, I will start
> looking at what I need to do to remove these use flags from the
> profiles.

There's probably a few packages that will need IUSE defaults to avoid
breakage, and everyone else should get fair warning before the flags are
turned off by default.

But this is a noble goal; thanks.


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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2018-04-07 18:55   ` Michael Orlitzky
@ 2018-04-07 19:16     ` William Hubbs
  2018-04-07 19:57       ` Lars Wendler
  0 siblings, 1 reply; 22+ messages in thread
From: William Hubbs @ 2018-04-07 19:16 UTC (permalink / raw)
  To: gentoo-dev

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

On Sat, Apr 07, 2018 at 02:55:53PM -0400, Michael Orlitzky wrote:
> On 04/07/2018 02:44 PM, William Hubbs wrote:
> > 
> > I'm with floppym on this one. Is there a specific reason we enable them
> > globally?
> 
> It's a relic from before we had IUSE defaults.
> 
> 
> > Since there has been so little discussion on this thread, I will start
> > looking at what I need to do to remove these use flags from the
> > profiles.
> 
> There's probably a few packages that will need IUSE defaults to avoid
> breakage, and everyone else should get fair warning before the flags are
> turned off by default.

There is the case of packages that optionally use a db back end,
and I would argue that those may not need iuse defaults.

It could also be argued that having one backend enabled globally is good
for consistency, but that would end up leading down a bikeshed path that
I'm not sure we should go down. I'm just not sure it makes sense to
enable more than one of these backends globally.

Thoughts?

William


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2018-04-07 19:16     ` William Hubbs
@ 2018-04-07 19:57       ` Lars Wendler
  2018-04-07 20:41         ` Matt Turner
  0 siblings, 1 reply; 22+ messages in thread
From: Lars Wendler @ 2018-04-07 19:57 UTC (permalink / raw)
  To: gentoo-dev

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

On Sat, 7 Apr 2018 14:16:33 -0500 William Hubbs wrote:

>On Sat, Apr 07, 2018 at 02:55:53PM -0400, Michael Orlitzky wrote:
>> On 04/07/2018 02:44 PM, William Hubbs wrote:  
>> > 
>> > I'm with floppym on this one. Is there a specific reason we enable
>> > them globally?  
>> 
>> It's a relic from before we had IUSE defaults.
>> 
>>   
>> > Since there has been so little discussion on this thread, I will
>> > start looking at what I need to do to remove these use flags from
>> > the profiles.  
>> 
>> There's probably a few packages that will need IUSE defaults to avoid
>> breakage, and everyone else should get fair warning before the flags
>> are turned off by default.  
>
>There is the case of packages that optionally use a db back end,
>and I would argue that those may not need iuse defaults.
>
>It could also be argued that having one backend enabled globally is
>good for consistency, but that would end up leading down a bikeshed
>path that I'm not sure we should go down. I'm just not sure it makes
>sense to enable more than one of these backends globally.
>
>Thoughts?
>
>William
>

Considering the questionable license situation with latest sys-libs/db
releases (AGPL), I'd say we should prefer gdbm over berkdb in case we
want to keep one db backend default enabled.
IIRC Fedora is even trying to entirely getting rid of berkdb.

Lars

-- 
Lars Wendler
Gentoo package maintainer
GPG: 21CC CF02 4586 0A07 ED93  9F68 498F E765 960E 9B39

[-- Attachment #2: Digitale Signatur von OpenPGP --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [gentoo-dev] berkdb and gdbm in global USE defaults
  2018-04-07 19:57       ` Lars Wendler
@ 2018-04-07 20:41         ` Matt Turner
  0 siblings, 0 replies; 22+ messages in thread
From: Matt Turner @ 2018-04-07 20:41 UTC (permalink / raw)
  To: gentoo development

On Sat, Apr 7, 2018 at 12:57 PM, Lars Wendler <polynomial-c@gentoo.org> wrote:
> On Sat, 7 Apr 2018 14:16:33 -0500 William Hubbs wrote:
>
>>On Sat, Apr 07, 2018 at 02:55:53PM -0400, Michael Orlitzky wrote:
>>> On 04/07/2018 02:44 PM, William Hubbs wrote:
>>> >
>>> > I'm with floppym on this one. Is there a specific reason we enable
>>> > them globally?
>>>
>>> It's a relic from before we had IUSE defaults.
>>>
>>>
>>> > Since there has been so little discussion on this thread, I will
>>> > start looking at what I need to do to remove these use flags from
>>> > the profiles.
>>>
>>> There's probably a few packages that will need IUSE defaults to avoid
>>> breakage, and everyone else should get fair warning before the flags
>>> are turned off by default.
>>
>>There is the case of packages that optionally use a db back end,
>>and I would argue that those may not need iuse defaults.
>>
>>It could also be argued that having one backend enabled globally is
>>good for consistency, but that would end up leading down a bikeshed
>>path that I'm not sure we should go down. I'm just not sure it makes
>>sense to enable more than one of these backends globally.
>>
>>Thoughts?
>>
>>William
>>
>
> Considering the questionable license situation with latest sys-libs/db
> releases (AGPL), I'd say we should prefer gdbm over berkdb in case we
> want to keep one db backend default enabled.
> IIRC Fedora is even trying to entirely getting rid of berkdb.

Interesting. I wasn't aware of that. Here's a link with more information:

https://bugzilla.redhat.com/show_bug.cgi?id=1361971


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

end of thread, other threads:[~2018-04-07 20:42 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-27  3:33 [gentoo-dev] berkdb and gdbm in global USE defaults Mike Gilbert
2017-01-27  7:54 ` Mart Raudsepp
2017-01-27  8:32   ` Fabian Groffen
2017-01-27 10:58     ` Kent Fredric
2017-01-27 11:16       ` Mart Raudsepp
2017-01-27 11:41         ` Mart Raudsepp
2017-01-27 12:01     ` Dirkjan Ochtman
2017-01-27 12:08       ` Kristian Fiskerstrand
2017-01-27 13:14         ` Fabian Groffen
2017-01-27 16:27         ` Mart Raudsepp
2017-01-27 16:46           ` William Hubbs
2017-01-27 16:51             ` Kristian Fiskerstrand
2017-01-27 16:22   ` Mike Gilbert
2017-01-27 16:56     ` Mart Raudsepp
2017-01-27 18:40     ` Matt Turner
2017-01-28  7:12       ` [gentoo-dev] " Duncan
2017-01-27 16:56 ` [gentoo-dev] " Michael Orlitzky
2018-04-07 18:44 ` William Hubbs
2018-04-07 18:55   ` Michael Orlitzky
2018-04-07 19:16     ` William Hubbs
2018-04-07 19:57       ` Lars Wendler
2018-04-07 20:41         ` Matt Turner

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