aboutsummaryrefslogtreecommitdiff
path: root/rtr-origin
diff options
context:
space:
mode:
Diffstat (limited to 'rtr-origin')
-rw-r--r--rtr-origin/Makefile.in30
-rwxr-xr-xrtr-origin/rtr-origin.py14
-rw-r--r--rtr-origin/rules.darwin.mk9
-rw-r--r--rtr-origin/rules.freebsd.mk37
-rw-r--r--rtr-origin/rules.linux.mk29
-rw-r--r--rtr-origin/rules.unknown.mk8
6 files changed, 113 insertions, 14 deletions
diff --git a/rtr-origin/Makefile.in b/rtr-origin/Makefile.in
index 80ff2b50..9eb2ac55 100644
--- a/rtr-origin/Makefile.in
+++ b/rtr-origin/Makefile.in
@@ -4,8 +4,9 @@ BASE = rtr-origin
SRC = ${BASE}.py
BIN = ${BASE}
-INSTALL = @INSTALL@ -m 555
+INSTALL = @INSTALL@
PYTHON = @PYTHON@
+AWK = @AWK@
prefix = @prefix@
exec_prefix = @exec_prefix@
@@ -22,29 +23,38 @@ libdir = @libdir@
abs_top_srcdir = @abs_top_srcdir@
abs_top_builddir = @abs_top_builddir@
+RTR_ORIGIN_INSTALL_TARGETS = @RCYNIC_INSTALL_TARGETS@
+
+RPKI_RTR_PORT = 43779
+
all: ${BIN}
clean:
rm -f ${BIN}
-install: all
- if test -d ${DESTDIR}${bindir} ; then :; else ${INSTALL} -d ${DESTDIR}${bindir}; fi
- ${INSTALL} ${BIN} ${DESTDIR}${bindir}/${BIN}
+install: all ${RTR_ORIGIN_INSTALL_TARGETS}
+
+install-binary:
+ if test -d ${DESTDIR}${bindir} ; then :; else ${INSTALL} -m 555 -d ${DESTDIR}${bindir}; fi
+ ${INSTALL} -m 555 ${BIN} ${DESTDIR}${bindir}/${BIN}
deinstall uninstall:
rm -f ${DESTDIR}${bindir}/${BIN}
-installation-manifest:
- echo >>${abs_top_builddir}/installation-manifest F %%BINDIR%%/${BIN}
-
distclean: clean
rm -rf current sockets *.ax *.ix.*
rm -f Makefile
${BIN} : ${SRC}
- echo >$@ '#!${PYTHON}'
- cat >>$@ ${SRC}
- chmod a+x ${BIN}
+ AC_PYTHON_INTERPRETER='${PYTHON}' AC_SCAN_ROAS='${bindir}/scan_roas' \
+ ${PYTHON} ${abs_top_srcdir}/buildtools/make-rcynic-script.py <${SRC} >$@
+ chmod a+x $@
test:
@true
+
+.FORCE:
+
+# Platform-specific rules below here.
+
+@RTR_ORIGIN_MAKE_RULES@
diff --git a/rtr-origin/rtr-origin.py b/rtr-origin/rtr-origin.py
index 95bef50e..70a0bb1d 100755
--- a/rtr-origin/rtr-origin.py
+++ b/rtr-origin/rtr-origin.py
@@ -9,7 +9,7 @@
#
# $Id$
#
-# Copyright (C) 2009-2012 Internet Systems Consortium ("ISC")
+# Copyright (C) 2009-2013 Internet Systems Consortium ("ISC")
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -1805,9 +1805,15 @@ def bgpdump_server_main(argv):
except KeyboardInterrupt:
sys.exit(0)
-
-scan_roas = os.path.normpath(os.path.join(sys.path[0], "..", "utils",
- "scan_roas", "scan_roas"))
+# Figure out where the scan_roas utility program is today
+try:
+ # Set from autoconf
+ scan_roas = ac_scan_roas
+except NameError:
+ # Source directory
+ scan_roas = os.path.normpath(os.path.join(sys.path[0], "..", "utils",
+ "scan_roas", "scan_roas"))
+# If that didn't work, use $PATH and hope for the best
if not os.path.exists(scan_roas):
scan_roas = "scan_roas"
diff --git a/rtr-origin/rules.darwin.mk b/rtr-origin/rules.darwin.mk
new file mode 100644
index 00000000..1230db92
--- /dev/null
+++ b/rtr-origin/rules.darwin.mk
@@ -0,0 +1,9 @@
+# $Id$
+
+install-always: install-binary
+
+install-postconf: install-listener
+
+install-listener:
+ @echo "No rule for $@ on this platform (yet), you'll have to do that yourself if it matters."
+
diff --git a/rtr-origin/rules.freebsd.mk b/rtr-origin/rules.freebsd.mk
new file mode 100644
index 00000000..4cb21f3b
--- /dev/null
+++ b/rtr-origin/rules.freebsd.mk
@@ -0,0 +1,37 @@
+# $Id$
+
+install-always: install-binary
+
+install-postconf: install-listener
+
+install-listener: .FORCE
+ @if /usr/bin/egrep -q '^rpki-rtr' /etc/services ; \
+ then \
+ echo "You already have a /etc/services entry for rpki-rtr, so I will use it."; \
+ elif echo >>/etc/services "rpki-rtr ${RPKI_RTR_PORT}/tcp #RFC 6810" ; \
+ then \
+ echo "Added rpki-rtr to /etc/services."; \
+ else \
+ echo "Adding rpki-rtr to /etc/services failed, please fix this, then try again."; \
+ exit 1; \
+ fi
+ @if /usr/bin/egrep -q "rpki-rtr[ ]+stream[ ]+tcp[ ]" /etc/inetd.conf; \
+ then \
+ echo "You already have an inetd.conf entry for rpki-rtr on TCPv4, so I will use it."; \
+ elif echo >>/etc/inetd.conf "rpki-rtr stream tcp nowait nobody /usr/local/bin/rtr-origin rtr-origin --server /var/rcynic/rpki-rtr"; \
+ then \
+ echo "Added rpki-rtr for TCPv4 to /etc/inetd.conf."; \
+ else \
+ echo "Adding rpki-rtr for TCPv4 to /etc/inetd.conf failed, please fix this, then try again."; \
+ exit 1; \
+ fi
+ @if /usr/bin/egrep -q "rpki-rtr[ ]+stream[ ]+tcp6[ ]" /etc/inetd.conf; \
+ then \
+ echo "You already have an inetd.conf entry for rpki-rtr on TCPv6, so I will use it."; \
+ elif echo >>/etc/inetd.conf "rpki-rtr stream tcp6 nowait nobody /usr/local/bin/rtr-origin rtr-origin --server /var/rcynic/rpki-rtr"; \
+ then \
+ echo "Added rpki-rtr for TCPv6 to /etc/inetd.conf."; \
+ else \
+ echo "Adding rpki-rtr for TCPv6 to /etc/inetd.conf failed, please fix this, then try again."; \
+ exit 1; \
+ fi
diff --git a/rtr-origin/rules.linux.mk b/rtr-origin/rules.linux.mk
new file mode 100644
index 00000000..2faa0e41
--- /dev/null
+++ b/rtr-origin/rules.linux.mk
@@ -0,0 +1,29 @@
+# $Id$
+
+install-always: install-binary install-listener
+
+install-postconf:
+ @true
+
+# Only need to make listener if not already present
+
+install-listener: ${DESTDIR}/etc/xinetd.d/rpki-rtr
+
+${DESTDIR}/etc/xinetd.d/rpki-rtr:
+ @${AWK} 'BEGIN { \
+ print "service rpki-rtr"; \
+ print "{"; \
+ print " type = UNLISTED"; \
+ print " flags = IPv4"; \
+ print " socket_type = stream"; \
+ print " protocol = tcp"; \
+ print " port = ${RPKI_RTR_PORT}"; \
+ print " wait = no"; \
+ print " user = nobody"; \
+ print " server = /usr/bin/rtr-origin"; \
+ print " server_args = --server /var/rcynic/rpki-rtr"; \
+ print "}"; \
+ }' >xinetd.rpki-rtr
+ ${INSTALL} -d ${DESTDIR}/etc/xinetd.d
+ ${INSTALL} -m 644 xinetd.rpki-rtr $@
+ rm xinetd.rpki-rtr
diff --git a/rtr-origin/rules.unknown.mk b/rtr-origin/rules.unknown.mk
new file mode 100644
index 00000000..fb16e93a
--- /dev/null
+++ b/rtr-origin/rules.unknown.mk
@@ -0,0 +1,8 @@
+# $Id$
+
+install-always: install-binary
+
+install-postconf: install-listener
+
+install-listener:
+ @echo "Don't know how to make $@ on this platform"; exit 1