Re: [gentoo-dev] status of bugs blocking gcc-4.8.3

2014-10-31 Thread Luca Barbato

On 30/10/14 15:06, Jan Kundrát wrote:

On Saturday, 25 October 2014 12:47:21 CEST, Luca Barbato wrote:

The ABI mismatch is due the library not being versioned properly as
usual?


Please note that this would be a hard thing to do. This is not just a
matter of calling an appropriate version of a given function; there are
no guarantees about the internal layout of the data structures, etc.
Furthermore, portions of C++ code might be inlined, so whenever you have
a library compiled with different GCC versions, these cannot exchange
any data which embed a C++11 data type inside. That's quite a bummer --
std::string and std::list have both changed in C++11 (forbidden
ref-counting of std::string and O(1) size of std::list::size()). The
upstream's promise is that the ABI will eventually ebcome stable when
they remove the experimental label on their C++11 support.

I suspect that the only solution would be a full ABI version number
change at that time, though, and people want to avoid doing this because
that will of course break all C++ programs out there. It would be
terrific if the GCC guys provided a reasonable roadmap, because saying
we support C++11 while also saying don't combine code built by 4.7
and 4.8, that's totally unsupported is a bit strange. Yes, limited time
and limited manpower and what not, but it's still something which makes
using all of the C++11 features a very risky business.


And obviously providing libstdc++ and libstdc++11 (and matching headers) 
is not an option =\


_quite_ annoying indeed

lu - hoping rust won't have such issues.





Re: [gentoo-dev] more help needed with gcc-4.8 stabilization, chromium starts heavily using C++11

2014-10-31 Thread Diego Elio Pettenò
On 19 October 2014 16:57, hasufell hasuf...@gentoo.org wrote:
 If maintainers want to NEEDINFO or WONTFIX a tinderbox bug, well,
 they'll be the ones picking up the pieces when the gcc upgrade moves
 ahead.

 We are all picking up the pieces.

 I don't get why anybody wouldn't like seeing them.


 I do, it's childish and uncollaborative behavior from that person
 closing the bugs (any1 still wondering who we are talking about?). And
 that behavior is tolerated. Are you saying you want to change something
 about it?

So who wants to pick up the pieces now? Because I'm almost pissed off
enough to turn down the tinderbox and give a big FU to Gentoo already.
https://bugs.gentoo.org/show_bug.cgi?id=527608

Diego Elio Pettenò — Flameeyes
flamee...@flameeyes.eu — http://blog.flameeyes.eu/



Re: [gentoo-dev] more help needed with gcc-4.8 stabilization, chromium starts heavily using C++11

2014-10-31 Thread Jeroen Roovers
On Fri, 31 Oct 2014 16:28:56 +
Diego Elio Pettenò flamee...@flameeyes.eu wrote:

 So who wants to pick up the pieces now? Because I'm almost pissed off
 enough to turn down the tinderbox and give a big FU to Gentoo already.
 https://bugs.gentoo.org/show_bug.cgi?id=527608

Apparently Mr. Frysinger needs an education?


 jer



Re: [gentoo-dev] more help needed with gcc-4.8 stabilization, chromium starts heavily using C++11

2014-10-31 Thread Rich Freeman
On Fri, Oct 31, 2014 at 12:28 PM, Diego Elio Pettenò
flamee...@flameeyes.eu wrote:
 On 19 October 2014 16:57, hasufell hasuf...@gentoo.org wrote:
 If maintainers want to NEEDINFO or WONTFIX a tinderbox bug, well,
 they'll be the ones picking up the pieces when the gcc upgrade moves
 ahead.

 We are all picking up the pieces.

 I don't get why anybody wouldn't like seeing them.


 I do, it's childish and uncollaborative behavior from that person
 closing the bugs (any1 still wondering who we are talking about?). And
 that behavior is tolerated. Are you saying you want to change something
 about it?

 So who wants to pick up the pieces now? Because I'm almost pissed off
 enough to turn down the tinderbox and give a big FU to Gentoo already.
 https://bugs.gentoo.org/show_bug.cgi?id=527608

I'm not sure who owns policy around bugzilla.  If nothing else I'm
happy to put this on the next Council agenda.  If QA or Comrel wants
to step in sooner they're welcome to, but if they're looking for a
policy to enforce the Council could probably provide one.

Self-contained bugs in general make sense, and I'm all for finding a
better solution than what the tinderbox currently supplies.  However,
until that solution comes along I think we're better off having
tinderbox runs than not having them.

If somebody took the time to systematically test my packages and the
biggest issue was that I had to fetch a URL, then I'd do them the
favor of fetching it and attaching the file myself, because I want to
know when my stuff breaks.  I can't always fix every bug as quickly as
I'd like to, but I'm not going to just close them and stick my head in
the sand.

