Re: [gentoo-dev] RFC: USE=libav as replacement for broken || ( libav:= ffmpeg:= )

2015-01-22 Thread Alexis Ballier
On Thu, 22 Jan 2015 02:50:44 -0800
Zac Medico zmed...@gentoo.org wrote:

 On 01/21/2015 11:25 PM, Alexis Ballier wrote:
  1. If portage uses crafted depstrings in its depgraph when
  rebuilding a package and nobody is able to give me a good reason
  _why_ this is needed, I really do not want to look at the code :)
 
 It's the emerge --dynamic-deps option, which is enabled by default. If
 you want to use --dynamic-deps=n, then you may need to fix some
 dependencies of installed packages, which you can do by running emerge
 @changed-deps. There's also a --changed-deps [1] option that can be
 applied to @world updates, which will be included in Portage 2.2.16.
 
 [1]
 https://github.com/gentoo/portage/commit/e99fa094ac73514b23509a0f8305b365f114e9a3

This answers 'how' and, as I understand it, changed-deps is also about
'how' to trigger rebuild.
My question was: _why_ when portage knows what package to rebuild
doesn't it use the dep string from the ebuild ?

That's what I understand from Michał's comment (quoting him):

 1. if you have dynamic-deps enabled, portage will want to install both
 ffmpeg (because of :=) and libav (because of ||). The effective
 deps will look like:

  || ( ffmpeg:0/51= libav ) ffmpeg:0/51=


As I understand it, portage (correctly) marks this package for rebuild
(because ffmpeg:0/51= dep isn't satisfied anymore), but I don't get why
it doesn't consider the original '|| ( ffmpeg:= libav:= )' dep for the
depgraph and wants to pull ffmpeg in because of :=.

Alexis.



Re: [gentoo-dev] Things one could be upset about

2015-01-22 Thread Peter Stuge
Joshua Kinard wrote:
 Using seed stage3 stages I built 6 months ago (but never released due
 to getting sidetracked), I run into errors like this:
 
 !!! Multiple package instances within a single package slot have been pulled
 !!! into the dependency graph, resulting in a slot conflict:
 
 dev-lang/perl:0
 
   (dev-lang/perl-5.20.1-r4:0/5.20::gentoo, ebuild scheduled for merge) pulled 
 in by
 =dev-lang/perl-5.20* required by
 (virtual/perl-ExtUtils-ParseXS-3.240.0:0/0::gentoo, ebuild scheduled for 
 merge)
 ^  ^
 (and 16 more with the same problem)
 
   (dev-lang/perl-5.18.2-r2:0/5.18::gentoo, ebuild scheduled for merge) pulled 
 in by
 dev-lang/perl:0/5.18=[-build(-)] required by
 (dev-perl/libintl-perl-1.230.0:0/0::gentoo, installed)
  
 =dev-lang/perl-5.18* required by
 (virtual/perl-ExtUtils-Manifest-1.630.0-r1:0/0::gentoo, installed)
 ^  ^
 (and 2 more with the same problems)
 
 It's hard to read mess like that and trace down the offending package,
 fix it, and make catalyst happy.

Lots of dev-perl packages have specific minor version dependencies on
dev-lang/perl, maybe because sometimes the package is included in perl
and sometimes not. It's a f*ing mess. You have to look up all your
installed dev-perl packages manually and find which ones are either
too old to know about perl-5.20 or not compatible with it, and then
you have to unmerge those manually.


 Kinda defeats the purpose of catalyst in the first place.

The proper way is to build stage1+2+3 yourself, then this mess
doesn't happen. But like you I too cheat a little, and have to deal
with the mess.


//Peter



Re: [gentoo-dev] RFC: USE=libav as replacement for broken || ( libav:= ffmpeg:= )

2015-01-22 Thread Zac Medico
On 01/21/2015 11:25 PM, Alexis Ballier wrote:
 1. If portage uses crafted depstrings in its depgraph when rebuilding a
 package and nobody is able to give me a good reason _why_ this is
 needed, I really do not want to look at the code :)

It's the emerge --dynamic-deps option, which is enabled by default. If
you want to use --dynamic-deps=n, then you may need to fix some
dependencies of installed packages, which you can do by running emerge
@changed-deps. There's also a --changed-deps [1] option that can be
applied to @world updates, which will be included in Portage 2.2.16.

[1]
https://github.com/gentoo/portage/commit/e99fa094ac73514b23509a0f8305b365f114e9a3
-- 
Thanks,
Zac



