1 |
Signed-off-by: David Seifert <soap@g.o> |
2 |
--- |
3 |
eclass/multibuild.eclass | 35 ++++++++++++----------------------- |
4 |
1 file changed, 12 insertions(+), 23 deletions(-) |
5 |
|
6 |
diff --git a/eclass/multibuild.eclass b/eclass/multibuild.eclass |
7 |
index 37568ebf87c..cbd48b1eeb6 100644 |
8 |
--- a/eclass/multibuild.eclass |
9 |
+++ b/eclass/multibuild.eclass |
10 |
@@ -1,4 +1,4 @@ |
11 |
-# Copyright 1999-2021 Gentoo Authors |
12 |
+# Copyright 1999-2022 Gentoo Authors |
13 |
# Distributed under the terms of the GNU General Public License v2 |
14 |
|
15 |
# @ECLASS: multibuild.eclass |
16 |
@@ -238,33 +238,22 @@ multibuild_merge_root() { |
17 |
local dest=${2} |
18 |
|
19 |
local ret |
20 |
+ local cp_args=() |
21 |
|
22 |
- if use userland_BSD; then |
23 |
- # Most of BSD variants fail to copy broken symlinks, #447370 |
24 |
- # also, they do not support --version |
25 |
- |
26 |
- tar -C "${src}" -f - -c . \ |
27 |
- | tar -x -f - -C "${dest}" |
28 |
- [[ ${PIPESTATUS[*]} == '0 0' ]] |
29 |
- ret=${?} |
30 |
+ if cp -a --version &>/dev/null; then |
31 |
+ cp_args+=( -a ) |
32 |
else |
33 |
- local cp_args=() |
34 |
- |
35 |
- if cp -a --version &>/dev/null; then |
36 |
- cp_args+=( -a ) |
37 |
- else |
38 |
- cp_args+=( -P -R -p ) |
39 |
- fi |
40 |
- |
41 |
- if cp --reflink=auto --version &>/dev/null; then |
42 |
- # enable reflinking if possible to make this faster |
43 |
- cp_args+=( --reflink=auto ) |
44 |
- fi |
45 |
+ cp_args+=( -P -R -p ) |
46 |
+ fi |
47 |
|
48 |
- cp "${cp_args[@]}" "${src}"/. "${dest}"/ |
49 |
- ret=${?} |
50 |
+ if cp --reflink=auto --version &>/dev/null; then |
51 |
+ # enable reflinking if possible to make this faster |
52 |
+ cp_args+=( --reflink=auto ) |
53 |
fi |
54 |
|
55 |
+ cp "${cp_args[@]}" "${src}"/. "${dest}"/ |
56 |
+ ret=${?} |
57 |
+ |
58 |
if [[ ${ret} -ne 0 ]]; then |
59 |
die "${MULTIBUILD_VARIANT:-(unknown)}: merging image failed." |
60 |
fi |
61 |
-- |
62 |
2.34.1 |