Why are we all here anyway?  If we want to all play games I'm sure we
can make life miserable for each other, but frankly I'd rather spend
my time making my favorite distro better, and I can't imagine why else
anybody would be wasting their time reading my emails...  :)

--
Rich



Re: [gentoo-dev] status of bugs blocking gcc-4.8.3

2014-10-31 Thread Rich Freeman
On Fri, Oct 31, 2014 at 12:25 PM, Luca Barbato lu_z...@gentoo.org wrote:

 lu - hoping rust won't have such issues.


Funny - I first heard of this earlier this week.  Biggest issue I see
with rust is that it seems like it has joined the
every-language-needs-its-own-package-manager club, and it seems to me
that it really encourages static linking.  The build system doesn't
seem particularly distro-friendly, let alone source-based
distro-friendly.

However, I have only spent about an hour learning about rust, so I'm
certainly interested if others know better.

I really like the concept though.  ADA has always been on my list of
things I'd love to spend time on someday, and Rust seems to be a more
modern take on the concept.

--
Rich



Re: [gentoo-dev] more help needed with gcc-4.8 stabilization, chromium starts heavily using C++11

2014-10-31 Thread hasufell
On 10/31/2014 05:58 PM, Jeroen Roovers wrote:
 On Fri, 31 Oct 2014 16:28:56 +
 Diego Elio Pettenò flamee...@flameeyes.eu wrote:
 
 So who wants to pick up the pieces now? Because I'm almost pissed off
 enough to turn down the tinderbox and give a big FU to Gentoo already.
 https://bugs.gentoo.org/show_bug.cgi?id=527608
 
 Apparently Mr. Frysinger needs an education?
 

Signs of his inability to collaborate in some situations have come up
repeatedly on this list, be it problems with crossdev/multilib, games
team and whatnot.

Most of these were either ignored or had to go through a council
decision. That's not really efficient and cannot work long term.

Do we treat some developers differently? And does all this social status
crap really improve collaboration overall?



Re: [gentoo-dev] Re: [gentoo-commits] gentoo-x86 commit in net-nds/openldap/files: openldap-2.4.40-db-6.patch

2014-10-31 Thread Robin H. Johnson
On Wed, Oct 29, 2014 at 05:42:57AM -0400, Rich Freeman wrote:
 On Tue, Oct 28, 2014 at 11:37 PM, Vadim A. Misbakh-Soloviov
 m...@mva.name wrote:
  Btw, since Gentoo do not (mostly) provide packages itself, but only build
  instructions (ebuild), can't we just ship ebuild that patches openldap
  violates to force to use db6=19 with bindist USE?
 Can we do it legally?  Sure.
 
 Will we do it?  I think that depends on whether the maintainer or
 somebody else wants to keep up with the necessary work if upstream has
 dropped it.
 
 It is really up to the maintainer.  Generally we try to follow
 upstream because we don't have the manpower to do otherwise most of
 the time.
Upstream openldap notes that Oracle's lawyers has pursued anybody found
using the AGPL3 BDB  OpenLDAP together.

So unless you have a commercial license [1] for BDB to escape AGPL3 in
that case, you'll find yourself in a sticky situation quickly.

Upstream asked me to make it harder for users to get burnt like this,
and I agreed. See my comments in the original bug (bug 525110#c16), if
there is a user that DOES have that Oracle license [2], I'll find a way
to support them via useflag.

[1] https://en.wikipedia.org/wiki/Berkeley_DB#Licensing
As of July 2011, Oracle's list price for non-copyleft Berkeley DB
licenses varies between 900 and 13,800 USD per processor.

[2] This puts it in the same camp as the original Oracle OCI8 support we
put in PHP; before oracle-instantclient-* packages were in the tree.
There was demand, just non-trivial to support, as we as devs could not
easily test it.

-- 
Robin Hugh Johnson
Gentoo Linux: Developer, Infrastructure Lead
E-Mail : robb...@gentoo.org
GnuPG FP   : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85



Re: [gentoo-dev] more help needed with gcc-4.8 stabilization, chromium starts heavily using C++11

2014-10-31 Thread Diego Elio Pettenò
On 31 October 2014 22:38, hasufell hasuf...@gentoo.org wrote:
 Signs of his inability to collaborate in some situations have come up
 repeatedly on this list, be it problems with crossdev/multilib, games
 team and whatnot.

 Most of these were either ignored or had to go through a council
 decision. That's not really efficient and cannot work long term.

 Do we treat some developers differently? And does all this social status
 crap really improve collaboration overall?

And we lost more than one developer in the process because of that.
And guess what? After someone reaching out to me off list telling me
to, essentially, work around him or swallow it, I'm more convinced
than ever that either someone else (Council? QA? the Pope?) fixes
this, or I'll add myself to that list.

Seriously, he essentially has been ignoring me altogether *when I was
voted the freaking QA lead*.

(To be fair, huge thanks to Rich and Jer for their help here, it does
feel good to know that at least some of the colleagues do have my
back.)

Diego Elio Pettenò — Flameeyes
flamee...@flameeyes.eu — http://blog.flameeyes.eu/



Re: [gentoo-dev] more help needed with gcc-4.8 stabilization, chromium starts heavily using C++11

2014-10-31 Thread Rich Freeman
I'm going to speak generally - this is a list and not really the best
way of dealing with individuals.  If you think the principles apply to
you, feel free to apply them.

On Fri, Oct 31, 2014 at 7:50 PM, Diego Elio Pettenò
flamee...@flameeyes.eu wrote:
 I'm more convinced than ever that either someone else (Council? QA?
 the Pope?) fixes this, or I'll add myself to that list.

