Author: gb
Date: Tue Feb  6 16:53:35 2007
New Revision: 116837

Added:
   packages/cooker/qemu/current/SOURCES/qemu.init
Modified:
   packages/cooker/qemu/current/SPECS/qemu.spec

Log:
SILENT add initscript. Could also be useful later with a qemu-bridge for network


Added: packages/cooker/qemu/current/SOURCES/qemu.init
==============================================================================
--- (empty file)
+++ packages/cooker/qemu/current/SOURCES/qemu.init      Tue Feb  6 16:53:35 2007
@@ -0,0 +1,103 @@
+#! /bin/sh
+#
+# qemu: Starts the QEMU Accelerator module
+#
+# chkconfig: 35 31 59
+# description: QEMU Accelerator module
+#
+### BEGIN INIT INFO
+# Provides:       kqemu
+# Required-Start: $syslog
+# Required-Stop:
+# Default-Start:  3 5
+# Default-Stop:
+# Description:    QEMU Accelerator module
+### END INIT INFO
+
+# Source function library.
+. /etc/init.d/functions
+
+MODULE=kqemu
+DAEMON=qemu
+# XXX: should be some wrapper script when qemu-bridge is done
[EMAIL PROTECTED]@
+
+RETVAL=0
+
+running() {
+    /sbin/lsmod | grep -q $MODULE[^_-]
+}
+
+start() {
+    # Check if it is already running
+    if ! running; then
+       gprintf "Starting %s daemon: " "$DAEMON"
+       /sbin/modprobe $MODULE
+       RETVAL=$?
+       if [ $RETVAL -eq 0 ]; then
+           touch /var/lock/subsys/$PROGNAME
+           success
+       else
+           failure
+       fi
+    fi
+    echo
+    return $RETVAL
+}
+
+stop() {
+    gprintf "Stopping %s daemon: " "$DAEMON"
+    killall -q $PROGNAME
+    if running; then
+       /sbin/rmmod $MODULE
+       RETVAL=$?
+    fi
+    if [ $RETVAL -eq 0 ]; then
+       rm -f /var/lock/subsys/$PROGNAME
+       success
+    else
+       failure
+    fi
+    echo
+    return $RETVAL
+}
+
+restart() {
+    stop
+    start
+}
+
+status() {
+    if running; then
+       STATUS="loaded"
+    else
+       STATUS="not loaded"
+    fi
+    gprintf "%s kernel module is %s\n" $DAEMON $STATUS
+}
+
+case "$1" in
+    start)
+       start
+       ;;
+    stop)
+       stop
+       ;;
+    restart)
+       restart
+       ;;
+    condrestart)
+       if [ -f /var/lock/subsys/$PROGNAME ]; then
+           restart
+       fi
+        ;;
+    status)
+       status
+       ;;
+    *)
+       INITNAME=`basename $0`
+       gprintf "Usage: %s {start|stop|restart|condrestart|status}\n" 
"$INITNAME"
+       exit 1
+       ;;
+esac
+exit $RETVAL

Modified: packages/cooker/qemu/current/SPECS/qemu.spec
==============================================================================
--- packages/cooker/qemu/current/SPECS/qemu.spec        (original)
+++ packages/cooker/qemu/current/SPECS/qemu.spec        Tue Feb  6 16:53:35 2007
@@ -11,6 +11,12 @@
 %define kqemu_fullver  %{kqemu_version}%{?kqemu_snapshot:%{kqemu_snapshot}}
 %define kqemu_release  %mkrel 
%{?kqemu_snapshot:0.%{kqemu_snapshot}.}%{qemu_rel}
 %define kqemu_arches   %{ix86} x86_64
+%ifarch %{ix86}
+%define kqemu_program  qemu
+%endif
+%ifarch x86_64
+%define kqemu_program  qemu-system-x86_64
+%endif
 
 # Define targets to enable, allow redefinition from rpm build
 %define all_targets i386-linux-user arm-linux-user armeb-linux-user 
arm-softmmu sparc-linux-user ppc-linux-user i386-softmmu ppc-softmmu 
sparc-softmmu x86_64-softmmu mips-softmmu
@@ -32,6 +38,7 @@
 Release:       %{qemu_release}
 Source0:       %{name}-%{version}%{?qemu_snapshot:-%{qemu_snapshot}}.tar.bz2
 Source1:       kqemu-%{kqemu_fullver}.tar.bz2
+Source2:       qemu.init
 Patch1:                qemu-0.8.3-gcc4.patch
 Patch2:                qemu-0.7.0-gcc4-dot-syms.patch
 Patch3:                qemu-0.8.0-gcc4-hacks.patch
@@ -52,7 +59,10 @@
 BuildRoot:     %{_tmppath}/%{name}-%{version}-%{release}-buildroot
 
 %ifarch %{kqemu_arches}
-Requires:      dkms-%{kqemu_name} >= %{kqemu_version}-%{kqemu_release}
+# XXX: move up if some qemu-bridge is implemented
+Requires(post):   rpm-helper
+Requires(preun):  rpm-helper
+Requires:        dkms-%{kqemu_name} >= %{kqemu_version}-%{kqemu_release}
 %endif
 
 %description
@@ -90,6 +100,8 @@
 Linux 2.4, Linux 2.6, Windows 2000 and Windows XP. WARNING: for
 Windows 2000/XP, you cannot use it during installation.
 
+Use %{kqemu_program} to benefit from the QEMU Accelerator Module.
+
 %package -n __pfff_restore_rpm_tags-%{qemu_name}
 Summary:       Dummy package to restore rpm tags
 Group:         Emulators
@@ -147,6 +159,11 @@
 AUTOINSTALL=yes
 EOF
 
+# install service
+mkdir -p $RPM_BUILD_ROOT%{_initrddir}
+install -m755 %{SOURCE2} $RPM_BUILD_ROOT%{_initrddir}/%{name}
+perl -pi -e "s,[EMAIL PROTECTED]@,%{kqemu_program}," 
$RPM_BUILD_ROOT%{_initrddir}/%{name}
+
 # install udev rules
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/
 cat > $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/%{kqemu_name}.rules << EOF
@@ -160,6 +177,17 @@
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+%post
+%_post_service %{name}
+
+%preun
+%_preun_service %{name}
+
+%postun
+if [ "$1" -ge "1" ]; then
+  /sbin/service %{name} condrestart > /dev/null 2>&1 || :
+fi
+
 %post -n dkms-%{kqemu_name}
 set -x
 /usr/sbin/dkms --rpm_safe_upgrade add -m %{kqemu_name} -v %{kqemu_fullver}
@@ -196,6 +224,7 @@
 %{_datadir}/qemu/keymaps
 %{_datadir}/qemu/video.x
 %{_datadir}/qemu/openbios-sparc32
+%config %{_initrddir}/%{name}
 
 %ifarch %{kqemu_arches}
 %files -n dkms-%{kqemu_name}

Reply via email to