summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Elio 'Flameeyes' Pettenò <flameeyes@gmail.com>2010-05-03 20:20:41 +0200
committerDiego Elio 'Flameeyes' Pettenò <flameeyes@gmail.com>2010-05-03 20:20:41 +0200
commit0f2984ead4164a7647e71de9bcf381f77980586c (patch)
treec8e9e17e6c4a61c14f51ee074a0c8e8d3dfaf839
parentMake sure to prepare the kernel to build modules' ebuilds. (diff)
downloadflameeyes-tinderbox-0f2984ead4164a7647e71de9bcf381f77980586c.tar.gz
flameeyes-tinderbox-0f2984ead4164a7647e71de9bcf381f77980586c.tar.bz2
flameeyes-tinderbox-0f2984ead4164a7647e71de9bcf381f77980586c.zip
Try to recover if test dependencies cause cycles that Portage cannot unbreak.
-rwxr-xr-xemerge-wrapper.sh14
1 files changed, 13 insertions, 1 deletions
diff --git a/emerge-wrapper.sh b/emerge-wrapper.sh
index b1ef0c4..571a382 100755
--- a/emerge-wrapper.sh
+++ b/emerge-wrapper.sh
@@ -14,7 +14,19 @@ echo -5 | etc-update
if [[ $res != 0 ]]; then
if ! fgrep -q ">>> emerge" /var/log/emerge.log; then
- echo "$1 merge #rejected" | bti
+ # Here it means that the merge was rejected; the common case
+ # it's a cyclic dependency that Portage cannot break, which is
+ # unfortunately common when enabling tests e.g. with Ruby-NG
+ # ebuilds. To try recovering from this, try a merge without
+ # test features enabled.
+ if [[ -z "${FEATURES}" ]]; then
+ FEATURES=-test $0 "$@"
+ else
+ # This only hits the second time, so we're safely assuming
+ # that the package will reject to be merged as it is, why,
+ # we'll have to check.
+ echo "$1 merge #rejected" | bti
+ fi
fi
fi