Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2011-01-25 14:14:36 (GMT)
committer Anish Mangal <anish@sugarlabs.org>2011-01-25 14:21:49 (GMT)
commit5aa23aafeae101f5e47a40cc17d97a943c71161b (patch)
tree083ab70752bcfb47f3099b8633f7c956fc75d8e0
parent6a2c7c34f62712fcbdc26ce47ce3c64c9b78888e (diff)
Add dextrose-updater
-rw-r--r--rpms/dextrose-updater/dextrose-updater.spec74
-rwxr-xr-xrpms/dextrose-updater/sbin/dextrose-update51
-rw-r--r--rpms/dextrose-updater/sysconfig/dextrose-update1
3 files changed, 126 insertions, 0 deletions
diff --git a/rpms/dextrose-updater/dextrose-updater.spec b/rpms/dextrose-updater/dextrose-updater.spec
new file mode 100644
index 0000000..bce8cb7
--- /dev/null
+++ b/rpms/dextrose-updater/dextrose-updater.spec
@@ -0,0 +1,74 @@
+Name: dextrose-updater
+Version: 1
+Release: 6%{?dist}
+Summary: A yum based updater for sugar-dextrose. Updates the sugar-dextrose related packages automatically and emits dbus messages (for the sugar notification system, if installed)
+
+Group: Applications/Updating
+License: GPLv3
+URL: http://wiki.sugarlabs.org/go/Dextrose/Updater
+Source0: http://people.sugarlabs.org/~anish/dextrose-updater.tar.gz
+BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
+
+BuildArch: noarch
+
+#BuildRequires:
+#Requires:
+Packager: Anish Mangal <anish@sugarlabs.org>
+
+%description
+
+A yum based updater for sugar-dextrose. Updates the sugar-dextrose related packages automatically and emits dbus messages (for the sugar notification system, if installed)
+
+
+
+%prep
+%setup -q
+
+
+%build
+
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+mkdir -p $RPM_BUILD_ROOT/{etc/sysconfig,etc/cron.daily,usr/sbin}
+install -m755 $RPM_BUILD_DIR/%{name}-%{version}/sbin/dextrose-update \
+$RPM_BUILD_ROOT/usr/sbin
+
+install -m755 $RPM_BUILD_DIR/%{name}-%{version}/sysconfig/dextrose-update \
+$RPM_BUILD_ROOT/etc/sysconfig
+
+ln -s /usr/sbin/dextrose-update \
+$RPM_BUILD_ROOT/etc/cron.daily/dextrose-update
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+rm -rf $RPM_BUILD_DIR/%{name}-%{version}
+
+%files
+%defattr(-,root,root,-)
+%doc
+
+/usr/sbin/dextrose-update
+/etc/sysconfig/dextrose-update
+/etc/cron.daily/dextrose-update
+
+%changelog
+* Mon Jan 10 2011 Anish Mangal <anish@sugarlabs.org> 1-6
+- Remove dextrose-py and change path of config file from /etc/default to /etc/sysconfig.
+
+* Mon Jan 03 2011 Anish Mangal <anish@sugarlabs.org> 1-5
+- Add dextrose-py to the list of repos to update from.
+
+* Wed Dec 22 2010 Anish Mangal <anish@sugarlabs.org> 1-4
+- Remove post, postun sections and handle symlink in install and file sections.
+
+* Wed Dec 22 2010 Anish Mangal <anish@sugarlabs.org> 1-3
+- Remove cron job after removing
+
+* Wed Dec 22 2010 Anish Mangal <anish@sugarlabs.org> 1-2
+- Add cron job
+
+* Wed Dec 22 2010 Anish Mangal <anish@sugarlabs.org> 1-1
+- Initial rpm version
+
diff --git a/rpms/dextrose-updater/sbin/dextrose-update b/rpms/dextrose-updater/sbin/dextrose-update
new file mode 100755
index 0000000..f6db502
--- /dev/null
+++ b/rpms/dextrose-updater/sbin/dextrose-update
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+name="dextrose-update"
+. /etc/sysconfig/${name}
+
+logfile="/var/log/${name}"
+
+echo "$(date)" >> $logfile
+echo -e "\tRepositories:" ${DEXTROSE_YUM_REPO} >> $logfile
+
+reboot_pkgs="kernel kernel-firmware"
+relogin_pkgs="sugar sugar-artwork sugar-base sugar-datastore sugar-presence-service sugar-toolkit"
+
+yum="/usr/bin/yum --disablerepo=* --skip-broken --quiet"
+for i in $DEXTROSE_YUM_REPO; do
+ yum="$yum --enablerepo=$i"
+done
+
+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 -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
diff --git a/rpms/dextrose-updater/sysconfig/dextrose-update b/rpms/dextrose-updater/sysconfig/dextrose-update
new file mode 100644
index 0000000..81f6ff8
--- /dev/null
+++ b/rpms/dextrose-updater/sysconfig/dextrose-update
@@ -0,0 +1 @@
+DEXTROSE_YUM_REPO="dextrose dextrose-freeworld"