The fundamental problem here is that we're a volunteer organization,
which means we're limited to the resources people offer us.  Sometimes
these resources are offered conditionally, and our choice can end up
being take it or leave it.

I do tend to agree that accepting the gift with strings can cost you
more in the long term than just doing without.

The problem comes when somebody in a critical position wants to take a
hard stand on something.  You either end up making an exception for
them, relaxing policy for everybody, or risk being left in a hard
place if they choose to stop contributing.

Now, something that we have been trying to do is remove artificial
roadblocks.  For example, if somebody is standing in the way of others
contributing the Council can step in and tell the others that they can
go ahead and prevent anybody from interfering from them.  Examples of
this are somebody wants to add support for some feature to a bunch
packages and assume responsibility any issues, and a maintainer wants
to block them.

What we can't do is force somebody to contribute.  If somebody says
that if we don't do multilib their way, they'll stop being the only
libreoffice maintainer, and nobody else wants to maintain libreoffice,
then we are left in a hard place (completely contrived scenario).

We can stop people from interfering, but we can't make them contribute.

So, in a case like this we certainly could prevent somebody from
closing a bug, but we certainly can't force them to fix a bug.  We
could also block somebody from submitting tinderbox bugs without
attached logs, but we can't force them to run a tinderbox.

So, if there is a better way, I'm all ears for constructive
suggestions.  By constructive I mean that somebody who comes up with a
script that automatically retrieves build logs and attaches them to
bugs is being more helpful than somebody who says that somebody else
should come up with such a script, and so on.  That doesn't mean that
we can't talk about solutions before we build them - only that it
isn't helpful when we basically demand that others build them for us.

--
Rich



Re: [gentoo-dev] more help needed with gcc-4.8 stabilization, chromium starts heavily using C++11

2014-10-31 Thread Ian Stakenvicius
Sorry for top posting.  I volunteer to write something to get the logs attached 
to bugs.  I'll do it next week. Whether it be something the tinderbox can run 
or something separate that will use pybugz to find bugs and then attach 
whatever logs are pointed to by URLs, etc, I'll figure it out.

Sent from an iPhone, sorry for the HTML...

 On Oct 31, 2014, at 7:50 PM, Diego Elio Pettenò flamee...@flameeyes.eu 
 wrote:
 
 On 31 October 2014 22:38, hasufell hasuf...@gentoo.org wrote:
 Signs of his inability to collaborate in some situations have come up
 repeatedly on this list, be it problems with crossdev/multilib, games
 team and whatnot.
 
 Most of these were either ignored or had to go through a council
 decision. That's not really efficient and cannot work long term.
 
 Do we treat some developers differently? And does all this social status
 crap really improve collaboration overall?
 
 And we lost more than one developer in the process because of that.
 And guess what? After someone reaching out to me off list telling me
 to, essentially, work around him or swallow it, I'm more convinced
 than ever that either someone else (Council? QA? the Pope?) fixes
 this, or I'll add myself to that list.
 
 Seriously, he essentially has been ignoring me altogether *when I was
 voted the freaking QA lead*.
 
 (To be fair, huge thanks to Rich and Jer for their help here, it does
 feel good to know that at least some of the colleagues do have my
 back.)
 
 Diego Elio Pettenò — Flameeyes
 flamee...@flameeyes.eu — http://blog.flameeyes.eu/
 



[gentoo-portage-dev] [PATCH] dispatch-conf: symlink support for bug #485598

2014-10-31 Thread Zac Medico
This includes numerous logic adjustments that are needed to support
protected symlinks. The new diff_mixed function is used for diffs
between arbitrary file types. For example, a diff between two symlinks
looks like this:

