Hello community, here is the log from the commit of package radvd for openSUSE:Factory checked in at 2019-08-19 20:47:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/radvd (Old) and /work/SRC/openSUSE:Factory/.radvd.new.22127 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "radvd" Mon Aug 19 20:47:59 2019 rev:33 rq:724121 version:2.18 Changes: -------- --- /work/SRC/openSUSE:Factory/radvd/radvd.changes 2017-11-29 10:49:45.322972662 +0100 +++ /work/SRC/openSUSE:Factory/.radvd.new.22127/radvd.changes 2019-08-19 20:48:01.417090304 +0200 @@ -1,0 +2,21 @@ +Thu Aug 15 11:42:43 UTC 2019 - Ludwig Nussel <[email protected]> + +- new version 2.18: + * Fix double-free scenario in case if duplicate interface was specified + * Separate systemd and SysV packaging + * Update fedora packaging files + * No router advertisements on tunnel interfaces + * Add nodaemon option to the manpage + * Write to stderr in non-daemonized mode + * Fixes memory leak in add_ra_options_dnssl + * Allow quoted strings in config. + * nd_opt_6co endianness fix +- new keyid 0x6FE19F21451C9A2B used for signing. Upstream confirmed + that he changed computers and changed his key. +- do not strictly require systemd +- use upstream service file +- use system user framework to create user. Leads to using a dedicated radvd + group after all (boo#1060032) +- rename patch radvd-tmpfile-grpname.patch -> radvd-systemd.patch + +------------------------------------------------------------------- Old: ---- radvd-2.17.tar.xz radvd-2.17.tar.xz.asc radvd-tmpfile-grpname.patch radvd.service New: ---- radvd-2.18.tar.xz radvd-2.18.tar.xz.asc radvd-systemd.patch system-user-radvd.conf ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ radvd.spec ++++++ --- /var/tmp/diff_new_pack.uqHdeL/_old 2019-08-19 20:48:03.641089828 +0200 +++ /var/tmp/diff_new_pack.uqHdeL/_new 2019-08-19 20:48:03.673089821 +0200 @@ -1,7 +1,7 @@ # # spec file for package radvd # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -26,7 +26,7 @@ %endif Name: radvd -Version: 2.17 +Version: 2.18 Release: 0 Summary: Router ADVertisement Daemon for IPv6 License: BSD-3-Clause @@ -34,19 +34,20 @@ Url: http://v6web.litech.org/radvd Source0: http://www.litech.org/radvd/dist/%{name}-%{version}.tar.xz Source2: sysconfig.radvd -Source3: radvd.service +Source3: system-user-radvd.conf Source42: http://www.litech.org/radvd/dist/%{name}-%{version}.tar.xz.asc Source43: %{name}.keyring Patch1: 0001-run-as-user-radvd-by-default.diff Patch2: radvd-configure.patch # PATCH-FIX-OPENSUSE radvd-tmpfile-grpname.patch [email protected] -- On openSUSE, we add the radvd user to the group daemon. Thus, we also need to create the folders with the respective group owner (otherwise, the systemd-tmpfiles service fails). -Patch3: radvd-tmpfile-grpname.patch +Patch3: radvd-systemd.patch BuildRequires: automake BuildRequires: bison BuildRequires: flex BuildRequires: libdaemon-devel BuildRequires: pkgconfig BuildRequires: systemd-rpm-macros +BuildRequires: sysuser-tools BuildRequires: xz BuildRequires: pkgconfig(check) Requires(pre): %fillup_prereq @@ -55,7 +56,6 @@ Requires(pre): group(daemon) %endif BuildRoot: %{_tmppath}/%{name}-%{version}-build -%{?systemd_requires} %description RADVD is the Router ADVertisement Daemon. It sends IPv6 RA packets @@ -63,10 +63,7 @@ configuration of IPv6 clients. %prep -%setup -q -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 +%autosetup -p1 %build autoreconf -fiv @@ -75,6 +72,8 @@ --with-configfile=%{_sysconfdir}/radvd.conf \ --with-pidfile=%{_rundir}/radvd/radvd.pid make %{?_smp_mflags} +# +%sysusers_generate_pre %{SOURCE3} radvd %install make DESTDIR=%{buildroot} install %{?_smp_mflags} @@ -84,12 +83,13 @@ install -m 644 %{SOURCE2} %{buildroot}%{_fillupdir}/ install -m 644 /dev/null %{buildroot}%{_sysconfdir}/radvd.conf -install -D -m 0644 %{SOURCE3} %{buildroot}%{_unitdir}/%{name}.service -install -D -m 0644 redhat/radvd-tmpfs.conf %{buildroot}%{_libexecdir}/tmpfiles.d/%name.conf +install -D -m 644 %{SOURCE3} %{buildroot}%{_sysusersdir}/system-user-radvd.conf + +install -D -m 0644 redhat/systemd/radvd.service %{buildroot}%{_unitdir}/%{name}.service +install -D -m 0644 redhat/systemd/radvd-tmpfs.conf %{buildroot}%{_libexecdir}/tmpfiles.d/%name.conf ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcradvd -%pre -getent passwd %{name} >/dev/null || useradd -r -d %{_localstatedir}/lib/empty -s /sbin/nologin -c "Router ADVertisement Daemon for" %{name} +%pre -f radvd.pre %service_add_pre %{name}.service %post @@ -152,5 +152,6 @@ %{_unitdir}/%{name}.service %dir %{_libexecdir}/tmpfiles.d %{_libexecdir}/tmpfiles.d/%{name}.conf +%{_sysusersdir}/system-user-radvd.conf %changelog ++++++ radvd-2.17.tar.xz -> radvd-2.18.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/CHANGES new/radvd-2.18/CHANGES --- old/radvd-2.17/CHANGES 2017-07-04 05:30:02.000000000 +0200 +++ new/radvd-2.18/CHANGES 2019-02-26 05:34:57.000000000 +0100 @@ -1,3 +1,20 @@ +2019/02/25 Release v2.18 + +2019/02/15 Add TravisCI config + Fix double-free scenario in case if duplicate interface was specified (Fixes #100). + Separate systemd and SysV packaging + Update fedora packaging files + No router advertisements on tunnel interfaces + Add nodaemon option to the manpage + Write to stderr in non-daemonized mode + Fixes memory leak in add_ra_options_dnssl + Check forwarding on interface + Added contrib/95-radvd-gen. + Allow quoted strings in config. + nd_opt_6co: use uint8_t as a bitfield to be endianness-agnostic + +2017/12/18 Allow quoted strings in config. + 2017/07/03 Release v2.17 2017/07/01 Fix STDERR_SYSLOG log level bug. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/Makefile.am new/radvd-2.18/Makefile.am --- old/radvd-2.17/Makefile.am 2017-06-29 06:32:29.000000000 +0200 +++ new/radvd-2.18/Makefile.am 2019-02-16 07:08:33.000000000 +0100 @@ -152,11 +152,14 @@ radvd.conf.example \ radvd.service.in \ radvdump.8.man \ - redhat/radvd-tmpfs.conf \ - redhat/radvd.conf.empty \ - redhat/radvd.init \ - redhat/radvd.spec \ - redhat/radvd.sysconfig \ + redhat/SysV/radvd-tmpfs.conf \ + redhat/SysV/radvd.conf.empty \ + redhat/SysV/radvd.init \ + redhat/SysV/radvd.spec \ + redhat/SysV/radvd.sysconfig \ + redhat/systemd/radvd-tmpfs.conf \ + redhat/systemd/radvd.service \ + redhat/systemd/radvd.spec \ test/check.c \ test/print_safe_buffer.c \ test/print_safe_buffer.h \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/Makefile.in new/radvd-2.18/Makefile.in --- old/radvd-2.17/Makefile.in 2017-07-04 05:30:28.000000000 +0200 +++ new/radvd-2.18/Makefile.in 2019-02-26 05:36:38.000000000 +0100 @@ -122,7 +122,8 @@ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = radvd.service redhat/radvd.spec +CONFIG_CLEAN_FILES = radvd.service redhat/systemd/radvd.spec \ + redhat/SysV/radvd.spec CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) AR = ar @@ -446,9 +447,11 @@ TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ - $(srcdir)/radvd.service.in $(top_srcdir)/redhat/radvd.spec.in \ - README TODO compile config.guess config.sub depcomp gram.c \ - gram.h install-sh missing scanner.c test-driver ylwrap + $(srcdir)/radvd.service.in \ + $(top_srcdir)/redhat/SysV/radvd.spec.in \ + $(top_srcdir)/redhat/systemd/radvd.spec.in README TODO compile \ + config.guess config.sub depcomp gram.c gram.h install-sh \ + missing scanner.c test-driver ylwrap DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -688,11 +691,14 @@ radvd.conf.example \ radvd.service.in \ radvdump.8.man \ - redhat/radvd-tmpfs.conf \ - redhat/radvd.conf.empty \ - redhat/radvd.init \ - redhat/radvd.spec \ - redhat/radvd.sysconfig \ + redhat/SysV/radvd-tmpfs.conf \ + redhat/SysV/radvd.conf.empty \ + redhat/SysV/radvd.init \ + redhat/SysV/radvd.spec \ + redhat/SysV/radvd.sysconfig \ + redhat/systemd/radvd-tmpfs.conf \ + redhat/systemd/radvd.service \ + redhat/systemd/radvd.spec \ test/check.c \ test/print_safe_buffer.c \ test/print_safe_buffer.h \ @@ -806,7 +812,9 @@ -rm -f config.h stamp-h1 radvd.service: $(top_builddir)/config.status $(srcdir)/radvd.service.in cd $(top_builddir) && $(SHELL) ./config.status $@ -redhat/radvd.spec: $(top_builddir)/config.status $(top_srcdir)/redhat/radvd.spec.in +redhat/systemd/radvd.spec: $(top_builddir)/config.status $(top_srcdir)/redhat/systemd/radvd.spec.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +redhat/SysV/radvd.spec: $(top_builddir)/config.status $(top_srcdir)/redhat/SysV/radvd.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ clean-noinstLIBRARIES: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/configure new/radvd-2.18/configure --- old/radvd-2.17/configure 2017-07-04 05:30:27.000000000 +0200 +++ new/radvd-2.18/configure 2019-02-26 05:36:37.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for radvd 2.17. +# Generated by GNU Autoconf 2.69 for radvd 2.18. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -577,8 +577,8 @@ # Identity of this package. PACKAGE_NAME='radvd' PACKAGE_TARNAME='radvd' -PACKAGE_VERSION='2.17' -PACKAGE_STRING='radvd 2.17' +PACKAGE_VERSION='2.18' +PACKAGE_STRING='radvd 2.18' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1324,7 +1324,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures radvd 2.17 to adapt to many kinds of systems. +\`configure' configures radvd 2.18 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1396,7 +1396,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of radvd 2.17:";; + short | recursive ) echo "Configuration of radvd 2.18:";; esac cat <<\_ACEOF @@ -1512,7 +1512,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -radvd configure 2.17 +radvd configure 2.18 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1877,7 +1877,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by radvd $as_me 2.17, which was +It was created by radvd $as_me 2.18, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2852,7 +2852,7 @@ # Define the identity of the package. PACKAGE='radvd' - VERSION='2.17' + VERSION='2.18' cat >>confdefs.h <<_ACEOF @@ -5960,7 +5960,7 @@ ac_config_headers="$ac_config_headers config.h" -ac_config_files="$ac_config_files Makefile radvd.service redhat/radvd.spec" +ac_config_files="$ac_config_files Makefile radvd.service redhat/systemd/radvd.spec redhat/SysV/radvd.spec" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -6495,7 +6495,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by radvd $as_me 2.17, which was +This file was extended by radvd $as_me 2.18, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -6561,7 +6561,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -radvd config.status 2.17 +radvd config.status 2.18 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -6694,7 +6694,8 @@ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "radvd.service") CONFIG_FILES="$CONFIG_FILES radvd.service" ;; - "redhat/radvd.spec") CONFIG_FILES="$CONFIG_FILES redhat/radvd.spec" ;; + "redhat/systemd/radvd.spec") CONFIG_FILES="$CONFIG_FILES redhat/systemd/radvd.spec" ;; + "redhat/SysV/radvd.spec") CONFIG_FILES="$CONFIG_FILES redhat/SysV/radvd.spec" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/configure.ac new/radvd-2.18/configure.ac --- old/radvd-2.17/configure.ac 2017-07-04 05:28:39.000000000 +0200 +++ new/radvd-2.18/configure.ac 2019-02-26 05:35:34.000000000 +0100 @@ -13,7 +13,7 @@ dnl dnl If adding rcX to version, be sure to separate with a '-' -AC_INIT(radvd, [2.17]) +AC_INIT(radvd, [2.18]) AC_CONFIG_SRCDIR(radvd.c) AC_CANONICAL_SYSTEM AM_INIT_AUTOMAKE @@ -239,7 +239,8 @@ AC_OUTPUT( Makefile \ radvd.service \ - redhat/radvd.spec\ + redhat/systemd/radvd.spec \ + redhat/SysV/radvd.spec \ ) cat << EOF diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/device-bsd44.c new/radvd-2.18/device-bsd44.c --- old/radvd-2.17/device-bsd44.c 2017-06-29 06:32:29.000000000 +0200 +++ new/radvd-2.18/device-bsd44.c 2018-02-18 23:45:02.000000000 +0100 @@ -157,3 +157,9 @@ dlog(LOG_DEBUG, 4, "checking ipv6 forwarding not supported"); return 0; } + +int check_ip6_iface_forwarding(const char *iface) +{ + dlog(LOG_DEBUG, 4, "checking ipv6 forwarding of interface not supported"); + return -1; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/device-common.c new/radvd-2.18/device-common.c --- old/radvd-2.17/device-common.c 2017-06-29 06:32:29.000000000 +0200 +++ new/radvd-2.18/device-common.c 2018-12-09 00:35:39.000000000 +0100 @@ -45,11 +45,15 @@ dlog(LOG_ERR, 4, "%s is running", iface->props.name); } - if (!iface->UnicastOnly && !(ifr.ifr_flags & IFF_MULTICAST)) { - flog(LOG_INFO, "%s does not support multicast, forcing UnicastOnly", iface->props.name); + if (!iface->UnicastOnly && + !(ifr.ifr_flags & (IFF_MULTICAST | IFF_POINTOPOINT))) { + flog(LOG_INFO, + "%s does not support multicast or point-to-point, forcing UnicastOnly", + iface->props.name); iface->UnicastOnly = 1; } else { - dlog(LOG_ERR, 4, "%s supports multicast", iface->props.name); + dlog(LOG_ERR, 4, "%s supports multicast or is point-to-point", + iface->props.name); } return 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/device-linux.c new/radvd-2.18/device-linux.c --- old/radvd-2.17/device-linux.c 2017-06-29 06:32:29.000000000 +0200 +++ new/radvd-2.18/device-linux.c 2018-02-18 23:45:02.000000000 +0100 @@ -219,6 +219,32 @@ int set_interface_retranstimer(const char *iface, uint32_t rettimer) { return privsep_interface_retranstimer(iface, rettimer); } +int check_ip6_iface_forwarding(const char *iface) +{ + int value = -1; + FILE *fp = NULL; + char path[sizeof(PROC_SYS_IP6_IFACE_FORWARDING) + IFNAMSIZ]; + + snprintf(path, sizeof(PROC_SYS_IP6_IFACE_FORWARDING) + IFNAMSIZ, PROC_SYS_IP6_IFACE_FORWARDING, iface); + + fp = fopen(path, "r"); + if (fp) { + int rc = fscanf(fp, "%d", &value); + if (rc != 1) { + flog(LOG_ERR, "cannot read value from %s: %s", path, strerror(errno)); + exit(1); + } + fclose(fp); + } else { + flog(LOG_DEBUG, "Correct IPv6 forwarding procfs entry for interface " + "not found, perhaps the procfs is disabled, " + "or the kernel interface has changed?"); + value = -1; + } + + return value; +} + int check_ip6_forwarding(void) { int value; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/gram.y new/radvd-2.18/gram.y --- old/radvd-2.17/gram.y 2017-07-02 03:59:02.000000000 +0200 +++ new/radvd-2.18/gram.y 2019-02-16 06:30:57.000000000 +0100 @@ -408,7 +408,6 @@ prefixdef : prefixhead optional_prefixplist ';' { if (prefix) { - unsigned int dst; if (prefix->AdvPreferredLifetime > prefix->AdvValidLifetime) { @@ -436,9 +435,11 @@ struct in6_addr zeroaddr; memset(&zeroaddr, 0, sizeof(zeroaddr)); +#ifndef HAVE_IFADDRS_H // all-zeros prefix is a way to tell us to get the prefix from the interface config if (!memcmp($2, &zeroaddr, sizeof(struct in6_addr))) { flog(LOG_WARNING, "invalid all-zeros prefix in %s, line %d", filename, num_lines); } +#endif prefix = malloc(sizeof(struct AdvPrefix)); if (prefix == NULL) { @@ -957,6 +958,7 @@ if (yyparse() != 0) { free_ifaces(iface); iface = 0; + IfaceList = 0; } else { dlog(LOG_DEBUG, 1, "config file, %s, syntax ok", path); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/interface.c new/radvd-2.18/interface.c --- old/radvd-2.17/interface.c 2017-07-02 03:59:02.000000000 +0200 +++ new/radvd-2.18/interface.c 2018-02-18 23:45:02.000000000 +0100 @@ -164,6 +164,11 @@ flog(LOG_INFO, "using Mobile IPv6 extensions"); } + /* Check forwarding on interface */ + if (check_ip6_iface_forwarding(iface->props.name) < 1) { + flog(LOG_WARNING, "IPv6 forwarding on interface seems to be disabled, but continuing anyway"); + } + struct AdvPrefix *prefix = iface->AdvPrefixList; while (!MIPv6 && prefix) { if (prefix->AdvRouterAddr) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/log.c new/radvd-2.18/log.c --- old/radvd-2.17/log.c 2017-06-29 06:54:44.000000000 +0200 +++ new/radvd-2.18/log.c 2018-12-09 00:35:39.000000000 +0100 @@ -32,6 +32,7 @@ switch (log_method) { case L_NONE: + case L_UNSPEC: case L_STDERR: break; case L_STDERR_CLEAN: @@ -76,6 +77,7 @@ switch (log_method) { case L_NONE: + case L_UNSPEC: break; case L_SYSLOG: syslog(prio, "%s", buff); @@ -136,6 +138,7 @@ { switch (log_method) { case L_NONE: + case L_UNSPEC: case L_STDERR: break; case L_STDERR_SYSLOG: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/log.h new/radvd-2.18/log.h --- old/radvd-2.17/log.h 2017-06-29 06:32:29.000000000 +0200 +++ new/radvd-2.18/log.h 2018-12-09 00:35:39.000000000 +0100 @@ -20,6 +20,7 @@ #define L_STDERR_SYSLOG 3 #define L_LOGFILE 4 #define L_STDERR_CLEAN 5 +#define L_UNSPEC 6 #define LOG_TIME_FORMAT "%b %d %H:%M:%S" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/pathnames.h new/radvd-2.18/pathnames.h --- old/radvd-2.17/pathnames.h 2017-06-29 06:32:29.000000000 +0200 +++ new/radvd-2.18/pathnames.h 2018-02-18 23:45:02.000000000 +0100 @@ -33,6 +33,7 @@ #define SYSCTL_IP6_FORWARDING CTL_NET, NET_IPV6, NET_IPV6_CONF, NET_PROTO_CONF_ALL, NET_IPV6_FORWARDING #define SYSCTL_IP6_AUTOCONFIG CTL_NET, NET_IPV6, NET_IPV6_CONF, NET_PROTO_CONF_ALL, NET_IPV6_AUTOCONF #define PROC_SYS_IP6_FORWARDING "/proc/sys/net/ipv6/conf/all/forwarding" +#define PROC_SYS_IP6_IFACE_FORWARDING "/proc/sys/net/ipv6/conf/%s/forwarding" #define PROC_SYS_IP6_AUTOCONFIG "/proc/sys/net/ipv6/conf/%s/autoconf" #define PROC_SYS_IP6_LINKMTU "/proc/sys/net/ipv6/conf/%s/mtu" #define PROC_SYS_IP6_CURHLIM "/proc/sys/net/ipv6/conf/%s/hop_limit" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/radvd.8.man new/radvd-2.18/radvd.8.man --- old/radvd-2.17/radvd.8.man 2017-01-03 00:37:07.000000000 +0100 +++ new/radvd-2.18/radvd.8.man 2018-12-09 00:35:39.000000000 +0100 @@ -23,6 +23,7 @@ .BI "[ \-p " pidfile " ]" .BI "[ \-m " logmethod " ]" .BI "[ \-l " logfile " ]" +.BI "[ \-n " nodaemon " ]" .BI "[ \-f " facility " ]" .BI "[ \-t " chrootdir " ]" .BI "[ \-u " username " ]" @@ -57,6 +58,9 @@ .BR "\-c" , " \-\-configtest" Test configuration and do startup tests and then exit. .TP +.BR "\-n" , " \-\-nodaemon" +Prevent the daemonizing. +.TP .BR "\-d " debuglevel, " \-\-debug " debuglevel With this option you turn on debugging information. The debugging level is an integer in the range from 1 to 5, from quiet to very verbose. A diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/radvd.c new/radvd-2.18/radvd.c --- old/radvd-2.17/radvd.c 2017-07-02 04:04:47.000000000 +0200 +++ new/radvd-2.18/radvd.c 2018-12-09 00:35:39.000000000 +0100 @@ -65,7 +65,7 @@ #else static char usage_str[] = { -"[-hsvcn] [-d level] [-C config_path] [-m log_method] [-l log_file]\n" +"[-hvcn] [-d level] [-C config_path] [-m log_method] [-l log_file]\n" "\t[-f facility] [-p pid_file] [-u username] [-t chrootdir]" }; @@ -181,7 +181,7 @@ int main(int argc, char *argv[]) { int c; - int log_method = L_STDERR_SYSLOG; + int log_method = L_UNSPEC; char *logfile = PATH_RADVD_LOG; int facility = LOG_FACILITY; char *username = NULL; @@ -294,6 +294,7 @@ break; case L_STDERR_SYSLOG: case L_NONE: + case L_UNSPEC: case L_SYSLOG: case L_LOGFILE: default: @@ -301,7 +302,8 @@ break; } } - + if (log_method == L_UNSPEC) + log_method = daemonize ? L_STDERR_SYSLOG : L_STDERR; if (log_open(log_method, pname, logfile, facility) < 0) { perror("log_open"); exit(1); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/radvd.h new/radvd-2.18/radvd.h --- old/radvd-2.17/radvd.h 2017-07-02 03:59:02.000000000 +0200 +++ new/radvd-2.18/radvd.h 2018-02-18 23:45:02.000000000 +0100 @@ -259,9 +259,7 @@ uint8_t nd_opt_6co_type; uint8_t nd_opt_6co_len; uint8_t nd_opt_6co_context_len; - uint8_t nd_opt_6co_res : 3; - uint8_t nd_opt_6co_c : 1; - uint8_t nd_opt_6co_cid : 4; + uint8_t nd_opt_6co_res_c_cid; /* [ res=3-bits | c=1-bit | cid=4-bits ] */ uint16_t nd_opt_6co_reserved; uint16_t nd_opt_6co_valid_lifetime; struct in6_addr nd_opt_6co_con_prefix; @@ -281,6 +279,7 @@ /* device.c */ int check_device(int sock, struct Interface *); int check_ip6_forwarding(void); +int check_ip6_iface_forwarding(const char *iface); int get_v4addr(const char *, unsigned int *); int set_interface_curhlim(const char *, uint8_t); int set_interface_linkmtu(const char *, uint32_t); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/redhat/SysV/radvd-tmpfs.conf new/radvd-2.18/redhat/SysV/radvd-tmpfs.conf --- old/radvd-2.17/redhat/SysV/radvd-tmpfs.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/radvd-2.18/redhat/SysV/radvd-tmpfs.conf 2019-02-16 06:30:57.000000000 +0100 @@ -0,0 +1 @@ +d /var/run/radvd 0755 radvd radvd diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/redhat/SysV/radvd.conf.empty new/radvd-2.18/redhat/SysV/radvd.conf.empty --- old/radvd-2.17/redhat/SysV/radvd.conf.empty 1970-01-01 01:00:00.000000000 +0100 +++ new/radvd-2.18/redhat/SysV/radvd.conf.empty 2019-02-16 06:30:57.000000000 +0100 @@ -0,0 +1,18 @@ +# NOTE: there is no such thing as a working "by-default" configuration file. +# At least the prefix needs to be specified. Please consult the radvd.conf(5) +# man page and/or /usr/share/doc/radvd-*/radvd.conf.example for help. +# +# +#interface eth0 +#{ +# AdvSendAdvert on; +# MinRtrAdvInterval 30; +# MaxRtrAdvInterval 100; +# prefix 2001:db8:1:0::/64 +# { +# AdvOnLink on; +# AdvAutonomous on; +# AdvRouterAddr off; +# }; +# +#}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/redhat/SysV/radvd.init new/radvd-2.18/redhat/SysV/radvd.init --- old/radvd-2.17/redhat/SysV/radvd.init 1970-01-01 01:00:00.000000000 +0100 +++ new/radvd-2.18/redhat/SysV/radvd.init 2019-02-16 06:30:57.000000000 +0100 @@ -0,0 +1,92 @@ +#! /bin/sh +# +# +# chkconfig: - 54 46 +# description: radvd is the router advertisement daemon for IPv6. It \ +# listens to router solicitations and sends router \ +# advertisements as described in "Neighbor Discovery for IP \ +# Version 6 (IPv6)" (RFC 2461). With these advertisements \ +# hosts can automatically configure their addresses and some \ +# other parameters. They also can choose a default router \ +# based on these advertisements. +# +# processname: radvd +# pidfile: /var/run/radvd.pid +# config: /etc/radvd.conf +# config: /etc/sysconfig/radvd + +### BEGIN INIT INFO +# Provides: radvd +# Short-Description: router advertisement daemon for IPv6 +### END INIT INFO + +# Source function library. +. /etc/rc.d/init.d/functions + +# Get config. +. /etc/sysconfig/network + +[ -f /etc/sysconfig/radvd ] && . /etc/sysconfig/radvd + +RETVAL=0 +PROG="radvd" +LOCKFILE=/var/lock/subsys/radvd + +# See how we were called. +case "$1" in + start) + if [ ! -f /etc/radvd.conf ]; then + echo $"Configuration file /etc/radvd.conf missing" 1>&2 + exit 6 + fi + if [ `id -u` -ne 0 ]; then + echo $"Insufficient privilege" 1>&2 + exit 4 + fi + echo -n $"Starting $PROG: " + daemon radvd $OPTIONS + RETVAL=$? + echo + if [ $RETVAL -eq 0 ]; then + touch $LOCKFILE + else + if [ -f $LOCKFILE ]; then + RETVAL=0 + fi + fi + ;; + stop) + echo -n $"Stopping $PROG: " + killproc radvd + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f $LOCKFILE + ;; + status) + status radvd + RETVAL=$? + ;; + restart) + $0 stop + $0 start + RETVAL=$? + ;; + reload|force-reload) + echo -n $"Reloading $PROG: " + killproc radvd -HUP + RETVAL=$? + echo + ;; + condrestart|try-restart) + if [ -f $LOCKFILE ]; then + $0 stop + $0 start + RETVAL=$? + fi + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}" + exit 2 +esac + +exit $RETVAL diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/redhat/SysV/radvd.spec new/radvd-2.18/redhat/SysV/radvd.spec --- old/radvd-2.17/redhat/SysV/radvd.spec 1970-01-01 01:00:00.000000000 +0100 +++ new/radvd-2.18/redhat/SysV/radvd.spec 2019-02-26 05:36:53.000000000 +0100 @@ -0,0 +1,96 @@ + +%define initdir %{_sysconfdir}/rc.d/init.d + +%define RADVD_UID 75 + +Summary: A Router Advertisement daemon +Name: radvd +Version: 2.18 +Release: 1 +# The code includes the advertising clause, so it's GPL-incompatible +License: BSD with advertising +Group: System Environment/Daemons +URL: http://www.litech.org/radvd/ +Source: http://www.litech.org/radvd/dist/%{name}-%{version}.tar.gz +Requires(postun): chkconfig, initscripts +Requires(preun): chkconfig, initscripts +Requires(post): chkconfig +Requires(pre): /usr/sbin/useradd +BuildRequires: flex, byacc +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +%description +radvd is the router advertisement daemon for IPv6. It listens to router +solicitations and sends router advertisements as described in "Neighbor +Discovery for IP Version 6 (IPv6)" (RFC 2461). With these advertisements +hosts can automatically configure their addresses and some other +parameters. They also can choose a default router based on these +advertisements. + +Install radvd if you are setting up IPv6 network and/or Mobile IPv6 +services. + +%prep +%setup -q + +%build +export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIE -fno-strict-aliasing" +export LDFLAGS='-pie -Wl,-z,relro,-z,now,-z,noexecstack,-z,nodlopen' +%configure --with-pidfile=%{_localstatedir}/run/radvd/radvd.pid +make +# make %{?_smp_mflags} +# Parallel builds still fail because seds that transform y.tab.x into +# scanner/gram.x are not executed before compile of scanner/gram.x +# + +%install +[ $RPM_BUILD_ROOT != "/" ] && rm -rf $RPM_BUILD_ROOT + +make DESTDIR=$RPM_BUILD_ROOT install + +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig +mkdir -p $RPM_BUILD_ROOT%{initdir} +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/radvd + +install -m 644 redhat/radvd.conf.empty $RPM_BUILD_ROOT%{_sysconfdir}/radvd.conf +install -m 755 redhat/radvd.init $RPM_BUILD_ROOT%{initdir}/radvd +install -m 644 redhat/radvd.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/radvd + +install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d +install -p -m 644 redhat/radvd-tmpfs.conf $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/radvd.conf + +%clean +[ $RPM_BUILD_ROOT != "/" ] && rm -rf $RPM_BUILD_ROOT + +%postun +if [ "$1" -ge "1" ]; then + /sbin/service radvd condrestart >/dev/null 2>&1 +fi + +%post +/sbin/chkconfig --add radvd + +%preun +if [ $1 = 0 ]; then + /sbin/service radvd stop >/dev/null 2>&1 + /sbin/chkconfig --del radvd +fi + +%pre +getent group radvd >/dev/null || groupadd -g %RADVD_UID -r radvd +getent passwd radvd >/dev/null || \ + useradd -r -u %RADVD_UID -g radvd -d / -s /sbin/nologin -c "radvd user" radvd +exit 0 + +%files +%defattr(-,root,root,-) +%doc COPYRIGHT README CHANGES INTRO.html TODO +%config(noreplace) %{_sysconfdir}/radvd.conf +%config(noreplace) %{_sysconfdir}/sysconfig/radvd +%config(noreplace) %{_sysconfdir}/tmpfiles.d/radvd.conf +%{initdir}/radvd +%dir %attr(-,radvd,radvd) %{_localstatedir}/run/radvd/ +%doc radvd.conf.example +%{_mandir}/*/* +%{_sbindir}/radvd +%{_sbindir}/radvdump diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/redhat/SysV/radvd.spec.in new/radvd-2.18/redhat/SysV/radvd.spec.in --- old/radvd-2.17/redhat/SysV/radvd.spec.in 1970-01-01 01:00:00.000000000 +0100 +++ new/radvd-2.18/redhat/SysV/radvd.spec.in 2019-02-16 06:30:57.000000000 +0100 @@ -0,0 +1,96 @@ + +%define initdir %{_sysconfdir}/rc.d/init.d + +%define RADVD_UID 75 + +Summary: A Router Advertisement daemon +Name: radvd +Version: @VERSION@ +Release: 1 +# The code includes the advertising clause, so it's GPL-incompatible +License: BSD with advertising +Group: System Environment/Daemons +URL: http://www.litech.org/radvd/ +Source: http://www.litech.org/radvd/dist/%{name}-%{version}.tar.gz +Requires(postun): chkconfig, initscripts +Requires(preun): chkconfig, initscripts +Requires(post): chkconfig +Requires(pre): /usr/sbin/useradd +BuildRequires: flex, byacc +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +%description +radvd is the router advertisement daemon for IPv6. It listens to router +solicitations and sends router advertisements as described in "Neighbor +Discovery for IP Version 6 (IPv6)" (RFC 2461). With these advertisements +hosts can automatically configure their addresses and some other +parameters. They also can choose a default router based on these +advertisements. + +Install radvd if you are setting up IPv6 network and/or Mobile IPv6 +services. + +%prep +%setup -q + +%build +export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIE -fno-strict-aliasing" +export LDFLAGS='-pie -Wl,-z,relro,-z,now,-z,noexecstack,-z,nodlopen' +%configure --with-pidfile=%{_localstatedir}/run/radvd/radvd.pid +make +# make %{?_smp_mflags} +# Parallel builds still fail because seds that transform y.tab.x into +# scanner/gram.x are not executed before compile of scanner/gram.x +# + +%install +[ $RPM_BUILD_ROOT != "/" ] && rm -rf $RPM_BUILD_ROOT + +make DESTDIR=$RPM_BUILD_ROOT install + +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig +mkdir -p $RPM_BUILD_ROOT%{initdir} +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/radvd + +install -m 644 redhat/radvd.conf.empty $RPM_BUILD_ROOT%{_sysconfdir}/radvd.conf +install -m 755 redhat/radvd.init $RPM_BUILD_ROOT%{initdir}/radvd +install -m 644 redhat/radvd.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/radvd + +install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d +install -p -m 644 redhat/radvd-tmpfs.conf $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/radvd.conf + +%clean +[ $RPM_BUILD_ROOT != "/" ] && rm -rf $RPM_BUILD_ROOT + +%postun +if [ "$1" -ge "1" ]; then + /sbin/service radvd condrestart >/dev/null 2>&1 +fi + +%post +/sbin/chkconfig --add radvd + +%preun +if [ $1 = 0 ]; then + /sbin/service radvd stop >/dev/null 2>&1 + /sbin/chkconfig --del radvd +fi + +%pre +getent group radvd >/dev/null || groupadd -g %RADVD_UID -r radvd +getent passwd radvd >/dev/null || \ + useradd -r -u %RADVD_UID -g radvd -d / -s /sbin/nologin -c "radvd user" radvd +exit 0 + +%files +%defattr(-,root,root,-) +%doc COPYRIGHT README CHANGES INTRO.html TODO +%config(noreplace) %{_sysconfdir}/radvd.conf +%config(noreplace) %{_sysconfdir}/sysconfig/radvd +%config(noreplace) %{_sysconfdir}/tmpfiles.d/radvd.conf +%{initdir}/radvd +%dir %attr(-,radvd,radvd) %{_localstatedir}/run/radvd/ +%doc radvd.conf.example +%{_mandir}/*/* +%{_sbindir}/radvd +%{_sbindir}/radvdump diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/redhat/SysV/radvd.sysconfig new/radvd-2.18/redhat/SysV/radvd.sysconfig --- old/radvd-2.17/redhat/SysV/radvd.sysconfig 1970-01-01 01:00:00.000000000 +0100 +++ new/radvd-2.18/redhat/SysV/radvd.sysconfig 2019-02-16 06:30:57.000000000 +0100 @@ -0,0 +1,6 @@ + +# No chroot; /var/run/radvd must be owned by -u. +OPTIONS="-u radvd" + +# Chroot; directory structure under /var/chroot/radvd has to be populated. +#OPTIONS="-u radvd -t /var/chroot/radvd" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/redhat/radvd-tmpfs.conf new/radvd-2.18/redhat/radvd-tmpfs.conf --- old/radvd-2.17/redhat/radvd-tmpfs.conf 2014-07-31 02:13:24.000000000 +0200 +++ new/radvd-2.18/redhat/radvd-tmpfs.conf 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -d /var/run/radvd 0755 radvd radvd diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/redhat/radvd.conf.empty new/radvd-2.18/redhat/radvd.conf.empty --- old/radvd-2.17/redhat/radvd.conf.empty 2014-07-31 02:13:24.000000000 +0200 +++ new/radvd-2.18/redhat/radvd.conf.empty 1970-01-01 01:00:00.000000000 +0100 @@ -1,18 +0,0 @@ -# NOTE: there is no such thing as a working "by-default" configuration file. -# At least the prefix needs to be specified. Please consult the radvd.conf(5) -# man page and/or /usr/share/doc/radvd-*/radvd.conf.example for help. -# -# -#interface eth0 -#{ -# AdvSendAdvert on; -# MinRtrAdvInterval 30; -# MaxRtrAdvInterval 100; -# prefix 2001:db8:1:0::/64 -# { -# AdvOnLink on; -# AdvAutonomous on; -# AdvRouterAddr off; -# }; -# -#}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/redhat/radvd.init new/radvd-2.18/redhat/radvd.init --- old/radvd-2.17/redhat/radvd.init 2014-07-31 02:13:24.000000000 +0200 +++ new/radvd-2.18/redhat/radvd.init 1970-01-01 01:00:00.000000000 +0100 @@ -1,92 +0,0 @@ -#! /bin/sh -# -# -# chkconfig: - 54 46 -# description: radvd is the router advertisement daemon for IPv6. It \ -# listens to router solicitations and sends router \ -# advertisements as described in "Neighbor Discovery for IP \ -# Version 6 (IPv6)" (RFC 2461). With these advertisements \ -# hosts can automatically configure their addresses and some \ -# other parameters. They also can choose a default router \ -# based on these advertisements. -# -# processname: radvd -# pidfile: /var/run/radvd.pid -# config: /etc/radvd.conf -# config: /etc/sysconfig/radvd - -### BEGIN INIT INFO -# Provides: radvd -# Short-Description: router advertisement daemon for IPv6 -### END INIT INFO - -# Source function library. -. /etc/rc.d/init.d/functions - -# Get config. -. /etc/sysconfig/network - -[ -f /etc/sysconfig/radvd ] && . /etc/sysconfig/radvd - -RETVAL=0 -PROG="radvd" -LOCKFILE=/var/lock/subsys/radvd - -# See how we were called. -case "$1" in - start) - if [ ! -f /etc/radvd.conf ]; then - echo $"Configuration file /etc/radvd.conf missing" 1>&2 - exit 6 - fi - if [ `id -u` -ne 0 ]; then - echo $"Insufficient privilege" 1>&2 - exit 4 - fi - echo -n $"Starting $PROG: " - daemon radvd $OPTIONS - RETVAL=$? - echo - if [ $RETVAL -eq 0 ]; then - touch $LOCKFILE - else - if [ -f $LOCKFILE ]; then - RETVAL=0 - fi - fi - ;; - stop) - echo -n $"Stopping $PROG: " - killproc radvd - RETVAL=$? - echo - [ $RETVAL -eq 0 ] && rm -f $LOCKFILE - ;; - status) - status radvd - RETVAL=$? - ;; - restart) - $0 stop - $0 start - RETVAL=$? - ;; - reload|force-reload) - echo -n $"Reloading $PROG: " - killproc radvd -HUP - RETVAL=$? - echo - ;; - condrestart|try-restart) - if [ -f $LOCKFILE ]; then - $0 stop - $0 start - RETVAL=$? - fi - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}" - exit 2 -esac - -exit $RETVAL diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/redhat/radvd.spec new/radvd-2.18/redhat/radvd.spec --- old/radvd-2.17/redhat/radvd.spec 2017-07-04 05:31:12.000000000 +0200 +++ new/radvd-2.18/redhat/radvd.spec 1970-01-01 01:00:00.000000000 +0100 @@ -1,96 +0,0 @@ - -%define initdir %{_sysconfdir}/rc.d/init.d - -%define RADVD_UID 75 - -Summary: A Router Advertisement daemon -Name: radvd -Version: 2.17 -Release: 1 -# The code includes the advertising clause, so it's GPL-incompatible -License: BSD with advertising -Group: System Environment/Daemons -URL: http://www.litech.org/radvd/ -Source: http://www.litech.org/radvd/dist/%{name}-%{version}.tar.gz -Requires(postun): chkconfig, initscripts -Requires(preun): chkconfig, initscripts -Requires(post): chkconfig -Requires(pre): /usr/sbin/useradd -BuildRequires: flex, byacc -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -%description -radvd is the router advertisement daemon for IPv6. It listens to router -solicitations and sends router advertisements as described in "Neighbor -Discovery for IP Version 6 (IPv6)" (RFC 2461). With these advertisements -hosts can automatically configure their addresses and some other -parameters. They also can choose a default router based on these -advertisements. - -Install radvd if you are setting up IPv6 network and/or Mobile IPv6 -services. - -%prep -%setup -q - -%build -export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIE -fno-strict-aliasing" -export LDFLAGS='-pie -Wl,-z,relro,-z,now,-z,noexecstack,-z,nodlopen' -%configure --with-pidfile=%{_localstatedir}/run/radvd/radvd.pid -make -# make %{?_smp_mflags} -# Parallel builds still fail because seds that transform y.tab.x into -# scanner/gram.x are not executed before compile of scanner/gram.x -# - -%install -[ $RPM_BUILD_ROOT != "/" ] && rm -rf $RPM_BUILD_ROOT - -make DESTDIR=$RPM_BUILD_ROOT install - -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig -mkdir -p $RPM_BUILD_ROOT%{initdir} -mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/radvd - -install -m 644 redhat/radvd.conf.empty $RPM_BUILD_ROOT%{_sysconfdir}/radvd.conf -install -m 755 redhat/radvd.init $RPM_BUILD_ROOT%{initdir}/radvd -install -m 644 redhat/radvd.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/radvd - -install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d -install -p -m 644 redhat/radvd-tmpfs.conf $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/radvd.conf - -%clean -[ $RPM_BUILD_ROOT != "/" ] && rm -rf $RPM_BUILD_ROOT - -%postun -if [ "$1" -ge "1" ]; then - /sbin/service radvd condrestart >/dev/null 2>&1 -fi - -%post -/sbin/chkconfig --add radvd - -%preun -if [ $1 = 0 ]; then - /sbin/service radvd stop >/dev/null 2>&1 - /sbin/chkconfig --del radvd -fi - -%pre -getent group radvd >/dev/null || groupadd -g %RADVD_UID -r radvd -getent passwd radvd >/dev/null || \ - useradd -r -u %RADVD_UID -g radvd -d / -s /sbin/nologin -c "radvd user" radvd -exit 0 - -%files -%defattr(-,root,root,-) -%doc COPYRIGHT README CHANGES INTRO.html TODO -%config(noreplace) %{_sysconfdir}/radvd.conf -%config(noreplace) %{_sysconfdir}/sysconfig/radvd -%config(noreplace) %{_sysconfdir}/tmpfiles.d/radvd.conf -%{initdir}/radvd -%dir %attr(-,radvd,radvd) %{_localstatedir}/run/radvd/ -%doc radvd.conf.example -%{_mandir}/*/* -%{_sbindir}/radvd -%{_sbindir}/radvdump diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/redhat/radvd.spec.in new/radvd-2.18/redhat/radvd.spec.in --- old/radvd-2.17/redhat/radvd.spec.in 2014-07-31 02:13:24.000000000 +0200 +++ new/radvd-2.18/redhat/radvd.spec.in 1970-01-01 01:00:00.000000000 +0100 @@ -1,96 +0,0 @@ - -%define initdir %{_sysconfdir}/rc.d/init.d - -%define RADVD_UID 75 - -Summary: A Router Advertisement daemon -Name: radvd -Version: @VERSION@ -Release: 1 -# The code includes the advertising clause, so it's GPL-incompatible -License: BSD with advertising -Group: System Environment/Daemons -URL: http://www.litech.org/radvd/ -Source: http://www.litech.org/radvd/dist/%{name}-%{version}.tar.gz -Requires(postun): chkconfig, initscripts -Requires(preun): chkconfig, initscripts -Requires(post): chkconfig -Requires(pre): /usr/sbin/useradd -BuildRequires: flex, byacc -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -%description -radvd is the router advertisement daemon for IPv6. It listens to router -solicitations and sends router advertisements as described in "Neighbor -Discovery for IP Version 6 (IPv6)" (RFC 2461). With these advertisements -hosts can automatically configure their addresses and some other -parameters. They also can choose a default router based on these -advertisements. - -Install radvd if you are setting up IPv6 network and/or Mobile IPv6 -services. - -%prep -%setup -q - -%build -export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIE -fno-strict-aliasing" -export LDFLAGS='-pie -Wl,-z,relro,-z,now,-z,noexecstack,-z,nodlopen' -%configure --with-pidfile=%{_localstatedir}/run/radvd/radvd.pid -make -# make %{?_smp_mflags} -# Parallel builds still fail because seds that transform y.tab.x into -# scanner/gram.x are not executed before compile of scanner/gram.x -# - -%install -[ $RPM_BUILD_ROOT != "/" ] && rm -rf $RPM_BUILD_ROOT - -make DESTDIR=$RPM_BUILD_ROOT install - -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig -mkdir -p $RPM_BUILD_ROOT%{initdir} -mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/radvd - -install -m 644 redhat/radvd.conf.empty $RPM_BUILD_ROOT%{_sysconfdir}/radvd.conf -install -m 755 redhat/radvd.init $RPM_BUILD_ROOT%{initdir}/radvd -install -m 644 redhat/radvd.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/radvd - -install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d -install -p -m 644 redhat/radvd-tmpfs.conf $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/radvd.conf - -%clean -[ $RPM_BUILD_ROOT != "/" ] && rm -rf $RPM_BUILD_ROOT - -%postun -if [ "$1" -ge "1" ]; then - /sbin/service radvd condrestart >/dev/null 2>&1 -fi - -%post -/sbin/chkconfig --add radvd - -%preun -if [ $1 = 0 ]; then - /sbin/service radvd stop >/dev/null 2>&1 - /sbin/chkconfig --del radvd -fi - -%pre -getent group radvd >/dev/null || groupadd -g %RADVD_UID -r radvd -getent passwd radvd >/dev/null || \ - useradd -r -u %RADVD_UID -g radvd -d / -s /sbin/nologin -c "radvd user" radvd -exit 0 - -%files -%defattr(-,root,root,-) -%doc COPYRIGHT README CHANGES INTRO.html TODO -%config(noreplace) %{_sysconfdir}/radvd.conf -%config(noreplace) %{_sysconfdir}/sysconfig/radvd -%config(noreplace) %{_sysconfdir}/tmpfiles.d/radvd.conf -%{initdir}/radvd -%dir %attr(-,radvd,radvd) %{_localstatedir}/run/radvd/ -%doc radvd.conf.example -%{_mandir}/*/* -%{_sbindir}/radvd -%{_sbindir}/radvdump diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/redhat/radvd.sysconfig new/radvd-2.18/redhat/radvd.sysconfig --- old/radvd-2.17/redhat/radvd.sysconfig 2014-07-31 02:13:24.000000000 +0200 +++ new/radvd-2.18/redhat/radvd.sysconfig 1970-01-01 01:00:00.000000000 +0100 @@ -1,6 +0,0 @@ - -# No chroot; /var/run/radvd must be owned by -u. -OPTIONS="-u radvd" - -# Chroot; directory structure under /var/chroot/radvd has to be populated. -#OPTIONS="-u radvd -t /var/chroot/radvd" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/redhat/systemd/radvd-tmpfs.conf new/radvd-2.18/redhat/systemd/radvd-tmpfs.conf --- old/radvd-2.17/redhat/systemd/radvd-tmpfs.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/radvd-2.18/redhat/systemd/radvd-tmpfs.conf 2019-02-16 06:30:57.000000000 +0100 @@ -0,0 +1 @@ +d /var/run/radvd 0755 radvd radvd diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/redhat/systemd/radvd.service new/radvd-2.18/redhat/systemd/radvd.service --- old/radvd-2.17/redhat/systemd/radvd.service 1970-01-01 01:00:00.000000000 +0100 +++ new/radvd-2.18/redhat/systemd/radvd.service 2019-02-16 06:30:57.000000000 +0100 @@ -0,0 +1,14 @@ +[Unit] +Description=Router advertisement daemon for IPv6 +After=network-online.target +Wants=network-online.target + +[Service] +EnvironmentFile=/etc/sysconfig/radvd +ExecStart=/usr/sbin/radvd $OPTIONS +Type=forking +PIDFile=/var/run/radvd/radvd.pid +ExecReload=/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/redhat/systemd/radvd.spec new/radvd-2.18/redhat/systemd/radvd.spec --- old/radvd-2.17/redhat/systemd/radvd.spec 1970-01-01 01:00:00.000000000 +0100 +++ new/radvd-2.18/redhat/systemd/radvd.spec 2019-02-26 05:36:53.000000000 +0100 @@ -0,0 +1,94 @@ +%define RADVD_UID 75 + +Summary: A Router Advertisement daemon +Name: radvd +Version: 2.18 +Release: 1%{?dist} +# The code includes the advertising clause, so it's GPL-incompatible +License: BSD with advertising +Group: System Environment/Daemons +URL: http://www.litech.org/radvd/ +Source: http://www.litech.org/radvd/dist/%{name}-%{version}.tar.gz + +BuildRequires: gcc +BuildRequires: bison +BuildRequires: flex +BuildRequires: flex-static +BuildRequires: pkgconfig +BuildRequires: check-devel +BuildRequires: systemd +%{?systemd_requires} +Requires(pre): shadow-utils + +%description +radvd is the router advertisement daemon for IPv6. It listens to router +solicitations and sends router advertisements as described in "Neighbor +Discovery for IP Version 6 (IPv6)" (RFC 2461). With these advertisements +hosts can automatically configure their addresses and some other +parameters. They also can choose a default router based on these +advertisements. + +Install radvd if you are setting up IPv6 network and/or Mobile IPv6 +services. + +%prep +%setup -q + +for F in CHANGES; do + iconv -f iso-8859-1 -t utf-8 < "$F" > "${F}.new" + touch -r "$F" "${F}.new" + mv "${F}.new" "$F" +done + +%build +export CFLAGS="$RPM_OPT_FLAGS -fPIE " +export LDFLAGS='-pie -Wl,-z,relro,-z,now,-z,noexecstack,-z,nodlopen' +%configure --with-pidfile=/run/radvd/radvd.pid +make %{?_smp_mflags} + +%install +make DESTDIR=%{buildroot} install + +mkdir -p %{buildroot}%{_sysconfdir}/sysconfig +mkdir -p %{buildroot}/run/radvd +mkdir -p %{buildroot}%{_unitdir} + +install -m 644 redhat/radvd.conf.empty %{buildroot}%{_sysconfdir}/radvd.conf +install -m 644 redhat/radvd.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/radvd + +install -d -m 755 %{buildroot}%{_tmpfilesdir} +install -p -m 644 %{SOURCE1} %{buildroot}%{_tmpfilesdir}/radvd.conf +install -p -m 644 redhat/radvd-tmpfs.conf %{buildroot}%{_tmpfilesdir}/radvd.conf +install -m 644 redhat/radvd.service %{buildroot}%{_unitdir} + +%check +make check + +%postun +%systemd_postun_with_restart radvd.service + +%post +%systemd_post radvd.service + +%preun +%systemd_preun radvd.service + +# Static UID and GID defined by /usr/share/doc/setup-*/uidgid +%pre +getent group radvd >/dev/null || groupadd -r -g %RADVD_UID radvd +getent passwd radvd >/dev/null || \ + useradd -r -u %RADVD_UID -g radvd -d / -s /sbin/nologin -c "radvd user" radvd +exit 0 + +%files +%doc CHANGES COPYRIGHT INTRO.html README TODO +%{_unitdir}/radvd.service +%config(noreplace) %{_sysconfdir}/radvd.conf +%config(noreplace) %{_sysconfdir}/sysconfig/radvd +%{_tmpfilesdir}/radvd.conf +%dir %attr(755,radvd,radvd) /run/radvd/ +%doc radvd.conf.example +%{_mandir}/*/* +%{_sbindir}/radvd +%{_sbindir}/radvdump + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/redhat/systemd/radvd.spec.in new/radvd-2.18/redhat/systemd/radvd.spec.in --- old/radvd-2.17/redhat/systemd/radvd.spec.in 1970-01-01 01:00:00.000000000 +0100 +++ new/radvd-2.18/redhat/systemd/radvd.spec.in 2019-02-16 06:30:57.000000000 +0100 @@ -0,0 +1,94 @@ +%define RADVD_UID 75 + +Summary: A Router Advertisement daemon +Name: radvd +Version: @VERSION@ +Release: 1%{?dist} +# The code includes the advertising clause, so it's GPL-incompatible +License: BSD with advertising +Group: System Environment/Daemons +URL: http://www.litech.org/radvd/ +Source: http://www.litech.org/radvd/dist/%{name}-%{version}.tar.gz + +BuildRequires: gcc +BuildRequires: bison +BuildRequires: flex +BuildRequires: flex-static +BuildRequires: pkgconfig +BuildRequires: check-devel +BuildRequires: systemd +%{?systemd_requires} +Requires(pre): shadow-utils + +%description +radvd is the router advertisement daemon for IPv6. It listens to router +solicitations and sends router advertisements as described in "Neighbor +Discovery for IP Version 6 (IPv6)" (RFC 2461). With these advertisements +hosts can automatically configure their addresses and some other +parameters. They also can choose a default router based on these +advertisements. + +Install radvd if you are setting up IPv6 network and/or Mobile IPv6 +services. + +%prep +%setup -q + +for F in CHANGES; do + iconv -f iso-8859-1 -t utf-8 < "$F" > "${F}.new" + touch -r "$F" "${F}.new" + mv "${F}.new" "$F" +done + +%build +export CFLAGS="$RPM_OPT_FLAGS -fPIE " +export LDFLAGS='-pie -Wl,-z,relro,-z,now,-z,noexecstack,-z,nodlopen' +%configure --with-pidfile=/run/radvd/radvd.pid +make %{?_smp_mflags} + +%install +make DESTDIR=%{buildroot} install + +mkdir -p %{buildroot}%{_sysconfdir}/sysconfig +mkdir -p %{buildroot}/run/radvd +mkdir -p %{buildroot}%{_unitdir} + +install -m 644 redhat/radvd.conf.empty %{buildroot}%{_sysconfdir}/radvd.conf +install -m 644 redhat/radvd.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/radvd + +install -d -m 755 %{buildroot}%{_tmpfilesdir} +install -p -m 644 %{SOURCE1} %{buildroot}%{_tmpfilesdir}/radvd.conf +install -p -m 644 redhat/radvd-tmpfs.conf %{buildroot}%{_tmpfilesdir}/radvd.conf +install -m 644 redhat/radvd.service %{buildroot}%{_unitdir} + +%check +make check + +%postun +%systemd_postun_with_restart radvd.service + +%post +%systemd_post radvd.service + +%preun +%systemd_preun radvd.service + +# Static UID and GID defined by /usr/share/doc/setup-*/uidgid +%pre +getent group radvd >/dev/null || groupadd -r -g %RADVD_UID radvd +getent passwd radvd >/dev/null || \ + useradd -r -u %RADVD_UID -g radvd -d / -s /sbin/nologin -c "radvd user" radvd +exit 0 + +%files +%doc CHANGES COPYRIGHT INTRO.html README TODO +%{_unitdir}/radvd.service +%config(noreplace) %{_sysconfdir}/radvd.conf +%config(noreplace) %{_sysconfdir}/sysconfig/radvd +%{_tmpfilesdir}/radvd.conf +%dir %attr(755,radvd,radvd) /run/radvd/ +%doc radvd.conf.example +%{_mandir}/*/* +%{_sbindir}/radvd +%{_sbindir}/radvdump + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/scanner.l new/radvd-2.18/scanner.l --- old/radvd-2.17/scanner.l 2017-07-02 03:59:02.000000000 +0200 +++ new/radvd-2.18/scanner.l 2018-02-18 23:45:02.000000000 +0100 @@ -35,7 +35,7 @@ addr3 ({hexdigit}{1,4}":"){7}{hexdigit}{1,4} addr ({addr1}|{addr2}|{addr3}|"::") whitespace ([ \t])+ -string [a-zA-Z0-9`~!@#$%\^&*()_\-+=:\[\]<>,\.?\\]+ +string [a-zA-Z0-9`~!@#$%\^&*()_\-+=:\[\]<>,\.?\\]+|L?\"(\\.|[^\\"])*\" %% #.*$ {/* ignore comments */} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/send.c new/radvd-2.18/send.c --- old/radvd-2.17/send.c 2017-06-29 06:32:29.000000000 +0200 +++ new/radvd-2.18/send.c 2018-12-09 00:35:39.000000000 +0100 @@ -527,8 +527,8 @@ dnssl = dnssl->next; } - return sbl; safe_buffer_free(serialized_domains); + return sbl; } /* @@ -619,9 +619,9 @@ co.nd_opt_6co_type = ND_OPT_6CO; co.nd_opt_6co_len = 3; co.nd_opt_6co_context_len = lowpanco->ContextLength; - co.nd_opt_6co_c = lowpanco->ContextCompressionFlag; - co.nd_opt_6co_cid = lowpanco->AdvContextID; - co.nd_opt_6co_valid_lifetime = lowpanco->AdvLifeTime; + co.nd_opt_6co_res_c_cid = ((lowpanco->ContextCompressionFlag ? 1 : 0) << 4) + | (lowpanco->AdvContextID & 0x0F); + co.nd_opt_6co_valid_lifetime = htons(lowpanco->AdvLifeTime); co.nd_opt_6co_con_prefix = lowpanco->AdvContextPrefix; safe_buffer_append(sb, &co, sizeof(co)); @@ -635,9 +635,9 @@ abro.nd_opt_abro_type = ND_OPT_ABRO; abro.nd_opt_abro_len = 3; - abro.nd_opt_abro_ver_low = abroo->Version[1]; - abro.nd_opt_abro_ver_high = abroo->Version[0]; - abro.nd_opt_abro_valid_lifetime = abroo->ValidLifeTime; + abro.nd_opt_abro_ver_low = htons(abroo->Version[1]); + abro.nd_opt_abro_ver_high = htons(abroo->Version[0]); + abro.nd_opt_abro_valid_lifetime = htons(abroo->ValidLifeTime); abro.nd_opt_abro_6lbr_address = abroo->LBRaddress; safe_buffer_append(sb, &abro, sizeof(abro)); @@ -797,7 +797,7 @@ } // RA built, now send it. - dlog(LOG_DEBUG, 5, "sending RA to %s on %s (%s), %lu options (using %lu/%u bytes)", dest_text, iface->props.name, + dlog(LOG_DEBUG, 5, "sending RA to %s on %s (%s), %lu options (using %zd/%u bytes)", dest_text, iface->props.name, src_text, option_count, sb->used, iface->props.max_ra_option_size); int err = really_send(sock, dest, &iface->props, sb); if (err < 0) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/radvd-2.17/test/send.c new/radvd-2.18/test/send.c --- old/radvd-2.17/test/send.c 2017-06-29 06:32:29.000000000 +0200 +++ new/radvd-2.18/test/send.c 2018-02-18 23:45:02.000000000 +0100 @@ -309,10 +309,9 @@ ck_assert_msg(0, "\n%s", &buf); #else unsigned char expected[] = { - 0x22, 0x03, 0x32, 0x48, 0x00, 0x00, 0xe8, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x22, 0x03, 0x32, 0x14, 0x00, 0x00, 0x03, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; - ck_assert_int_eq(sb.used, sizeof(expected)); ck_assert_int_eq(0, memcmp(expected, sb.buffer, sizeof(expected))); #endif @@ -334,7 +333,7 @@ ck_assert_msg(0, "\n%s", &buf); #else unsigned char expected[] = { - 0x23, 0x03, 0x0a, 0x00, 0x02, 0x00, 0x02, 0x00, 0xfe, 0x80, 0x00, 0x00, + 0x23, 0x03, 0x00, 0x0a, 0x00, 0x02, 0x00, 0x02, 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, }; ++++++ radvd-systemd.patch ++++++ Index: radvd-2.18/redhat/systemd/radvd.service =================================================================== --- radvd-2.18.orig/redhat/systemd/radvd.service +++ radvd-2.18/redhat/systemd/radvd.service @@ -4,10 +4,9 @@ After=network-online.target Wants=network-online.target [Service] -EnvironmentFile=/etc/sysconfig/radvd -ExecStart=/usr/sbin/radvd $OPTIONS -Type=forking -PIDFile=/var/run/radvd/radvd.pid +EnvironmentFile=-/etc/sysconfig/radvd +ExecStart=/usr/sbin/radvd --nodaemon $RADVD_OPTIONS +PIDFile=/run/radvd/radvd.pid ExecReload=/bin/kill -HUP $MAINPID [Install] Index: radvd-2.18/redhat/systemd/radvd-tmpfs.conf =================================================================== --- radvd-2.18.orig/redhat/systemd/radvd-tmpfs.conf +++ radvd-2.18/redhat/systemd/radvd-tmpfs.conf @@ -1 +1 @@ -d /var/run/radvd 0755 radvd radvd +d /run/radvd 0755 radvd radvd ++++++ radvd.keyring ++++++ --- /var/tmp/diff_new_pack.uqHdeL/_old 2019-08-19 20:48:05.321089468 +0200 +++ /var/tmp/diff_new_pack.uqHdeL/_new 2019-08-19 20:48:05.333089465 +0200 @@ -1,52 +1,29 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v2 -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 -hENb -=0+YC +mQENBFxpAWYBCADuyG03u8JkQcWrxeCvedWEIjhLbOaKt3IoRRFcU4I+w/SQhuGj +QUVrmCUvTL1fnkuknmZ8rHPjoOjkzFU+X4SdE2FGl53f2mhLuVtGeGWgI1M3ieqP +JufAIKQLEqrGi/m67QlWrtaZieL8aAfU48zH9tFiWTmX58c+UZxbo5xZ2XVCeUwo +VapO5BgvnfdLxu3Uqdxm1hM5GIqsDf13Vpwmc4rIVpY1Vvptpyeo81EsEGHDxXoG +PBL1mWpjAsHQ2h5tyJ/TdeNvVoJVDsFXSPuoAjTr+cXCcEROf1JpwMkV0eRxipzD +YNnIxn7C175hgGlR+ygAtb6WGQEw3i24M4tTABEBAAG0JFJldWJlbiBIYXdraW5z +IDxyZXViZW5od2tAZ21haWwuY29tPokBPgQTAQIAKAUCXGkBZgIbAwUJBaOagAYL +CQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQb+GfIUUcmisR3Qf/ZUgxSIt87vgW +hkCGMAe6IgzUkrg0wkD/YlnsUyYVavHjB2lElM7aOTSSmbyJsX9GaJY1pQ5cwmTk +3KVB69KKotvDd5m9eNBKNvifK+cfPVAsDyBoxt5PcppbvFuVk6UvC15rbwG8tqIf +NrGtrY0v2Cf2b3c5ESw0kgHLqe9TVO5cHhF79kd2LzuXI1uMc84pddPluGJpva5c +AhQgsDyRFkxSgMFXlIEQCE0VRn4H3ZM4d6LOY27lANR6kXah6jcnBEsb6GWsPYiv ++1ojoRGfMtAlZhG+VGclagaR38Vx7R/YQ7GxNY/9vohTSvlQlGXpA0R3A8xF85pm +KluVeBWd9bkBDQRcaQFmAQgAv8qTqUhaO4xaPxFr72ZRkbbXcI2QtPSfk94GHm8Z +9rRnq1rm+HpB9bC6mihhdCbW5vnTZJWfLyv/YMUR17SgdepLk+UAwcaY9f2Vdh/p +HGVoba9BKCvRjk6hKXyv+37e7Yj7UEMe8Dxs96ruyN5xqkVhBXMXSHVnSDbcFbrl +MaWw1JamHlFu2qwsEZ4KFxaoGpzLGU4lQBGqRS8xTxIkwAUBOcjeNgiAYJWcjq1Y +Uaxw+Kdd+Xt5N5PUIU5LrDmlIc+hMvlI0ohgVR3fUwYgFKBVcaK6BDzGIL2l2lCd +9Cc6ENc1hU3BfjgtRuDnuS0X5CwPaYPGz/XrpdlWsNBZPQARAQABiQElBBgBAgAP +BQJcaQFmAhsMBQkFo5qAAAoJEG/hnyFFHJorCswIAJazp09rViFZS9fWsoPdzEou +VajXuVMtPy1dXR5K7w6yR6SMtgjKrW8qEnyeQ8p+8omjh4W27Wle5kCrk1iUEVaH +lYB1XM9Pu0Iv97LDiKz9syuSn9SF7xjswxdcN9F+pq7Zg0mp0uLSK2dgelgFjdUG +t3iLy5YQUDqlMUN89gnM+CXQZgvf5UgfJWhOcl7KwOJ/1+sJqLvDg2jjNMsh1g1H +xdC8Ljap6FjTq8n8x4If4M/GFaKdhhJb3t4807xXLY8L+jE559o0KUreQw30pQUm +RrjgF1gm/TUlX5W3jUtB7/Drlz/IMS2+Zes2/u3gOwONRnku7F7Qc22SgKhg6Lk= +=lXx+ -----END PGP PUBLIC KEY BLOCK----- ++++++ system-user-radvd.conf ++++++ # Type Name ID GECOS [HOME] u radvd - "Router ADVertisement Daemon for IPv6" /var/lib/empty # for compat with pre 15.2 m radvd daemon
