[gentoo-dev] Re: [gentoo-dev-announce] lastrite; dev-python/cl

2015-02-13 Thread Jeroen Roovers
On Thu, 12 Feb 2015 14:46:41 +0800
IAN DELANEY idel...@gentoo.org wrote:

 # Ian Delaney idel...@gentoo.org (12 Feb 2015)
 # upstream found to be dead, hash values now fail,
 # no longer has relevance, masked for removal in 30 days
 app-office/openerp-client
 app-office/openerp-server
 app-office/openerp-web

Something went wrong here. What is the relation between dev-python/cl
and these three?


 jer



[gentoo-portage-dev] cross-emerge --buildpkg with portage 2.2.17 ?

2015-02-13 Thread Joakim Tjernlund
Either I have forgot to how to build binary pkgs when cross
building(via crossdev) or there is a bug in portage. Anyone on
this list doing cross builds ? Does --buildpkg work for you?

 Jocke



[gentoo-portage-dev] [PATCH v2] Add another check for broken /dev/s (bug 538980)

2015-02-13 Thread Alexander Berntsen
Signed-off-by: Alexander Berntsen berna...@gentoo.org
Suggested-by:  Zac Medico zmed...@gentoo.org
---
Forgot Suggested-by.

 pym/_emerge/main.py | 9 +
 1 file changed, 9 insertions(+)

diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
index f1a9e18..84094ae 100644
--- a/pym/_emerge/main.py
+++ b/pym/_emerge/main.py
@@ -1114,6 +1114,15 @@ def emerge_main(args=None):
 level=logging.ERROR, noiselevel=-1)
return 1
 
+   # Verify that BASH process substitution works as another cheap early
+   # filter. Process substitution uses '/dev/fd'.
+   if portage.process.spawn_bash([[ $( (echo foo) ) == foo ]]) != 0:
+   writemsg_level(Failed to validate a sane '/dev'.\n
+bash process substitution doesn't work; this 
may be an 
+indication of a broken '/dev/fd'.\n,
+level=logging.ERROR, noiselevel=-1)
+   return 1
+
# Portage needs to ensure a sane umask for the files it creates.
os.umask(0o22)
emerge_config = load_emerge_config(
-- 
2.0.5




[gentoo-portage-dev] [PATCH] Add another check for broken /dev/s (bug 538980)

2015-02-13 Thread Alexander Berntsen
Signed-off-by: Alexander Berntsen berna...@gentoo.org
---
 pym/_emerge/main.py | 9 +
 1 file changed, 9 insertions(+)

diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
index f1a9e18..84094ae 100644
--- a/pym/_emerge/main.py
+++ b/pym/_emerge/main.py
@@ -1114,6 +1114,15 @@ def emerge_main(args=None):
 level=logging.ERROR, noiselevel=-1)
return 1
 