Re: [gentoo-dev] [RFC] LibreSSL, introduce virtual/openssl

2015-01-22 Thread hasufell
Regarding the last libav discussion I think we should also go with a
libressl USE flag instead of creating a virtual that makes handling
SUBSLOTs impossible.



Re: [gentoo-dev] [RFC] LibreSSL, introduce virtual/openssl

2015-01-22 Thread Michał Górny
Dnia 2015-01-23, o godz. 01:51:24
hasufell hasuf...@gentoo.org napisał(a):

 Regarding the last libav discussion I think we should also go with a
 libressl USE flag instead of creating a virtual that makes handling
 SUBSLOTs impossible.

If libressl and openssl would have matching ABIs, that wouldn't be
necessary and you could what virtual/libudev does, i.e. explicit
subslot deps.

-- 
Best regards,
Michał Górny


pgp9TTRFD6wY2.pgp
Description: OpenPGP digital signature


Re: [gentoo-dev] RFC: USE=libav as replacement for broken || ( libav:= ffmpeg:= )

2015-01-22 Thread Zac Medico
On 01/22/2015 03:11 AM, Alexis Ballier wrote:
 On Thu, 22 Jan 2015 02:50:44 -0800
 Zac Medico zmed...@gentoo.org wrote:
 
 On 01/21/2015 11:25 PM, Alexis Ballier wrote:
 1. If portage uses crafted depstrings in its depgraph when
 rebuilding a package and nobody is able to give me a good reason
 _why_ this is needed, I really do not want to look at the code :)

 It's the emerge --dynamic-deps option, which is enabled by default. If
 you want to use --dynamic-deps=n, then you may need to fix some
 dependencies of installed packages, which you can do by running emerge
 @changed-deps. There's also a --changed-deps [1] option that can be
 applied to @world updates, which will be included in Portage 2.2.16.

 [1]
 https://github.com/gentoo/portage/commit/e99fa094ac73514b23509a0f8305b365f114e9a3
 
 This answers 'how' and, as I understand it, changed-deps is also about
 'how' to trigger rebuild.
 My question was: _why_ when portage knows what package to rebuild
 doesn't it use the dep string from the ebuild ?

