diff options
author | Aleksey 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) |
commit | 5aa23aafeae101f5e47a40cc17d97a943c71161b (patch) | |
tree | 083ab70752bcfb47f3099b8633f7c956fc75d8e0 | |
parent | 6a2c7c34f62712fcbdc26ce47ce3c64c9b78888e (diff) |
Add dextrose-updater
-rw-r--r-- | rpms/dextrose-updater/dextrose-updater.spec | 74 | ||||
-rwxr-xr-x | rpms/dextrose-updater/sbin/dextrose-update | 51 | ||||
-rw-r--r-- | rpms/dextrose-updater/sysconfig/dextrose-update | 1 |
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" |