Import of pkgsrc-2013Q2

This commit is contained in:
2013-09-26 17:14:40 +02:00
commit 785076ae39
74991 changed files with 4380255 additions and 0 deletions
+175
View File
@@ -0,0 +1,175 @@
$NetBSD: patch-aa,v 1.1.1.1 2011/07/26 06:05:00 agc Exp $
bridge is only compilable on Linux right now
--- src/util/bridge.c 2011/07/17 17:36:59 1.1
+++ src/util/bridge.c 2011/07/17 17:37:20
@@ -39,10 +39,21 @@
# include <paths.h>
# include <sys/wait.h>
+#if defined(__linux__)
# include <linux/param.h> /* HZ */
# include <linux/sockios.h> /* SIOCBRADDBR etc. */
# include <linux/if_bridge.h> /* SYSFS_BRIDGE_ATTR */
# include <linux/if_tun.h> /* IFF_TUN, IFF_NO_PI */
+#elif defined(__NetBSD__)
+# include <sys/param.h>
+# include <sys/sockio.h>
+# include <net/if.h>
+# include <net/if_tap.h>
+# include <net/if_ether.h>
+# include <net/if_bridgevar.h>
+# include <net/if_tun.h>
+#endif
+
# include <net/if_arp.h> /* ARPHRD_ETHER */
# include "internal.h"
@@ -309,6 +320,7 @@
if (virStrcpyStatic(ifr.ifr_name, ifname) == NULL)
return EINVAL;
+#ifdef __linux__
/* To fill ifr.ifr_hdaddr.sa_family field */
if (ioctl(ctl->fd, SIOCGIFHWADDR, &ifr) != 0)
return errno;
@@ -316,6 +328,15 @@
memcpy(ifr.ifr_hwaddr.sa_data, macaddr, VIR_MAC_BUFLEN);
return ioctl(ctl->fd, SIOCSIFHWADDR, &ifr) == 0 ? 0 : errno;
+#elif defined(__NetBSD__)
+ /* To fill ifr.ifr_hdaddr.sa_family field */
+ if (ioctl(ctl->fd, SIOCGIFADDR, &ifr) != 0)
+ return errno;
+
+ memcpy(ifr.ifr_addr.sa_data, macaddr, VIR_MAC_BUFLEN);
+
+ return ioctl(ctl->fd, SIOCSIFADDR, &ifr) == 0 ? 0 : errno;
+#endif
}
/**
@@ -459,6 +480,10 @@
}
# endif
+#ifndef USE_ARG
+#define USE_ARG(x) /*LINTED*/(void)&(x)
+#endif
+
/**
* brAddTap:
* @ctl: bridge control pointer
@@ -487,6 +512,7 @@
bool up,
int *tapfd)
{
+#if defined(__linux__)
int fd;
struct ifreq ifr;
@@ -549,11 +575,68 @@
VIR_FORCE_CLOSE(fd);
return errno;
+#elif defined(__NetBSD__)
+ int fd;
+ struct ifreq ifr;
+
+ USE_ARG(vnet_hdr);
+ if (!ctl || !ctl->fd || !bridge || !ifname)
+ return EINVAL;
+
+ if ((fd = open("/dev/tun", O_RDWR)) < 0)
+ return errno;
+
+ memset(&ifr, 0, sizeof(ifr));
+
+ if (ioctl(fd, TAPGIFNAME, &ifr) < 0)
+ goto error;
+
+ if (virStrcpyStatic(ifr.ifr_name, *ifname) == NULL) {
+ errno = EINVAL;
+ goto error;
+ }
+
+ if (ioctl(fd, TUNSIFHEAD, &ifr) < 0)
+ goto error;
+
+ /* We need to set the interface MAC before adding it
+ * to the bridge, because the bridge assumes the lowest
+ * MAC of all enslaved interfaces & we don't want it
+ * seeing the kernel allocate random MAC for the TAP
+ * device before we set our static MAC.
+ */
+ if ((errno = ifSetInterfaceMac(ctl, ifr.ifr_name, macaddr)))
+ goto error;
+ /* We need to set the interface MTU before adding it
+ * to the bridge, because the bridge will have its
+ * MTU adjusted automatically when we add the new interface.
+ */
+ if ((errno = brSetInterfaceMtu(ctl, bridge, ifr.ifr_name)))
+ goto error;
+ if ((errno = brAddInterface(ctl, bridge, ifr.ifr_name)))
+ goto error;
+ if (up && ((errno = brSetInterfaceUp(ctl, ifr.ifr_name, 1))))
+ goto error;
+ VIR_FREE(*ifname);
+ if (!(*ifname = strdup(ifr.ifr_name)))
+ goto error;
+ if (tapfd)
+ *tapfd = fd;
+ else
+ VIR_FORCE_CLOSE(fd);
+ return 0;
+
+ error:
+ VIR_FORCE_CLOSE(fd);
+
+ return errno;
+#endif
}
int brDeleteTap(brControl *ctl,
const char *ifname)
{
+#if defined(__linux__)
struct ifreq try;
int fd;
@@ -580,6 +663,34 @@
VIR_FORCE_CLOSE(fd);
return errno;
+#elif defined(__NetBSD__)
+ struct ifreq try;
+ int fd;
+
+ if (!ctl || !ctl->fd || !ifname)
+ return EINVAL;
+
+ if ((fd = open("/dev/tun", O_RDWR)) < 0)
+ return errno;
+
+ memset(&try, 0, sizeof(try));
+ if (ioctl(fd, TAPGIFNAME, &try) < 0)
+ goto error;
+
+
+ if (virStrcpyStatic(try.ifr_name, ifname) == NULL) {
+ errno = EINVAL;
+ goto error;
+ }
+
+ if (ioctl(fd, TUNSIFHEAD, &try) < 0)
+ goto error;
+
+ error:
+ VIR_FORCE_CLOSE(fd);
+
+ return errno;
+#endif
}
+15
View File
@@ -0,0 +1,15 @@
$NetBSD: patch-ab,v 1.1.1.1 2011/07/26 06:05:00 agc Exp $
There is a problem expanding the macro in base64.h, so we'll do it here
--- tools/virsh.c 2011/07/17 21:47:08 1.1
+++ tools/virsh.c 2011/07/17 21:48:19
@@ -8862,7 +8862,7 @@
if (vshCommandOptString(cmd, "base64", &base64) <= 0)
goto cleanup;
- if (!base64_decode_alloc(base64, strlen(base64), &value, &value_size)) {
+ if (!base64_decode_alloc_ctx(NULL, base64, strlen(base64), &value, &value_size)) {
vshError(ctl, "%s", _("Invalid base64 data"));
goto cleanup;
}
+23
View File
@@ -0,0 +1,23 @@
$NetBSD: patch-ac,v 1.1.1.1 2011/07/26 06:05:00 agc Exp $
Make sure the header inclusion guard is unique
--- gnulib/lib/base64.h 2011/07/17 21:51:19 1.1
+++ gnulib/lib/base64.h 2011/07/17 21:52:04
@@ -18,8 +18,8 @@
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-#ifndef BASE64_H
-# define BASE64_H
+#ifndef GNULIB_LIB_BASE64_H
+# define GNULIB_LIB_BASE64_H
/* Get size_t. */
# include <stddef.h>
@@ -60,4 +60,4 @@
#define base64_decode_alloc(in, inlen, out, outlen) \
base64_decode_alloc_ctx (NULL, in, inlen, out, outlen)
-#endif /* BASE64_H */
+#endif /* GNULIB_LIB_BASE64_H */
@@ -0,0 +1,13 @@
$NetBSD: patch-gnulib-lib-fflush.c,v 1.1 2012/03/08 01:12:52 joerg Exp $
--- gnulib/lib/fflush.c.orig 2011-05-17 06:12:57.000000000 +0000
+++ gnulib/lib/fflush.c
@@ -93,7 +93,7 @@ static inline void
update_fpos_cache (FILE *fp, off_t pos)
{
#if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
-# if defined __CYGWIN__
+# if defined(__CYGWIN__) || defined(__NetBSD__)
/* fp_->_offset is typed as an integer. */
fp_->_offset = pos;
# else
@@ -0,0 +1,13 @@
$NetBSD: patch-gnulib-lib-fseeko.c,v 1.1 2012/03/08 01:12:52 joerg Exp $
--- gnulib/lib/fseeko.c.orig 2011-03-01 07:54:21.000000000 +0000
+++ gnulib/lib/fseeko.c
@@ -111,7 +111,7 @@ fseeko (FILE *fp, off_t offset, int when
#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
fp->_flags &= ~_IO_EOF_SEEN;
#elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
-# if defined __CYGWIN__
+# if defined(__CYGWIN__) || defined(__NetBSD__)
/* fp_->_offset is typed as an integer. */
fp_->_offset = pos;
# else