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}