Re: [gentoo-portage-dev] support multiple eclass variants (aka "unstable eclasses")

2014-07-14 Thread Sebastian Luther
Am 14.07.2014 12:49, schrieb Michael Haubenwallner:
> 
> Is there an easy way to use the eclasses from the overriding tree, but not 
> the (usually newer)
> ebuilds from there - such as 'configure but disable repo (except for use in 
> eclass-override)'?
> 

Putting */*::repo_name into p.mask should remove all effects. Let me
know if there's another effect you want to disable. You may need
--autounmask-keep-masks to prevent emerge from unmasking those ebuilds.

> Thanks!
> /haubi/
> 
> 




Re: [gentoo-portage-dev] support multiple eclass variants (aka "unstable eclasses")

2014-07-14 Thread Michael Haubenwallner

On 07/08/2014 07:11 PM, Sebastian Luther wrote:
> Am 08.07.2014 18:58, schrieb Michael Haubenwallner:
>> Hello fellow Portage developers,
>>
>> attached portage patch draft aims to allow for easy distributing eclasses to 
>> be tested by
>> multiple tinderboxes on various architectures, without being active for 
>> normal installs.
> 
> What does the patch allow you to do, that you can't do right now? (i.e.
> put an eclass with the same name in an repository and use
> eclass-overrides to force its use in another repo?)

Is there an easy way to use the eclasses from the overriding tree, but not the 
(usually newer)
ebuilds from there - such as 'configure but disable repo (except for use in 
eclass-override)'?

Thanks!
/haubi/



Re: [gentoo-portage-dev] support multiple eclass variants (aka "unstable eclasses")

2014-07-08 Thread Michael Haubenwallner

Am 2014-07-08 19:11, schrieb Sebastian Luther:
> Am 08.07.2014 18:58, schrieb Michael Haubenwallner:
>> Hello fellow Portage developers,
>>
>> attached portage patch draft aims to allow for easy distributing eclasses to 
>> be tested by
>> multiple tinderboxes on various architectures, without being active for 
>> normal installs.
> 
> What does the patch allow you to do, that you can't do right now? (i.e.
> put an eclass with the same name in an repository and use
> eclass-overrides to force its use in another repo?)

Ohw, haven't been aware of that - will try first.

Thanks!
/haubi/



Re: [gentoo-portage-dev] support multiple eclass variants (aka "unstable eclasses")

2014-07-08 Thread Sebastian Luther
Am 08.07.2014 18:58, schrieb Michael Haubenwallner:
> Hello fellow Portage developers,
> 
> attached portage patch draft aims to allow for easy distributing eclasses to 
> be tested by
> multiple tinderboxes on various architectures, without being active for 
> normal installs.

What does the patch allow you to do, that you can't do right now? (i.e.
put an eclass with the same name in an repository and use
eclass-overrides to force its use in another repo?)

> 
> Usage is to have in make.conf (or profile): PORTAGE_ECLASS_VARIANTS="testing"
> and for the eclass: to live in tree-or-overlay/eclass/testing/
> 
> Thoughts? (even for var-naming, manpage yes/no/wording, ...)
> 

There are lots of places to update (including python code). See git grep
eclass.

> Thank you!
> /haubi/
> 




[gentoo-portage-dev] support multiple eclass variants (aka "unstable eclasses")

2014-07-08 Thread Michael Haubenwallner
Hello fellow Portage developers,

attached portage patch draft aims to allow for easy distributing eclasses to be 
tested by
multiple tinderboxes on various architectures, without being active for normal 
installs.

Usage is to have in make.conf (or profile): PORTAGE_ECLASS_VARIANTS="testing"
and for the eclass: to live in tree-or-overlay/eclass/testing/

Thoughts? (even for var-naming, manpage yes/no/wording, ...)

Thank you!
/haubi/
>From 2ddc1db0f1c15873e2476fbf5ba0352464c8725a Mon Sep 17 00:00:00 2001
From: Michael Haubenwallner 
Date: Tue, 8 Jul 2014 17:48:54 +0200
Subject: [PATCH] support PORTAGE_ECLASS_VARIANTS

---
 bin/ebuild.sh | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/bin/ebuild.sh b/bin/ebuild.sh
index be044e0..366cab6 100755
--- a/bin/ebuild.sh
+++ b/bin/ebuild.sh
@@ -246,12 +246,14 @@ inherit() {
 		fi
 
 		for repo_location in "${PORTAGE_ECLASS_LOCATIONS[@]}"; do
-			potential_location="${repo_location}/eclass/${1}.eclass"
+		  for x in ${PORTAGE_ECLASS_VARIANTS:-} ''; do
+			potential_location="${repo_location}/eclass${x:+/}${x}/${1}.eclass"
 			if [[ -f ${potential_location} ]]; then
 location="${potential_location}"
 debug-print "  eclass exists: ${location}"
-break
+break 2
 			fi
+		  done
 		done
 		debug-print "inherit: $1 -> $location"
 		[[ -z ${location} ]] && die "${1}.eclass could not be found by inherit()"
-- 
1.8.3.2