summaryrefslogtreecommitdiff
blob: 1950f697f001308efc44e0331c309c1b545da795 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
From bfb1bd7682b4a678cfa7dccb87d1f49d842317ac Mon Sep 17 00:00:00 2001
From: David Leverton <levertond@googlemail.com>
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