It does use the dep string for the ebuild, after it has rejected the
installed instance and decided to pull in the ebuild instead.

 That's what I understand from Michał's comment (quoting him):
 
 1. if you have dynamic-deps enabled, portage will want to install both
 ffmpeg (because of :=) and libav (because of ||). The effective
 deps will look like:

  || ( ffmpeg:0/51= libav ) ffmpeg:0/51=
 
 
 As I understand it, portage (correctly) marks this package for rebuild
 (because ffmpeg:0/51= dep isn't satisfied anymore), but I don't get why
 it doesn't consider the original '|| ( ffmpeg:= libav:= )' dep for the
 depgraph and wants to pull ffmpeg in because of :=.

It does consider the original dep. However, it also uses various
heuristics when making choices for || deps, and the fact that an
instance of ffmpeg is currently installed is taken into account in the
heuristics.
-- 
Thanks,
Zac



[gentoo-dev] last rites: games-rpg/morrowind-data

2015-01-22 Thread hasufell
# Julian Ospald hasuf...@gentoo.org (22 Jan 2015)
# Masked for removal in 30 days, wrt #537260.
games-rpg/morrowind-data



Re: [gentoo-portage-dev] [PATCH] Support USE_EXPAND prefixes in package.use and relevant files

2015-01-22 Thread Brian Dolbec
On Tue, 20 Jan 2015 12:18:43 +0100
Michał Górny mgo...@gentoo.org wrote:

 Support prefixing groups of USE_EXPAND flags with 'USE_EXPAND:' in
 user configuration package.use and similar files. This provides a
 convenient way of declaring specifying multiple USE_EXPAND flags and
 matches the syntax supported by Paludis. Example:
 
   dev-util/netbeans NETBEANS_MODULES: php webcommon extide
   media-libs/mesa osmesa VIDEO_CARDS: intel nouveau
 ---
  pym/portage/package/ebuild/_config/UseManager.py | 20
 +++- 1 file changed, 19 insertions(+), 1 deletion(-)
 
 diff --git a/pym/portage/package/ebuild/_config/UseManager.py
 b/pym/portage/package/ebuild/_config/UseManager.py index
 3a4ec22..59f474e 100644 ---
 a/pym/portage/package/ebuild/_config/UseManager.py +++
 b/pym/portage/package/ebuild/_config/UseManager.py @@ -202,10 +202,17
 @@ class UseManager(object): useflag_re = _get_useflag_re(eapi)
   for k, v in file_dict.items():
   useflags = []
 + use_expand_prefix = ''
   for prefixed_useflag in v:
 + if extended_syntax and
 prefixed_useflag[-1] == ::
 + use_expand_prefix =
 prefixed_useflag[:-1].lower() + _
 + continue
 +
   if prefixed_useflag[:1] == -:
   useflag =
 prefixed_useflag[1:]
 + prefixed_useflag = - +
 use_expand_prefix + useflag else:
 + prefixed_useflag =
 use_expand_prefix + prefixed_useflag useflag = prefixed_useflag
   if useflag_re.match(useflag) is None:
   writemsg(_(--- Invalid USE
 flag for '%s' in '%s': '%s'\n) % @@ -227,7 +234,18 @@ class
 UseManager(object): pusedict = grabdict_package(
   os.path.join(location, file_name),
 recursive=1, allow_wildcard=True, allow_repo=True, verify_eapi=False)
 for k, v in pusedict.items():
 - ret.setdefault(k.cp, {})[k] =
 tuple(v)
 + l = []
 + use_expand_prefix = ''
 + for flag in v:
 + if flag[-1] == ::
 + use_expand_prefix =
 flag[:-1].lower() + _
 + continue
 + if flag[0] == -:
 + nv = - +
 use_expand_prefix + flag[1:]
 + else:
 + nv =
 use_expand_prefix + flag
 + l.append(nv)
 + ret.setdefault(k.cp, {})[k] =
 tuple(l) 
   return ret
  


It looks harmless enough, but I'd like to wait a bit before merge I
think.  This also needs a man page description update somewhere.

We need to have another meeting, decide where to cut off for the next
release.


-- 
Brian Dolbec dolsen




Re: [gentoo-portage-dev] [PATCH] Support USE_EXPAND prefixes in package.use and relevant files

2015-01-22 Thread Zac Medico
On 01/20/2015 03:18 AM, Michał Górny wrote:
 Support prefixing groups of USE_EXPAND flags with 'USE_EXPAND:' in user
 configuration package.use and similar files. This provides a convenient
 way of declaring specifying multiple USE_EXPAND flags and matches the
 syntax supported by Paludis. Example:
 
   dev-util/netbeans NETBEANS_MODULES: php webcommon extide
   media-libs/mesa osmesa VIDEO_CARDS: intel nouveau
 ---
  pym/portage/package/ebuild/_config/UseManager.py | 20 +++-
  1 file changed, 19 insertions(+), 1 deletion(-)
 
 diff --git a/pym/portage/package/ebuild/_config/UseManager.py 
 b/pym/portage/package/ebuild/_config/UseManager.py
 index 3a4ec22..59f474e 100644
 --- a/pym/portage/package/ebuild/_config/UseManager.py
 +++ b/pym/portage/package/ebuild/_config/UseManager.py
 @@ -202,10 +202,17 @@ class UseManager(object):
   useflag_re = _get_useflag_re(eapi)
   for k, v in file_dict.items():
   useflags = []
 + use_expand_prefix = ''
   for prefixed_useflag in v:
 + if extended_syntax and prefixed_useflag[-1] == 
 ::
 + use_expand_prefix = 
 prefixed_useflag[:-1].lower() + _
 + continue
 +
   if prefixed_useflag[:1] == -:
   useflag = prefixed_useflag[1:]
 + prefixed_useflag = - + 
 use_expand_prefix + useflag
   else:
 + prefixed_useflag = use_expand_prefix + 
 prefixed_useflag
   useflag = prefixed_useflag
   if useflag_re.match(useflag) is None:
   writemsg(_(--- Invalid USE flag for 
 '%s' in '%s': '%s'\n) %

We could match useflag_re against (use_expand_prefix + useflag) here, so
that the use_expand_prefix is also validated. Otherwise, the patch looks
good.
-- 
Thanks,
Zac



Re: [gentoo-dev] Things one could be upset about

2015-01-22 Thread Jeroen Roovers
On Sat, 17 Jan 2015 13:44:21 +0100
Dirkjan Ochtman d...@gentoo.org wrote:

 Also, I hate something like
 ['dev-python/restkit[python_targets_python2_7(-)?,-python_single_target_python2_7(-)]'].
 What the hell kind of warning is that? I guess maybe these are the
 results of USE_EXPAND trickery and what not, but it would sure be nice
 to have something more readable.

https://bugs.gentoo.org/show_bug.cgi?id=534022


 jer