diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5d6cc2a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +aiccu_20070115.tar.gz diff --git a/aiccu-cloexec.patch b/aiccu-cloexec.patch new file mode 100644 index 0000000..c61e6be --- /dev/null +++ b/aiccu-cloexec.patch @@ -0,0 +1,59 @@ +diff -urNp --exclude-from=/home/mdomsch/excludes --minimal aiccu.orig/common/common.c aiccu/common/common.c +--- aiccu.orig/common/common.c 2008-10-17 18:43:13.000000000 -0500 ++++ aiccu/common/common.c 2008-10-17 22:11:52.000000000 -0500 +@@ -365,6 +365,7 @@ TLSSOCKET connect_client(const char *hos + { + sock->socket = socket(res->ai_family, res->ai_socktype, res->ai_protocol); + if (sock->socket == -1) continue; ++ fcntl(sock->socket, F_SETFD, FD_CLOEXEC); + if (connect(sock->socket, res->ai_addr, (unsigned int)res->ai_addrlen) == 0) break; + closesocket(sock->socket); + sock->socket = -1; +@@ -428,6 +429,7 @@ TLSSOCKET listen_server(const char *desc + sock->socket = socket(res->ai_family, res->ai_socktype, res->ai_protocol); + if (!(sock->socket < 0)) + { ++ fcntl(sock->socket, F_SETFD, FD_CLOEXEC); + setsockopt(sock->socket, SOL_SOCKET, SO_REUSEADDR, (const char *)&on, sizeof(on)); + if (bind(sock->socket, res->ai_addr, (unsigned int)res->ai_addrlen) == 0) break; + closesocket(sock->socket); +diff -urNp --exclude-from=/home/mdomsch/excludes --minimal aiccu.orig/common/heartbeat.c aiccu/common/heartbeat.c +--- aiccu.orig/common/heartbeat.c 2008-10-17 18:43:13.000000000 -0500 ++++ aiccu/common/heartbeat.c 2008-10-17 22:12:51.000000000 -0500 +@@ -58,6 +58,7 @@ SOCKET heartbeat_socket( + dolog(LOG_ERR, "Couldn't open a socket for determining current IPv4 address\n"); + return -1; + } ++ fcntl(sockfd, F_SETFD, FD_CLOEXEC); + + #if defined(SOL_SOCKET) && defined(SO_BINDTODEVICE) + /* +diff -urNp --exclude-from=/home/mdomsch/excludes --minimal aiccu.orig/common/tun.c aiccu/common/tun.c +--- aiccu.orig/common/tun.c 2008-10-17 18:43:13.000000000 -0500 ++++ aiccu/common/tun.c 2008-10-17 22:12:42.000000000 -0500 +@@ -696,6 +696,8 @@ bool tun_start(struct tun_reader *tun) + + /* Create a new tap device */ + tun_fd = open("/dev/net/tun", O_RDWR); ++ if (tun_fd >= 0) ++ fcntl(tun_fd, F_SETFD, FD_CLOEXEC); + if (tun_fd == -1) + { + tun_log(LOG_ERR, "start", "Couldn't open device %s: %s (%d)\n", "/dev/net/tun", strerror(errno), errno); +@@ -725,6 +727,8 @@ bool tun_start(struct tun_reader *tun) + tun_log(LOG_DEBUG, "start", "Trying Configured TUN/TAP interface %s...\n", g_aiccu->ipv6_interface); + snprintf(buf, sizeof(buf), "/dev/%s", g_aiccu->ipv6_interface); + tun_fd = open(buf, O_RDWR); ++ if (tun_fd >= 0) ++ fcntl(tun_fd, F_SETFD, FD_CLOEXEC); + if (tun_fd < 0) + { + /* Fall back to trying all /dev/tun* devices */ +@@ -735,6 +739,7 @@ bool tun_start(struct tun_reader *tun) + tun_fd = open(buf, O_RDWR); + if (tun_fd >= 0) + { ++ fcntl(tun_fd, F_SETFD, FD_CLOEXEC); + /* Copy over the name of the interface so that configging goes okay */ + if (g_aiccu->ipv6_interface) free(g_aiccu->ipv6_interface); + snprintf(buf, sizeof(buf), "tun%u", i); diff --git a/aiccu-gnutls34.patch b/aiccu-gnutls34.patch new file mode 100644 index 0000000..85f3bf1 --- /dev/null +++ b/aiccu-gnutls34.patch @@ -0,0 +1,33 @@ +Description: GnuTLS 3.4 compat. + Use GnuTLS priority NORMAL:+CTYPE-OPENPGP instead of deprecated (and removed in GnuTLS 3.4) function gnutls_certificate_type_set_priority. +Author: Andreas Metzler +Bug-Debian: https://bugs.debian.org/624056 +Origin: vendor +Forwarded: no +Last-Update: 2015-07-25 + +--- aiccu-20070115.orig/common/common.c ++++ aiccu-20070115/common/common.c +@@ -271,8 +271,6 @@ TLSSOCKET sock_alloc(void); + TLSSOCKET sock_alloc(void) + { + #ifdef AICCU_GNUTLS +- /* Allow connections to servers that have OpenPGP keys as well */ +- const int cert_type_priority[3] = { GNUTLS_CRT_X509, GNUTLS_CRT_OPENPGP, 0 }; + int ret; + #endif /* AICCU_GNUTLS*/ + +@@ -297,11 +295,8 @@ TLSSOCKET sock_alloc(void) + } + + /* Use default priorities */ +- gnutls_set_default_priority(sock->session); +- /* XXX: Return value is not documented in GNUTLS documentation! */ +- +- gnutls_certificate_type_set_priority(sock->session, cert_type_priority); +- /* XXX: Return value is not documented in GNUTLS documentation! */ ++ /* Allow connections to servers that have OpenPGP keys as well */ ++ gnutls_priority_set_direct(sock->session, "@SYSTEM", NULL); + + /* Configure the x509 credentials for the current session */ + gnutls_credentials_set(sock->session, GNUTLS_CRD_CERTIFICATE, g_aiccu->tls_cred); diff --git a/aiccu-run.patch b/aiccu-run.patch new file mode 100644 index 0000000..bb9d3f3 --- /dev/null +++ b/aiccu-run.patch @@ -0,0 +1,24 @@ +diff -up aiccu/common/aiccu.h.run aiccu/common/aiccu.h +--- aiccu/common/aiccu.h.run 2007-01-15 13:01:43.000000000 +0100 ++++ aiccu/common/aiccu.h 2011-07-18 18:00:22.313521552 +0200 +@@ -68,7 +68,7 @@ + #define AICCU_CACHE "/var/cache/aiccu.cache" + + /* The PID we are running as when daemonized */ +-#define AICCU_PID "/var/run/aiccu.pid" ++#define AICCU_PID "/run/aiccu.pid" + + /* AICCU Configuration file */ + #ifdef _WIN32 +diff -up aiccu/doc/aiccu.conf.run aiccu/doc/aiccu.conf +--- aiccu/doc/aiccu.conf.run 2011-07-18 18:02:32.898521537 +0200 ++++ aiccu/doc/aiccu.conf 2011-07-18 18:03:12.086521529 +0200 +@@ -47,7 +47,7 @@ automatic true + requiretls false + + # PID File +-#pidfile /var/run/aiccu.pid ++pidfile /run/aiccu.pid + + # Add a default route (default: true) + #defaultroute true diff --git a/aiccu-setupscript.patch b/aiccu-setupscript.patch new file mode 100644 index 0000000..d68e982 --- /dev/null +++ b/aiccu-setupscript.patch @@ -0,0 +1,16 @@ +diff --git a/unix-console/main.c b/unix-console/main.c +index 388d988..375b61c 100755 +--- a/unix-console/main.c ++++ b/unix-console/main.c +@@ -471,6 +471,11 @@ int main(int argc, char *argv[]) + */ + if (aiccu_setup(hTunnel, true)) + { ++ if (g_aiccu->setupscript) ++ { ++ aiccu_exec("%s", g_aiccu->setupscript); ++ } ++ + /* We need to stay running when doing Heartbeat or AYIYA */ + if ( strcasecmp(hTunnel->sType, "6in4-heartbeat") == 0 || + strcasecmp(hTunnel->sType, "ayiya") == 0) diff --git a/aiccu-syslog-daemon.patch b/aiccu-syslog-daemon.patch new file mode 100644 index 0000000..07961c9 --- /dev/null +++ b/aiccu-syslog-daemon.patch @@ -0,0 +1,11 @@ +--- aiccu/common/common.c.orig 2011-10-27 18:32:11.933323958 -0700 ++++ aiccu/common/common.c 2011-10-27 18:32:21.247179132 -0700 +@@ -37,7 +37,7 @@ + if (g_aiccu && !g_aiccu->verbose && level == LOG_DEBUG) return; + + #ifndef _WIN32 +- if (g_aiccu && g_aiccu->daemonize > 0) vsyslog(LOG_LOCAL7|level, fmt, ap); ++ if (g_aiccu && g_aiccu->daemonize > 0) vsyslog(LOG_DAEMON|level, fmt, ap); + else + { + vfprintf(stderr, fmt, ap); diff --git a/aiccu.service b/aiccu.service new file mode 100644 index 0000000..765fdcb --- /dev/null +++ b/aiccu.service @@ -0,0 +1,14 @@ +[Unit] +Description=AICCU (Automatic IPv6 Connectivity Configuration Utility) +Wants=network.target network-online.target +After=network.target network-online.target time-sync.target + +[Service] +Type=forking +EnvironmentFile=-/etc/sysconfig/aiccu +ExecStart=/usr/sbin/aiccu start $OPTIONS +ExecStop=/usr/sbin/aiccu stop +PIDFile=/run/aiccu.pid + +[Install] +WantedBy=multi-user.target diff --git a/aiccu.spec b/aiccu.spec new file mode 100644 index 0000000..c15039d --- /dev/null +++ b/aiccu.spec @@ -0,0 +1,211 @@ +############################################################ +# AICCU - Automatic IPv6 Connectivity Client Utility +# by Jeroen Massar +# (c) Copyright 2003-2005 SixXS +############################################################ +# AICCU RPM Spec File +############################################################ + +Summary: SixXS Automatic IPv6 Connectivity Client Utility +Name: aiccu +Version: 2007.01.15 +Release: 30%{?dist} +License: BSD +Group: System Environment/Daemons +URL: http://www.sixxs.net/tools/aiccu/ +Source0: http://www.sixxs.net/archive/sixxs/aiccu/unix/aiccu_20070115.tar.gz +Source1: aiccu.service +Patch0: aiccu-cloexec.patch +Patch1: aiccu-run.patch +Patch2: aiccu-syslog-daemon.patch +Patch3: aiccu-gnutls34.patch +Patch4: aiccu-setupscript.patch +BuildRequires: gnutls-devel +BuildRequires: systemd-units +Requires: iproute +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units + +%description +This client automatically gives one IPv6 connectivity +without having to manually configure interfaces etc. +One does need a SixXS account and at least a tunnel. These +can be freely & gratis requested from the SixXS website. +For more information about SixXS check http://www.sixxs.net + +%prep +%setup -q -n %{name} +%patch0 -p1 +%patch1 -p1 -b .run +%patch2 -p1 -b .syslog-daemon +%patch3 -p1 +%patch4 -p1 + +# fix executable permissions on non-executable content +# so debuginfo can pick them up properly +find . -type f -not -name rules -and -not -name *init* -exec chmod a-x \{\} \; + +%build +make %{?_smp_mflags} RPM_OPT_FLAGS="$RPM_OPT_FLAGS -Wno-error" + +%install +rm -rf $RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT + +# remove old-style init script +rm $RPM_BUILD_ROOT%{_sysconfdir}/init.d/* + +mkdir -p $RPM_BUILD_ROOT%{_unitdir} +install -p %{SOURCE1} $RPM_BUILD_ROOT%{_unitdir}/ + +%post +%systemd_post aiccu.service + +%preun +%systemd_preun aiccu.service + +%postun +%systemd_postun_with_restart aiccu.service + +%clean +make clean +[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root) +%doc doc/README doc/LICENSE +%{_sbindir}/aiccu +# aiccu.conf contains the users's SixXS password, so don't +# make it readable by non-root +%attr(600, root,root) %config(noreplace) %{_sysconfdir}/aiccu.conf +%{_unitdir}/aiccu.service + +%changelog +* Wed Feb 07 2018 Fedora Release Engineering - 2007.01.15-30 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Aug 02 2017 Fedora Release Engineering - 2007.01.15-29 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 2007.01.15-28 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 2007.01.15-27 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Jun 22 2016 Pavel Šimerda - 2007.01.15-26 +- Resolves: #668767 - aiccu not running setupscript + +* Fri Aug 28 2015 Pavel Šimerda - 2007.01.15-25 +- Resolves: #1179274 - Utilize system-wide crypto-policies + +* Thu Aug 27 2015 Pavel Šimerda - 2007.01.15-24 +- Resolves: #1239365 - aiccu: FTBFS in rawhide + +* Tue Jun 16 2015 Fedora Release Engineering - 2007.01.15-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon Sep 08 2014 Pavel Šimerda - 2007.01.15-22 +- Related: #844607 - order also after time-sync.target + +* Fri Aug 15 2014 Fedora Release Engineering - 2007.01.15-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 2007.01.15-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri May 02 2014 Pavel Šimerda - 2007.01.15-19 +- provide proper network/network-online dependencies + +* Mon Jan 06 2014 Pavel Šimerda - 2007.01.15-18 +- #850022 - use systemd-rpm macros + +* Sat Aug 03 2013 Fedora Release Engineering - 2007.01.15-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Feb 13 2013 Fedora Release Engineering - 2007.01.15-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Aug 6 2012 Conrad Meyer - 2007.01.15-15 +- Nix systemd restart as per discussion on #844607 + +* Tue Jul 31 2012 Conrad Meyer - 2007.01.15-14 +- Adopt Eric Hopper's proposed changes (#844607) + +* Wed Jul 18 2012 Fedora Release Engineering - 2007.01.15-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Thu Jan 12 2012 Fedora Release Engineering - 2007.01.15-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Thu Oct 27 2011 Conrad Meyer - 2007.01.15-11 +- Patch to syslog as DAEMON, not LOCAL7. + +* Mon Jul 18 2011 Jochen Schmitt - 2007.01.15-10 +- Change service file to get not complains when /etc/sysconfig/aiccu is missing +- Change PID file in aiccu.conf to /run/aiccu.pid + +* Wed Jul 6 2011 Jochen Schmitt - 2007.01.15-9 +- Implementing native systemd support (656886) + +* Mon Feb 07 2011 Fedora Release Engineering - 2007.01.15-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Jul 24 2009 Fedora Release Engineering - 2007.01.15-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Mon Feb 23 2009 Fedora Release Engineering - 2007.01.15-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Oct 17 2008 Matt Domsch - 2007.01.15-5 +- close file descriptors on exec (BZ#467381) + +* Tue Jun 24 2008 Tomas Mraz 2007.01.15-4 +- rebuild with new gnutls + +* Fri Sep 21 2007 Matt Domsch 2007.01.15-3 +- add LSB initscript header (BZ#246861) + +* Wed Sep 19 2007 Matt Domsch 2007.01.15-2 +- rebuild + +* Wed Jan 31 2007 Matt Domsch 2007.01.15-1 +- upgrade to latest upstream + +* Sat Jan 13 2007 Matt Domsch 2007.01.07-2 +- upstream respun their release with the same version number to fix AYIYA. + +* Sun Jan 07 2007 Matt Domsch 2007.01.07-1 +- upgrade to latest upstream 2007.01.07 + - license change to BSD 3-clause + - Fixed up silly linux bug, adding LL address to tunnels but not to tun/taps. + - local_ipv4_override option so one can use AICCU behind a NAT that + has been configured correctly to do proto-41 forwarding. This is + usually called a DMZ setup. + +* Mon Oct 02 2006 Matt Domsch 2006.07.25-2 +- rebuilt + +* Sat Sep 23 2006 Matt Domsch 2006.07.25-1 +- upgrade to latest upstream, drop all applied patches +- add BR gnutls-devel now used for obtaining tunnel info + +* Sat Sep 2 2006 Matt Domsch 2005.01.31-5 +- rebuild + +* Wed Jun 28 2006 Matt Domsch 2005.01.31-4 +- export CFLAGS properly, fix permissions on files for debuginfo + +* Wed Jun 28 2006 Matt Domsch 2005.01.31-3 +- cleanups per Fedora Extras review + +* Sat Apr 22 2006 Matt Domsch 2005.01.31-2 +- match Fedora Extras spec guidelines +- add postun condrestart +- add reload initscript arg to satisfy rpmlint + +* Sun Aug 29 2004 Jeroen Massar 2004.08.29 +- Beta2 with TIC, 6in4, 6in4-heartbeat and AYIYA support + diff --git a/dead.package b/dead.package deleted file mode 100644 index 4d9c667..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -aiccu relied on the SiXXS IPv6 tunnel service, which was retired on 2017-06-06. diff --git a/sources b/sources new file mode 100644 index 0000000..66058a1 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +c9bcc83644ed788e22a7c3f3d4021350 aiccu_20070115.tar.gz