[gentoo-dev] [PATCH] multilib eclass support for building binaries for none-default ABI

2013-08-25 Thread Thomas Sachau
After some discussion on IRC, it seems like limiting the building of
binaries only for the default ABI is no subject to change, but the
following workaround suggested by ssuminem seems to have been accepted
by every side, so i will include the preferred patch in one week.

workaround: add a variable, which changes the return of the function
checking for the current ABI (always true with variable, without only
true, when $ABI == $DEFAULT_ABI)

first version (multilib1.patch) directly changes the output of the
currently used multilib_is_native_abi() function:

pro: no need to change already modified ebuilds

second version (multilib2.patch) creates a new function, which should
then be used by ebuild authors to check, if they should build
ABI-specific content or not (using build_binaries() function instead of
multilib_is_native_abi() function)

pro: seperate function, so multilib_is_native_abi() can still be used,
when really just one build is needed for everyone

Happy bikesh(r)edding

-- 

Thomas Sachau
Gentoo Linux Developer
--- /usr/portage/eclass/multilib-build.eclass	2013-08-08 20:57:54.0 +0200
+++ multilib-build.eclass	2013-08-25 15:28:10.0 +0200
@@ -373,7 +373,11 @@
 
 	[[ ${#} -eq 0 ]] || die ${FUNCNAME}: too many arguments
 
-	[[ ${ABI} == ${DEFAULT_ABI} ]]
+	if [[ ${COMPLETE_MULTILIB} == yes ]] ; then
+		return 0
+	else
+		[[ ${ABI} == ${DEFAULT_ABI} ]]
+	fi
 }
 
 _MULTILIB_BUILD=1
--- /usr/portage/eclass/multilib-build.eclass	2013-08-08 20:57:54.0 +0200
+++ multilib-build.eclass	2013-08-25 15:30:40.0 +0200
@@ -376,5 +376,17 @@
 	[[ ${ABI} == ${DEFAULT_ABI} ]]
 }
 
+build_binaries() {
+	debug-print-function ${FUNCNAME} ${@}
+
+	[[ ${#} -eq 0 ]] || die ${FUNCNAME}: too many arguments
+
+	if [[ ${COMPLETE_MULTILIB} == yes ]] ; then
+		return 0
+	else
+		multilib_is_native_abi
+	fi
+}
+		
 _MULTILIB_BUILD=1
 fi


signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] Moving more arches to dev profiles

2013-08-25 Thread Rich Freeman
On Sat, Aug 24, 2013 at 11:39 AM, Chí-Thanh Christopher Nguyễn
chith...@gentoo.org wrote:
 Jeroen Roovers schrieb:
 Mixing stable and testing is precisely what package
 maintainers (hopefully) do when committing new versions: building and
 running new software on a known to be stable platform on the premise
 that the new software is likely to be merged into the stable branch
 (before the platform changes too much).

 At least for x11 maintained packages, we don't support mixing of stable and
 unstable parts of X in the way that you suggest.

 We don't mind however whether the rest of the system is stable or not.

Ideally such restrictions should be reflected in the dependencies -
for many packages they are (for example mythtv and mythplugins require
matching versions and this is set in the mythplugins dependencies).

However, in general supporting a mixing stable and unstable doesn't
mean doing so for what amounts to split packages.  Nobody would really
expect kwin 4.10 to work with plasma-runtime 4.11, and so on.

I don't really think there are any real problems here with Gentoo.  I
think almost all maintainers evaluate individual bugs on their merits
and don't use non-standard configs as a cop-out.  If it breaks with
reasonable but non-standard CFLAGS they should be filtered (again,
within reason).  If there is some missing version dep then it should
be stated.  As jer pointed out sometimes you get reverse dep issues
that aren't straightforward to fix.  In those cases the solution
usually isn't to close as INVALID, but to start a tracker to fix the
issue (since sooner or later it has to be fixed when the dep goes
stable).  Not all bugs can be fixed in 5 minutes, and I think users
generally appreciate that.  Likewise, some configs just aren't
supportable and a brief comment and a close-out is perfectly fine.
Like I said - take bugs on their merits.

Rich



Re: [gentoo-dev] [PATCH] multilib eclass support for building binaries for none-default ABI

2013-08-25 Thread Ulrich Mueller
 On Sun, 25 Aug 2013, Thomas Sachau wrote:

 workaround: add a variable, which changes the return of the function
 checking for the current ABI (always true with variable, without
 only true, when $ABI == $DEFAULT_ABI)

Would this variable be set by the user, in profiles, or in ebuilds?

 first version (multilib1.patch) directly changes the output of the
 currently used multilib_is_native_abi() function:

I think this would be very misleading. If a function is called
multilib_is_native_abi then it should test for exactly that, not for
something else.

 second version (multilib2.patch) creates a new function, which
 should then be used by ebuild authors to check, if they should build
 ABI-specific content or not (using build_binaries() function instead
 of multilib_is_native_abi() function)

+build_binaries() {

Name space pollution? Prefix with multilib please.

+   if [[ ${COMPLETE_MULTILIB} == yes ]] ; then
+   return 0
+   else
+   multilib_is_native_abi
+   fi

This can be expressed much shorter (and clearer):

[[ ${COMPLETE_MULTILIB} == yes ]] || multilib_is_native_abi

But allow me a stupid question, why do you want to build binaries for
other ABIs anyway? It's called multilib, not multibin.

Ulrich



Re: [gentoo-dev] [PATCH] multilib eclass support for building binaries for none-default ABI

2013-08-25 Thread Michał Górny
Dnia 2013-08-25, o godz. 16:15:31
Ulrich Mueller u...@gentoo.org napisał(a):

  On Sun, 25 Aug 2013, Thomas Sachau wrote:
 
  first version (multilib1.patch) directly changes the output of the
  currently used multilib_is_native_abi() function:
 
 I think this would be very misleading. If a function is called
 multilib_is_native_abi then it should test for exactly that, not for
 something else.

It's for multilib-portage. It hacks over everything in the environment.
None of multilib variables are really meaningful in this context, so I
don't have a problem with hacking that behavior.

-- 
Best regards,
Michał Górny


signature.asc
Description: PGP signature


Re: [gentoo-dev] [PATCH] multilib eclass support for building binaries for none-default ABI

2013-08-25 Thread Thomas Sachau
Ulrich Mueller schrieb:
 On Sun, 25 Aug 2013, Thomas Sachau wrote:
 
 workaround: add a variable, which changes the return of the function
 checking for the current ABI (always true with variable, without
 only true, when $ABI == $DEFAULT_ABI)
 
 Would this variable be set by the user, in profiles, or in ebuilds?

This variable can be set by users and profiles, when they want binaries
for a different ABI (e.g. 64bit toolchain with 32bit userland).

 
 first version (multilib1.patch) directly changes the output of the
 currently used multilib_is_native_abi() function:
 
 I think this would be very misleading. If a function is called
 multilib_is_native_abi then it should test for exactly that, not for
 something else.
 
 second version (multilib2.patch) creates a new function, which
 should then be used by ebuild authors to check, if they should build
 ABI-specific content or not (using build_binaries() function instead
 of multilib_is_native_abi() function)
 
 +build_binaries() {
 
 Name space pollution? Prefix with multilib please.

i dont really care about the naming, so if you prefer some multilib in
there, how about this:

multilib_build_binaries()?

 
 + if [[ ${COMPLETE_MULTILIB} == yes ]] ; then
 + return 0
 + else
 + multilib_is_native_abi
 + fi
 
 This can be expressed much shorter (and clearer):
 
   [[ ${COMPLETE_MULTILIB} == yes ]] || multilib_is_native_abi
 
 But allow me a stupid question, why do you want to build binaries for
 other ABIs anyway? It's called multilib, not multibin.

I already wrote about a setup needing the above. If a user only enables
ab_x86_32 for ebuilds with binary-restrictions, they wont get any binary
at all.
Pretty bad, when you try a reboot with e.g. no udev binaries. ;-)

In addition, users previously had the choice with multilib-portage to
build binaries for some or all target ABIs. Restricting the building of
binaries to the default ABI removes this ability from users.


-- 

Thomas Sachau
Gentoo Linux Developer



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] [PATCH] multilib eclass support for building binaries for none-default ABI

2013-08-25 Thread Michał Górny
Dnia 2013-08-25, o godz. 21:34:09
Thomas Sachau to...@gentoo.org napisał(a):

 Ulrich Mueller schrieb:
  On Sun, 25 Aug 2013, Thomas Sachau wrote:
  
  workaround: add a variable, which changes the return of the function
  checking for the current ABI (always true with variable, without
  only true, when $ABI == $DEFAULT_ABI)
  
  Would this variable be set by the user, in profiles, or in ebuilds?
 
 This variable can be set by users and profiles, when they want binaries
 for a different ABI (e.g. 64bit toolchain with 32bit userland).

Where it simply won't work since executables for the native ABI will
overwrite earlier ones.

-- 
Best regards,
Michał Górny


signature.asc
Description: PGP signature


Re: [gentoo-dev] [PATCH] multilib eclass support for building binaries for none-default ABI

2013-08-25 Thread Thomas Sachau
Michał Górny schrieb:
 Dnia 2013-08-25, o godz. 21:34:09
 Thomas Sachau to...@gentoo.org napisał(a):
 
 Ulrich Mueller schrieb:
 On Sun, 25 Aug 2013, Thomas Sachau wrote:

 workaround: add a variable, which changes the return of the function
 checking for the current ABI (always true with variable, without
 only true, when $ABI == $DEFAULT_ABI)

 Would this variable be set by the user, in profiles, or in ebuilds?

 This variable can be set by users and profiles, when they want binaries
 for a different ABI (e.g. 64bit toolchain with 32bit userland).
 
 Where it simply won't work since executables for the native ABI will
 overwrite earlier ones.
 

You obviously dont read my complete mails, otherwise you would have seen
my later example, which works perfectly fine, once this patch applied:
For the complete userland, set ABI_X86=32, so no 64bit target, no
executables for the native ABI, nothing overwriting the 32bit binaries
= it works.

Of course, if there are further issues with the ebuilds (like only parts
of the dependencies converted with those needed for the binaries left
out), it may cause issues with the current situation of the eclass and
ebuild, but will again allow users of multilib-portage to do exactly,
what i described, since they already are able to build the dependencies
for their target ABI. :-)

-- 

Thomas Sachau
Gentoo Linux Developer



signature.asc
Description: OpenPGP digital signature


[gentoo-dev] Automated Package Removal and Addition Tracker, for the week ending 2013-08-25 23h59 UTC

2013-08-25 Thread Robin H. Johnson
The attached list notes all of the packages that were added or removed
from the tree, for the week ending 2013-08-25 23h59 UTC.

Removals:
dev-python/python-quantumclient 2013-08-20 16:38:47 prometheanfire
sys-cluster/quantum 2013-08-20 16:39:43 prometheanfire
sci-libs/scikits_statsmodels2013-08-20 20:36:23 bicatali
sec-policy/selinux-tvtime   2013-08-23 18:11:24 swift
dev-ruby/fssm   2013-08-24 06:55:26 graaff
dev-ruby/autotest-rails 2013-08-24 07:05:09 graaff
dev-ruby/canny  2013-08-24 07:08:27 graaff
dev-ruby/cgikit 2013-08-24 07:09:00 graaff
dev-ruby/color-tools2013-08-24 07:09:40 graaff
dev-ruby/diff   2013-08-24 07:10:21 graaff
dev-ruby/eruby  2013-08-24 07:11:06 graaff
dev-ruby/extensions 2013-08-24 07:12:03 graaff
dev-ruby/fusefs 2013-08-24 07:13:10 graaff
dev-ruby/imlib2-ruby2013-08-24 07:14:21 graaff
dev-ruby/IO-Reactor 2013-08-24 07:14:50 graaff
dev-ruby/jabber4r   2013-08-24 07:15:15 graaff
dev-ruby/mega-modules   2013-08-24 07:15:54 graaff
dev-ruby/merb-slices2013-08-24 07:16:20 graaff
dev-ruby/nano-methods   2013-08-24 07:18:32 graaff
dev-ruby/needle 2013-08-24 07:19:13 graaff
dev-ruby/net-geoip  2013-08-24 07:19:34 graaff
dev-ruby/nora   2013-08-24 07:20:05 graaff
dev-ruby/osmlib-base2013-08-24 07:20:22 graaff
dev-ruby/piston 2013-08-24 07:20:46 graaff
dev-ruby/plruby 2013-08-24 07:22:12 graaff
dev-ruby/quixml 2013-08-24 07:22:37 graaff
dev-ruby/rbbr   2013-08-24 07:23:00 graaff
dev-ruby/rflickr2013-08-24 07:26:14 graaff
dev-ruby/ruby-breakpoint2013-08-24 07:26:37 graaff
dev-ruby/ruby-chasen2013-08-24 07:27:00 graaff
dev-ruby/ruby-eb2013-08-24 07:27:23 graaff
dev-ruby/rubyfilter 2013-08-24 07:27:45 graaff
dev-ruby/ruby-freedb2013-08-24 07:28:05 graaff
dev-ruby/ruby-gd2013-08-24 07:28:31 graaff
dev-ruby/ruby-gsl   2013-08-24 07:30:43 graaff
dev-ruby/ruby-irc   2013-08-24 07:31:01 graaff
dev-ruby/ruby-password  2013-08-24 07:31:20 graaff
dev-ruby/ruby-pcap  2013-08-24 07:31:55 graaff
dev-ruby/shipping   2013-08-24 07:32:18 graaff
dev-ruby/stompserver2013-08-24 07:33:44 graaff
dev-ruby/tclink 2013-08-24 07:34:24 graaff
dev-ruby/webrat 2013-08-24 07:34:54 graaff
dev-ruby/xml-mapping2013-08-24 07:35:19 graaff
dev-ruby/xmpp4r 2013-08-24 07:35:41 graaff

Additions:
x11-plugins/bitlbee-steam   2013-08-19 00:36:18 hasufell
dev-ruby/network_interface  2013-08-19 22:41:53 zerochaos
dev-ruby/commander  2013-08-19 22:42:44 mrueg
dev-ruby/colorator  2013-08-19 22:48:22 mrueg
dev-ruby/directory_watcher  2013-08-20 00:16:39 mrueg
dev-ruby/fast-stemmer   2013-08-20 00:22:19 mrueg
dev-ruby/factory_girl   2013-08-20 03:11:24 zerochaos
dev-ruby/database_cleaner   2013-08-20 03:58:12 zerochaos
dev-ruby/shoulda-matchers   2013-08-20 04:11:15 zerochaos
sys-cluster/neutron 2013-08-20 16:29:16 prometheanfire
sys-cluster/openstack-meta  2013-08-20 18:17:49 prometheanfire
dev-python/python-neutronclient 2013-08-20 18:37:30 prometheanfire
dev-python/statsmodels  2013-08-20 20:29:22 bicatali
dev-python/python-quantumclient 2013-08-22 04:49:05 prometheanfire
media-gfx/fim   2013-08-23 12:40:04 xmw
mail-filter/sieve-connect   2013-08-23 12:40:39 hasufell
dev-python/requests-oauthlib2013-08-24 07:36:49 ercpe
dev-python/twython  2013-08-24 07:49:44 ercpe
dev-haskell/monadcatchio-transformers   2013-08-25 04:48:16 qnikst
dev-haskell/maccatcher  2013-08-25 04:54:53 qnikst
dev-haskell/aeson   2013-08-25 04:58:59 qnikst
dev-haskell/glob2013-08-25 05:08:55 qnikst
dev-haskell/ieee754 2013-08-25 05:15:09 qnikst
dev-haskell/erf