summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2011-12-23 14:15:09 -0500
committerLuke Shumaker <LukeShu@sbcglobal.net>2011-12-23 14:15:09 -0500
commit7bb90406778d6038ad707f94d421fff1d55e639c (patch)
tree87c0beaa00ff4c5d30e558e6f4c9d2d26cf164b1
parent8426715f90aa51ea854acb5d41b653f53137bee2 (diff)
Change qemu-mcast from 0.14.1 to 0.13.0; the version the mcast patch is for.
Also, fix deps.
-rw-r--r--cisco/qemu-mcast/PKGBUILD30
-rw-r--r--cisco/qemu-mcast/qemu-0.14.1-multicast.patch291
2 files changed, 16 insertions, 305 deletions
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 <skrobul@skrobul.com>
+
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 <arpa/inet.h>
-+#include <netinet/in.h>
-+#include <netinet/udp.h>
-+#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"
-
-