Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnish Mangal <anish@sugarlabs.org>2010-12-20 19:05:13 (GMT)
committer Bernie Innocenti <bernie@codewiz.org>2011-01-08 21:41:55 (GMT)
commit28244016560b53dd8d7227867415f09484c673cc (patch)
tree4ab05b79019f26a493dc5f623fa9965d35f1703c
parentc30c61cdf8ade45e927d108e8b7a460f376e63ec (diff)
Add yum-updater setup scripts to dx xo-1 builds
Signed-off-by: Anish Mangal <anish@sugarlabs.org>
-rw-r--r--examples/dextrose2-xo1-nognome.ini1
-rwxr-xr-xmodules/custom_scripts/yum_updater_setup.sh55
2 files changed, 56 insertions, 0 deletions
diff --git a/examples/dextrose2-xo1-nognome.ini b/examples/dextrose2-xo1-nognome.ini
index 190e8ab..a595344 100644
--- a/examples/dextrose2-xo1-nognome.ini
+++ b/examples/dextrose2-xo1-nognome.ini
@@ -217,6 +217,7 @@ path=buildnr-dx
custom_script_1=modules/custom_scripts/set_protected_list.sh
custom_script_2=modules/custom_scripts/sugar_coredump.sh
custom_script_3=modules/custom_scripts/libertas_debug.sh
+custom_script_4=modules/custom_scripts/yum_updater_setup.sh
[base]
versioned_fs=0
diff --git a/modules/custom_scripts/yum_updater_setup.sh b/modules/custom_scripts/yum_updater_setup.sh
new file mode 100755
index 0000000..8538b6b
--- /dev/null
+++ b/modules/custom_scripts/yum_updater_setup.sh
@@ -0,0 +1,55 @@
+cat >>"$INSTALL_ROOT/etc/default/dextrose-update" <<__EOF__
+DEXTROSE_YUM_REPO=dextrose
+__EOF__
+
+cat >>"$INSTALL_ROOT/usr/sbin/dextrose-update" <<__EOF__
+#!/bin/sh
+
+name="dextrose-update"
+. /etc/default/\${name}
+
+logfile="/var/log/\${name}"
+
+reboot_pkgs="kernel kernel-firmware"
+relogin_pkgs="sugar sugar-artwork sugar-base sugar-datastore sugar-presence-service sugar-toolkit"
+
+yum="/usr/bin/yum --disablerepo=* --enablerepo=\${DEXTROSE_YUM_REPO} --skip-broken --quiet"
+
+updates() {
+ \${yum} -e0 check-update | awk '/./{print \$1 "-" \$2}'
+}
+
+to_update=\$(updates)
+[ "\${to_update}" ] || exit 0
+
+parse() {
+ for i in \$@; do
+ echo \${to_update} | grep "\(^\| \)\$i\." >/dev/null && echo \$i
+ done
+}
+
+need_reboot=\$(parse \${reboot_pkgs})
+need_relogin=\$(parse \${relogin_pkgs})
+
+echo "\$(date)" >> \$logfile
+echo -e "\tRepository:" \${DEXTROSE_YUM_REPO} >> \$logfile
+echo -e "\tPackages to update:" \${to_update} >> \$logfile
+\${yum} -y update >> \$logfile 2>&1
+to_update=\$(updates)
+
+if [ "\${need_reboot}" ]; then
+ if [ "\${need_reboot}" != "\$(parse \${reboot_pkgs})" ]; then
+ echo -e "\tNeed to reboot..." >> \$logfile
+ dbus-send --system /org/sugarlabs/system org.sugarlabs.system.Reboot
+ fi
+fi
+
+if [ "\${need_relogin}" ]; then
+ if [ "\${need_relogin}" != "\$(parse \${relogin_pkgs})" ]; then
+ echo -e "\tNeed to relogin..." >> \$logfile
+ dbus-send --system /org/sugarlabs/system org.sugarlabs.system.Relogin
+ fi
+fi
+__EOF__
+
+ln -s $INSTALL_ROOT/usr/sbin/dextrose-update $INSTALL_ROOT/etc/cron.daily