From 9382cabf2f5bdc2fd40f9d7c062c3316fae03c9f Mon Sep 17 00:00:00 2001 From: Jaroslav Škarvada Date: Aug 29 2014 13:32:08 +0000 Subject: Initial import (#1124483) --- diff --git a/.gitignore b/.gitignore index e69de29..3fd01ab 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/ampr-ripd-1.11.tgz diff --git a/ampr-ripd-1.11-examples-noshebang.patch b/ampr-ripd-1.11-examples-noshebang.patch new file mode 100644 index 0000000..a8e55c4 --- /dev/null +++ b/ampr-ripd-1.11-examples-noshebang.patch @@ -0,0 +1,25 @@ +diff --git a/ampr-run.sh b/ampr-run.sh +index 105ee04..1b7e8ef 100755 +--- a/ampr-run.sh ++++ b/ampr-run.sh +@@ -1,5 +1,3 @@ +-#!/bin/sh +- + # + # Example of how to run ampr-ripd + # +diff --git a/find_pass.sh b/find_pass.sh +index 6d585b8..5c9c3a1 100755 +--- a/find_pass.sh ++++ b/find_pass.sh +@@ -1,9 +1,7 @@ +-#!/bin/sh +- + # + # Running ampr-ripd without any options except debug and the interface name + # allows you to find your RIPv2 password + # You need to adapt the interface name to your setup + # + +-./ampr-ripd -d -i ampr0 ++ampr-ripd -d -i ampr0 diff --git a/ampr-ripd-1.11-install-fix.patch b/ampr-ripd-1.11-install-fix.patch new file mode 100644 index 0000000..d666268 --- /dev/null +++ b/ampr-ripd-1.11-install-fix.patch @@ -0,0 +1,43 @@ +diff --git a/Makefile b/Makefile +index ac8146d..f9956c5 100644 +--- a/Makefile ++++ b/Makefile +@@ -2,13 +2,9 @@ + # Makefile for ampr-ripd + # + +-BASEDIR = /usr ++BASEDIR = $(DESTDIR)/usr + SBINDIR = $(BASEDIR)/sbin +-SCACHEDIR = /var/lib/ampr-ripd +- +-# no need to run dx-broadcast as root +-OWN = daemon +-GRP = daemon ++SCACHEDIR = $(DESTDIR)/var/lib/ampr-ripd + + CC = gcc + +@@ -22,11 +18,11 @@ CC = gcc + # Full debug + #DOPT = -Wall -O2 -D HAVE_DEBUG + +-COPT = -Wall -O2 +-LOPT = ++CFLAGS = -Wall -O2 ++LDFLAGS = + + ampr-ripd: ampr-ripd.c +- $(CC) $(COPT) $(DOPT) $(LOPT) -o ampr-ripd ampr-ripd.c ++ $(CC) $(CFLAGS) $(DOPT) $(LDFLAGS) -o ampr-ripd ampr-ripd.c + + all: ampr-ripd + +@@ -35,5 +31,5 @@ clean: + + install: ampr-ripd + strip ampr-ripd +- install -m 755 -o $(OWN) -g $(GRP) -d $(SCACHEDIR) +- install -m 755 -o $(OWN) -g $(GRP) ampr-ripd $(SBINDIR) ++ install -m 755 -p -D -d $(SCACHEDIR) ++ install -m 755 -p -D ampr-ripd $(SBINDIR)/ampr-ripd diff --git a/ampr-ripd-1.11-pidfile.patch b/ampr-ripd-1.11-pidfile.patch new file mode 100644 index 0000000..c25c50e --- /dev/null +++ b/ampr-ripd-1.11-pidfile.patch @@ -0,0 +1,40 @@ +diff --git a/ampr-ripd.c b/ampr-ripd.c +index 697a48e..3af51dc 100644 +--- a/ampr-ripd.c ++++ b/ampr-ripd.c +@@ -102,6 +102,8 @@ + + #define RTAB_FILE "/etc/iproute2/rt_tables" /* route tables */ + ++#define PID_FILE "/var/run/ampr-ripd.pid" /* pid file */ ++ + #define BUFFERSIZE 8192 + #define MYIPSIZE 25 /* max number of local interface IPs */ + #define MAXIGNORE 10 /* max number of hosts in the ignore list */ +@@ -1423,6 +1425,7 @@ static void on_term(int sig) + #ifdef HAVE_DEBUG + if (debug && verbose) fprintf(stderr, "SIGTERM/SIGKILL received.\n"); + #endif ++ unlink(PID_FILE); + close(fwsd); + close(tunsd); + route_delete_all(); +@@ -1496,6 +1499,7 @@ int main(int argc, char **argv) + char *pload; + int len, plen; + int lval; ++ FILE *pidfile; + + while ((p = getopt(argc, argv, "dvsrh?i:a:p:t:m:w:f:e:")) != -1) + { +@@ -1730,6 +1734,10 @@ int main(int argc, char **argv) + signal(SIGHUP, on_hup); + signal(SIGALRM, on_alarm); + ++ pidfile = fopen(PID_FILE, "w"); ++ fprintf(pidfile, "%d\n", (int)getpid()); ++ fclose(pidfile); ++ + /* daemon or debug */ + + if (debug) fprintf(stderr, "Waiting for RIPv2 broadcasts...\n"); diff --git a/ampr-ripd.service b/ampr-ripd.service new file mode 100644 index 0000000..3e0a3cc --- /dev/null +++ b/ampr-ripd.service @@ -0,0 +1,12 @@ +[Unit] +Description = AMPR Routing Daemon +After = network.target + +[Service] +Type = forking +PIDFile = /run/ampr-ripd.pid +ExecStart = /usr/sbin/ampr-ripd +ExecReload = /bin/kill -HUP $MAINPID + +[Install] +WantedBy = multi-user.target diff --git a/ampr-ripd.spec b/ampr-ripd.spec new file mode 100644 index 0000000..c7544b1 --- /dev/null +++ b/ampr-ripd.spec @@ -0,0 +1,67 @@ +# hardened build if not overriden +%{!?_hardened_build:%global _hardened_build 1} + +%if %{?_hardened_build}%{!?_hardened_build:0} +%global cflags_harden -fpie +%global ldflags_harden -pie -z relro -z now +%endif + +Summary: Routing daemon for the ampr network +Name: ampr-ripd +Version: 1.11 +Release: 1%{?dist} +License: GPLv2+ +Group: Applications/Communications +URL: http://www.yo2loj.ro/hamprojects/ +BuildRequires: dos2unix, systemd +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +Source0: http://www.yo2loj.ro/hamprojects/%{name}-%{version}.tgz +Source1: ampr-ripd.service +Patch0: ampr-ripd-1.11-install-fix.patch +Patch1: ampr-ripd-1.11-examples-noshebang.patch +Patch2: ampr-ripd-1.11-pidfile.patch + +%description +Routing daemon written in C similar to Hessu's rip44d including optional +resending of RIPv2 broadcasts for router injection. + +%prep +%setup -qc +%patch0 -p1 -b .install-fix +%patch1 -p1 -b .examples-noshebang +%patch2 -p1 -b .pidfile + +%build +make %{?_smp_mflags} CFLAGS="%{optflags} %{?cflags_harden}" LDFLAGS="%{?__global_ldflags} %{?ldflags_harden}" + +%install +make %{?_smp_mflags} DESTDIR=%{buildroot} install + +# Systemd +install -Dpm 644 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service + +# Examples +install -Dd %{buildroot}%{_datadir}/%{name} +install -Dpm 644 -t %{buildroot}%{_datadir}/%{name} ampr-run.sh find_pass.sh + +%post +%systemd_post %{name}.service + +%preun +%systemd_preun %{name}.service + +%postun +%systemd_postun_with_restart %{name}.service + +%files +%doc COPYING manual.txt + +%{_sbindir}/ampr-ripd +%{_datadir}/%{name} +%{_unitdir}/%{name}.service + +%changelog +* Tue Jul 22 2014 Jaroslav Škarvada - 1.11-1 +- Initial release diff --git a/sources b/sources index e69de29..e87bf1b 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +c459c388c9acc8be0aff29a8bbd85ece ampr-ripd-1.11.tgz