public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps
@ 2015-04-11 12:28 Michał Górny
  2015-04-11 13:33 ` Kent Fredric
                   ` (2 more replies)
  0 siblings, 3 replies; 18+ messages in thread
From: Michał Górny @ 2015-04-11 12:28 UTC (permalink / raw
  To: gentoo-dev

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

Hello,

I know of two cases of circular deps that can be solved -- as far as I
know -- only by bundling:

1. dev-util/pkgconfig <-> dev-libs/glib:2,

2. dev-util/cmake <-> dev-libs/jsoncpp.

The former is solved via having USE=internal-glib on pkgconfig,
the latter is yet unsolved [1].

I suspect we can expect more of this kind of issues in non-systemd
world over time, and I feel like it'd be good to develop a generic
policy for handling them. Something that could avoid having users go
through this on a case-by-case basis.

I think the simplest solution would be to develop a generic USE flag
that would only serve the purpose of forcing bundled dependencies for
bootstrapping/initial install.

We have already:

build - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for
creating build images and the first half of bootstrapping [make stage1]

bootstrap - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used
during original system bootstrapping [make stage2]

However, since both are marked for 'internal use only', I don't think
it's a good idea to use them here. So I guess we need a new flag. Does
anyone have suggestions how to name it?

Any other ideas?

[1]:https://bugs.gentoo.org/show_bug.cgi?id=546130

-- 
Best regards,
Michał Górny

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

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

* Re: [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps
  2015-04-11 12:28 [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps Michał Górny
@ 2015-04-11 13:33 ` Kent Fredric
  2015-04-11 14:00 ` Pacho Ramos
  2015-04-11 14:19 ` Ciaran McCreesh
  2 siblings, 0 replies; 18+ messages in thread
From: Kent Fredric @ 2015-04-11 13:33 UTC (permalink / raw
  To: gentoo-dev

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

On 00:29, Sun, 12/04/2015 Michał Górny <mgorny@gentoo.org> wrote:



I think the simplest solution would be to develop a generic USE flag
that would only serve the purpose of forcing bundled dependencies for
bootstrapping/initial install.

We have already:

build - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for
creating build images and the first half of bootstrapping [make stage1]

bootstrap - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used
during original system bootstrapping [make stage2]

However, since both are marked for 'internal use only', I don't think
it's a good idea to use them here. So I guess we need a new flag. Does
anyone have suggestions how to name it?



 For a name, I doubt you'd find a name better than "independent". With USE
description of "avoid dependencies known to cause circular dependency
issues on initial installations"

[-- Attachment #2: Type: text/html, Size: 1281 bytes --]

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

* Re: [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps
  2015-04-11 12:28 [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps Michał Górny
  2015-04-11 13:33 ` Kent Fredric
@ 2015-04-11 14:00 ` Pacho Ramos
  2015-04-11 14:11   ` Michał Górny
  2015-04-11 14:23   ` James Le Cuirot
  2015-04-11 14:19 ` Ciaran McCreesh
  2 siblings, 2 replies; 18+ messages in thread
From: Pacho Ramos @ 2015-04-11 14:00 UTC (permalink / raw
  To: gentoo-dev

El sáb, 11-04-2015 a las 14:28 +0200, Michał Górny escribió:
> Hello,
> 
> I know of two cases of circular deps that can be solved -- as far as I
> know -- only by bundling:
> 
> 1. dev-util/pkgconfig <-> dev-libs/glib:2,
> 
> 2. dev-util/cmake <-> dev-libs/jsoncpp.
> 
> The former is solved via having USE=internal-glib on pkgconfig,
> the latter is yet unsolved [1].
> 
> I suspect we can expect more of this kind of issues in non-systemd
> world over time, and I feel like it'd be good to develop a generic
> policy for handling them. Something that could avoid having users go
> through this on a case-by-case basis.
> 
> I think the simplest solution would be to develop a generic USE flag
> that would only serve the purpose of forcing bundled dependencies for
> bootstrapping/initial install.
> 
> We have already:
> 
> build - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for
> creating build images and the first half of bootstrapping [make stage1]
> 
> bootstrap - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used
> during original system bootstrapping [make stage2]
> 
> However, since both are marked for 'internal use only', I don't think
> it's a good idea to use them here. So I guess we need a new flag. Does
> anyone have suggestions how to name it?
> 
> Any other ideas?
> 
> [1]:https://bugs.gentoo.org/show_bug.cgi?id=546130
> 

As that USE flag should only be used for being able to install the
package the first time, maybe it should be treated in a "special" way. I
mean, it shouldn't be easily changed by users but, instead, switched
"internally" by the package manager to allow to unbreak the cycle. 

Otherwise, we could end up with people having packages built with
"bundled" libs forever because they enabled that USE at some point and
later they forgot (or were too lazy) to revert that :|



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

* Re: [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps
  2015-04-11 14:00 ` Pacho Ramos
@ 2015-04-11 14:11   ` Michał Górny
  2015-04-11 14:23   ` James Le Cuirot
  1 sibling, 0 replies; 18+ messages in thread
From: Michał Górny @ 2015-04-11 14:11 UTC (permalink / raw
  To: Pacho Ramos; +Cc: gentoo-dev

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

Dnia 2015-04-11, o godz. 16:00:36
Pacho Ramos <pacho@gentoo.org> napisał(a):

> El sáb, 11-04-2015 a las 14:28 +0200, Michał Górny escribió:
> > Hello,
> > 
> > I know of two cases of circular deps that can be solved -- as far as I
> > know -- only by bundling:
> > 
> > 1. dev-util/pkgconfig <-> dev-libs/glib:2,
> > 
> > 2. dev-util/cmake <-> dev-libs/jsoncpp.
> > 
> > The former is solved via having USE=internal-glib on pkgconfig,
> > the latter is yet unsolved [1].
> > 
> > I suspect we can expect more of this kind of issues in non-systemd
> > world over time, and I feel like it'd be good to develop a generic
> > policy for handling them. Something that could avoid having users go
> > through this on a case-by-case basis.
> > 
> > I think the simplest solution would be to develop a generic USE flag
> > that would only serve the purpose of forcing bundled dependencies for
> > bootstrapping/initial install.
> > 
> > We have already:
> > 
> > build - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for
> > creating build images and the first half of bootstrapping [make stage1]
> > 
> > bootstrap - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used
> > during original system bootstrapping [make stage2]
> > 
> > However, since both are marked for 'internal use only', I don't think
> > it's a good idea to use them here. So I guess we need a new flag. Does
> > anyone have suggestions how to name it?
> > 
> > Any other ideas?
> > 
> > [1]:https://bugs.gentoo.org/show_bug.cgi?id=546130
> > 
> 
> As that USE flag should only be used for being able to install the
> package the first time, maybe it should be treated in a "special" way. I
> mean, it shouldn't be easily changed by users but, instead, switched
> "internally" by the package manager to allow to unbreak the cycle. 
> 
> Otherwise, we could end up with people having packages built with
> "bundled" libs forever because they enabled that USE at some point and
> later they forgot (or were too lazy) to revert that :|

Yes, that's why I suggest a generic flag rather than another
USE=internal-*.

-- 
Best regards,
Michał Górny

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

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

* Re: [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps
  2015-04-11 12:28 [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps Michał Górny
  2015-04-11 13:33 ` Kent Fredric
  2015-04-11 14:00 ` Pacho Ramos
@ 2015-04-11 14:19 ` Ciaran McCreesh
  2015-04-11 14:37   ` Andreas K. Huettel
  2 siblings, 1 reply; 18+ messages in thread
From: Ciaran McCreesh @ 2015-04-11 14:19 UTC (permalink / raw
  To: gentoo-dev

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

On Sat, 11 Apr 2015 14:28:31 +0200
Michał Górny <mgorny@gentoo.org> wrote:
> I think the simplest solution would be to develop a generic USE flag
> that would only serve the purpose of forcing bundled dependencies for
> bootstrapping/initial install.

Algorithm?

> We have already:
> 
> build - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for
> creating build images and the first half of bootstrapping [make
> stage1]
> 
> bootstrap - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used
> during original system bootstrapping [make stage2]
> 
> However, since both are marked for 'internal use only', I don't think
> it's a good idea to use them here. So I guess we need a new flag. Does
> anyone have suggestions how to name it?

Incidentally, if those were all migrated to USE_EXPAND_HIDDEN, the dire
warnings wouldn't need to be so visible...

-- 
Ciaran McCreesh

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

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

* Re: [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps
  2015-04-11 14:00 ` Pacho Ramos
  2015-04-11 14:11   ` Michał Górny
@ 2015-04-11 14:23   ` James Le Cuirot
  2015-04-11 16:05     ` Peter Stuge
  2015-04-11 17:14     ` Michał Górny
  1 sibling, 2 replies; 18+ messages in thread
From: James Le Cuirot @ 2015-04-11 14:23 UTC (permalink / raw
  To: gentoo-dev

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

On Sat, 11 Apr 2015 16:00:36 +0200
Pacho Ramos <pacho@gentoo.org> wrote:

> As that USE flag should only be used for being able to install the
> package the first time, maybe it should be treated in a "special"
> way. I mean, it shouldn't be easily changed by users but, instead,
> switched "internally" by the package manager to allow to unbreak the
> cycle. 

If it only needs to be applied the first time, should there even be a
flag at all? Maybe it could be more transparent than that?

-- 
James Le Cuirot (chewi)
Gentoo Linux Developer

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

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

* Re: [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps
  2015-04-11 14:19 ` Ciaran McCreesh
@ 2015-04-11 14:37   ` Andreas K. Huettel
  2015-04-11 15:09     ` Kent Fredric
  2015-04-11 16:50     ` [gentoo-dev] " Jorge Manuel B. S. Vicetto
  0 siblings, 2 replies; 18+ messages in thread
From: Andreas K. Huettel @ 2015-04-11 14:37 UTC (permalink / raw
  To: gentoo-dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Am Samstag, 11. April 2015, 16:19:23 schrieb Ciaran McCreesh:

> > build - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for
> > creating build images and the first half of bootstrapping [make
> > stage1]
> > 
> > bootstrap - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used
> > during original system bootstrapping [make stage2]
> > 
> > However, since both are marked for 'internal use only', I don't think
> > it's a good idea to use them here. So I guess we need a new flag. Does
> > anyone have suggestions how to name it?
> 
> Incidentally, if those were all migrated to USE_EXPAND_HIDDEN, the dire
> warnings wouldn't need to be so visible...

Now if only anyone would remember what these were intended for?

Maybe we're just trying to re-invent the wheel...

- -- 
Andreas K. Huettel
Gentoo Linux developer (council, perl, libreoffice)
dilfridge@gentoo.org
http://www.akhuettel.de/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCgAGBQJVKTGkAAoJEB9VdM6hupKVONgP/jyWR+iF7rGOFFJxaEwXcaH9
ax/wuipfGehq57iBwLsDagOXqy3IMX5XXLN3he4Bh8YSf+cXgoGY2biojVF8rn3h
/Wl0unf4nkbxcPMWN5Upw/v9ZL/ecDPOZjG0btcGfcKtplyguqwxWRQsjflrSi70
D/wrPagHfmUE48eIi2uHErP/vJ6/Dx1vQrnJTFth+ek2zG1Q7MngEq5UpFY4fl8L
PaW052QHi3mHR8Be2i0u/9V3ywzETEw7s16fgLafGP0FYtBWR1DqepBUk788BAAD
s2HBRbDrZXHj8WwKvJGXimhBNbDk6Cx6W0Rjs2mKhovr/7AdsWHBHcehPCW4SYUU
edwz/f18jCaOt80LjMd+7h3EUddN3QlazbpNPTsmr/Jc4DtyNK3hfwpaF6fNAhvN
+CApdVgQaTuTmbiB0Dr7TwDt6tlFz4e03pQOgwnvsJimChtQ9QYcLZG6kuFtC84c
fvgj63hOqSubPPwB4O8ra89d92TXtxF+JsbQ1AHBoJp9uKOzj43RQ1AsVOg8TCSA
5pk22LUHJWia6pQhAkKfMRlorJQyDNhJFCvsW9cqhCDTQSqA1QyIsEF8hAwO1owb
DDArktv/opBQQtx8hXixGevuNkxIldDAqe9424HQsFxoFrOPopmwpv13Y9eCO1tA
HYClKo52mtvmeGjC2y4L
=eRun
-----END PGP SIGNATURE-----


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

* Re: [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps
  2015-04-11 14:37   ` Andreas K. Huettel
@ 2015-04-11 15:09     ` Kent Fredric
  2015-04-13  6:36       ` [gentoo-dev] " Duncan
  2015-04-11 16:50     ` [gentoo-dev] " Jorge Manuel B. S. Vicetto
  1 sibling, 1 reply; 18+ messages in thread
From: Kent Fredric @ 2015-04-11 15:09 UTC (permalink / raw
  To: gentoo-dev

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

 On 02:36, Sun, 12/04/2015 Andreas K. Huettel <dilfridge@gentoo.org> wrote:


 > > build - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for
> > creating build images and the first half of bootstrapping [make
> > stage1]
> >
> > bootstrap - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used
> > during original system bootstrapping [make stage2]
> >
> > However, since both are marked for 'internal use only', I don't think
> > it's a good idea to use them here. So I guess we need a new flag. Does
> > anyone have suggestions how to name it?
>
> Incidentally, if those were all migrated to USE_EXPAND_HIDDEN, the dire
> warnings wouldn't need to be so visible...

Now if only anyone would remember what these were intended for?

Maybe we're just trying to re-invent the wheel...



 And it would be nice if the solution we use doesn't end up being like the
very warty USE=test flag.

We can make it a first class mechanism without having to tell users "don't
use this", so why not.

Of course, doing it right may require going through EAPI changes…

[-- Attachment #2: Type: text/html, Size: 1588 bytes --]

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

* Re: [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps
  2015-04-11 14:23   ` James Le Cuirot
@ 2015-04-11 16:05     ` Peter Stuge
  2015-04-11 17:14     ` Michał Górny
  1 sibling, 0 replies; 18+ messages in thread
From: Peter Stuge @ 2015-04-11 16:05 UTC (permalink / raw
  To: gentoo-dev

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

James Le Cuirot wrote:
> Pacho Ramos <pacho@gentoo.org> wrote:
> > As that USE flag should only be used for being able to install the
> > package the first time, maybe it should be treated in a "special"
> > way. I mean, it shouldn't be easily changed by users but, instead,
> > switched "internally" by the package manager to allow to unbreak the
> > cycle. 
> 
> If it only needs to be applied the first time, should there even be a
> flag at all? Maybe it could be more transparent than that?

Yes, I think that's the right approach.

This is a (complicated) matter between the package manager and
ebuilds, not between users and ebuilds.

Yes, a model is needed for ebuild->pkgmgr information transfer, but
that doesn't neccessarily have to be a USE flag. Maybe it's simplest
to make it a USE flag, then go for it, but maybe something else is
even simpler?


//Peter

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

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

* Re: [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps
  2015-04-11 14:37   ` Andreas K. Huettel
  2015-04-11 15:09     ` Kent Fredric
@ 2015-04-11 16:50     ` Jorge Manuel B. S. Vicetto
  2015-04-14  7:47       ` Michał Górny
  1 sibling, 1 reply; 18+ messages in thread
From: Jorge Manuel B. S. Vicetto @ 2015-04-11 16:50 UTC (permalink / raw
  To: gentoo-dev

On Sat, 11 Apr 2015, Andreas K. Huettel wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
>
> Am Samstag, 11. April 2015, 16:19:23 schrieb Ciaran McCreesh:
>
>>> build - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for
>>> creating build images and the first half of bootstrapping [make
>>> stage1]
>>>
>>> bootstrap - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used
>>> during original system bootstrapping [make stage2]
>>>
>>> However, since both are marked for 'internal use only', I don't think
>>> it's a good idea to use them here. So I guess we need a new flag. Does
>>> anyone have suggestions how to name it?
>>
>> Incidentally, if those were all migrated to USE_EXPAND_HIDDEN, the dire
>> warnings wouldn't need to be so visible...
>
> Now if only anyone would remember what these were intended for?

Both "build" and "bootstrap" are reserved for stage building. The former 
is used on stage1 and iirc, the latter is used by scripts/bootstrap.sh 
in the portage tree called during stage2.

> Maybe we're just trying to re-invent the wheel...

No, they are needed for stage building and for that *only*, so please find 
another solution so you don't end up "killing" stage building and forcing 
releng to "fix" it again.

> - --
> Andreas K. Huettel
> Gentoo Linux developer (council, perl, libreoffice)
> dilfridge@gentoo.org
> http://www.akhuettel.de/
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2
>
> iQIcBAEBCgAGBQJVKTGkAAoJEB9VdM6hupKVONgP/jyWR+iF7rGOFFJxaEwXcaH9
> ax/wuipfGehq57iBwLsDagOXqy3IMX5XXLN3he4Bh8YSf+cXgoGY2biojVF8rn3h
> /Wl0unf4nkbxcPMWN5Upw/v9ZL/ecDPOZjG0btcGfcKtplyguqwxWRQsjflrSi70
> D/wrPagHfmUE48eIi2uHErP/vJ6/Dx1vQrnJTFth+ek2zG1Q7MngEq5UpFY4fl8L
> PaW052QHi3mHR8Be2i0u/9V3ywzETEw7s16fgLafGP0FYtBWR1DqepBUk788BAAD
> s2HBRbDrZXHj8WwKvJGXimhBNbDk6Cx6W0Rjs2mKhovr/7AdsWHBHcehPCW4SYUU
> edwz/f18jCaOt80LjMd+7h3EUddN3QlazbpNPTsmr/Jc4DtyNK3hfwpaF6fNAhvN
> +CApdVgQaTuTmbiB0Dr7TwDt6tlFz4e03pQOgwnvsJimChtQ9QYcLZG6kuFtC84c
> fvgj63hOqSubPPwB4O8ra89d92TXtxF+JsbQ1AHBoJp9uKOzj43RQ1AsVOg8TCSA
> 5pk22LUHJWia6pQhAkKfMRlorJQyDNhJFCvsW9cqhCDTQSqA1QyIsEF8hAwO1owb
> DDArktv/opBQQtx8hXixGevuNkxIldDAqe9424HQsFxoFrOPopmwpv13Y9eCO1tA
> HYClKo52mtvmeGjC2y4L
> =eRun
> -----END PGP SIGNATURE-----
>
>


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

* Re: [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps
  2015-04-11 14:23   ` James Le Cuirot
  2015-04-11 16:05     ` Peter Stuge
@ 2015-04-11 17:14     ` Michał Górny
  2015-04-13 17:29       ` Ian Stakenvicius
  1 sibling, 1 reply; 18+ messages in thread
From: Michał Górny @ 2015-04-11 17:14 UTC (permalink / raw
  To: James Le Cuirot; +Cc: gentoo-dev

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

Dnia 2015-04-11, o godz. 15:23:52
James Le Cuirot <chewi@gentoo.org> napisał(a):

> On Sat, 11 Apr 2015 16:00:36 +0200
> Pacho Ramos <pacho@gentoo.org> wrote:
> 
> > As that USE flag should only be used for being able to install the
> > package the first time, maybe it should be treated in a "special"
> > way. I mean, it shouldn't be easily changed by users but, instead,
> > switched "internally" by the package manager to allow to unbreak the
> > cycle. 
> 
> If it only needs to be applied the first time, should there even be a
> flag at all? Maybe it could be more transparent than that?

You have to have the flag to conditionally apply dependencies. We don't
have a magic 'only-if-it-doesnt-cause-circulars' syntax :P.

-- 
Best regards,
Michał Górny

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

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

* [gentoo-dev] Re: Looking for a generic solution to non-USE-conditional circular deps
  2015-04-11 15:09     ` Kent Fredric
@ 2015-04-13  6:36       ` Duncan
  2015-04-13 16:49         ` Ciaran McCreesh
  2015-04-14  6:34         ` Michał Górny
  0 siblings, 2 replies; 18+ messages in thread
From: Duncan @ 2015-04-13  6:36 UTC (permalink / raw
  To: gentoo-dev

Kent Fredric posted on Sat, 11 Apr 2015 15:09:38 +0000 as excerpted:

>  On 02:36, Sun, 12/04/2015 Andreas K. Huettel <dilfridge@gentoo.org>
>  wrote:
> 
> 
>>> build - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used
>>> for creating build images and the first half of bootstrapping
>>> [make stage1]
>>>
>>> bootstrap - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!,
>>> used during original system bootstrapping [make stage2]
>>>
>>> However, since both are marked for 'internal use only', I don't think
>>> it's a good idea to use them here. So I guess we need a new flag.
>>> Does anyone have suggestions how to name it?
>>
>> Incidentally, if those were all migrated to USE_EXPAND_HIDDEN, the dire
>> warnings wouldn't need to be so visible...
> 
> Now if only anyone would remember what these were intended for?
> 
> Maybe we're just trying to re-invent the wheel...
> 
> And it would be nice if the solution we use doesn't end up being like
> the very warty USE=test flag.
> 
> We can make it a first class mechanism without having to tell users
> "don't use this", so why not.
> 
> Of course, doing it right may require going through EAPI changes…

What about "initial-build" for the flag name, and making it part of the 
next EAPI, such that PMs know how to handle it without involving the user 
having to set it, and indeed, actually ignore the flag (as a masked flag) 
in normal operation if the user /does/ set it?

Of course that'll require time for the EAPI bump, so the currently 
unsolved cmake/jsoncpp issue would need a temporary fix, until that new 
EAPI is available for in-tree use.

-- 
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] 18+ messages in thread

* Re: [gentoo-dev] Re: Looking for a generic solution to non-USE-conditional circular deps
  2015-04-13  6:36       ` [gentoo-dev] " Duncan
@ 2015-04-13 16:49         ` Ciaran McCreesh
  2015-04-14  2:42           ` Duncan
  2015-04-14  6:34         ` Michał Górny
  1 sibling, 1 reply; 18+ messages in thread
From: Ciaran McCreesh @ 2015-04-13 16:49 UTC (permalink / raw
  To: gentoo-dev

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

On Mon, 13 Apr 2015 06:36:44 +0000 (UTC)
Duncan <1i5t5.duncan@cox.net> wrote:
> What about "initial-build" for the flag name, and making it part of
> the next EAPI, such that PMs know how to handle it without involving
> the user having to set it, and indeed, actually ignore the flag (as a
> masked flag) in normal operation if the user /does/ set it?

You haven't thought your cunning plan all the way through. What if
cmake is installed but broken and needing a revdep-rebuild?

-- 
Ciaran McCreesh

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

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

* Re: [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps
  2015-04-11 17:14     ` Michał Górny
@ 2015-04-13 17:29       ` Ian Stakenvicius
  0 siblings, 0 replies; 18+ messages in thread
From: Ian Stakenvicius @ 2015-04-13 17:29 UTC (permalink / raw
  To: gentoo-dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 11/04/15 01:14 PM, Michał Górny wrote:
> Dnia 2015-04-11, o godz. 15:23:52 James Le Cuirot
> <chewi@gentoo.org> napisał(a):
> 
>> On Sat, 11 Apr 2015 16:00:36 +0200 Pacho Ramos <pacho@gentoo.org>
>> wrote:
>> 
>>> As that USE flag should only be used for being able to install
>>> the package the first time, maybe it should be treated in a
>>> "special" way. I mean, it shouldn't be easily changed by users
>>> but, instead, switched "internally" by the package manager to
>>> allow to unbreak the cycle.
>> 
>> If it only needs to be applied the first time, should there even
>> be a flag at all? Maybe it could be more transparent than that?
> 
> You have to have the flag to conditionally apply dependencies. We
> don't have a magic 'only-if-it-doesnt-cause-circulars' syntax :P.
> 

...maybe we should?

Another modifier character on an atom would be horrid, but a variable
containing a list dependencies that could be ignored/dropped from the
depgraph if a circle occurs might not be a bad idea?

Example for dev-util/pkgconfig:

DEPEND_CIRCULARITY_TRUNCATE="dev-libs/glib:2"

src_configure() {
	if has "dev-libs/glib:2" "${CIRCULARITY_TRUNCATED_ATOMS}"; then
		# .. set it up to use bundled glib
	fi
}


(Note this is half-baked, i'm not sure if i can even identify all of
the possible use-cases this might be triggered by, let alone how it
would fail)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iF4EAREIAAYFAlUr/QgACgkQ2ugaI38ACPAPTwD/elG71XjuKYEw9YlP4Ajwx5y/
35vvi/vbtaugXEvuFHYA/37rH9j2XkKwLHEl0BPmz4iqZw5kFDNWg+oTnCTXktRS
=8cwn
-----END PGP SIGNATURE-----


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

* [gentoo-dev] Re: Looking for a generic solution to non-USE-conditional circular deps
  2015-04-13 16:49         ` Ciaran McCreesh
@ 2015-04-14  2:42           ` Duncan
  0 siblings, 0 replies; 18+ messages in thread
From: Duncan @ 2015-04-14  2:42 UTC (permalink / raw
  To: gentoo-dev

Ciaran McCreesh posted on Mon, 13 Apr 2015 17:49:13 +0100 as excerpted:

> On Mon, 13 Apr 2015 06:36:44 +0000 (UTC)
> Duncan <1i5t5.duncan@cox.net> wrote:
>> What about "initial-build" for the flag name, and making it part of the
>> next EAPI, such that PMs know how to handle it without involving the
>> user having to set it, and indeed, actually ignore the flag (as a
>> masked flag) in normal operation if the user /does/ set it?
> 
> You haven't thought your cunning plan all the way through. What if cmake
> is installed but broken and needing a revdep-rebuild?

Two ways to deal with that.

1) Unmerge cmake, so it's an initial build again.  (Depending on the 
conflict, an unmerge/clean-merge being the simplest resolution isn't 
uncommon.  With all of @world in subsets here, portage unmerges, with a 
warning either that it's still in set X, or that it's a dep, so it never 
leaves @world and a standard emerge @world will bring it back.)

2) Masked USE flag, so users can override the same way they can other 
masked USE flags.

Also, being a masked USE flag, it's displayed, just as masked, so a user 
can know it's there.

Tho your point remains valid at some level as those are both "advanced" 
hoops that a user arguably shouldn't be /forced/ to jump thru, even if 
doing so might be the most convenient fix, at times.

-- 
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] 18+ messages in thread

* Re: [gentoo-dev] Re: Looking for a generic solution to non-USE-conditional circular deps
  2015-04-13  6:36       ` [gentoo-dev] " Duncan
  2015-04-13 16:49         ` Ciaran McCreesh
@ 2015-04-14  6:34         ` Michał Górny
  1 sibling, 0 replies; 18+ messages in thread
From: Michał Górny @ 2015-04-14  6:34 UTC (permalink / raw
  To: Duncan; +Cc: gentoo-dev

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

Dnia 2015-04-13, o godz. 06:36:44
Duncan <1i5t5.duncan@cox.net> napisał(a):

> Kent Fredric posted on Sat, 11 Apr 2015 15:09:38 +0000 as excerpted:
> 
> >  On 02:36, Sun, 12/04/2015 Andreas K. Huettel <dilfridge@gentoo.org>
> >  wrote:
> > 
> > 
> >>> build - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used
> >>> for creating build images and the first half of bootstrapping
> >>> [make stage1]
> >>>
> >>> bootstrap - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!,
> >>> used during original system bootstrapping [make stage2]
> >>>
> >>> However, since both are marked for 'internal use only', I don't think
> >>> it's a good idea to use them here. So I guess we need a new flag.
> >>> Does anyone have suggestions how to name it?
> >>
> >> Incidentally, if those were all migrated to USE_EXPAND_HIDDEN, the dire
> >> warnings wouldn't need to be so visible...
> > 
> > Now if only anyone would remember what these were intended for?
> > 
> > Maybe we're just trying to re-invent the wheel...
> > 
> > And it would be nice if the solution we use doesn't end up being like
> > the very warty USE=test flag.
> > 
> > We can make it a first class mechanism without having to tell users
> > "don't use this", so why not.
> > 
> > Of course, doing it right may require going through EAPI changes…
> 
> What about "initial-build" for the flag name, and making it part of the 
> next EAPI, such that PMs know how to handle it without involving the user 
> having to set it, and indeed, actually ignore the flag (as a masked flag) 
> in normal operation if the user /does/ set it?

How about we stop inventing magical flag names? We have enough mess
with USE=test already...

-- 
Best regards,
Michał Górny

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

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

* Re: [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps
  2015-04-11 16:50     ` [gentoo-dev] " Jorge Manuel B. S. Vicetto
@ 2015-04-14  7:47       ` Michał Górny
  2015-04-14 17:09         ` Jorge Manuel B. S. Vicetto
  0 siblings, 1 reply; 18+ messages in thread
From: Michał Górny @ 2015-04-14  7:47 UTC (permalink / raw
  To: Jorge Manuel B. S. Vicetto; +Cc: gentoo-dev

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

Dnia 2015-04-11, o godz. 16:50:53
"Jorge Manuel B. S. Vicetto" <jmbsvicetto@gentoo.org> napisał(a):

> On Sat, 11 Apr 2015, Andreas K. Huettel wrote:
> 
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA512
> >
> > Am Samstag, 11. April 2015, 16:19:23 schrieb Ciaran McCreesh:
> >
> >>> build - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for
> >>> creating build images and the first half of bootstrapping [make
> >>> stage1]
> >>>
> >>> bootstrap - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used
> >>> during original system bootstrapping [make stage2]
> >>>
> >>> However, since both are marked for 'internal use only', I don't think
> >>> it's a good idea to use them here. So I guess we need a new flag. Does
> >>> anyone have suggestions how to name it?
> >>
> >> Incidentally, if those were all migrated to USE_EXPAND_HIDDEN, the dire
> >> warnings wouldn't need to be so visible...
> >
> > Now if only anyone would remember what these were intended for?
> 
> Both "build" and "bootstrap" are reserved for stage building. The former 
> is used on stage1 and iirc, the latter is used by scripts/bootstrap.sh 
> in the portage tree called during stage2.
> 
> > Maybe we're just trying to re-invent the wheel...
> 
> No, they are needed for stage building and for that *only*, so please find 
> another solution so you don't end up "killing" stage building and forcing 
> releng to "fix" it again.

It would be nice if releng would be able to namespace their private
flags properly instead of cluttering the global flag namespace with
stuff you aren't allowed to touch and reserving the two useful flag
names here.

In fact, I don't even understand why the flags aren't hard-masked if
you're not supposed to set them. Of course, that would require some
minimal effort of setting stage building stuff to unmask the flag...

-- 
Best regards,
Michał Górny

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

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

* Re: [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps
  2015-04-14  7:47       ` Michał Górny
@ 2015-04-14 17:09         ` Jorge Manuel B. S. Vicetto
  0 siblings, 0 replies; 18+ messages in thread
From: Jorge Manuel B. S. Vicetto @ 2015-04-14 17:09 UTC (permalink / raw
  To: gentoo-dev

On Tue, 14 Apr 2015, Michał Górny wrote:

> Dnia 2015-04-11, o godz. 16:50:53
> "Jorge Manuel B. S. Vicetto" <jmbsvicetto@gentoo.org> napisał(a):
>
>> On Sat, 11 Apr 2015, Andreas K. Huettel wrote:

<snip>

>>> Now if only anyone would remember what these were intended for?
>>
>> Both "build" and "bootstrap" are reserved for stage building. The former
>> is used on stage1 and iirc, the latter is used by scripts/bootstrap.sh
>> in the portage tree called during stage2.
>>
>>> Maybe we're just trying to re-invent the wheel...
>>
>> No, they are needed for stage building and for that *only*, so please find
>> another solution so you don't end up "killing" stage building and forcing
>> releng to "fix" it again.
>
> It would be nice if releng would be able to namespace their private
> flags properly instead of cluttering the global flag namespace with
> stuff you aren't allowed to touch and reserving the two useful flag
> names here.

As you can see in the commit history, both bootstrap and build were 
already part of the first use.desc file[1] committed to gentoo-x86, on Fri 
Apr 12 05:17:16 2002 UTC.
So those use flags largely predate the RelEng team and I doubt at that 
time anyone thought about "namespaces".

[1] - 
https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/profiles/use.desc?revision=1.1&view=markup

> In fact, I don't even understand why the flags aren't hard-masked if
> you're not supposed to set them. Of course, that would require some
> minimal effort of setting stage building stuff to unmask the flag...

And all of that needed to be implemented in catalyst and no one did it.
It's easy to complain now ignoring the history of the tree, catalyst and 
release building in Gentoo.

Regards,
Jorge Manuel B. S. Vicetto
Gento Developer,
RelEng team lead


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

end of thread, other threads:[~2015-04-14 17:10 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-11 12:28 [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps Michał Górny
2015-04-11 13:33 ` Kent Fredric
2015-04-11 14:00 ` Pacho Ramos
2015-04-11 14:11   ` Michał Górny
2015-04-11 14:23   ` James Le Cuirot
2015-04-11 16:05     ` Peter Stuge
2015-04-11 17:14     ` Michał Górny
2015-04-13 17:29       ` Ian Stakenvicius
2015-04-11 14:19 ` Ciaran McCreesh
2015-04-11 14:37   ` Andreas K. Huettel
2015-04-11 15:09     ` Kent Fredric
2015-04-13  6:36       ` [gentoo-dev] " Duncan
2015-04-13 16:49         ` Ciaran McCreesh
2015-04-14  2:42           ` Duncan
2015-04-14  6:34         ` Michał Górny
2015-04-11 16:50     ` [gentoo-dev] " Jorge Manuel B. S. Vicetto
2015-04-14  7:47       ` Michał Górny
2015-04-14 17:09         ` Jorge Manuel B. S. Vicetto

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