From bfb1bd7682b4a678cfa7dccb87d1f49d842317ac Mon Sep 17 00:00:00 2001 From: David Leverton Date: Sat, 21 Mar 2015 20:04:30 +0000 Subject: 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. 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 +} + -- cgit v0.10.2