aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar David Leverton <levertond@googlemail.com> 2015-03-21 20:04:30 +0000
committerAvatar David Leverton <levertond@googlemail.com> 2015-03-21 20:04:30 +0000
commitbfb1bd7682b4a678cfa7dccb87d1f49d842317ac (patch)
tree2616e7da60c67261167d9d7a7ef5732d4c44691b
parentef6930e03428ec512c9d564886c06078e5238d45 (diff)
downloadpaludis-bfb1bd7682b4a678cfa7dccb87d1f49d842317ac.tar.gz
paludis-bfb1bd7682b4a678cfa7dccb87d1f49d842317ac.tar.xz
Only check IUSE_EFFECTIVE for EAPI 5
In other EAPIs the value isn't set by C++, and therefore may leak in from the calling environment.
-rw-r--r--paludis/repositories/e/ebuild/0/list_functions.bash7
-rw-r--r--paludis/repositories/e/ebuild/5/Makefile.am1
-rw-r--r--paludis/repositories/e/ebuild/5/list_functions.bash41
3 files changed, 42 insertions, 7 deletions
diff --git a/paludis/repositories/e/ebuild/0/list_functions.bash b/paludis/repositories/e/ebuild/0/list_functions.bash
index 0c5d91a..4998c2b 100644
--- a/paludis/repositories/e/ebuild/0/list_functions.bash
+++ b/paludis/repositories/e/ebuild/0/list_functions.bash
@@ -37,13 +37,6 @@ usev()
useq()
{
- if [[ -n "${IUSE_EFFECTIVE:+x}" ]] ; then
- local i=( $IUSE_EFFECTIVE )
- if ! hasq ${1#!} "${i[@]#[+-]}" ; then
- die "Flag '${1#!}' is not included in IUSE_EFFECTIVE=\"${IUSE_EFFECTIVE}\""
- fi
- fi
-
if [[ "${1:0:1}" == "!" ]] ; then
! hasq "${1#!}" "${USE}"
else
diff --git a/paludis/repositories/e/ebuild/5/Makefile.am b/paludis/repositories/e/ebuild/5/Makefile.am
index fbcb919..ced4e53 100644
--- a/paludis/repositories/e/ebuild/5/Makefile.am
+++ b/paludis/repositories/e/ebuild/5/Makefile.am
@@ -7,6 +7,7 @@ libexecprog5dir = $(libexecdir)/paludis/5
libexecprog5_SCRIPTS = \
src_test.bash \
usex.bash \
+ list_functions.bash \
output_functions.bash
TESTS =
diff --git a/paludis/repositories/e/ebuild/5/list_functions.bash b/paludis/repositories/e/ebuild/5/list_functions.bash
new file mode 100644
index 0000000..7cb22ad
--- /dev/null
+++ b/paludis/repositories/e/ebuild/5/list_functions.bash
@@ -0,0 +1,41 @@
+#!/usr/bin/env bash
+# vim: set sw=4 sts=4 et :
+
+# Copyright (c) 2006, 2009, 2012 Ciaran McCreesh
+# Copyright (c) 2015 David Leverton
+#
+# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005
+# Gentoo Foundation and distributed under the terms of the GNU General
+# Public License v2.
+#
+# This file is part of the Paludis package manager. Paludis is free software;
+# you can redistribute it and/or modify it under the terms of the GNU General
+# Public License, version 2, as published by the Free Software Foundation.
+#
+# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place, Suite 330, Boston, MA 02111-1307 USA
+
+ebuild_load_module --older list_functions
+
+useq()
+{
+ if [[ -n "${IUSE_EFFECTIVE:+x}" ]] ; then
+ local i=( $IUSE_EFFECTIVE )
+ if ! hasq ${1#!} "${i[@]#[+-]}" ; then
+ die "Flag '${1#!}' is not included in IUSE_EFFECTIVE=\"${IUSE_EFFECTIVE}\""
+ fi
+ fi
+
+ if [[ "${1:0:1}" == "!" ]] ; then
+ ! hasq "${1#!}" "${USE}"
+ else
+ hasq "${1}" "${USE}"
+ fi
+}
+