Re: [gentoo-dev] new virtual -- virtual/go to fix go build time dependencies

2017-03-08 Thread Michael Orlitzky
On 03/08/2017 02:20 PM, William Hubbs wrote:
> 
> Another option is to not force this and rely on everyone to use
> --with-bdeps=y to make the rebuild happen.
> 

That feature is portage-only. Slot operator deps in DEPEND are meaningless.




Re: [gentoo-portage-dev] [PATCH] depgraph: fix backtracking for slot operator rebuilds (bug 612042)

2017-03-08 Thread Zac Medico
On Wed, Mar 8, 2017 at 10:56 AM, Brian Dolbec  wrote:
>
> looks good :)
>
> --
> Brian Dolbec 
>
>

Thanks, merged:


https://gitweb.gentoo.org/proj/portage.git/commit/?id=7c01a73c5a3ff969ddaa43e91730a7372a8a10c8
-- 
Thanks,
Zac



Re: [gentoo-portage-dev] [PATCH] use_reduce: reserve missing_white_space_check for invalid tokens (bug 611838)

2017-03-08 Thread Zac Medico
On Wed, Mar 8, 2017 at 10:50 AM, Brian Dolbec  wrote:
> On Mon,  6 Mar 2017 12:51:08 -0800
> Zac Medico  wrote:
>
>> Since it's possible for a URI to contain parenthesis, only call
>> missing_white_space_check for tokens that fail to validate with
>> token_class. The missing_white_space_check function only serves
>> to clarify exception messages, so it must not be allowed to
>> reject valid tokens.
>> ---
>>  pym/portage/dep/__init__.py | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py
>> index 968ff5b..6ff6adc 100644
>> --- a/pym/portage/dep/__init__.py
>> +++ b/pym/portage/dep/__init__.py
>> @@ -677,8 +677,6 @@ def use_reduce(depstr, uselist=[], masklist=[],
>> matchall=False, excludeall=[], i need_simple_token = True
>>   stack[level].append(token)
>>   else:
>> - missing_white_space_check(token, pos)
>> -
>>   if need_bracket:
>>   raise InvalidDependString(
>>   _("expected: '(', got: '%s',
>> token %s") % (token, pos+1)) @@ -698,12 +696,14 @@ def
>> use_reduce(depstr, uselist=[], masklist=[], matchall=False,
>> excludeall=[], i token = token_class(token, eapi=eapi,
>> is_valid_flag=is_valid_flag) except InvalidAtom as e:
>> +
>> missing_white_space_check(token, pos) raise InvalidDependString(
>>   _("Invalid
>> atom (%s), token %s") \ % (e, pos+1), errors=(e,))
>>   except SystemExit:
>>   raise
>>   except Exception as e:
>> +
>> missing_white_space_check(token, pos) raise InvalidDependString(
>>   _("Invalid
>> token '%s', token %s") % (token, pos+1))
>
> looks good :)

Thanks, merged:

https://gitweb.gentoo.org/proj/portage.git/commit/?id=c4447175e57a8311f254cfc9fa32646467e1830f
-- 
Thanks,
Zac



Re: [gentoo-dev] new virtual -- virtual/go to fix go build time dependencies

2017-03-08 Thread Zac Medico
On Wed, Mar 8, 2017 at 11:20 AM, William Hubbs  wrote:
> On Wed, Mar 08, 2017 at 07:44:01AM -0500, Michael Orlitzky wrote:
>> On 03/08/2017 01:27 AM, Zac Medico wrote:
>> > On Tue, Mar 7, 2017 at 4:38 PM, William Hubbs  wrote:
>> >> On Tue, Mar 07, 2017 at 07:13:38PM -0500, Michael Orlitzky wrote:
>> >>> If all dev-go libraries wind up in RDEPEND solely to force rebuilds on
>> >>> upgrades, why not do the same with the standard library (dev-lang/go)?
>> >>
>> >> They should not end up in rdepend at all since we only need them at
>> >> build-time.
>> >
>> > Shouldn't we get rebuilds when the dev-go libraries are upgraded too?
>> >
>>
>> That's what I was getting at.
>>
>> Another reading of the PMS reminds me (as Kent pointed out) that
>> slot-operator deps shouldn't be used for would-be-nice stuff. It says
>> specifically that := "indicates that the package will break..."
>
> Another option is to not force thisand rely on everyone to use
> --with-bdeps=y to make the rebuild happen.
>
> I'm not sure whether this is a good idea, but it makes sense in a way
> since we are talking about build-time dependencies.

We just merged a portage patch the enables --with-bdeps automatically
when --usepkg is not enabled:

https://bugs.gentoo.org/show_bug.cgi?id=598444
-- 
Thanks,
Zac



Re: [gentoo-portage-dev] [PATCH v2] emerge: auto-enable --with-bdeps if --usepkg is not enabled (bug 598444)

2017-03-08 Thread Zac Medico
On Wed, Mar 8, 2017 at 10:48 AM, Brian Dolbec  wrote:
> On Sun,  5 Mar 2017 00:40:25 -0800
> Zac Medico  wrote:
>
>> It's useful to automatically enable --with-bdeps so that @world
>> updates will update all packages that are not eligible for removal by
>> emerge --depclean. However, many users of binary packages do not want
>> unnecessary build time dependencies installed, therefore do not
>> auto-enable --with-bdeps for installation actions when the --usepkg
>> option is enabled.
>>
>> A new --with-bdeps-auto= option is provided, making it possible
>> to enable or disable the program logic that causes --with-bdeps to be
>> automatically enabled. Use --with-bdeps-auto=n to prevent --with-bdeps
>> from being automatically enabled for installation actions. This is
>> useful for some rare cases in which --with-bdeps triggers unsolvable
>> dependency conflicts (and putting --with-bdeps=n in
>> EMERGE_DEFAULT_OPTS would cause undesirable --depclean behavior).
>>
>> X-Gentoo-bug: 598444
>> X-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=598444
>> ---
>> [PATCH v2] adds a --with-bdeps-auto= option which is useful for
>> some rare cases in which --with-bdeps triggers unsolvable dependency
>> conflicts
>>
>>  man/emerge.1 |  37 +++-
>>  pym/_emerge/create_depgraph_params.py|   5 +
>>  pym/_emerge/depgraph.py  |   4 +-
>>  pym/_emerge/main.py  |   5 +
>>  pym/portage/tests/resolver/ResolverPlayground.py |   5 +
>>  pym/portage/tests/resolver/test_bdeps.py | 215
>> +++ 6 files changed, 266 insertions(+), 5
>> deletions(-) create mode 100644
>
> Looks fine, merge please :)

Thanks merged:

https://gitweb.gentoo.org/proj/portage.git/commit/?id=852c729bdef3d4c2e2d459a43dc21f0a05dfa2ba

-- 
Thanks,
Zac



Re: [gentoo-dev] new virtual -- virtual/go to fix go build time dependencies

2017-03-08 Thread William Hubbs
On Wed, Mar 08, 2017 at 07:44:01AM -0500, Michael Orlitzky wrote:
> On 03/08/2017 01:27 AM, Zac Medico wrote:
> > On Tue, Mar 7, 2017 at 4:38 PM, William Hubbs  wrote:
> >> On Tue, Mar 07, 2017 at 07:13:38PM -0500, Michael Orlitzky wrote:
> >>> If all dev-go libraries wind up in RDEPEND solely to force rebuilds on
> >>> upgrades, why not do the same with the standard library (dev-lang/go)?
> >>
> >> They should not end up in rdepend at all since we only need them at
> >> build-time.
> > 
> > Shouldn't we get rebuilds when the dev-go libraries are upgraded too?
> > 
> 
> That's what I was getting at.
> 
> Another reading of the PMS reminds me (as Kent pointed out) that
> slot-operator deps shouldn't be used for would-be-nice stuff. It says
> specifically that := "indicates that the package will break..."

Another option is to not force thisand rely on everyone to use
--with-bdeps=y to make the rebuild happen.

I'm not sure whether this is a good idea, but it makes sense in a way
since we are talking about build-time dependencies.

William



signature.asc
Description: Digital signature


Re: [gentoo-portage-dev] [PATCH] depgraph: fix backtracking for slot operator rebuilds (bug 612042)

2017-03-08 Thread Brian Dolbec
On Wed,  8 Mar 2017 03:09:06 -0800
Zac Medico  wrote:

> Fix package selection logic to avoid pulling in undesirable
> rebuilds/updates during backtracking for slot operator rebuilds.
> The undesirable rebuilds/updates have sent some calculations off
> course, by triggering more and more rebuilds/updates with each
> backtracking run.
> 
> In order to solve the problem, make various adjustments to the
> package selection logic so that installed packages are preferred
> over rebuilds/updates when appropriate. Also update unit tests
> to work with these adjustments.
> 
> Fixes: 5842e87872fd ("Fix slot operator handling bug")
> X-Gentoo-bug: 612042
> X-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=612042
> ---
>  pym/_emerge/depgraph.py  | 11
> +-- .../resolver/soname/test_slot_conflict_reinstall.py
> | 16 +++-
> pym/portage/tests/resolver/test_slot_abi.py  | 12
> +--- pym/portage/tests/resolver/test_slot_conflict_rebuild.py
> |  8 +++- 4 files changed, 36 insertions(+), 11 deletions(-)
> 
> diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
> index ce0fde1..3ba631e 100644
> --- a/pym/_emerge/depgraph.py
> +++ b/pym/_emerge/depgraph.py
> @@ -2304,7 +2304,7 @@ class depgraph(object):
>   # Check for slot update first, since
> we don't want to # trigger reinstall of the child package when a newer
>   # slot will be used instead.
> - if rebuild_if_new_slot:
> + if rebuild_if_new_slot and
> dep.want_update: new_dep = self._slot_operator_update_probe(dep,
>   new_child_slot=True)
>   if new_dep is not None:
> @@ -6241,7 +6241,7 @@ class depgraph(object):
>   if
> highest_installed is None or pkg.version > highest_installed.version:
> highest_installed = pkg 
> - if highest_installed:
> + if highest_installed and
> self._want_update_pkg(parent, highest_installed): non_installed =
> [pkg for pkg in matched_packages \ if not pkg.installed and
> pkg.version > highest_installed.version] 
> @@ -6285,11 +6285,18 @@ class depgraph(object):
>   built_timestamp !=
> installed_timestamp: return built_pkg, existing_node
>  
> + inst_pkg = None
>   for pkg in matched_packages:
> + if pkg.installed:
> + inst_pkg = pkg
>   if pkg.installed and pkg.invalid:
>   matched_packages = [x for x
> in \ matched_packages if x is not pkg]
>  
> + if (inst_pkg is not None and parent is not
> None and
> + not self._want_update_pkg(parent,
> inst_pkg)):
> + return inst_pkg, existing_node
> +
>   if avoid_update:
>   for pkg in matched_packages:
>   if pkg.installed and
> self._pkg_visibility_check(pkg, autounmask_level): diff --git
> a/pym/portage/tests/resolver/soname/test_slot_conflict_reinstall.py
> b/pym/portage/tests/resolver/soname/test_slot_conflict_reinstall.py
> index f474761..f715444 100644 ---
> a/pym/portage/tests/resolver/soname/test_slot_conflict_reinstall.py
> +++
> b/pym/portage/tests/resolver/soname/test_slot_conflict_reinstall.py
> @@ -251,13 +251,27 @@ class
> SonameSlotConflictReinstallTestCase(TestCase): success = True,
> mergelist = [ '[binary]app-misc/B-2',
> + '[binary]app-misc/A-2',
> + ]
> + ),
> + ResolverPlaygroundTestCase(
> + ["@world"],
> + options = {
> + "--ignore-soname-deps": "n",
> + "--usepkgonly": True,
> + "--update": True,
> + "--deep": True,
> + },
> + success = True,
> + mergelist = [
> + '[binary]app-misc/B-2',
>   '[binary]app-misc/C-1',
>   '[binary]app-misc/A-2',
>   ]
>   ),
>   )
>  
> - world = []
> + world = ['app-misc/A']
>  
>   playground = ResolverPlayground(binpkgs=binpkgs,
>   installed=installed, world=world,
> debug=False) diff --git a/pym/portage/tests/resolver/test_slot_abi.py
> 

Re: [gentoo-portage-dev] [PATCH] use_reduce: reserve missing_white_space_check for invalid tokens (bug 611838)

2017-03-08 Thread Brian Dolbec
On Mon,  6 Mar 2017 12:51:08 -0800
Zac Medico  wrote:

> Since it's possible for a URI to contain parenthesis, only call
> missing_white_space_check for tokens that fail to validate with
> token_class. The missing_white_space_check function only serves
> to clarify exception messages, so it must not be allowed to
> reject valid tokens.
> ---
>  pym/portage/dep/__init__.py | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py
> index 968ff5b..6ff6adc 100644
> --- a/pym/portage/dep/__init__.py
> +++ b/pym/portage/dep/__init__.py
> @@ -677,8 +677,6 @@ def use_reduce(depstr, uselist=[], masklist=[],
> matchall=False, excludeall=[], i need_simple_token = True
>   stack[level].append(token)  
>   else:
> - missing_white_space_check(token, pos)
> -
>   if need_bracket:
>   raise InvalidDependString(
>   _("expected: '(', got: '%s',
> token %s") % (token, pos+1)) @@ -698,12 +696,14 @@ def
> use_reduce(depstr, uselist=[], masklist=[], matchall=False,
> excludeall=[], i token = token_class(token, eapi=eapi,
> is_valid_flag=is_valid_flag) except InvalidAtom as e:
> +
> missing_white_space_check(token, pos) raise InvalidDependString(
>   _("Invalid
> atom (%s), token %s") \ % (e, pos+1), errors=(e,))
>   except SystemExit:
>   raise
>   except Exception as e:
> +
> missing_white_space_check(token, pos) raise InvalidDependString(
>   _("Invalid
> token '%s', token %s") % (token, pos+1)) 

looks good :)

-- 
Brian Dolbec 




Re: [gentoo-portage-dev] [PATCH v2] emerge: auto-enable --with-bdeps if --usepkg is not enabled (bug 598444)

2017-03-08 Thread Brian Dolbec
On Sun,  5 Mar 2017 00:40:25 -0800
Zac Medico  wrote:

> It's useful to automatically enable --with-bdeps so that @world
> updates will update all packages that are not eligible for removal by
> emerge --depclean. However, many users of binary packages do not want
> unnecessary build time dependencies installed, therefore do not
> auto-enable --with-bdeps for installation actions when the --usepkg
> option is enabled.
> 
> A new --with-bdeps-auto= option is provided, making it possible
> to enable or disable the program logic that causes --with-bdeps to be
> automatically enabled. Use --with-bdeps-auto=n to prevent --with-bdeps
> from being automatically enabled for installation actions. This is
> useful for some rare cases in which --with-bdeps triggers unsolvable
> dependency conflicts (and putting --with-bdeps=n in
> EMERGE_DEFAULT_OPTS would cause undesirable --depclean behavior).
> 
> X-Gentoo-bug: 598444
> X-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=598444
> ---
> [PATCH v2] adds a --with-bdeps-auto= option which is useful for
> some rare cases in which --with-bdeps triggers unsolvable dependency
> conflicts
> 
>  man/emerge.1 |  37 +++-
>  pym/_emerge/create_depgraph_params.py|   5 +
>  pym/_emerge/depgraph.py  |   4 +-
>  pym/_emerge/main.py  |   5 +
>  pym/portage/tests/resolver/ResolverPlayground.py |   5 +
>  pym/portage/tests/resolver/test_bdeps.py | 215
> +++ 6 files changed, 266 insertions(+), 5
> deletions(-) create mode 100644

Looks fine, merge please :)

-- 
Brian Dolbec 




Re: [gentoo-dev] RFC: Update bitcoin eclass to default to knots

2017-03-08 Thread Mathy Vanvoorden
> I don't have time nor the familiarity to properly maintain bitcoins
> myself.  Every time Luke wants to make a change, I get nothing but
> negative advice - what not to do, but not what to do.  If there were an
> unpopular package I would just drop it to maintainer-needed.  But do we
> really want a distro that doesn't provide bitcoins?
>

I suspect that it is because every time Luke wants to make a change, he
wants to push his patchset as default enabled on Gentoo while nobody seems
to be interested in this.

I will ignore all negative advice regarding this package unless it is
> balanced with positive advice.  Please point out what lines of the patch
> should be changed and what they should be changed to, else I will commit
> the patch as provided.
>

Simple, do the rename by all means but don't enable it by default.

Mathy


Re: [gentoo-dev] RFC: Update bitcoin eclass to default to knots

2017-03-08 Thread Anthony G. Basile
On 3/7/17 12:18 PM, Peter Stuge wrote:
> Anthony G. Basile wrote:
>> I proxy maintain bitcoins for luke-jr.  He wants to propose a patch
>> against the bitcoin eclass.  The following is his proposed change.
>> I'll commit it after review.
> 
> Please do not do that, Anthony.
> 

I don't have time nor the familiarity to properly maintain bitcoins
myself.  Every time Luke wants to make a change, I get nothing but
negative advice - what not to do, but not what to do.  If there were an
unpopular package I would just drop it to maintainer-needed.  But do we
really want a distro that doesn't provide bitcoins?

I will ignore all negative advice regarding this package unless it is
balanced with positive advice.  Please point out what lines of the patch
should be changed and what they should be changed to, else I will commit
the patch as provided.


-- 
Anthony G. Basile, Ph.D.
Gentoo Linux Developer [Hardened]
E-Mail: bluen...@gentoo.org
GnuPG FP  : 1FED FAD9 D82C 52A5 3BAB  DC79 9384 FA6E F52D 4BBA
GnuPG ID  : F52D4BBA



Re: [gentoo-dev] new virtual -- virtual/go to fix go build time dependencies

2017-03-08 Thread Michael Orlitzky
On 03/08/2017 01:27 AM, Zac Medico wrote:
> On Tue, Mar 7, 2017 at 4:38 PM, William Hubbs  wrote:
>> On Tue, Mar 07, 2017 at 07:13:38PM -0500, Michael Orlitzky wrote:
>>> If all dev-go libraries wind up in RDEPEND solely to force rebuilds on
>>> upgrades, why not do the same with the standard library (dev-lang/go)?
>>
>> They should not end up in rdepend at all since we only need them at
>> build-time.
> 
> Shouldn't we get rebuilds when the dev-go libraries are upgraded too?
> 

That's what I was getting at.

Another reading of the PMS reminds me (as Kent pointed out) that
slot-operator deps shouldn't be used for would-be-nice stuff. It says
specifically that := "indicates that the package will break..."




Re: [gentoo-dev] new virtual -- virtual/go to fix go build time dependencies

2017-03-08 Thread Michał Górny
W dniu 08.03.2017, śro o godzinie 21∶07 +1300, użytkownik Kent Fredric
napisał:
> On Tue, 7 Mar 2017 16:40:06 -0600
> William Hubbs  wrote:
> 
> > What I need is a way to force all go programs on your system to rebuild
> > when the version of dev-lang/go on your system changes, and this method
> > with virtuals is the only way I can think of to make that happen and
> > allow you to remove dev-lang/go.
> 
> Given the strength of := binding, I'd discourage against this.
> 
> Causing portage resolver catastrophes to solve a "it would be nice if ..." 
> problem
> is a bad trade-off.
> 
> := Should be restricted to things that it is *necessary* for.
> 
> What I think is needed is a weaker version of := which is advisory: that is, 
> portage
> ignores the binding in entirety unless portage options dictate "rebuild 
> things even if
> strictly not necessary"
> 
> And this levity should mean portage should be more amenable to break graphs
> to make install possible. ( Whereas with := , the presence of such a spec 
> causes portage
> to have tantrums when the underlying dependency changes )

...which boils down to people having no clue what := actually means
and not caring to learn that before proposing awesome solutions.

-- 
Best regards,
Michał Górny


signature.asc
Description: This is a digitally signed message part


Re: [gentoo-dev] new virtual -- virtual/go to fix go build time dependencies

2017-03-08 Thread Kent Fredric
On Tue, 7 Mar 2017 16:40:06 -0600
William Hubbs  wrote:

> What I need is a way to force all go programs on your system to rebuild
> when the version of dev-lang/go on your system changes, and this method
> with virtuals is the only way I can think of to make that happen and
> allow you to remove dev-lang/go.

Given the strength of := binding, I'd discourage against this.

Causing portage resolver catastrophes to solve a "it would be nice if ..." 
problem
is a bad trade-off.

:= Should be restricted to things that it is *necessary* for.

What I think is needed is a weaker version of := which is advisory: that is, 
portage
ignores the binding in entirety unless portage options dictate "rebuild things 
even if
strictly not necessary"

And this levity should mean portage should be more amenable to break graphs
to make install possible. ( Whereas with := , the presence of such a spec 
causes portage
to have tantrums when the underlying dependency changes )


pgpVt13D9Nto2.pgp
Description: OpenPGP digital signature