-SYM: /foo/bar - baz
+SYM: /foo/bar - blah

X-Gentoo-Bug: 485598
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=485598
---
This updated patch adds a diff_mixed_wrapper class which is used to simplify
diff_mixed usage.

 bin/dispatch-conf|  39 ++-
 pym/portage/dispatch_conf.py | 150 +--
 2 files changed, 151 insertions(+), 38 deletions(-)

diff --git a/bin/dispatch-conf b/bin/dispatch-conf
index 6d2ae94..412dcdc 100755
--- a/bin/dispatch-conf
+++ b/bin/dispatch-conf
@@ -15,15 +15,15 @@ from __future__ import print_function
 
 from stat import ST_GID, ST_MODE, ST_UID
 from random import random
-import atexit, re, shutil, stat, sys
+import atexit, io, re, functools, shutil, sys
 from os import path as osp
 if osp.isfile(osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), 
.portage_not_installed)):
sys.path.insert(0, 
osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), pym))
 import portage
 portage._internal_caller = True
 from portage import os
-from portage import _unicode_decode
-from portage.dispatch_conf import diffstatusoutput
+from portage import _encodings, _unicode_decode
+from portage.dispatch_conf import diffstatusoutput, diff_mixed_wrapper
 from portage.process import find_binary, spawn
 
 FIND_EXTANT_CONFIGS  = find '%s' %s -name '._cfg_%s' ! -name '.*~' ! 
-iname '.*.bak' -print
@@ -72,6 +72,8 @@ def cmd_var_is_valid(cmd):
 
 return find_binary(cmd[0]) is not None
 
+diff = diff_mixed_wrapper(diffstatusoutput, DIFF_CONTENTS)
+
 class dispatch:
 options = {}
 
@@ -89,8 +91,6 @@ class dispatch:
or not os.path.exists(self.options[log-file]):
 open(self.options[log-file], 'w').close() # Truncate it
 os.chmod(self.options[log-file], 0o600)
-else:
-self.options[log-file] = /dev/null
 
 pager = self.options.get(pager)
 if pager is None or not cmd_var_is_valid(pager):
@@ -148,9 +148,6 @@ class dispatch:
 portage.util.shlex_split(
 portage.settings.get('CONFIG_PROTECT_MASK', '')))
 
-def diff(file1, file2):
-return diffstatusoutput(DIFF_CONTENTS, file1, file2)
-
 #
 # Remove new configs identical to current
 #  and
@@ -166,7 +163,7 @@ class dispatch:
 mrgfail = portage.dispatch_conf.rcs_archive(archive, 
conf['current'], conf['new'], mrgconf)
 else:
 mrgfail = portage.dispatch_conf.file_archive(archive, 
conf['current'], conf['new'], mrgconf)
-if os.path.exists(archive + '.dist'):
+if os.path.lexists(archive + '.dist'):
 unmodified = len(diff(conf['current'], archive + '.dist')[1]) 
== 0
 else:
 unmodified = 0
@@ -181,7 +178,7 @@ class dispatch:
 
 if newconf == mrgconf and \
 self.options.get('ignore-previously-merged') != 'yes' and \
-os.path.exists(archive+'.dist') and \
+os.path.lexists(archive+'.dist') and \
 len(diff(archive+'.dist', conf['new'])[1]) == 0:
 # The current update is identical to the archived .dist
 # version that has previously been merged.
@@ -254,6 +251,13 @@ class dispatch:
 
 valid_input = qhtnmlezu
 
+def diff_pager(file1, file2):
+cmd = self.options['diff'] % (file1, file2)
+cmd += pager
+spawn_shell(cmd)
+
+diff_pager = diff_mixed_wrapper(diff_pager)
+
 for conf in confs:
 count = count + 1
 
@@ -266,14 +270,10 @@ class dispatch:
 while 1:
 clear_screen()
 if show_new_diff:
-cmd = self.options['diff'] % (conf['new'], mrgconf)
-cmd += pager
-spawn_shell(cmd)
+diff_pager(conf['new'], mrgconf)
 show_new_diff = 0
 else:
-cmd = self.options['diff'] % (conf['current'], newconf)
-cmd += pager
-spawn_shell(cmd)
+diff_pager(conf['current'], newconf)
 
 print()
 print(' (%i of %i) -- %s' % (count, len(confs), conf 
['current']))
@@ -357,7 +357,12 @@ class dispatch:
 def replace (self, newconf, curconf):
 Replace current config with the new/merged version.  Also logs
 the diff of what changed into the configured log file.
-os.system((DIFF_CONTENTS % (curconf, newconf)) + '' + 
self.options[log-file])
+if log-file in self.options:
+status, output = diff(curconf, newconf)
+with