From 1824ba38f264890776ead95a297f4547faf7e816 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Wed, 24 Jul 2013 23:05:20 +0200 Subject: [PATCH] Re-add xen-4.2.2 as xen4.2, because 4.3 removed support for dom0 on x86. --- srcpkgs/xen4.2-devel | 1 + srcpkgs/xen4.2/files/proc-xen.mount | 9 + srcpkgs/xen4.2/files/tmpfiles.d-xen.conf | 1 + srcpkgs/xen4.2/files/var-lib-xenstored.mount | 10 + srcpkgs/xen4.2/files/xen.conf | 7 + srcpkgs/xen4.2/files/xenconsoled.service | 17 ++ srcpkgs/xen4.2/files/xendomU@.service | 13 + srcpkgs/xen4.2/files/xendomains.service | 15 + srcpkgs/xen4.2/files/xenstored.service | 18 ++ .../patches/blktaplib.h.redefinition.patch | 265 ++++++++++++++++++ srcpkgs/xen4.2/patches/gdbsx-glibc-2.17.patch | 10 + .../patches/qemu-timer_settime-librt.patch | 22 ++ srcpkgs/xen4.2/template | 131 +++++++++ 13 files changed, 519 insertions(+) create mode 120000 srcpkgs/xen4.2-devel create mode 100644 srcpkgs/xen4.2/files/proc-xen.mount create mode 100644 srcpkgs/xen4.2/files/tmpfiles.d-xen.conf create mode 100644 srcpkgs/xen4.2/files/var-lib-xenstored.mount create mode 100644 srcpkgs/xen4.2/files/xen.conf create mode 100644 srcpkgs/xen4.2/files/xenconsoled.service create mode 100644 srcpkgs/xen4.2/files/xendomU@.service create mode 100644 srcpkgs/xen4.2/files/xendomains.service create mode 100644 srcpkgs/xen4.2/files/xenstored.service create mode 100644 srcpkgs/xen4.2/patches/blktaplib.h.redefinition.patch create mode 100644 srcpkgs/xen4.2/patches/gdbsx-glibc-2.17.patch create mode 100644 srcpkgs/xen4.2/patches/qemu-timer_settime-librt.patch create mode 100644 srcpkgs/xen4.2/template diff --git a/srcpkgs/xen4.2-devel b/srcpkgs/xen4.2-devel new file mode 120000 index 0000000000..dcf8c41c51 --- /dev/null +++ b/srcpkgs/xen4.2-devel @@ -0,0 +1 @@ +xen4.2 \ No newline at end of file diff --git a/srcpkgs/xen4.2/files/proc-xen.mount b/srcpkgs/xen4.2/files/proc-xen.mount new file mode 100644 index 0000000000..0eaa59c5fa --- /dev/null +++ b/srcpkgs/xen4.2/files/proc-xen.mount @@ -0,0 +1,9 @@ +[Unit] +Description=Mount /proc/xen files +ConditionPathExists=/proc/xen +RefuseManualStop=true + +[Mount] +What=xenfs +Where=/proc/xen +Type=xenfs diff --git a/srcpkgs/xen4.2/files/tmpfiles.d-xen.conf b/srcpkgs/xen4.2/files/tmpfiles.d-xen.conf new file mode 100644 index 0000000000..5041017721 --- /dev/null +++ b/srcpkgs/xen4.2/files/tmpfiles.d-xen.conf @@ -0,0 +1 @@ +d /run/xen 0755 root root - diff --git a/srcpkgs/xen4.2/files/var-lib-xenstored.mount b/srcpkgs/xen4.2/files/var-lib-xenstored.mount new file mode 100644 index 0000000000..1c2015ca22 --- /dev/null +++ b/srcpkgs/xen4.2/files/var-lib-xenstored.mount @@ -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 diff --git a/srcpkgs/xen4.2/files/xen.conf b/srcpkgs/xen4.2/files/xen.conf new file mode 100644 index 0000000000..4fbf6c96bc --- /dev/null +++ b/srcpkgs/xen4.2/files/xen.conf @@ -0,0 +1,7 @@ +xen-evtchn +xen-gntdev +xen-gntalloc +xen-blkback +xen-netback +xen-pciback +xen-acpi-processor diff --git a/srcpkgs/xen4.2/files/xenconsoled.service b/srcpkgs/xen4.2/files/xenconsoled.service new file mode 100644 index 0000000000..0b303d6700 --- /dev/null +++ b/srcpkgs/xen4.2/files/xenconsoled.service @@ -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 diff --git a/srcpkgs/xen4.2/files/xendomU@.service b/srcpkgs/xen4.2/files/xendomU@.service new file mode 100644 index 0000000000..83eb401850 --- /dev/null +++ b/srcpkgs/xen4.2/files/xendomU@.service @@ -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 diff --git a/srcpkgs/xen4.2/files/xendomains.service b/srcpkgs/xen4.2/files/xendomains.service new file mode 100644 index 0000000000..d49bd5593e --- /dev/null +++ b/srcpkgs/xen4.2/files/xendomains.service @@ -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 diff --git a/srcpkgs/xen4.2/files/xenstored.service b/srcpkgs/xen4.2/files/xenstored.service new file mode 100644 index 0000000000..66e76f1a4b --- /dev/null +++ b/srcpkgs/xen4.2/files/xenstored.service @@ -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 diff --git a/srcpkgs/xen4.2/patches/blktaplib.h.redefinition.patch b/srcpkgs/xen4.2/patches/blktaplib.h.redefinition.patch new file mode 100644 index 0000000000..093cff6321 --- /dev/null +++ b/srcpkgs/xen4.2/patches/blktaplib.h.redefinition.patch @@ -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) { diff --git a/srcpkgs/xen4.2/patches/gdbsx-glibc-2.17.patch b/srcpkgs/xen4.2/patches/gdbsx-glibc-2.17.patch new file mode 100644 index 0000000000..5d9b33ba00 --- /dev/null +++ b/srcpkgs/xen4.2/patches/gdbsx-glibc-2.17.patch @@ -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 + #include + #include + #include diff --git a/srcpkgs/xen4.2/patches/qemu-timer_settime-librt.patch b/srcpkgs/xen4.2/patches/qemu-timer_settime-librt.patch new file mode 100644 index 0000000000..f16d79412e --- /dev/null +++ b/srcpkgs/xen4.2/patches/qemu-timer_settime-librt.patch @@ -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 diff --git a/srcpkgs/xen4.2/template b/srcpkgs/xen4.2/template new file mode 100644 index 0000000000..aa2ae7e708 --- /dev/null +++ b/srcpkgs/xen4.2/template @@ -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 " +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 + } +}