]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
Merge branch 'core104' into next
authorArne Fitzenreiter <arne_f@ipfire.org>
Wed, 17 Aug 2016 17:51:01 +0000 (19:51 +0200)
committerArne Fitzenreiter <arne_f@ipfire.org>
Wed, 17 Aug 2016 17:51:01 +0000 (19:51 +0200)
config/rootfiles/packages/libusbredir [new file with mode: 0644]
lfs/dnsmasq
lfs/libusbredir [new file with mode: 0644]
lfs/libvirt
lfs/qemu
make.sh
src/initscripts/init.d/libvirtd
src/patches/dnsmasq/013-auth-zone_allow_to_exclude_ip_addresses_from_answer.patch [new file with mode: 0644]
src/patches/dnsmasq/014-Bump_auth_zone_serial_when_reloading_etc_hosts_and_friends.patch [new file with mode: 0644]

diff --git a/config/rootfiles/packages/libusbredir b/config/rootfiles/packages/libusbredir
new file mode 100644 (file)
index 0000000..d08e0b6
--- /dev/null
@@ -0,0 +1,18 @@
+#usr/include/usbredirfilter.h
+#usr/include/usbredirhost.h
+#usr/include/usbredirparser.h
+#usr/include/usbredirproto.h
+#usr/lib/libusbredirhost.a
+#usr/lib/libusbredirhost.la
+usr/lib/libusbredirhost.so
+usr/lib/libusbredirhost.so.1
+usr/lib/libusbredirhost.so.1.0.0
+#usr/lib/libusbredirparser.a
+#usr/lib/libusbredirparser.la
+usr/lib/libusbredirparser.so
+usr/lib/libusbredirparser.so.1
+usr/lib/libusbredirparser.so.1.0.0
+#usr/lib/pkgconfig/libusbredirhost.pc
+#usr/lib/pkgconfig/libusbredirparser-0.5.pc
+#usr/sbin/usbredirserver
+#usr/share/man/man1/usbredirserver.1
index eb0f0baf6eea4c4e28875eeb517516caa4c3c842..474dacc61b43f99d837610e0f8586d48fe4a2af5 100644 (file)
@@ -85,6 +85,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/010-Zero_packet_buffers_before_building_output_to_reduce_risk_of_information_leakage.patch
        cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/011-Dont_reset_packet_length_on_transmission_in_case_of_retransmission.patch
        cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/012-Compile-time_check_on_buffer_sizes_for_leasefile_parsing_code.patch
+       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/013-auth-zone_allow_to_exclude_ip_addresses_from_answer.patch
+       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/014-Bump_auth_zone_serial_when_reloading_etc_hosts_and_friends.patch
        cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq-Add-support-to-read-ISC-DHCP-lease-file.patch
 
        cd $(DIR_APP) && sed -i src/config.h \
diff --git a/lfs/libusbredir b/lfs/libusbredir
new file mode 100644 (file)
index 0000000..652a60d
--- /dev/null
@@ -0,0 +1,84 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2016  IPFire Team  <info@ipfire.org>                          #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.7.1
+
+THISAPP    = usbredir-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+PROG       = libusbredir
+PAK_VER    = 1
+
+DEPS       = ""
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 35cfb1720967727dea523b943cc4126b
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist:
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr
+       cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index ea8b0e8a26ad537721bf34910db73e63e5dbf19e..854c52c9af73df673b0111acfd3571f6690b882a 100644 (file)
@@ -33,7 +33,7 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 SUP_ARCH   = i586 x86_64
 PROG       = libvirt
-PAK_VER    = 6
+PAK_VER    = 9
 
 DEPS       = "libpciaccess libyajl ncat qemu"
 
@@ -82,10 +82,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc \
                        --with-openssl --without-sasl \
                        --without-uml --without-vbox --without-lxc --without-esx --without-vmware --without-openvz \
