aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Elkins <melkins@tislabs.com>2013-03-07 18:33:41 +0000
committerMichael Elkins <melkins@tislabs.com>2013-03-07 18:33:41 +0000
commit353e21c13948820776376e724ade98b408603727 (patch)
tree296ab2600d2e646659d5ef9f53bcfd18e71e905f
parentb1f54c89953012d98206a566a780f536b5ed6232 (diff)
move installation of most portal-gui scripts to setup.py (see #373)
add script to be invoked by cron to download routeviews data add install-linux target for creating cron jobs for some rpki gui tasks svn path=/trunk/; revision=5119
-rw-r--r--rpkid/Makefile.in15
-rw-r--r--rpkid/portal-gui/Makefile.in16
-rwxr-xr-xrpkid/portal-gui/routeviews.sh12
-rw-r--r--rpkid/setup.py10
4 files changed, 44 insertions, 9 deletions
diff --git a/rpkid/Makefile.in b/rpkid/Makefile.in
index 5980d6bd..fefb08fb 100644
--- a/rpkid/Makefile.in
+++ b/rpkid/Makefile.in
@@ -47,9 +47,13 @@ SETUP_PY = \
AC_LIBS='${LIBS}' \
AC_SBINDIR='${sbindir}' \
AC_SCRIPTS='${SCRIPTS}' \
+ AC_DATA_FILES='${DATA_FILES}' \
+ AC_CONF_FILES='${CONF_FILES}' \
AC_ABS_BUILDDIR='${abs_builddir}' \
AC_LIBEXECDIR='${libexecdir}' \
AC_AUX_SCRIPTS='${AUX_SCRIPTS}' \
+ AC_DATAROOTDIR='${datarootdir}/rpki' \
+ AC_SYSCONFDIR='${sysconfdir}/rpki' \
${PYTHON} setup.py
SETUP_PY_ROOT = `${PYTHON} -c 'import sys; print "--root " + sys.argv[1] if sys.argv[1] else ""' '${DESTDIR}'`
@@ -65,13 +69,16 @@ SCRIPTS = rpki-sql-backup rpki-sql-setup rpki-start-servers irbe_cli irdbd \
# scripts we build, but don't install
BUILD_SCRIPTS = portal-gui/scripts/rpkigui-reset-demo \
- portal-gui/scripts/rpkigui-flatten-roas
+ portal-gui/scripts/rpkigui-flatten-roas \
+ portal-gui/rpki.wsgi
-AUX_SCRIPTS =
+# these files get put in ${datarootdir}/rpki
+DATA_FILES = portal-gui/routeviews.sh
-SETTINGS = portal-gui/settings.py portal-gui/rpki.wsgi
+# these files get put in ${sysconfdir}/rpki
+CONF_FILES = portal-gui/settings.py portal-gui/apache.conf
-all:: ${POW_SO} rpki/relaxng.py myrpki.rng rpki/sql_schemas.py ${SCRIPTS} ${AUX_SCRIPTS} ${SETTINGS} ${BUILD_SCRIPTS}
+all:: ${POW_SO} rpki/relaxng.py myrpki.rng rpki/sql_schemas.py ${SCRIPTS} ${AUX_SCRIPTS} ${CONF_FILES} ${BUILD_SCRIPTS}
${POW_SO}: ext/POW.c setup.py
${SETUP_PY} build_ext --inplace
diff --git a/rpkid/portal-gui/Makefile.in b/rpkid/portal-gui/Makefile.in
index 7eb2e572..bb5283f2 100644
--- a/rpkid/portal-gui/Makefile.in
+++ b/rpkid/portal-gui/Makefile.in
@@ -43,25 +43,31 @@ edit = sed \
apache.conf: $(srcdir)/apache.conf.in Makefile
$(edit) $@.in > $@
-install: $(BUILD)
- if test -d $(SYSCONFDIR); then :; else ${INSTALL} -d $(SYSCONFDIR); fi
+install: all install-always
+
+install-always:
if test -d $(INSTDIR)/wsgi; then :; else ${INSTALL} -d $(INSTDIR)/wsgi; fi
if test -d $(INSTDIR)/media; then :; else ${INSTALL} -d $(INSTDIR)/media; fi
if test -d $(INSTDIR)/media/css; then :; else ${INSTALL} -d $(INSTDIR)/media/css; fi
if test -d $(INSTDIR)/media/img; then :; else ${INSTALL} -d $(INSTDIR)/media/img; fi
if test -d $(INSTDIR)/media/js; then :; else ${INSTALL} -d $(INSTDIR)/media/js; fi
- ${INSTALL} -m 644 apache.conf $(SYSCONFDIR)/apache.conf
${INSTALL} -m 644 rpki.wsgi $(INSTDIR)/wsgi/rpki.wsgi
- ${INSTALL} -m 644 settings.py ${SYSCONFDIR}
# this would be better handled with "django-admin collectstatic" but makes the install
# process harder for the end user.
${INSTALL} -m 644 $(srcdir)/../rpki/gui/app/static/css/* $(INSTDIR)/media/css
${INSTALL} -m 644 $(srcdir)/../rpki/gui/app/static/js/* $(INSTDIR)/media/js
${INSTALL} -m 644 $(srcdir)/../rpki/gui/app/static/img/* $(INSTDIR)/media/img
+install-linux:
+ t=$$(hexdump -n 1 -e '"%u"' /dev/urandom) && echo "$$(($$t % 60)) 0/2 * * * nobody ${datarootdir}/rpki/routeviews.sh" > ${DESTDIR}/etc/cron.d/rpkigui-routeviews
+ chmod 644 ${DESTDIR}/etc/cron.d/rpkigui-routeviews
+ ln -sf ${DESTDIR}${sbindir}/rpkigui-check-expired /etc/cron.daily/rpkigui-check-expired
+
deinstall uninstall:
rm -rf $(INSTDIR)/media $(INSTDIR)/wsgi
- rm -rf $(SYSCONFDIR)/apache.conf $(SYSCONFDIR)/settings.py $(SYSCONFDIR)/settings.pyc
+
+deinstall-linux:
+ rm -f /etc/cron.d/rpkigui-routeviews /etc/cron.daily/rpkigui-check-expired
test:
@true
diff --git a/rpkid/portal-gui/routeviews.sh b/rpkid/portal-gui/routeviews.sh
new file mode 100755
index 00000000..ad8f40ba
--- /dev/null
+++ b/rpkid/portal-gui/routeviews.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+i=oix-full-snapshot-latest.dat.bz2
+o=/tmp/$i
+
+#curl -s -S -o $o http://archive.routeviews.org/oix-route-views/$i
+# wget is stock in Ubuntu so use that instead of curl
+wget -q -O $o http://archive.routeviews.org/oix-route-views/$i
+
+if [ $? -eq 0 ]; then
+ rpkigui-import-routes -l error $o
+fi
diff --git a/rpkid/setup.py b/rpkid/setup.py
index db7e0135..eded0251 100644
--- a/rpkid/setup.py
+++ b/rpkid/setup.py
@@ -25,10 +25,14 @@ ac_ldflags = os.getenv("AC_LDFLAGS", "").split()
ac_libs = os.getenv("AC_LIBS", "").split()
ac_scripts = os.getenv("AC_SCRIPTS", "").split()
ac_aux_scripts = os.getenv("AC_AUX_SCRIPTS", "").split()
+ac_data_files = os.getenv("AC_DATA_FILES", "").split()
+ac_conf_files = os.getenv("AC_CONF_FILES", "").split()
ac_sbindir = os.getenv("AC_SBINDIR", "").strip()
ac_abs_builddir = os.getenv("AC_ABS_BUILDDIR", "").strip()
ac_libexecdir = os.getenv("AC_LIBEXECDIR", "").strip()
+ac_datarootdir = os.getenv("AC_DATAROOTDIR", "").strip()
+ac_sysconfdir = os.getenv("AC_SYSCONFDIR", "").strip()
# Non-standard extension build specification: we need to force
# whatever build options our top-level ./configure selected, and we
@@ -57,6 +61,12 @@ if ac_sbindir and ac_scripts:
if ac_libexecdir and ac_aux_scripts:
data_files.append((ac_libexecdir,
["%s/%s" % (ac_abs_builddir, f) for f in ac_aux_scripts]))
+if ac_datarootdir and ac_data_files:
+ data_files.append((ac_datarootdir,
+ ["%s/%s" % (ac_abs_builddir, f) for f in ac_data_files]))
+if ac_sysconfdir and ac_conf_files:
+ data_files.append((ac_sysconfdir,
+ ["%s/%s" % (ac_abs_builddir, f) for f in ac_conf_files]))
if not data_files:
data_files = None