Re-add xen-4.2.2 as xen4.2, because 4.3 removed support for dom0 on x86.

This commit is contained in:
Juan RP 2013-07-24 23:05:20 +02:00
parent 7920af73e3
commit 1824ba38f2
13 changed files with 519 additions and 0 deletions

1
srcpkgs/xen4.2-devel Symbolic link
View file

@ -0,0 +1 @@
xen4.2

View file

@ -0,0 +1,9 @@
[Unit]
Description=Mount /proc/xen files
ConditionPathExists=/proc/xen
RefuseManualStop=true
[Mount]
What=xenfs
Where=/proc/xen
Type=xenfs

View file

@ -0,0 +1 @@
d /run/xen 0755 root root -

View file

@ -0,0 +1,10 @@
[Unit]
Description=mount xenstore file system
ConditionPathExists=/proc/xen
RefuseManualStop=true
[Mount]
What=xenstore
Where=/var/lib/xenstored
Type=tmpfs
Options=mode=755

View file

@ -0,0 +1,7 @@
xen-evtchn
xen-gntdev
xen-gntalloc
xen-blkback
xen-netback
xen-pciback
xen-acpi-processor

View file

@ -0,0 +1,17 @@
[Unit]
Description=Xenconsoled - handles logging from guest consoles and hypervisor
Requires=proc-xen.mount
After=proc-xen.mount xenstored.service
ConditionPathExists=/proc/xen
[Service]
Type=simple
Environment=XENCONSOLED_ARGS=
Environment=XENCONSOLED_LOG=none
Environment=XENCONSOLED_LOG_DIR=/var/log/xen/console
PIDFile=/var/run/xenconsoled.pid
ExecStartPre=/usr/bin/grep -q control_d /proc/xen/capabilities
ExecStart=/usr/bin/xenconsoled --log=${XENCONSOLED_LOG} --log-dir=${XENCONSOLED_LOG_DIR} $XENCONSOLED_ARGS
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,13 @@
[Unit]
Description=xen domU service for domain %i
Requires=xenstored.service
ConditionVirtualization=xen
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/xl create /etc/xen/conf/%i.cfg
ExecStop=/usr/bin/xl shutdown %i
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,15 @@
[Unit]
Description=Xendomains - start and stop guests on boot and shutdown
Requires=proc-xen.mount xenstored.service
After=proc-xen.mount xenstored.service xenconsoled.service
ConditionPathExists=/proc/xen
[Service]
Type=oneshot
RemainAfterExit=true
ExecStartPre=/usr/bin/grep -q control_d /proc/xen/capabilities
ExecStart=/etc/xen/scripts/xendomains start
ExecStop=/etc/xen/scripts/xendomains stop
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,18 @@
[Unit]
Description=Xenstored - daemon managing xenstore file system
Requires=proc-xen.mount var-lib-xenstored.mount systemd-tmpfiles-setup.service
After=proc-xen.mount var-lib-xenstored.mount systemd-tmpfiles-setup.service
Before=libvirtd.service libvirt-guests.service
RefuseManualStop=true
ConditionPathExists=/proc/xen
[Service]
Type=forking
Environment=XENSTORED_ARGS=
PIDFile=/var/run/xenstored.pid
ExecStartPre=/usr/bin/grep -q control_d /proc/xen/capabilities
ExecStart=/usr/bin/xenstored --pid-file /var/run/xenstored.pid $XENSTORED_ARGS
ExecStartPost=/usr/bin/xenstore-write "/local/domain/0/name" "Domain-0"
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,265 @@
Do not redefine READ and WRITE, which are defined in linux/fs.h. Instead prefix them
with XEN to avoid namespace clash.
--- tools/blktap2/include/blktaplib.h.orig 2011-01-10 11:10:18.362560374 +0100
+++ tools/blktap2/include/blktaplib.h 2011-01-10 11:11:53.007679832 +0100
@@ -197,8 +197,8 @@ typedef struct msg_lock {
int uuid_len;
} msg_lock_t;
-#define READ 0
-#define WRITE 1
+#define XEN_READ 0
+#define XEN_WRITE 1
/*Control Messages between manager and tapdev*/
#define CTLMSG_PARAMS 1
--- tools/blktap/lib/blktaplib.h.orig 2011-01-10 11:12:38.633561491 +0100
+++ tools/blktap/lib/blktaplib.h 2011-01-10 11:12:47.110717080 +0100
@@ -195,8 +195,8 @@ typedef struct msg_pid {
pid_t pid;
} msg_pid_t;
-#define READ 0
-#define WRITE 1
+#define XEN_READ 0
+#define XEN_WRITE 1
/*Control Messages between manager and tapdev*/
#define CTLMSG_PARAMS 1
--- tools/blktap/drivers/blktapctrl.c.orig 2010-08-25 12:22:07.000000000 +0200
+++ tools/blktap/drivers/blktapctrl.c 2011-01-10 11:30:15.176697136 +0100
@@ -128,13 +128,13 @@ static int get_tapdisk_pid(blkif_t *blki
{
int ret;
- if ((ret = write_msg(blkif->fds[WRITE], CTLMSG_PID, blkif, NULL))
+ if ((ret = write_msg(blkif->fds[XEN_WRITE], CTLMSG_PID, blkif, NULL))
<= 0) {
DPRINTF("Write_msg failed - CTLMSG_PID(%d)\n", ret);
return -EINVAL;
}
- if ((ret = read_msg(blkif->fds[READ], CTLMSG_PID_RSP, blkif))
+ if ((ret = read_msg(blkif->fds[XEN_READ], CTLMSG_PID_RSP, blkif))
<= 0) {
DPRINTF("Read_msg failure - CTLMSG_PID(%d)\n", ret);
return -EINVAL;
@@ -576,8 +576,8 @@ static int connect_qemu(blkif_t *blkif,
}
DPRINTF("Using tapdisk-ioemu connection\n");
- blkif->fds[READ] = dom0_readfd;
- blkif->fds[WRITE] = dom0_writefd;
+ blkif->fds[XEN_READ] = dom0_readfd;
+ blkif->fds[XEN_WRITE] = dom0_writefd;
if (refresh_pid) {
get_tapdisk_pid(blkif);
@@ -587,8 +587,8 @@ static int connect_qemu(blkif_t *blkif,
} else if (access(rdctldev, R_OK | W_OK) == 0) {
/* Use existing pipe to the device model */
DPRINTF("Using qemu-dm connection\n");
- blkif->fds[READ] = open_ctrl_socket(wrctldev);
- blkif->fds[WRITE] = open_ctrl_socket(rdctldev);
+ blkif->fds[XEN_READ] = open_ctrl_socket(wrctldev);
+ blkif->fds[XEN_WRITE] = open_ctrl_socket(rdctldev);
} else {
/* No device model => try with tapdisk-ioemu */
DPRINTF("No device model\n");
@@ -598,7 +598,7 @@ static int connect_qemu(blkif_t *blkif,
free(rdctldev);
free(wrctldev);
- if (blkif->fds[READ] == -1 || blkif->fds[WRITE] == -1)
+ if (blkif->fds[XEN_READ] == -1 || blkif->fds[XEN_WRITE] == -1)
return -1;
DPRINTF("Attached to qemu blktap pipes\n");
@@ -621,10 +621,10 @@ static int connect_tapdisk(blkif_t *blki
"%s/tapctrlwrite%d", BLKTAP_CTRL_DIR, minor) == -1)
goto fail;
- blkif->fds[READ] = open_ctrl_socket(rdctldev);
- blkif->fds[WRITE] = open_ctrl_socket(wrctldev);
+ blkif->fds[XEN_READ] = open_ctrl_socket(rdctldev);
+ blkif->fds[XEN_WRITE] = open_ctrl_socket(wrctldev);
- if (blkif->fds[READ] == -1 || blkif->fds[WRITE] == -1)
+ if (blkif->fds[XEN_READ] == -1 || blkif->fds[XEN_WRITE] == -1)
goto fail;
/*launch the new process*/
@@ -683,8 +683,8 @@ static int blktapctrl_new_blkif(blkif_t
} else {
DPRINTF("Process exists!\n");
- blkif->fds[READ] = exist->fds[READ];
- blkif->fds[WRITE] = exist->fds[WRITE];
+ blkif->fds[XEN_READ] = exist->fds[XEN_READ];
+ blkif->fds[XEN_WRITE] = exist->fds[XEN_WRITE];
}
add_disktype(blkif, type);
@@ -703,13 +703,13 @@ static int blktapctrl_new_blkif(blkif_t
/* Both of the following read and write calls will block up to
* max_timeout val*/
- if (write_msg(blkif->fds[WRITE], CTLMSG_PARAMS, blkif, ptr)
+ if (write_msg(blkif->fds[XEN_WRITE], CTLMSG_PARAMS, blkif, ptr)
<= 0) {
DPRINTF("Write_msg failed - CTLMSG_PARAMS\n");
goto fail;
}
- if (read_msg(blkif->fds[READ], CTLMSG_IMG, blkif) <= 0) {
+ if (read_msg(blkif->fds[XEN_READ], CTLMSG_IMG, blkif) <= 0) {
DPRINTF("Read_msg failure - CTLMSG_IMG\n");
goto fail;
}
@@ -725,12 +725,12 @@ fail:
static int map_new_blktapctrl(blkif_t *blkif)
{
DPRINTF("Received a poll for a new devmap\n");
- if (write_msg(blkif->fds[WRITE], CTLMSG_NEWDEV, blkif, NULL) <= 0) {
+ if (write_msg(blkif->fds[XEN_WRITE], CTLMSG_NEWDEV, blkif, NULL) <= 0) {
DPRINTF("Write_msg failed - CTLMSG_NEWDEV\n");
return -EINVAL;
}
- if (read_msg(blkif->fds[READ], CTLMSG_NEWDEV_RSP, blkif) <= 0) {
+ if (read_msg(blkif->fds[XEN_READ], CTLMSG_NEWDEV_RSP, blkif) <= 0) {
DPRINTF("Read_msg failed - CTLMSG_NEWDEV_RSP\n");
return -EINVAL;
}
@@ -743,15 +743,15 @@ static int unmap_blktapctrl(blkif_t *blk
{
DPRINTF("Unmapping vbd\n");
- if (write_msg(blkif->fds[WRITE], CTLMSG_CLOSE, blkif, NULL) <= 0) {
+ if (write_msg(blkif->fds[XEN_WRITE], CTLMSG_CLOSE, blkif, NULL) <= 0) {
DPRINTF("Write_msg failed - CTLMSG_CLOSE\n");
return -EINVAL;
}
if (del_disktype(blkif)) {
DPRINTF("Closing communication pipe to pid %d\n", blkif->tappid);
- close(blkif->fds[WRITE]);
- close(blkif->fds[READ]);
+ close(blkif->fds[XEN_WRITE]);
+ close(blkif->fds[XEN_READ]);
}
return 0;
--- tools/blktap/drivers/tapdisk.c.orig 2011-01-10 11:33:42.160375869 +0100
+++ tools/blktap/drivers/tapdisk.c 2011-01-10 11:36:42.820168882 +0100
@@ -138,10 +138,10 @@ static inline int LOCAL_FD_SET(fd_set *r
if (ptr->tap_fd) {
FD_SET(ptr->tap_fd, readfds);
td_for_each_disk(ptr->s, dd) {
- if (dd->io_fd[READ])
- FD_SET(dd->io_fd[READ], readfds);
- maxfds = (dd->io_fd[READ] > maxfds ?
- dd->io_fd[READ] : maxfds);
+ if (dd->io_fd[INPUT])
+ FD_SET(dd->io_fd[INPUT], readfds);
+ maxfds = (dd->io_fd[INPUT] > maxfds ?
+ dd->io_fd[INPUT] : maxfds);
}
maxfds = (ptr->tap_fd > maxfds ? ptr->tap_fd : maxfds);
}
@@ -380,7 +380,7 @@ static int read_msg(char *buf)
struct td_state *s = NULL;
fd_list_entry_t *entry;
- length = read(fds[READ], buf, MSG_SIZE);
+ length = read(fds[INPUT], buf, MSG_SIZE);
if (length > 0 && length >= sizeof(msg_hdr_t))
{
@@ -435,7 +435,7 @@ static int read_msg(char *buf)
msg->type = CTLMSG_IMG_FAIL;
msg->len = msglen;
}
- len = write(fds[WRITE], buf, msglen);
+ len = write(fds[OUTPUT], buf, msglen);
free(path);
return 1;
@@ -457,7 +457,7 @@ static int read_msg(char *buf)
: CTLMSG_NEWDEV_FAIL);
msg->len = msglen;
- len = write(fds[WRITE], buf, msglen);
+ len = write(fds[OUTPUT], buf, msglen);
return 1;
case CTLMSG_CLOSE:
@@ -479,7 +479,7 @@ static int read_msg(char *buf)
process = getpid();
msg_pid->pid = process;
- len = write(fds[WRITE], buf, msglen);
+ len = write(fds[OUTPUT], buf, msglen);
return 1;
default:
@@ -782,12 +782,12 @@ int main(int argc, char *argv[])
signal (SIGINT, sig_handler);
/*Open the control channel*/
- fds[READ] = open(argv[1],O_RDWR|O_NONBLOCK);
- fds[WRITE] = open(argv[2],O_RDWR|O_NONBLOCK);
+ fds[INPUT] = open(argv[1],O_RDWR|O_NONBLOCK);
+ fds[OUTPUT] = open(argv[2],O_RDWR|O_NONBLOCK);
- if ( (fds[READ] < 0) || (fds[WRITE] < 0) )
+ if ( (fds[INPUT] < 0) || (fds[OUTPUT] < 0) )
{
- DPRINTF("FD open failed [%d,%d]\n", fds[READ], fds[WRITE]);
+ DPRINTF("FD open failed [%d,%d]\n", fds[INPUT], fds[OUTPUT]);
exit(-1);
}
@@ -803,8 +803,8 @@ int main(int argc, char *argv[])
{
ret = 0;
FD_ZERO(&readfds);
- FD_SET(fds[READ], &readfds);
- maxfds = fds[READ];
+ FD_SET(fds[INPUT], &readfds);
+ maxfds = fds[INPUT];
/*Set all tap fds*/
LOCAL_FD_SET(&readfds);
@@ -822,10 +822,10 @@ int main(int argc, char *argv[])
tapdev_info_t *info = ptr->s->ring_info;
td_for_each_disk(ptr->s, dd) {
- if (dd->io_fd[READ] &&
- FD_ISSET(dd->io_fd[READ],
+ if (dd->io_fd[INPUT] &&
+ FD_ISSET(dd->io_fd[INPUT],
&readfds)) {
- io_done(dd, READ);
+ io_done(dd, INPUT);
progress_made = 1;
}
}
@@ -851,13 +851,13 @@ int main(int argc, char *argv[])
ptr = ptr->next;
}
- if (FD_ISSET(fds[READ], &readfds))
+ if (FD_ISSET(fds[INPUT], &readfds))
read_msg(buf);
}
}
free(buf);
- close(fds[READ]);
- close(fds[WRITE]);
+ close(fds[INPUT]);
+ close(fds[OUTPUT]);
ptr = fd_start;
while (ptr != NULL) {

View file

@ -0,0 +1,10 @@
--- tools/debugger/gdbsx/xg/xg_main.c
+++ tools/debugger/gdbsx/xg/xg_main.c
@@ -34,6 +34,7 @@
* XGTRC(): generic trace utility
*/
+#include <sys/types.h>
#include <stdio.h>
#include <stddef.h>
#include <stdarg.h>

View file

@ -0,0 +1,22 @@
--- tools/qemu-xen/Makefile.target.orig 2013-06-04 15:51:15.320999319 +0200
+++ tools/qemu-xen/Makefile.target 2013-06-04 15:51:37.360864318 +0200
@@ -205,7 +205,7 @@ obj-$(CONFIG_REALLY_VIRTFS) += 9pfs/virt
obj-$(CONFIG_KVM) += kvm.o kvm-all.o
obj-$(CONFIG_NO_KVM) += kvm-stub.o
obj-y += memory.o
-LIBS+=-lz
+LIBS+=-lz -lrt
QEMU_CFLAGS += $(VNC_TLS_CFLAGS)
QEMU_CFLAGS += $(VNC_SASL_CFLAGS)
--- tools/qemu-xen-traditional/Makefile.target
+++ tools/qemu-xen-traditional/Makefile.target
@@ -520,7 +520,7 @@
OBJS+=block-raw-posix.o
endif
-LIBS+=-lz
+LIBS+=-lz -lm -lrt
ifdef CONFIG_ALSA
LIBS += -lasound
endif

131
srcpkgs/xen4.2/template Normal file
View file

@ -0,0 +1,131 @@
# Template file for 'xen'
pkgname=xen4.2
version=4.2.2
wrksrc=xen-${version}
revision=1
short_desc="Xen Hypervisor and Utilities (4.2.x series)"
maintainer="Juan RP <xtraeme@gmail.com>"
homepage="http://xen.org"
license="GPL-2"
distfiles="http://bits.xensource.com/oss-xen/release/$version/xen-$version.tar.gz"
checksum=c9bfe91a5e72f8545acebad9889d64368020359bfe18044c0e683133e55ae005
long_desc="
This package provides the official Xen Hypervisor and related utilities
for starting/stopping/accessing unprivileged domains (domUs)."
# Update this if support for ARM7 is added.
only_for_archs="i686 x86_64"
hostmakedepends="which wget bison pkg-config"
makedepends="lzo-devel openssl-devel e2fsprogs-devel zlib-devel gnutls-devel>=3.1.5
libbluetooth-devel pciutils-devel libX11-devel libXext-devel SDL-devel MesaLib-devel
ncurses-devel liblzma-devel python-devel yajl-devel libuuid-devel libglib-devel iproute2
bridge-utils dev86 acpica-utils"
if [ "${XBPS_MACHINE}" = "x86_64" ]; then
makedepends+=" gcc-multilib"
fi
do_configure() {
unset CC LD AR AS RANLIB CPP CFLAGS CPPFLAGS LDFLAGS
./configure ${configure_args}
}
do_build() {
if [ "${XBPS_MACHINE}" = "x86_64" ]; then
install -d ${DESTDIR}/usr/lib
cd ${DESTDIR}/usr
ln -sf lib lib64
fi
cd ${wrksrc}
unset CC LD AR AS RANLIB CPP CFLAGS CPPFLAGS LDFLAGS
make ${makejobs} DISTDIR=${wrksrc}/${pkgver}-distdir
}
do_install() {
if [ "${XBPS_MACHINE}" = "x86_64" ]; then
install -d ${DESTDIR}/usr/lib
cd ${DESTDIR}/usr
ln -sf lib lib64
cd ${wrksrc}
fi
unset CC LD AR AS RANLIB CPP CFLAGS CPPFLAGS LDFLAGS
make DESTDIR=${DESTDIR} install
# Move example config files into correct directory.
vmkdir usr/share/examples/xen
mv ${DESTDIR}/etc/xen/x*example* ${DESTDIR}/usr/share/examples/xen
mv ${DESTDIR}/etc/xen/cpupool ${DESTDIR}/usr/share/examples/xen
mv ${DESTDIR}/etc/init.d/xendomains ${DESTDIR}/etc/xen/scripts
# Remove useless stuff.
rm -rf ${DESTDIR}/etc/init.d ${DESTDIR}/usr/local
rm -f ${DESTDIR}/install.sh ${DESTDIR}/usr/lib64
rm -rf ${DESTDIR}/usr/bin/qemu-*-xen
rm -rf ${DESTDIR}/usr/share/qemu-xen
rm -f ${DESTDIR}/boot/xen{,-4,-4.2}.gz
rm -f ${DESTDIR}/usr/sbin/xen-python-path
rm -f ${DESTDIR}/{install,COPYING,README,usr/lib/lib}
rm -rf ${DESTDIR}/etc/udev
# Move bash-completion to the correct dir.
vmkdir usr/share/bash-completion/completions
mv ${DESTDIR}/etc/bash_completion.d/* \
${DESTDIR}/usr/share/bash-completion/completions
# Install systemd services.
vmkdir usr/lib/systemd/system
install -m644 ${FILESDIR}/*.{mount,service} ${DESTDIR}/usr/lib/systemd/system
vmkdir usr/lib/modules-load.d
install -m644 ${FILESDIR}/xen.conf ${DESTDIR}/usr/lib/modules-load.d
install -Dm644 ${FILESDIR}/tmpfiles.d-xen.conf \
${DESTDIR}/usr/lib/tmpfiles.d/xen.conf
# Move bins to /usr/bin.
mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin/
# Drop xen/xm stuff (obsolete).
rm -f ${DESTDIR}/usr/bin/{xm,xend}
rm -f ${DESTDIR}/etc/xen/*.{sxp,xml}
rm -f ${DESTDIR}/usr/share/man/man5/{xmdomain.cfg,xend-config.sxp}.5
rm -f ${DESTDIR}/usr/share/man/man1/xm.1
rm -f ${DESTDIR}/usr/share/doc/xen/html/man/xm.1.html
rm -f ${DESTDIR}/usr/share/doc/xen/html/man/{xmdomain.cfg,xend-config.sxp}.5.html
rm -f ${DESTDIR}/usr/share/examples/xen/xmexample*
}
xen4.2-devel_package() {
short_desc+=" - development files"
provides="xen-devel-${version}_${revision}"
replaces="xen-devel>=0"
pkg_install() {
vmove usr/include
vmove "usr/lib/*.a"
}
}
xen4.2_package() {
make_dirs="
/var/lib/xenstored 755 root root
/var/lib/xen/xenpaging 755 root root
/var/xen/dump 755 root root
/etc/xen/auto 755 root root"
conf_files="
/etc/default/xendomains
/etc/default/xencommons
/etc/xen/xl.conf"
nostrip_files="
openbios-ppc
openbios-sparc32
openbios-sparc64
palcode-clipper
xen-syms-${version}"
pycompile_module="xen grub"
depends="iproute2 bridge-utils"
provides="xen-${version}_${revision}"
replaces="xen>=0"
pkg_install() {
vmove all
}
}