+   # Verify that BASH process substitution works as another cheap early
+   # filter. Process substitution uses '/dev/fd'.
+   if portage.process.spawn_bash([[ $( (echo foo) ) == foo ]]) != 0:
+   writemsg_level(Failed to validate a sane '/dev'.\n
+bash process substitution doesn't work; this 
may be an 
+indication of a broken '/dev/fd'.\n,
+level=logging.ERROR, noiselevel=-1)
+   return 1
+
# Portage needs to ensure a sane umask for the files it creates.
os.umask(0o22)
emerge_config = load_emerge_config(
-- 
2.0.5




Re: [gentoo-portage-dev] [PATCH v2] Add early check for broken /dev/s (bug 538980)

2015-02-13 Thread Zac Medico
On 02/13/2015 10:11 AM, Alexander Berntsen wrote:
 Signed-off-by: Alexander Berntsen berna...@gentoo.org
 Suggested-by:  Zac Medico zmed...@gentoo.org
 ---
 Add some output. Use the more backwards compatible OSError instead of
 FileNotFoundError.
 
  pym/_emerge/main.py | 14 ++
  1 file changed, 14 insertions(+)
 
 diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
 index 5d5e936..f1a9e18 100644
 --- a/pym/_emerge/main.py
 +++ b/pym/_emerge/main.py
 @@ -1100,6 +1100,20 @@ def emerge_main(args=None):
   # loading to allow new repos with non-existent directories
   portage._sync_mode = True
  
 + # Verify that /dev/null exists and is a device file as a cheap early
 + # filter for obviously broken /dev/s.
 + try:
 + if os.stat(os.devnull).st_rdev == 0:
 + writemsg_level(Failed to validate a sane '/dev'.\n
 +   '/dev/null' is not a device file.\n,
 +   level=logging.ERROR, noiselevel=-1)
 + return 1
 + except OSError:
 + writemsg_level(Failed to validate a sane '/dev'.\n
 +  '/dev/null' does not exist.\n,
 +  level=logging.ERROR, noiselevel=-1)
 + return 1
 +
   # Portage needs to ensure a sane umask for the files it creates.
   os.umask(0o22)
   emerge_config = load_emerge_config(
 

LGTM. We should also test that bash process substitution works, as noted
in bug 538980.
-- 
Thanks,
Zac



[gentoo-portage-dev] [PATCH 2/2 v2] depgraph: soname dependency resolution (282639)

2015-02-13 Thread Zac Medico
Soname dependency resolution is disabled by default, since it will not
work correctly unless all available installed and binary packages have
been built by a version of portage which generates REQUIRES and PROVIDES
metadata.

Soname dependency resolution is enabled when --ignore-soname-deps=n is
specified, and one of the following is true:

 * --usepkgonly option is enabled

 * removal actions (--depclean and --prune)

Soname dependencies are automatically ignored for dependency
calculations that can pull unbuilt ebuilds into the dependency graph,
since unbuilt ebuilds do not have any soname dependency metadata,
making it impossible to determine whether an unresolved soname
dependency can be satisfied.  Therefore, --usepkgonly must be used
in order to enable soname depedency resolution when installing packages.

A new soname.provided file is supported for profiles, making it possible
to selectively ignore soname dependencies (see the portage(5) man page).

When soname dependency resolution is enabled, the soname dependencies
are represented as SonameAtom instances which expose an interface that
is minimally compatible with Atom instances. This allows both types of
atoms to be satisfied using mostly the same mechanisms, with minimal
use of conditional logic to handle the differences. Both atom classes
have soname and package attributes that make it convenient for
conditional code to distinguish package atoms and soname atoms. Both
classes also implement a match method, so that it is possible to match
a Package instance using identical syntax for both types of atoms.

Since soname dependencies and slot-operator := dependencies share many
properties, the slot-operator rebuild code has been generalized to
handle both types of dependencies. Many of the existing unit tests
involving slot-operator dependencies have been copied and adapted to
test soname dependencies (the new tests are located in the
pym/portage/tests/resolver/soname/ directory).

X-Gentoo-Bug: 282639
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=282639
---
PATCH 2/2 v2 fixes depgraph._iter_match_pkgs_soname to yield packages in
descending order.

 man/emerge.1   |  13 +
 man/portage.5  |  23 ++
 pym/_emerge/FakeVartree.py |  16 +-
 pym/_emerge/Package.py |  55 +++-
 pym/_emerge/actions.py |   9 +-
 pym/_emerge/create_depgraph_params.py  |   6 +
 pym/_emerge/create_world_atom.py   |   6 +-
 pym/_emerge/depgraph.py| 347 +++--
 pym/_emerge/main.py|  10 +
 pym/_emerge/resolver/DbapiProvidesIndex.py | 101 ++
 pym/_emerge/resolver/output.py |  10 +-
 pym/_emerge/resolver/package_tracker.py|  42 ++-
 pym/_emerge/resolver/slot_collision.py |  35 ++-
 pym/portage/dbapi/DummyTree.py |  16 +
 pym/portage/dep/__init__.py|  25 ++
 pym/portage/dep/soname/SonameAtom.py   |  72 +
 pym/portage/dep/soname/parse.py|  47 +++
 pym/portage/package/ebuild/config.py   |  13 +
 pym/portage/tests/resolver/ResolverPlayground.py   |   3 +
 pym/portage/tests/resolver/soname/__init__.py  |   2 +
 pym/portage/tests/resolver/soname/__test__.py  |   2 +
 .../tests/resolver/soname/test_autounmask.py   | 103 ++
 pym/portage/tests/resolver/soname/test_depclean.py |  61 
 .../tests/resolver/soname/test_downgrade.py| 240 ++
 .../tests/resolver/soname/test_or_choices.py   |  92 ++
 .../tests/resolver/soname/test_reinstall.py|  87 ++
 .../tests/resolver/soname/test_skip_update.py  |  86 +
 .../soname/test_slot_conflict_reinstall.py | 342 
 .../resolver/soname/test_slot_conflict_update.py   | 117 +++
 .../tests/resolver/soname/test_soname_provided.py  |  78 +
 .../tests/resolver/soname/test_unsatisfiable.py|  71 +
 .../tests/resolver/soname/test_unsatisfied.py  |  87 ++
 pym/portage/tests/resolver/test_package_tracker.py |   4 +-
 33 files changed, 2099 insertions(+), 122 deletions(-)
 create mode 100644 pym/_emerge/resolver/DbapiProvidesIndex.py
 create mode 100644 pym/portage/dbapi/DummyTree.py
 create mode 100644 pym/portage/dep/soname/SonameAtom.py
 create mode 100644 pym/portage/dep/soname/parse.py
 create mode 100644 pym/portage/tests/resolver/soname/__init__.py
 create mode 100644 pym/portage/tests/resolver/soname/__test__.py
 create mode 100644 pym/portage/tests/resolver/soname/test_autounmask.py
 create mode 100644 pym/portage/tests/resolver/soname/test_depclean.py
 create mode 100644 pym/portage/tests/resolver/soname/test_downgrade.py
 create mode 100644 pym/portage/tests/resolver/soname/test_or_choices.py
 create mode 100644 

[gentoo-portage-dev] [PATCH] Add early check for broken /dev/s (bug 538980)

2015-02-13 Thread Alexander Berntsen
Signed-off-by: Alexander Berntsen berna...@gentoo.org
Suggested-by:  Zac Medico zmed...@gentoo.org
---
 pym/_emerge/main.py | 8 
 1 file changed, 8 insertions(+)

diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
index 5d5e936..1b9bb0a 100644
--- a/pym/_emerge/main.py
+++ b/pym/_emerge/main.py
@@ -1100,6 +1100,14 @@ def emerge_main(args=None):
# loading to allow new repos with non-existent directories
portage._sync_mode = True
 
+   # Verify that /dev/null exists and is a device file as a cheap early
+   # filter for obviously broken /dev/s.
+   try:
+   if os.stat(os.devnull).st_rdev == 0:
+   return 1
+   except FileNotFoundError:
+   return 1
+
# Portage needs to ensure a sane umask for the files it creates.
os.umask(0o22)
emerge_config = load_emerge_config(
-- 
2.0.5




[gentoo-portage-dev] [PATCH v2] Add early check for broken /dev/s (bug 538980)

2015-02-13 Thread Alexander Berntsen
Signed-off-by: Alexander Berntsen berna...@gentoo.org
Suggested-by:  Zac Medico zmed...@gentoo.org
---
Add some output. Use the more backwards compatible OSError instead of
FileNotFoundError.

 pym/_emerge/main.py | 14 ++
 1 file changed, 14 insertions(+)

diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
index 5d5e936..f1a9e18 100644
--- a/pym/_emerge/main.py
+++ b/pym/_emerge/main.py
@@ -1100,6 +1100,20 @@ def emerge_main(args=None):
# loading to allow new repos with non-existent directories
portage._sync_mode = True
 
+   # Verify that /dev/null exists and is a device file as a cheap early
+   # filter for obviously broken /dev/s.
+   try:
+   if os.stat(os.devnull).st_rdev == 0:
+   writemsg_level(Failed to validate a sane '/dev'.\n
+ '/dev/null' is not a device file.\n,
+ level=logging.ERROR, noiselevel=-1)
+   return 1
+   except OSError:
+   writemsg_level(Failed to validate a sane '/dev'.\n
+'/dev/null' does not exist.\n,
+level=logging.ERROR, noiselevel=-1)
+   return 1
+
# Portage needs to ensure a sane umask for the files it creates.
os.umask(0o22)
emerge_config = load_emerge_config(
-- 
2.0.5




Re: [gentoo-portage-dev] [PATCH] Add another check for broken /dev/s (bug 538980)

2015-02-13 Thread Zac Medico
On 02/13/2015 10:39 AM, Alexander Berntsen wrote:
 Signed-off-by: Alexander Berntsen berna...@gentoo.org
 ---
  pym/_emerge/main.py | 9 +
  1 file changed, 9 insertions(+)
 
 diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
 index f1a9e18..84094ae 100644
 --- a/pym/_emerge/main.py
 +++ b/pym/_emerge/main.py
 @@ -1114,6 +1114,15 @@ def emerge_main(args=None):
level=logging.ERROR, noiselevel=-1)
   return 1
  
 + # Verify that BASH process substitution works as another cheap early
 + # filter. Process substitution uses '/dev/fd'.
 + if portage.process.spawn_bash([[ $( (echo foo) ) == foo ]]) != 0:
 + writemsg_level(Failed to validate a sane '/dev'.\n
 +  bash process substitution doesn't work; this 
 may be an 
 +  indication of a broken '/dev/fd'.\n,
 +  level=logging.ERROR, noiselevel=-1)
 + return 1
 +
   # Portage needs to ensure a sane umask for the files it creates.
   os.umask(0o22)
   emerge_config = load_emerge_config(
 

LGTM.
-- 
Thanks,
Zac



Re: [gentoo-dev] Re: [gentoo-commits] gentoo-x86 commit in games-board/stockfish: stockfish-6.ebuild metadata.xml Manifest ChangeLog

2015-02-13 Thread hasufell
Rich Freeman:
 On Wed, Feb 11, 2015 at 2:15 PM, hasufell hasuf...@gentoo.org
 wrote:
 A team is clearly violating GLEP39 and you don't care:
 
 When did I claim to not care?
 

That's my interpretation of the council mocking those who have brought
up issues by saying:
* we cannot hold votes, because no one wants to join

To me it sounds like an excuse, because you really were unable to make
them actually do a vote.

 It may have one or many leads, and the leads are selected by
 the members of the project. This selection must occur at least
 once every 12 months, and may occur at any time.
 
 Instead we are getting tree inconsistency, because people start
 to ignore the team.
 
 That is the worst that could happen.
 
 You clearly lack imagination.  There are many things that could
 happen that are far worse than this.  Gentoo not having anybody
 maintaining any games would be a worse outcome, for starters.  What
 punishment would you deem appropriate for a team not following
 GLEP39?  We could disband it, but we're not in any hurry to do so,
 because we're not convinced that doing this will make things any
 better.
 

I don't need imagination to see that it can't get worse.

There is pretty much only one active member left and some who commit a
few things all 3-5 months.
But I'm not going to repeat things.

If you think everything will break and people will stop working on
gentoo if you fix a dysfunctional project, then let me tell you that
this already happens... things break right now and people stop working
on gentoo (or at least some areas of it) right now.

This isn't even a big deal... but because you are incapable of action
you are making it one.

 
 Maybe the solution is point 3 of GLEP39 under the rationale
 section:
 If the council does a lousy job handling global issues (or has
 no global vision), vote out the bums
 
 
 Which would be why I've encouraged you to run for Council a few
 times now if you think you'll do better.  I'm not going to
 apologize for being elected.  If you really think that games.eclass
 is the hill we should all be dying on, you can put that in your
 manifesto.  I think the urgent part of the crisis was dealt with (a
 conflict between individual maintainers and the games team, and a
 concern that people couldn't join the games team even if they
 wanted to).  We can afford to take our time to deal with the rest,
 and it is best left to those who actually care about the issue.
 

Nothing was dealt with. You just told people they should go ahead
ignoring a dysfunctional team (but you called it positively everyone
may commit games to the tree or somesuch). If you think that is a
solution, then that's exactly what gentoo will be dying on.

And no, this isn't the only incident that shows this way of thinking.
The others went similarly bad.



Re: [gentoo-portage-dev] Re: [PATCH 2/2 v2] depgraph: soname dependency resolution (282639)

2015-02-13 Thread Zac Medico
On 02/13/2015 07:03 PM, Duncan wrote:
 Zac Medico posted on Fri, 13 Feb 2015 10:35:09 -0800 as excerpted:
 
 Soname dependency resolution is enabled when --ignore-soname-deps=n is
 specified, and [...]
 
 Can that option possibly be renamed?
 
 Ignore is functionally a negative, as in don't consider.  As a 
 result, --ignore-sonames-deps=n is a double-negative that actually 
 enables something, and it becomes rather difficult to reason about what 
 you're actually telling portage to do.
 
 Unfortunately, I'm confused enough myself that I don't have any 
 suggestions for any better option name. =:^(

Well, the ignore prefix is there to express that something is being
ignored. In a couple of years, we'll be able to enable soname dependency
resolution by default, and the --ignore-soname-deps=y option will be
there for people to use in rare cases where it might be helpful (like on
outdated systems where soname metadata isn't available for installed
packages).

 In case there's any doubt about how much trouble English speakers often 
 have with multiple negation, I follow a linguists blog called LanguageLog, 
 that regularly features examples of misnegation, in which all sorts of 
 people have ended up saying the opposite of what they obviously intended 
 because of an incorrect number of negations.  People really do have 
 trouble sorting it out, and some of the examples are actually quite 
 humorous.
 
 Here's a google on misnegation.  At least from here, the top three hits 
 are Language log, with #3 being a big list of posts on the topic.
 
 https://www.google.com/search?q=misnegationie=UTF-8
 
 And here's one of the more amusing ones, a billboard at a(n apparently 
 UK) petrol/gas station:
 
 http://languagelog.ldc.upenn.edu/nll/?p=14927
 
 (FWIW, I recently emailed the author of a popular FLOSS community 
 standards blog about a misnegation as well.  He fixed it, and sent me a 
 nice reply/thanks.)
 
 
 So, umm... Let's come up with some other option name here, one that 
 doesn't invoke multiple negation to turn ON a function, and thus hurt to 
 think about, if at all possible. =:^/
 
 Tho arguably with the double negation turning something ON, at least 
 we're not misnegating here.  It's confusing and hard to think about, but 
 AFAICT, logically correct. =:^)  Of course that doesn't mean people can 
 actually /use/ it correctly, thus the problem. =:^\

I see what you mean, but I still think having ignore in then name is a
good way to express the meaning. It's similar to the --nodeps option,
which also begins with a negative.
-- 
Thanks,
Zac