aboutsummaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
authorJuergen Lock <nox@FreeBSD.org>2015-03-01 15:16:42 +0000
committerJuergen Lock <nox@FreeBSD.org>2015-03-01 15:16:42 +0000
commitf7c8fdbe5c02d6c8a55994dab43795a2ed7a4a2c (patch)
tree46d16664eebc5513d679ba8871de1c18c655645c /emulators
parent6bffe76a24346b96052ddbf41880ccdc987bc226 (diff)
Notes
Diffstat (limited to 'emulators')
-rw-r--r--emulators/qemu-sbruno/Makefile8
-rw-r--r--emulators/qemu-sbruno/files/qemu_user_static.in109
-rw-r--r--emulators/qemu-user-static/Makefile5
3 files changed, 122 insertions, 0 deletions
diff --git a/emulators/qemu-sbruno/Makefile b/emulators/qemu-sbruno/Makefile
index 05e045a8106a..23b879d18b86 100644
--- a/emulators/qemu-sbruno/Makefile
+++ b/emulators/qemu-sbruno/Makefile
@@ -3,6 +3,7 @@
PORTNAME= qemu
PORTVERSION= 2.2.50.g20150215
+PORTREVISION= 1
CATEGORIES= emulators
MASTER_SITES= GH GHC \
LOCAL/nox \
@@ -51,6 +52,13 @@ OPTIONS_DEFAULT=X11 GTK2 OPENGL GNUTLS SASL JPEG PNG CDROM_DMA CURL PCAP
CONFLICTS_INSTALL= qemu-[0-9]* qemu-devel-*
.endif
+.if defined(QEMU_USER_STATIC)
+.if exists(/usr/sbin/binmiscctl)
+USE_RC_SUBR= qemu_user_static
+SUB_LIST= NAME=qemu_user_static
+.endif
+.endif
+
.include <bsd.port.options.mk>
CONFIGURE_ARGS+= --localstatedir=/var
diff --git a/emulators/qemu-sbruno/files/qemu_user_static.in b/emulators/qemu-sbruno/files/qemu_user_static.in
new file mode 100644
index 000000000000..f60ec47d382c
--- /dev/null
+++ b/emulators/qemu-sbruno/files/qemu_user_static.in
@@ -0,0 +1,109 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: %%NAME%%
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+
+# Add the following lines to /etc/rc.conf to enable `%%NAME%%':
+#
+# %%NAME%%_enable="YES"
+#
+
+. /etc/rc.subr
+
+name=%%NAME%%
+rcvar=%%NAME%%_enable
+
+# read configuration and set defaults
+load_rc_config "$name"
+
+: ${%%NAME%%_enable:="NO"}
+
+BINMISCCTL=/usr/sbin/binmiscctl
+QEMU_DIR=%%PREFIX%%/bin
+QEMU_PREFIX=qemu-
+QEMU_SUFFIX=-static
+
+start_cmd=%%NAME%%_start
+stop_cmd=%%NAME%%_stop
+extra_commands=list
+list_cmd="${BINMISCCTL} list"
+
+%%NAME%%_start()
+{
+ # register armv6 interpreter styled 'arm'
+ interpreter=${QEMU_DIR}/${QEMU_PREFIX}arm${QEMU_SUFFIX}
+ if [ -x "${interpreter}" ]; then
+ ${BINMISCCTL} add armv6 --interpreter "${interpreter}" \
+ --magic "\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00" \
+ --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff" \
+ --size 20 --set-enabled
+ else
+ echo "$0: interpreter ${interpreter} not found, cannot register."
+ fi
+ # register mips interpreter styled 'mips'
+ interpreter=${QEMU_DIR}/${QEMU_PREFIX}mips${QEMU_SUFFIX}
+ if [ -x "${interpreter}" ]; then
+ ${BINMISCCTL} add mips --interpreter "${interpreter}" \
+ --magic "\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08" \
+ --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff" \
+ --size 20 --set-enabled
+ else
+ echo "$0: interpreter ${interpreter} not found, cannot register."
+ fi
+ # register mips64 interpreter styled 'mips64'
+ interpreter=${QEMU_DIR}/${QEMU_PREFIX}mips64${QEMU_SUFFIX}
+ if [ -x "${interpreter}" ]; then
+ ${BINMISCCTL} add mips64 --interpreter "${interpreter}" \
+ --magic "\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08" \
+ --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff" \
+ --size 20 --set-enabled
+ else
+ echo "$0: interpreter ${interpreter} not found, cannot register."
+ fi
+ # register powerpc interpreter styled 'ppc'
+ interpreter=${QEMU_DIR}/${QEMU_PREFIX}ppc${QEMU_SUFFIX}
+ if [ -x "${interpreter}" ]; then
+ ${BINMISCCTL} add powerpc --interpreter "${interpreter}" \
+ --magic "\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14" \
+ --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff" \
+ --size 20 --set-enabled
+ else
+ echo "$0: interpreter ${interpreter} not found, cannot register."
+ fi
+ # register powerpc64 interpreter styled 'ppc64'
+ interpreter=${QEMU_DIR}/${QEMU_PREFIX}ppc64${QEMU_SUFFIX}
+ if [ -x "${interpreter}" ]; then
+ ${BINMISCCTL} add powerpc64 --interpreter "${interpreter}" \
+ --magic "\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x15" \
+ --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff" \
+ --size 20 --set-enabled
+ else
+ echo "$0: interpreter ${interpreter} not found, cannot register."
+ fi
+ # register sparc64 interpreter styled 'sparc64'
+ interpreter=${QEMU_DIR}/${QEMU_PREFIX}sparc64${QEMU_SUFFIX}
+ if [ -x "${interpreter}" ]; then
+ ${BINMISCCTL} add sparc64 --interpreter "${interpreter}" \
+ --magic "\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2b" \
+ --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff" \
+ --size 20 --set-enabled
+ else
+ echo "$0: interpreter ${interpreter} not found, cannot register."
+ fi
+}
+
+%%NAME%%_stop()
+{
+ ${BINMISCCTL} remove mips64
+ ${BINMISCCTL} remove armv6
+ ${BINMISCCTL} remove mips
+ ${BINMISCCTL} remove powerpc
+ ${BINMISCCTL} remove powerpc64
+ ${BINMISCCTL} remove sparc64
+}
+
+run_rc_command "$1"
diff --git a/emulators/qemu-user-static/Makefile b/emulators/qemu-user-static/Makefile
index 86cf66af53c5..c0528b304ee2 100644
--- a/emulators/qemu-user-static/Makefile
+++ b/emulators/qemu-user-static/Makefile
@@ -18,7 +18,12 @@ post-install:
@${RM} -r ${STAGEDIR}${PREFIX}/bin/qemu-img
@${RM} -r ${STAGEDIR}${PREFIX}/bin/qemu-io
@${RM} -r ${STAGEDIR}${PREFIX}/bin/qemu-nbd
+ @${MV} ${STAGEDIR}${PREFIX}/etc/rc.d ${WRKDIR}
@${RM} -r ${STAGEDIR}${PREFIX}/etc
+.if exists(/usr/sbin/binmiscctl)
+ @${MKDIR} ${STAGEDIR}${PREFIX}/etc
+ @${MV} ${WRKDIR}/rc.d ${STAGEDIR}${PREFIX}/etc
+.endif
@${RM} -r ${STAGEDIR}${PREFIX}/man
@${RM} -r ${STAGEDIR}${DATADIR}
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/qemu-*