From 7bb90406778d6038ad707f94d421fff1d55e639c Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Fri, 23 Dec 2011 14:15:09 -0500 Subject: Change qemu-mcast from 0.14.1 to 0.13.0; the version the mcast patch is for. Also, fix deps. --- cisco/qemu-mcast/PKGBUILD | 30 +-- cisco/qemu-mcast/qemu-0.14.1-multicast.patch | 291 --------------------------- 2 files changed, 16 insertions(+), 305 deletions(-) delete mode 100644 cisco/qemu-mcast/qemu-0.14.1-multicast.patch diff --git a/cisco/qemu-mcast/PKGBUILD b/cisco/qemu-mcast/PKGBUILD index 23b4596..813b052 100644 --- a/cisco/qemu-mcast/PKGBUILD +++ b/cisco/qemu-mcast/PKGBUILD @@ -1,31 +1,32 @@ # Maintainer: Marek Skrobacki + pkgname=qemu-mcast -pkgver=0.14.1 +pkgver=0.13.0 pkgrel=1 -pkgdesc="QEMU is a generic and open source processor emulator which achieves a good emulation speed by using dynamic translation. This version has been patched to provide multicast functionality (used for GNS3 and Dynamips)." +pkgdesc="A generic and open source processor emulator which achieves a good emulation speed by using dynamic translation. This version has been patched to provide multicast functionality (used for GNS3)." arch=('i686' 'x86_64') license=('GPL2' 'LGPL2.1') url="http://wiki.qemu.org/Index.html" makedepends=('texi2html' 'perl') -depends=('libjpeg' 'libpng' 'sdl' 'alsa-lib' 'esound' 'gnutls>=2.4.1' 'bluez' 'vde2' 'util-linux-ng' 'curl' 'libsasl') +depends=('libjpeg' 'libpng' 'sdl' 'alsa-lib' 'nss' 'glib2' 'gnutls>=2.4.1' 'bluez' 'vde2' 'util-linux-ng' 'curl' 'libsasl') conflicts=('qemu') +provides=('qemu') backup=('etc/qemu/target-x86_64.conf') install=qemu.install source=(http://savannah.nongnu.org/download/qemu/qemu-${pkgver}.tar.gz - 65-kvm.rules - qemu-${pkgver}-multicast.patch) + http://downloads.sourceforge.net/project/gns-3/Qemu/qemu-0.13.0-patches.zip + 65-kvm.rules) options=(!strip) build() { cd ${srcdir}/qemu-${pkgver} - patch -p1 --ignore-whitespace -i $srcdir/qemu-0.14.1-multicast.patch || return 1 + patch -p1 -i ${srcdir}/qemu-${pkgver}-mcast-udp.patch || return 1 sed -i -e 's/lib64/lib/g' x86_64.ld - ./configure --prefix=/usr --sysconfdir=/etc --audio-drv-list=oss,alsa,sdl,esd \ - --audio-card-list=ac97,sb16,es1370,adlib \ - --enable-docs \ - --kerneldir="/usr/src/linux-$(uname -r)" - make + ./configure --prefix=/usr --sysconfdir=/etc --audio-drv-list=oss,alsa,sdl \ + --audio-card-list=ac97,sb16,es1370,hda \ + --enable-docs + make } package() { @@ -34,6 +35,7 @@ package() { install -D -m644 ${srcdir}/65-kvm.rules \ ${pkgdir}/lib/udev/rules.d/65-kvm.rules } -md5sums=('b6c713a8db638e173af53a62d5178640' - 'b316a066d2f1bb57d8f5b7ea1d0d1caf' - '16744fd48654a92fa2b4e2b984d66569') + +md5sums=('397a0d665da8ba9d3b9583629f3d6421' + '60664b8839e3e24710bb4e0ae87152fa' + 'b316a066d2f1bb57d8f5b7ea1d0d1caf') diff --git a/cisco/qemu-mcast/qemu-0.14.1-multicast.patch b/cisco/qemu-mcast/qemu-0.14.1-multicast.patch deleted file mode 100644 index fb46465..0000000 --- a/cisco/qemu-mcast/qemu-0.14.1-multicast.patch +++ /dev/null @@ -1,291 +0,0 @@ -diff -uNr old-qemu-0.14.1//block/raw-win32.c qemu-0.14.1/block/raw-win32.c ---- old-qemu-0.14.1//block/raw-win32.c 2011-05-06 21:01:43.000000000 +0200 -+++ qemu-0.14.1/block/raw-win32.c 2011-05-11 15:41:45.744749392 +0200 -@@ -93,7 +93,7 @@ - else if (!(flags & BDRV_O_CACHE_WB)) - overlapped |= FILE_FLAG_WRITE_THROUGH; - s->hfile = CreateFile(filename, access_flags, -- FILE_SHARE_READ, NULL, -+ FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, - OPEN_EXISTING, overlapped, NULL); - if (s->hfile == INVALID_HANDLE_VALUE) { - int err = GetLastError(); -@@ -354,7 +354,7 @@ - else if (!(flags & BDRV_O_CACHE_WB)) - overlapped |= FILE_FLAG_WRITE_THROUGH; - s->hfile = CreateFile(filename, access_flags, -- FILE_SHARE_READ, NULL, -+ FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, - create_flags, overlapped, NULL); - if (s->hfile == INVALID_HANDLE_VALUE) { - int err = GetLastError(); -diff -uNr old-qemu-0.14.1//hw/e1000.c qemu-0.14.1/hw/e1000.c ---- old-qemu-0.14.1//hw/e1000.c 2011-05-06 21:01:43.000000000 +0200 -+++ qemu-0.14.1/hw/e1000.c 2011-05-11 15:41:45.744749392 +0200 -@@ -573,7 +573,7 @@ - if (rctl & E1000_RCTL_UPE) // promiscuous - return 1; - -- if ((buf[0] & 1) && (rctl & E1000_RCTL_MPE)) // promiscuous mcast -+ if ((buf[0] & 1)) //&& (rctl & E1000_RCTL_MPE)) // promiscuous mcast - return 1; - - if ((rctl & E1000_RCTL_BAM) && !memcmp(buf, bcast, sizeof bcast)) -diff -uNr old-qemu-0.14.1//Makefile.objs qemu-0.14.1/Makefile.objs ---- old-qemu-0.14.1//Makefile.objs 2011-05-06 21:01:43.000000000 +0200 -+++ qemu-0.14.1/Makefile.objs 2011-05-11 15:41:45.751749392 +0200 -@@ -34,6 +34,7 @@ - net-nested-y = queue.o checksum.o util.o - net-nested-y += socket.o - net-nested-y += dump.o -+net-nested-y += udp.o - net-nested-$(CONFIG_POSIX) += tap.o - net-nested-$(CONFIG_LINUX) += tap-linux.o - net-nested-$(CONFIG_WIN32) += tap-win32.o -diff -uNr old-qemu-0.14.1//net/udp.c qemu-0.14.1/net/udp.c ---- old-qemu-0.14.1//net/udp.c 1970-01-01 01:00:00.000000000 +0100 -+++ qemu-0.14.1/net/udp.c 2011-05-11 15:41:45.752749392 +0200 -@@ -0,0 +1,138 @@ -+/* -+ * QEMU System Emulator -+ * -+ * Copyright (c) 2003-2008 Fabrice Bellard -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a copy -+ * of this software and associated documentation files (the "Software"), to deal -+ * in the Software without restriction, including without limitation the rights -+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -+ * copies of the Software, and to permit persons to whom the Software is -+ * furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice shall be included in -+ * all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -+ * THE SOFTWARE. -+ */ -+#include "net/udp.h" -+ -+#include "config-host.h" -+ -+#ifndef _WIN32 -+#include -+#include -+#include -+#endif -+ -+#include "net.h" -+#include "qemu-char.h" -+#include "qemu-common.h" -+#include "qemu-option.h" -+#include "qemu_socket.h" -+#include "sysemu.h" -+ -+ -+typedef struct UDPState { -+ VLANClientState nc; -+ int rfd; -+ struct sockaddr_in sender; -+} UDPState; -+ -+static void udp_to_qemu(void *opaque) -+{ -+ UDPState *s = opaque; -+ uint8_t buf[4096]; -+ int size; -+ -+ size = recvfrom(s->rfd, (char *)buf, sizeof(buf), 0, NULL, NULL); -+ if (size > 0) { -+ qemu_send_packet(&s->nc, buf, size); -+ } -+} -+ -+static ssize_t udp_receive(VLANClientState *nc, const uint8_t *buf, size_t size) -+{ -+ UDPState *s = DO_UPCAST(UDPState, nc, nc); -+ int ret; -+ -+ do { -+ ret = sendto(s->rfd, (const char *)buf, size, 0, (struct sockaddr *)&s->sender, sizeof (s->sender)); -+ } while (ret < 0 && errno == EINTR); -+ -+ return ret; -+} -+ -+static void udp_cleanup(VLANClientState *nc) -+{ -+ UDPState *s = DO_UPCAST(UDPState, nc, nc); -+ qemu_set_fd_handler(s->rfd, NULL, NULL, NULL); -+ close(s->rfd); -+} -+ -+static NetClientInfo net_udp_info = { -+ .type = NET_CLIENT_TYPE_UDP, -+ .size = sizeof(UDPState), -+ .receive = udp_receive, -+ .cleanup = udp_cleanup, -+}; -+ -+static int net_udp_init(VLANState *vlan, const char *model, -+ const char *name, int sport, -+ const char *daddr, int dport) -+{ -+ VLANClientState *nc; -+ UDPState *s; -+ struct sockaddr_in receiver; -+ int ret; -+ -+ nc = qemu_new_net_client(&net_udp_info, vlan, NULL, model, name); -+ -+ snprintf(nc->info_str, sizeof(nc->info_str),"udp: %i->%s:%i", -+ sport, daddr, dport); -+ -+ s = DO_UPCAST(UDPState, nc, nc); -+ -+ s->rfd = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); -+ receiver.sin_family = AF_INET; -+ receiver.sin_addr.s_addr = INADDR_ANY; -+ receiver.sin_port = htons(sport); -+ ret = bind(s->rfd, (struct sockaddr *)&receiver, sizeof(receiver)); -+ -+ if (ret == -1) { -+ fprintf (stderr, "bind error:%s\n", strerror(errno)); -+ return ret; -+ } -+ -+ memset((char*)&s->sender, 0,sizeof(s->sender)); -+ s->sender.sin_family = AF_INET; -+ s->sender.sin_port = htons(dport); -+ inet_aton(daddr, &s->sender.sin_addr); -+ -+ qemu_set_fd_handler(s->rfd, udp_to_qemu, NULL, s); -+ -+ return 0; -+} -+ -+int net_init_udp(QemuOpts *opts, Monitor *mon, const char *name, VLANState *vlan) -+{ -+ const char *daddr; -+ int sport, dport; -+ -+ daddr = qemu_opt_get(opts, "daddr"); -+ -+ sport = qemu_opt_get_number(opts, "sport", 0); -+ dport = qemu_opt_get_number(opts, "dport", 0); -+ -+ if (net_udp_init(vlan, "udp", name, sport, daddr, dport) == -1) { -+ return -1; -+ } -+ -+ return 0; -+} -diff -uNr old-qemu-0.14.1//net/udp.h qemu-0.14.1/net/udp.h ---- old-qemu-0.14.1//net/udp.h 1970-01-01 01:00:00.000000000 +0100 -+++ qemu-0.14.1/net/udp.h 2011-05-11 15:41:45.752749392 +0200 -@@ -0,0 +1,32 @@ -+/* -+ * QEMU System Emulator -+ * -+ * Copyright (c) 2003-2008 Fabrice Bellard -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a copy -+ * of this software and associated documentation files (the "Software"), to deal -+ * in the Software without restriction, including without limitation the rights -+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -+ * copies of the Software, and to permit persons to whom the Software is -+ * furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice shall be included in -+ * all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -+ * THE SOFTWARE. -+ */ -+#ifndef QEMU_NET_UDP_H -+#define QEMU_NET_UDP_H -+ -+#include "qemu-common.h" -+#include "qemu-option.h" -+ -+int net_init_udp(QemuOpts *opts, Monitor *mon, const char *name, VLANState *vlan); -+ -+#endif /* QEMU_NET_UDP_H */ -diff -uNr old-qemu-0.14.1//net.c qemu-0.14.1/net.c ---- old-qemu-0.14.1//net.c 2011-05-06 21:01:44.000000000 +0200 -+++ qemu-0.14.1/net.c 2011-05-11 15:42:53.145749408 +0200 -@@ -30,6 +30,7 @@ - #include "net/dump.h" - #include "net/slirp.h" - #include "net/vde.h" -+#include "net/udp.h" - #include "net/util.h" - #include "monitor.h" - #include "sysemu.h" -@@ -1085,9 +1086,31 @@ - .help = "permissions for socket", - }, - { /* end of list */ } -- }, -+ }, - #endif - }, { -+ -+ .type = "udp", -+ .init = net_init_udp, -+ .desc = { -+ NET_COMMON_PARAMS_DESC, -+ { -+ .name = "sport", -+ .type = QEMU_OPT_NUMBER, -+ -+ .help = "source port number", -+ }, { -+ .name = "daddr", -+ .type = QEMU_OPT_STRING, -+ .help = "destination IP address", -+ }, { -+ .name = "dport", -+ .type = QEMU_OPT_NUMBER, -+ .help = "destination port number", -+ }, -+ { /* end of list */ } -+ }, -+ }, { - .type = "dump", - .init = net_init_dump, - .desc = { -diff -uNr old-qemu-0.14.1//net.h qemu-0.14.1/net.h ---- old-qemu-0.14.1//net.h 2011-05-06 21:01:44.000000000 +0200 -+++ qemu-0.14.1/net.h 2011-05-11 15:41:45.754749392 +0200 -@@ -35,6 +35,7 @@ - NET_CLIENT_TYPE_TAP, - NET_CLIENT_TYPE_SOCKET, - NET_CLIENT_TYPE_VDE, -+ NET_CLIENT_TYPE_UDP, - NET_CLIENT_TYPE_DUMP - } net_client_type; - -diff -uNr old-qemu-0.14.1//qemu-options.hx qemu-0.14.1/qemu-options.hx ---- old-qemu-0.14.1//qemu-options.hx 2011-05-06 21:01:44.000000000 +0200 -+++ qemu-0.14.1/qemu-options.hx 2011-05-11 15:41:45.755749392 +0200 -@@ -1070,6 +1070,8 @@ - "-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port[,localaddr=addr]]\n" - " connect the vlan 'n' to multicast maddr and port\n" - " use 'localaddr=addr' to specify the host address to send packets from\n" -+ "-net udp[,vlan=n]sport=sport,dport=dport,daddr=host\n" -+ " connect the vlan 'n' to a UDP tunnel (for Dynamips/GNS3)\n" - #ifdef CONFIG_VDE - "-net vde[,vlan=n][,name=str][,sock=socketpath][,port=n][,group=groupname][,mode=octalmode]\n" - " connect the vlan 'n' to port 'n' of a vde switch running\n" - - -- cgit v1.2.3