Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev@l.g.o
Cc: "Michał Górny" <mgorny@g.o>
Subject: [gentoo-dev] [PATCH 2/9] multilib-build.eclass: Add missing error checks
Date: Sun, 06 Dec 2015 18:59:27
Message-Id: 1449428274-20439-3-git-send-email-mgorny@gentoo.org
In Reply to: [gentoo-dev] [PATCHES] multilib-build & multilib-minimal EAPI 6 patchset by "Michał Górny"
1 ---
2 eclass/multilib-build.eclass | 26 +++++++++++++++-----------
3 1 file changed, 15 insertions(+), 11 deletions(-)
4
5 diff --git a/eclass/multilib-build.eclass b/eclass/multilib-build.eclass
6 index dd03553..8e58a2b 100644
7 --- a/eclass/multilib-build.eclass
8 +++ b/eclass/multilib-build.eclass
9 @@ -262,19 +262,23 @@ multilib_for_best_abi() {
10 # runs (if any). Dies if header files differ.
11 multilib_check_headers() {
12 _multilib_header_cksum() {
13 - [[ -d ${ED}usr/include ]] && \
14 - find "${ED}"usr/include -type f \
15 - -exec cksum {} + | sort -k2
16 + set -o pipefail
17 +
18 + if [[ -d ${ED}usr/include ]]; then
19 + find "${ED}"usr/include -type f \
20 + -exec cksum {} + | sort -k2
21 + fi
22 }
23
24 - local cksum=$(_multilib_header_cksum)
25 + local cksum cksum_prev
26 local cksum_file=${T}/.multilib_header_cksum
27 + cksum=$(_multilib_header_cksum) || die
28
29 if [[ -f ${cksum_file} ]]; then
30 - local cksum_prev=$(< "${cksum_file}")
31 + cksum_prev=$(< "${cksum_file}") || die
32
33 if [[ ${cksum} != ${cksum_prev} ]]; then
34 - echo "${cksum}" > "${cksum_file}.new"
35 + echo "${cksum}" > "${cksum_file}.new" || die
36
37 eerror "Header files have changed between ABIs."
38
39 @@ -288,7 +292,7 @@ multilib_check_headers() {
40 die "Header checksum mismatch, aborting."
41 fi
42 else
43 - echo "${cksum}" > "${cksum_file}"
44 + echo "${cksum}" > "${cksum_file}" || die
45 fi
46 }
47
48 @@ -409,9 +413,9 @@ multilib_prepare_wrappers() {
49
50 if [[ -L ${root}/${f} ]]; then
51 # rewrite the symlink target
52 - local target=$(readlink "${root}/${f}")
53 - local target_dir
54 - local target_fn=${target##*/}
55 + local target
56 + target=$(readlink "${root}/${f}") || die
57 + local target_dir target_fn=${target##*/}
58
59 [[ ${target} == */* ]] && target_dir=${target%/*}
60
61 @@ -453,7 +457,7 @@ multilib_prepare_wrappers() {
62 if [[ ! -f ${ED}/tmp/multilib-include${f} ]]; then
63 dodir "/tmp/multilib-include${dir}"
64 # a generic template
65 - cat > "${wrapper}" <<_EOF_
66 + cat > "${wrapper}" <<_EOF_ || die
67 /* This file is auto-generated by multilib-build.eclass
68 * as a multilib-friendly wrapper. For the original content,
69 * please see the files that are #included below.
70 --
71 2.6.3

Replies