-                       --without-firewalld --without-network -with-interface --with-virtualport --with-macvtap \
-                       --disable-nls --without-avahi --without-test-suite -without-dbus \
+                       --without-firewalld --without-network --with-interface --with-virtualport --with-macvtap \
+                       --disable-nls --without-avahi --without-test-suite --without-dbus \
                        --with-qemu-user=nobody --with-qemu-group=kvm \
-                       --with-storage-dir --without-storage-fs --without-storage-lvm  --without-storage-iscsi \
+                       --with-storage-dir --with-storage-fs --without-storage-lvm  --without-storage-iscsi \
                        --without-storage-scsi --without-storage-mpath --without-storage-disk --without-storage-rbd --without-storage-sheepdog --without-storage-gluster  --without-storage-zfs
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
index 62010ee40d306e1e1d1968f606723dfc758b5a90..fb4f4b30ef0c8f8112a3f2140c8e5f12fc9c197b 100644 (file)
--- a/lfs/qemu
+++ b/lfs/qemu
@@ -33,9 +33,9 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 SUP_ARCH   = i586 x86_64
 PROG       = qemu
-PAK_VER    = 20
+PAK_VER    = 21
 
-DEPS       = "sdl spice"
+DEPS       = "libusbredir sdl spice"
 
 ###############################################################################
 # Top-level Rules
@@ -81,7 +81,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \
                --enable-kvm --disable-bluez --disable-attr \
                --target-list="i386-linux-user x86_64-linux-user arm-linux-user i386-softmmu x86_64-softmmu arm-softmmu" \
-               --extra-cflags="$(CFLAGS)" --enable-spice
+               --extra-cflags="$(CFLAGS)" --enable-spice --enable-usb-redir
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
 
diff --git a/make.sh b/make.sh
index ff12307fb11571fc6af69a4138bb63da306cf1e4..1c832d016fd8757fd722cc2a5addb81a0b3f4d42 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -708,6 +708,7 @@ buildipfire() {
   ipfiremake spice-protocol
   ipfiremake spice
   ipfiremake sdl
+  ipfiremake libusbredir
   ipfiremake qemu
   ipfiremake sane
   ipfiremake netpbm
index f97d208f45ad4518a260fd879d1dfdf87e25b936..40bc6bee3459c04290c3559bc9fc48b8e21edf68 100644 (file)
@@ -18,7 +18,7 @@
 case $1 in
        start)
                boot_mesg "Load required kernel modules for Libvirt"
-               modprobe tun
+               modprobe tun vhost_net
                evaluate_retval
                boot_mesg "Starting Libvirt Daemon..."
                loadproc /usr/sbin/libvirtd -d
