1 |
Author: zzam |
2 |
Date: 2008-06-21 13:10:21 +0000 (Sat, 21 Jun 2008) |
3 |
New Revision: 617 |
4 |
|
5 |
Modified: |
6 |
gentoo-vdr-scripts/trunk/ChangeLog |
7 |
gentoo-vdr-scripts/trunk/vdrplugin-rebuild/vdrplugin-rebuild |
8 |
Log: |
9 |
Added option to only rebuild packages that have a different header checksum than current vdr. |
10 |
|
11 |
Modified: gentoo-vdr-scripts/trunk/ChangeLog |
12 |
=================================================================== |
13 |
--- gentoo-vdr-scripts/trunk/ChangeLog 2008-06-21 12:49:30 UTC (rev 616) |
14 |
+++ gentoo-vdr-scripts/trunk/ChangeLog 2008-06-21 13:10:21 UTC (rev 617) |
15 |
@@ -1,6 +1,11 @@ |
16 |
# ChangeLog for gentoo-vdr-scripts |
17 |
# $Id$ |
18 |
|
19 |
+ 21 Jun 2008; Matthias Schwarzott <zzam@g.o> |
20 |
+ vdrplugin-rebuild/vdrplugin-rebuild: |
21 |
+ Added option to only rebuild packages that have a different header |
22 |
+ checksum than current vdr. |
23 |
+ |
24 |
21 Jun 2008; Matthias Schwarzott <zzam@g.o> etc/init.d/vdr: |
25 |
Moved clearing of logfile to better place right at start. |
26 |
|
27 |
|
28 |
Modified: gentoo-vdr-scripts/trunk/vdrplugin-rebuild/vdrplugin-rebuild |
29 |
=================================================================== |
30 |
--- gentoo-vdr-scripts/trunk/vdrplugin-rebuild/vdrplugin-rebuild 2008-06-21 12:49:30 UTC (rev 616) |
31 |
+++ gentoo-vdr-scripts/trunk/vdrplugin-rebuild/vdrplugin-rebuild 2008-06-21 13:10:21 UTC (rev 617) |
32 |
@@ -31,6 +31,7 @@ |
33 |
R_OPTION_C=0; |
34 |
R_OPTION_ENABLED=0; |
35 |
R_OPTION_SKIPPED=0; |
36 |
+R_OPTION_PATCHLEVEL=0; |
37 |
|
38 |
R_PLUGIN_ENABLE="${ROOT}/etc/conf.d/vdr.plugins" |
39 |
R_PLUGINS_SKIPPED="${ROOT}/var/vdr/tmp/plugins_skipped_ALL" |
40 |
@@ -107,6 +108,14 @@ |
41 |
fi |
42 |
fi |
43 |
|
44 |
+ if [[ ${R_OPTION_PATCHLEVEL} == 1 ]]; then |
45 |
+ local p_chksum="${vdr_checksum_dir}/header-md5-${shortname}" |
46 |
+ if cmp -s "${vdr_checksum}" "${p_chksum}"; then |
47 |
+ # do not merge when patchlevel is equal |
48 |
+ auto=0 |
49 |
+ fi |
50 |
+ fi |
51 |
+ |
52 |
if [[ ${R_OPTION_X} == 1 ]]; then |
53 |
pkg=${ebuild} |
54 |
package_valid ${pkg} |
55 |
@@ -184,7 +193,7 @@ |
56 |
echo -e "${C_BOLD}${C_GREEN}** Populating database with installed Packages.${C_NORM}" |
57 |
# Lets find them all |
58 |
# chances are we will get a few dupes in here. |
59 |
- for pkg in $(grep -l /usr/lib/vdr/plugins/libvdr ${R_VDBPATH}/*/*/CONTENTS); do |
60 |
+ for pkg in $(grep -l ${vdr_plugin_dir}/libvdr ${R_VDBPATH}/*/*/CONTENTS); do |
61 |
pad=""; x=0; |
62 |
|
63 |
if [[ -z ${pkg//${R_VDBPATH}*} ]]; then |
64 |
@@ -223,6 +232,17 @@ |
65 |
emerge --oneshot --nodeps ${R_EMERGE_OPTS} ${tomerge[@]} |
66 |
} |
67 |
|
68 |
+get_vdr_plugin_dir() { |
69 |
+ local d |
70 |
+ d="$(awk '/^PLUGINLIBDIR/{ print $3 }' /usr/include/vdr/Make.config)" |
71 |
+ if [ -n "${d}" ]; then |
72 |
+ d=/usr/lib/vdr/plugins |
73 |
+ fi |
74 |
+ |
75 |
+ echo "${d}" |
76 |
+ return 0 |
77 |
+} |
78 |
+ |
79 |
phelp() { |
80 |
cat << EOF |
81 |
vdrplugin-rebuild [options] action [options to emerge] |
82 |
@@ -234,6 +254,7 @@ |
83 |
-C - Disable all coloured output. |
84 |
-e - Only merge enabled plugins. |
85 |
-s - Only merge plugins that were skipped at last vdr start. |
86 |
+ -p - Only merge plugins that are not compiled against this vdr. |
87 |
|
88 |
Where action is one of: |
89 |
list - List packages to auto-rebuild. |
90 |
@@ -253,6 +274,7 @@ |
91 |
-C) R_OPTION_C='1';; |
92 |
-e) R_OPTION_ENABLED='1';; |
93 |
-s) R_OPTION_SKIPPED='1';; |
94 |
+ -p) R_OPTION_PATCHLEVEL='1';; |
95 |
-*) phelp; exit 1;; |
96 |
*) break;; |
97 |
esac |
98 |
@@ -271,11 +293,23 @@ |
99 |
C_RED='' |
100 |
fi |
101 |
|
102 |
+vdr_plugin_dir=$(get_vdr_plugin_dir) |
103 |
+ |
104 |
if [[ ${R_OPTION_SKIPPED} == 1 && ! -f ${R_PLUGINS_SKIPPED} ]]; then |
105 |
echo -e "${C_BOLD}${C_GREEN}No Plugins skipped, nothing todo${C_NORM}" |
106 |
exit 0 |
107 |
fi |
108 |
|
109 |
+if [[ ${R_OPTION_PATCHLEVEL} == 1 ]]; then |
110 |
+ # needed for plugin patchlevel check |
111 |
+ vdr_checksum_dir="${vdr_plugin_dir%/plugins}/checksums" |
112 |
+ vdr_checksum=/var/vdr/tmp/rebuild-vdr-checksum |
113 |
+ if ! vdr-get-header-checksum > "${vdr_checksum}"; then |
114 |
+ echo -e "${C_BOLD}${C_RED}Could not get vdr header checksum${C_NORM}" |
115 |
+ exit 1 |
116 |
+ fi |
117 |
+fi |
118 |
+ |
119 |
R_CMD="$1" |
120 |
shift |
121 |
R_EMERGE_OPTS="$@" |
122 |
|
123 |
-- |
124 |
gentoo-commits@l.g.o mailing list |