Gentoo Archives: gentoo-commits

From: Sergei Trofimovich <slyfox@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/crossdev:master commit in: /
Date: Sat, 30 Dec 2017 17:41:25
Message-Id: 1514654601.b0416b85570a5d30e12c4f7ebb45aa26657d3088.slyfox@gentoo
1 commit: b0416b85570a5d30e12c4f7ebb45aa26657d3088
2 Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
3 AuthorDate: Sat Dec 30 17:23:21 2017 +0000
4 Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
5 CommitDate: Sat Dec 30 17:23:21 2017 +0000
6 URL: https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=b0416b85
7
8 crossdev: allow set_eopts_on_pkg_status() to accept multiple USE flags
9
10 The semantics is "any-of" passed flags (if enabled) triggers full package
11 rebuild.
12
13 Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
14
15 crossdev | 19 +++++++++++++++----
16 1 file changed, 15 insertions(+), 4 deletions(-)
17
18 diff --git a/crossdev b/crossdev
19 index f7d2fdc..d546dbe 100755
20 --- a/crossdev
21 +++ b/crossdev
22 @@ -1219,11 +1219,22 @@ emerged_with_use() {
23 local pkg=$1 use=$2
24 grep -qs ${use} "${EPREFIX}"/var/db/pkg/cross-${CTARGET}/${pkg}-*/USE
25 }
26 -# Force package rebuild if USE-flag is set otherwise install package only if flag is missing.
27 +# Force package rebuild if any of passed USE-flag is set otherwise install package only if flag is missing.
28 +# $1 - pkg
29 +# $2... - USE flags to check
30 set_eopts_on_pkg_status() {
31 - emerged_with_use "$@" \
32 - && EOPTS=${EOPTS_DEF} \
33 - || EOPTS=${EOPTS_UP}
34 + local pkg=$1 flag
35 + shift
36 +
37 + for flag in "$@"; do
38 + if emerged_with_use "${pkg}" "${flag}"; then
39 + # Force rebuild
40 + EOPTS=${EOPTS_DEF}
41 + return
42 + fi
43 + done
44 + # Install if missing
45 + EOPTS=${EOPTS_UP}
46 }
47 doemerge() {
48 local category="cross-${CTARGET}"