From d7aa9009e069d74f3493c676e3d2fc82438bee6d Mon Sep 17 00:00:00 2001 From: Martin Wilke Date: Fri, 15 Dec 2006 08:38:11 +0000 Subject: - Add fix for -current - Add rcscript PR: ports/106728 Submitted by: Juergen Lock (maintainer) --- emulators/kqemu-kmod-devel/Makefile | 4 +- emulators/kqemu-kmod-devel/files/kqemu.in | 49 ++++++++++++++++++++++ .../kqemu-kmod-devel/files/patch-kqemu-freebsd.c | 11 +++++ emulators/kqemu-kmod/Makefile | 4 +- emulators/kqemu-kmod/files/kqemu.in | 49 ++++++++++++++++++++++ emulators/kqemu-kmod/files/patch-kqemu-freebsd.c | 11 +++++ 6 files changed, 126 insertions(+), 2 deletions(-) create mode 100644 emulators/kqemu-kmod-devel/files/kqemu.in create mode 100644 emulators/kqemu-kmod/files/kqemu.in diff --git a/emulators/kqemu-kmod-devel/Makefile b/emulators/kqemu-kmod-devel/Makefile index 70b7bccfed25..8bfcf08aea1d 100644 --- a/emulators/kqemu-kmod-devel/Makefile +++ b/emulators/kqemu-kmod-devel/Makefile @@ -7,7 +7,7 @@ PORTNAME= kqemu PORTVERSION= 1.3.0.p9 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= emulators MASTER_SITES= http://qemu.org/ PKGNAMESUFFIX= -kmod @@ -20,6 +20,8 @@ COMMENT= Kernel Acceralator for QEMU CPU Emulator (development version) ONLY_FOR_ARCHS= i386 amd64 NO_PACKAGE= Depends on kernel, and module not redistributable +USE_RC_SUBR= kqemu + .include PLIST_FILES= "include/kqemu/kqemu.h" diff --git a/emulators/kqemu-kmod-devel/files/kqemu.in b/emulators/kqemu-kmod-devel/files/kqemu.in new file mode 100644 index 000000000000..c8ececdd2226 --- /dev/null +++ b/emulators/kqemu-kmod-devel/files/kqemu.in @@ -0,0 +1,49 @@ +#!/bin/sh +# $FreeBSD$ +# +# PROVIDE: kqemu +# KEYWORD: nojail +# +# Add the following line to /etc/rc.conf[.local] to enable kqemu +# +# kqemu_enable="YES" +# + +. /etc/rc.subr + +name="kqemu" +load_rc_config $name +rcvar=`set_rcvar` +start_cmd=kqemu_start +stop_cmd=kqemu_stop + +kqemu_start() +{ + # load aio if needed + if ! kldstat -qm aio; then + if kldload aio; then + info 'aio module loaded.' + else + warn 'aio module failed to load.' + return 1 + fi + fi + if ! kldstat -qm kqemu; then + if kldload kqemu; then + echo 'kqemu module loaded.' + else + warn 'kqemu module failed to load.' + return 1 + fi + fi + return 0 +} + +kqemu_stop() +{ + if kldstat -qm kqemu && kldunload kqemu; then + echo 'kqemu module unloaded.' + fi +} + +run_rc_command "$1" diff --git a/emulators/kqemu-kmod-devel/files/patch-kqemu-freebsd.c b/emulators/kqemu-kmod-devel/files/patch-kqemu-freebsd.c index 7e2844d8107f..e1f131452ad2 100644 --- a/emulators/kqemu-kmod-devel/files/patch-kqemu-freebsd.c +++ b/emulators/kqemu-kmod-devel/files/patch-kqemu-freebsd.c @@ -7,3 +7,14 @@ Index: kqemu-freebsd.c static struct kqemu_global_state *kqemu_gs = NULL; #if __FreeBSD_version < 500000 +@@ -321,6 +321,9 @@ + #if __FreeBSD_version >= 500000 + dev->si_drv1 = NULL; + TAILQ_REMOVE(&kqemuhead, ks, kqemu_ent); ++#if __FreeBSD_version >= 700024 ++ dev_relthread(dev); ++#endif + destroy_dev(dev); + #endif + free(ks, M_KQEMU); + diff --git a/emulators/kqemu-kmod/Makefile b/emulators/kqemu-kmod/Makefile index 70b7bccfed25..8bfcf08aea1d 100644 --- a/emulators/kqemu-kmod/Makefile +++ b/emulators/kqemu-kmod/Makefile @@ -7,7 +7,7 @@ PORTNAME= kqemu PORTVERSION= 1.3.0.p9 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= emulators MASTER_SITES= http://qemu.org/ PKGNAMESUFFIX= -kmod @@ -20,6 +20,8 @@ COMMENT= Kernel Acceralator for QEMU CPU Emulator (development version) ONLY_FOR_ARCHS= i386 amd64 NO_PACKAGE= Depends on kernel, and module not redistributable +USE_RC_SUBR= kqemu + .include PLIST_FILES= "include/kqemu/kqemu.h" diff --git a/emulators/kqemu-kmod/files/kqemu.in b/emulators/kqemu-kmod/files/kqemu.in new file mode 100644 index 000000000000..c8ececdd2226 --- /dev/null +++ b/emulators/kqemu-kmod/files/kqemu.in @@ -0,0 +1,49 @@ +#!/bin/sh +# $FreeBSD$ +# +# PROVIDE: kqemu +# KEYWORD: nojail +# +# Add the following line to /etc/rc.conf[.local] to enable kqemu +# +# kqemu_enable="YES" +# + +. /etc/rc.subr + +name="kqemu" +load_rc_config $name +rcvar=`set_rcvar` +start_cmd=kqemu_start +stop_cmd=kqemu_stop + +kqemu_start() +{ + # load aio if needed + if ! kldstat -qm aio; then + if kldload aio; then + info 'aio module loaded.' + else + warn 'aio module failed to load.' + return 1 + fi + fi + if ! kldstat -qm kqemu; then + if kldload kqemu; then + echo 'kqemu module loaded.' + else + warn 'kqemu module failed to load.' + return 1 + fi + fi + return 0 +} + +kqemu_stop() +{ + if kldstat -qm kqemu && kldunload kqemu; then + echo 'kqemu module unloaded.' + fi +} + +run_rc_command "$1" diff --git a/emulators/kqemu-kmod/files/patch-kqemu-freebsd.c b/emulators/kqemu-kmod/files/patch-kqemu-freebsd.c index 7e2844d8107f..e1f131452ad2 100644 --- a/emulators/kqemu-kmod/files/patch-kqemu-freebsd.c +++ b/emulators/kqemu-kmod/files/patch-kqemu-freebsd.c @@ -7,3 +7,14 @@ Index: kqemu-freebsd.c static struct kqemu_global_state *kqemu_gs = NULL; #if __FreeBSD_version < 500000 +@@ -321,6 +321,9 @@ + #if __FreeBSD_version >= 500000 + dev->si_drv1 = NULL; + TAILQ_REMOVE(&kqemuhead, ks, kqemu_ent); ++#if __FreeBSD_version >= 700024 ++ dev_relthread(dev); ++#endif + destroy_dev(dev); + #endif + free(ks, M_KQEMU); + -- cgit v1.3