1 |
Author: idl0r |
2 |
Date: 2009-10-30 14:02:08 +0000 (Fri, 30 Oct 2009) |
3 |
New Revision: 697 |
4 |
|
5 |
Modified: |
6 |
trunk/gentoolkit/ChangeLog |
7 |
trunk/gentoolkit/bin/revdep-rebuild |
8 |
Log: |
9 |
Speedup portageq queries. Include FuzzyRay's patch to respect EMERGE_DEFAULT_OPTS. |
10 |
|
11 |
|
12 |
Modified: trunk/gentoolkit/ChangeLog |
13 |
=================================================================== |
14 |
--- trunk/gentoolkit/ChangeLog 2009-10-28 20:48:11 UTC (rev 696) |
15 |
+++ trunk/gentoolkit/ChangeLog 2009-10-30 14:02:08 UTC (rev 697) |
16 |
@@ -1,3 +1,7 @@ |
17 |
+2009-10-30: Christian Ruppert <idl0r@g.o> |
18 |
+ * revdep-rebuild: Speedup portageq queries. Include FuzzyRay's patch to |
19 |
+ respect EMERGE_DEFAULT_OPTS. |
20 |
+ |
21 |
2009-10-27: Christian Ruppert <idl0r@g.o> |
22 |
* revdep-rebuild: Use realpath in get_file_owner to be able to get the |
23 |
package containing e.g. /lib/libreadline.so.6 on amd64, fixes bug 280341. |
24 |
|
25 |
Modified: trunk/gentoolkit/bin/revdep-rebuild |
26 |
=================================================================== |
27 |
--- trunk/gentoolkit/bin/revdep-rebuild 2009-10-28 20:48:11 UTC (rev 696) |
28 |
+++ trunk/gentoolkit/bin/revdep-rebuild 2009-10-30 14:02:08 UTC (rev 697) |
29 |
@@ -89,6 +89,7 @@ |
30 |
|
31 |
main() { |
32 |
# preliminary setup |
33 |
+ portage_settings |
34 |
get_opts "$@" |
35 |
setup_portage |
36 |
setup_search_paths_and_masks |
37 |
@@ -280,7 +281,6 @@ |
38 |
setup_color() { |
39 |
# This should still work if NOCOLOR is set by the -C flag or in the user's |
40 |
# environment. |
41 |
- export NOCOLOR=$(portageq envvar NOCOLOR) |
42 |
[[ $NOCOLOR = yes || $NOCOLOR = true ]] && export RC_NOCOLOR=yes # HACK! (grr) |
43 |
. /etc/init.d/functions.sh |
44 |
} |
45 |
@@ -971,12 +971,38 @@ |
46 |
done < "$OWNERS_FILE" | gawk '!s[$0]++' # (omit dupes) |
47 |
fi |
48 |
} |
49 |
+ |
50 |
+# Get multiple portage variables at once to speedup revdep-rebuild. |
51 |
+portage_settings() { |
52 |
+ local results=() |
53 |
+ |
54 |
+ local query_vars=( |
55 |
+ ROOT |
56 |
+ PORTAGE_NICENESS |
57 |
+ EMERGE_DEFAULT_OPTS |
58 |
+ NOCOLOR |
59 |
+ SEARCH_DIRS |
60 |
+ SEARCH_DIRS_MASK |
61 |
+ LD_LIBRARY_MASK |
62 |
+ ) |
63 |
+ |
64 |
+ # one value per line |
65 |
+ IFS=$'\n' |
66 |
+ results=( $(unset SEARCH_DIRS; unset SEARCH_DIRS_MASK; unset LD_LIBRARY_MASK; portageq envvar ${query_vars[*]}) ) |
67 |
+ IFS=$OIFS |
68 |
+ |
69 |
+ PORTAGE_ROOT=${results[0]} |
70 |
+ PORTAGE_NICENESS=${results[1]} |
71 |
+ EMERGE_DEFAULT_OPTS=${results[2]} |
72 |
+ export NOCOLOR=${results[3]} |
73 |
+ SEARCH_DIRS+=" "${results[4]} |
74 |
+ SEARCH_DIRS_MASK+=" "${results[5]} |
75 |
+ LD_LIBRARY_MASK+=" "${results[6]} |
76 |
+} |
77 |
+ |
78 |
## |
79 |
# Setup portage and the search paths |
80 |
setup_portage() { |
81 |
- local PORTAGE_NICENESS=$(portageq envvar PORTAGE_NICENESS) |
82 |
- PORTAGE_ROOT=$(portageq envvar ROOT) |
83 |
- |
84 |
# Obey PORTAGE_NICENESS |
85 |
if [[ $PORTAGE_NICENESS ]]; then |
86 |
renice $PORTAGE_NICENESS $$ > /dev/null |
87 |
@@ -1001,9 +1027,9 @@ |
88 |
# Read the incremental variables from environment and portage |
89 |
# Until such time as portage supports these variables as incrementals |
90 |
# The value will be what is in /etc/make.conf |
91 |
- SEARCH_DIRS+=" "$(unset SEARCH_DIRS; portageq envvar SEARCH_DIRS) |
92 |
- SEARCH_DIRS_MASK+=" "$(unset SEARCH_DIRS_MASK; portageq envvar SEARCH_DIRS_MASK) |
93 |
- LD_LIBRARY_MASK+=" "$(unset LD_LIBRARY_MASK; portageq envvar LD_LIBRARY_MASK) |
94 |
+# SEARCH_DIRS+=" "$(unset SEARCH_DIRS; portageq envvar SEARCH_DIRS) |
95 |
+# SEARCH_DIRS_MASK+=" "$(unset SEARCH_DIRS_MASK; portageq envvar SEARCH_DIRS_MASK) |
96 |
+# LD_LIBRARY_MASK+=" "$(unset LD_LIBRARY_MASK; portageq envvar LD_LIBRARY_MASK) |
97 |
|
98 |
# Add the defaults |
99 |
if [[ -d /etc/revdep-rebuild ]]; then |
100 |
@@ -1056,7 +1082,7 @@ |
101 |
trap - SIGHUP SIGINT SIGQUIT SIGABRT SIGTERM |
102 |
|
103 |
einfo 'All prepared. Starting rebuild' |
104 |
- echo "emerge --oneshot ${EMERGE_OPTIONS[@]} $REBUILD_LIST" |
105 |
+ echo "emerge --oneshot ${EMERGE_OPTIONS[@]} ${EMERGE_DEFAULT_OPTS} $REBUILD_LIST" |
106 |
|
107 |
is_real_merge && countdown 10 |
108 |
|
109 |
@@ -1065,7 +1091,7 @@ |
110 |
|
111 |
# Run in background to correctly handle Ctrl-C |
112 |
{ |
113 |
- EMERGE_DEFAULT_OPTS="--oneshot ${EMERGE_OPTIONS[@]}" emerge $REBUILD_LIST <&6 |
114 |
+ emerge --oneshot ${EMERGE_OPTIONS[@]} ${EMERGE_DEFAULT_OPTS} $REBUILD_LIST <&6 |
115 |
echo $? > "$STATUS_FILE" |
116 |
} & |
117 |
wait |