diff --git a/src/patches/dnsmasq/013-auth-zone_allow_to_exclude_ip_addresses_from_answer.patch b/src/patches/dnsmasq/013-auth-zone_allow_to_exclude_ip_addresses_from_answer.patch
new file mode 100644 (file)
index 0000000..bb5fe5d
--- /dev/null
@@ -0,0 +1,184 @@
+From 094bfaeb4ff69cae99387bc2ea07ff57632c89f5 Mon Sep 17 00:00:00 2001
+From: Mathias Kresin <dev@kresin.me>
+Date: Sun, 24 Jul 2016 14:15:22 +0100
+Subject: [PATCH] auth-zone: allow to exclude ip addresses from answer.
+
+---
+ man/dnsmasq.8 |    6 +++++-
+ src/auth.c    |   61 ++++++++++++++++++++++++++++++++++++---------------------
+ src/dnsmasq.h |    1 +
+ src/option.c  |   21 ++++++++++++++++++--
+ 4 files changed, 64 insertions(+), 25 deletions(-)
+
+diff --git a/man/dnsmasq.8 b/man/dnsmasq.8
+index ac8d921..8910947 100644
+--- a/man/dnsmasq.8
++++ b/man/dnsmasq.8
+@@ -739,7 +739,7 @@ a return code of SERVFAIL. Note that
+ setting this may affect DNS behaviour in bad ways, it is not an
+ extra-logging flag and should not be set in production.
+ .TP
+-.B --auth-zone=<domain>[,<subnet>[/<prefix length>][,<subnet>[/<prefix length>].....]]
++.B --auth-zone=<domain>[,<subnet>[/<prefix length>][,<subnet>[/<prefix length>].....][,exclude:<subnet>[/<prefix length>]].....]
+ Define a DNS zone for which dnsmasq acts as authoritative server. Locally defined DNS records which are in the domain
+ will be served. If subnet(s) are given, A and AAAA records must be in one of the
+ specified subnets.
+@@ -756,6 +756,10 @@ appear in the zone, but RFC1918 IPv4 addresses which should not.
+ Interface-name and address-literal subnet specifications may be used
+ freely in the same --auth-zone declaration.
++It's possible to exclude certain IP addresses from responses. It can be
++used, to make sure that answers contain only global routeable IP
++addresses (by excluding loopback, RFC1918 and ULA addresses).
++
+ The subnet(s) are also used to define in-addr.arpa and
+ ip6.arpa domains which are served for reverse-DNS queries. If not
+ specified, the prefix length defaults to 24 for IPv4 and 64 for IPv6.
+diff --git a/src/auth.c b/src/auth.c
+index 3c5c37f..f1ca2f5 100644
+--- a/src/auth.c
++++ b/src/auth.c
+@@ -18,36 +18,53 @@
+ #ifdef HAVE_AUTH
+-static struct addrlist *find_subnet(struct auth_zone *zone, int flag, struct all_addr *addr_u)
++static struct addrlist *find_addrlist(struct addrlist *list, int flag, struct all_addr *addr_u)
+ {
+-  struct addrlist *subnet;
+-
+-  for (subnet = zone->subnet; subnet; subnet = subnet->next)
+-    {
+-      if (!(subnet->flags & ADDRLIST_IPV6))
+-      {
+-        struct in_addr netmask, addr = addr_u->addr.addr4;
+-
+-        if (!(flag & F_IPV4))
+-          continue;
+-        
+-        netmask.s_addr = htonl(~(in_addr_t)0 << (32 - subnet->prefixlen));
+-        
+-        if  (is_same_net(addr, subnet->addr.addr.addr4, netmask))
+-          return subnet;
+-      }
++  do {
++    if (!(list->flags & ADDRLIST_IPV6))
++      {
++      struct in_addr netmask, addr = addr_u->addr.addr4;
++      
++      if (!(flag & F_IPV4))
++        continue;
++      
++      netmask.s_addr = htonl(~(in_addr_t)0 << (32 - list->prefixlen));
++      
++      if  (is_same_net(addr, list->addr.addr.addr4, netmask))
++        return list;
++      }
+ #ifdef HAVE_IPV6
+-      else if (is_same_net6(&(addr_u->addr.addr6), &subnet->addr.addr.addr6, subnet->prefixlen))
+-      return subnet;
++    else if (is_same_net6(&(addr_u->addr.addr6), &list->addr.addr.addr6, list->prefixlen))
++      return list;
+ #endif
+-
+-    }
++    
++  } while ((list = list->next));
++  
+   return NULL;
+ }
++static struct addrlist *find_subnet(struct auth_zone *zone, int flag, struct all_addr *addr_u)
++{
++  if (!zone->subnet)
++    return NULL;
++  
++  return find_addrlist(zone->subnet, flag, addr_u);
++}
++
++static struct addrlist *find_exclude(struct auth_zone *zone, int flag, struct all_addr *addr_u)
++{
++  if (!zone->exclude)
++    return NULL;
++  
++  return find_addrlist(zone->exclude, flag, addr_u);
++}
++
+ static int filter_zone(struct auth_zone *zone, int flag, struct all_addr *addr_u)
+ {
+-  /* No zones specified, no filter */
++  if (find_exclude(zone, flag, addr_u))
++    return 0;
++
++  /* No subnets specified, no filter */
+   if (!zone->subnet)
+     return 1;
+   
+diff --git a/src/dnsmasq.h b/src/dnsmasq.h
+index 2bda5d0..27385a9 100644
+--- a/src/dnsmasq.h
++++ b/src/dnsmasq.h
+@@ -340,6 +340,7 @@ struct auth_zone {
+     struct auth_name_list *next;
+   } *interface_names;
+   struct addrlist *subnet;
++  struct addrlist *exclude;
+   struct auth_zone *next;
+ };
+diff --git a/src/option.c b/src/option.c
+index d8c57d6..6cedef3 100644
+--- a/src/option.c
++++ b/src/option.c
+@@ -1906,6 +1906,7 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
+       new = opt_malloc(sizeof(struct auth_zone));
+       new->domain = opt_string_alloc(arg);
+       new->subnet = NULL;
++      new->exclude = NULL;
+       new->interface_names = NULL;
+       new->next = daemon->auth_zones;
+       daemon->auth_zones = new;
+@@ -1913,6 +1914,7 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
+       while ((arg = comma))
+         {
+           int prefixlen = 0;
++          int is_exclude = 0;
+           char *prefix;
+           struct addrlist *subnet =  NULL;
+           struct all_addr addr;
+@@ -1923,6 +1925,12 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
+           if (prefix && !atoi_check(prefix, &prefixlen))
+             ret_err(gen_err);
+           
++          if (strstr(arg, "exclude:") == arg)
++            {
++                  is_exclude = 1;
++                  arg = arg+8;
++            }
++
+           if (inet_pton(AF_INET, arg, &addr.addr.addr4))
+             {
+               subnet = opt_malloc(sizeof(struct addrlist));
+@@ -1960,8 +1968,17 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
+           if (subnet)
+             {
+               subnet->addr = addr;
+-              subnet->next = new->subnet;
+-              new->subnet = subnet;
++
++              if (is_exclude)
++                {
++                  subnet->next = new->exclude;
++                  new->exclude = subnet;
++                }
++              else
++                {
++                  subnet->next = new->subnet;
++                  new->subnet = subnet;
++                }
+             }
+         }
+       break;
+-- 
+1.7.10.4
+
diff --git a/src/patches/dnsmasq/014-Bump_auth_zone_serial_when_reloading_etc_hosts_and_friends.patch b/src/patches/dnsmasq/014-Bump_auth_zone_serial_when_reloading_etc_hosts_and_friends.patch
new file mode 100644 (file)
index 0000000..054323b
--- /dev/null
@@ -0,0 +1,41 @@
+From c8328ecde896575b3cb81cf537747df531f90771 Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Fri, 5 Aug 2016 16:54:58 +0100
+Subject: [PATCH] Bump auth zone serial when reloading /etc/hosts and friends.
+
+---
+ CHANGELOG     |    4 ++++
+ src/dnsmasq.c |    2 ++
+ 2 files changed, 6 insertions(+)
+
+diff --git a/CHANGELOG b/CHANGELOG
+index 9f1e404..4f89799 100644
+--- a/CHANGELOG
++++ b/CHANGELOG
+@@ -20,6 +20,10 @@ version 2.77
+           Fix problem with --dnssec-timestamp whereby receipt
+             of SIGHUP would erroneously engage timestamp checking.
+           Thanks to Kevin Darbyshire-Bryant for this work.
++
++          Bump zone serial on reloading /etc/hosts and friends
++          when providing authoritative DNS. Thanks to Harrald
++          Dunkel for spotting this.
+       
+ version 2.76
+diff --git a/src/dnsmasq.c b/src/dnsmasq.c
+index a47273f..3580bea 100644
+--- a/src/dnsmasq.c
++++ b/src/dnsmasq.c
+@@ -1226,6 +1226,8 @@ static void async_event(int pipe, time_t now)
+     switch (ev.event)
+       {
+       case EVENT_RELOAD:
++      daemon->soa_sn++; /* Bump zone serial, as it may have changed. */
++
+ #ifdef HAVE_DNSSEC
+       if (daemon->dnssec_no_time_check && option_bool(OPT_DNSSEC_VALID) && option_bool(OPT_DNSSEC_TIME))
+         {
+-- 
+1.7.10.4
+