1 |
Hi, |
2 |
|
3 |
Change of the unpacking logic which allows at least a speed up of factor 2. |
4 |
Before we unpacked every single rpm from the tarball separately, now we |
5 |
generate all possibilities and unpack them at once, ignoring warnings. |
6 |
|
7 |
Justin |
8 |
|
9 |
commit f13912b377189f6b80d05eb122c9f27e187c02a6 |
10 |
Author: Justin Lecher <jlec@g.o> |
11 |
Date: Sun Nov 25 10:51:00 2012 +0100 |
12 |
|
13 |
Speed up unpacking #431614 |
14 |
|
15 |
diff --git a/eclass/intel-sdp.eclass b/eclass/intel-sdp.eclass |
16 |
index eafb523..a0f5b37 100644 |
17 |
--- a/eclass/intel-sdp.eclass |
18 |
+++ b/eclass/intel-sdp.eclass |
19 |
@@ -180,28 +180,27 @@ intel-sdp_pkg_setup() { |
20 |
} |
21 |
|
22 |
intel-sdp_src_unpack() { |
23 |
- local l r t rpmdir |
24 |
- debug-print "INTEL_RPMS_DIRS are \"${INTEL_RPMS_DIRS}\"" |
25 |
+ local l r subdir rb t list=() |
26 |
+ |
27 |
for t in ${A}; do |
28 |
for r in ${INTEL_RPMS}; do |
29 |
- # Find which subdirectory of the archive the rpm |
30 |
is in |
31 |
- rpm_found="false" |
32 |
for subdir in ${INTEL_RPMS_DIRS}; do |
33 |
- [[ "${rpm_found}" == "true" ]] && continue |
34 |
rpmdir=${t%%.*}/${subdir} |
35 |
- l=.${r}_$(date +'%d%m%y_%H%M%S').log |
36 |
- tar xf "${DISTDIR}"/${t} ${rpmdir}/${r} |
37 |
2> /dev/null || continue |
38 |
- einfo "Unpacking ${r}" |
39 |
- rpm_found="true" |
40 |
- rpm2tar -O "./${rpmdir}/${r}" | tar xvf |
41 |
- | sed -e \ |
42 |
- "s:^\.:${EROOT#/}:g" > ${l} || |
43 |
die "unpacking ${r} failed" |
44 |
- mv ${l} opt/intel/ || die "failed moving |
45 |
extract log file" |
46 |
+ list+=( ${rpmdir}/${r}) |
47 |
done |
48 |
- [[ "${rpm_found}" == "false" ]] && \ |
49 |
- debug-print "RPM \"${r}\" not found in ${t}" |
50 |
+ done |
51 |
+ tar xf "${DISTDIR}"/${t} ${list[@]} 2> /dev/null || die |
52 |
+ for r in ${list[@]}; do |
53 |
+ rb=$(basename ${r}) |
54 |
+ l=.${rb}_$(date +'%d%m%y_%H%M%S').log |
55 |
+ einfo "Unpacking ${rb}" |
56 |
+ rpm2tar -O ${r} | tar xvf - | sed -e \ |
57 |
+ "s:^\.:${EROOT#/}:g" > ${l} || die |
58 |
"unpacking ${r} failed" |
59 |
+ mv ${l} opt/intel/ || die "failed moving extract |
60 |
log file" |
61 |
done |
62 |
done |
63 |
- mv -v opt/intel/* ${INTEL_SDP_DIR} || die "mv to INTEL_SDP_DIR |
64 |
failed" |
65 |
+ |
66 |
+ mv opt/intel/* ${INTEL_SDP_DIR} || die "mv to INTEL_SDP_DIR failed" |
67 |
} |