diff options
author | 2015-03-21 20:04:30 +0000 | |
---|---|---|
committer | 2015-03-21 20:04:30 +0000 | |
commit | bfb1bd7682b4a678cfa7dccb87d1f49d842317ac (patch) | |
tree | 2616e7da60c67261167d9d7a7ef5732d4c44691b | |
parent | ef6930e03428ec512c9d564886c06078e5238d45 (diff) | |
download | paludis-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.bash | 7 | ||||
-rw-r--r-- | paludis/repositories/e/ebuild/5/Makefile.am | 1 | ||||
-rw-r--r-- | paludis/repositories/e/ebuild/5/list_functions.bash | 41 |
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 0c5d91a52..4998c2b3c 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 fbcb91989..ced4e5354 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 000000000..7cb22ad00 --- /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 +} + |