aboutsummaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'setup.py')
-rw-r--r--setup.py191
1 files changed, 105 insertions, 86 deletions
diff --git a/setup.py b/setup.py
index 181e5a94..c655dbc8 100644
--- a/setup.py
+++ b/setup.py
@@ -1,12 +1,12 @@
# $Id$
-#
+#
# Copyright (C) 2014 Dragon Research Labs ("DRL")
# Portions copyright (C) 2011--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
# copyright notices and this permission notice appear in all copies.
-#
+#
# THE SOFTWARE IS PROVIDED "AS IS" AND DRL AND ISC DISCLAIM ALL
# WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DRL OR
@@ -21,109 +21,128 @@ from glob import glob
import setup_extensions
try:
- import setup_autoconf as autoconf
+ import setup_autoconf as autoconf
except ImportError:
- class autoconf:
- "Fake autoconf object to let --help work without autoconf."
- sbindir = libexecdir = datarootdir = sysconfdir = ""
- CFLAGS = LDFLAGS = LIBS = CA_TARGET = RP_TARGET = ""
+ class autoconf:
+ "Fake autoconf object to let --help work without autoconf."
+ sbindir = libexecdir = datarootdir = sysconfdir = ""
+ CFLAGS = LDFLAGS = LIBS = CA_TARGET = RP_TARGET = ""
try:
- from rpki.version import VERSION
+ from rpki.version import VERSION
except ImportError:
- VERSION = "0.0"
+ VERSION = "0.0"
# pylint: disable=W0622
-setup_args = dict(
- name = "rpki",
- version = VERSION,
- description = "RPKI Toolkit",
- license = "BSD",
- url = "http://rpki.net/",
- cmdclass = {"build_scripts" : setup_extensions.build_scripts,
- "install_scripts" : setup_extensions.install_scripts})
-
-scripts = []
+scripts = []
+data_files = []
+packages = []
+package_data = {}
+ext_modules = []
# I keep forgetting to update the packages list here. Could we
# automate this by looking for __init__.py files in the rpki/ tree?
-# Might have to filter out some rpki.gui.app subdirs.
+# Might have to filter out some rpki.gui.app subdirs, or, rather,
+# list those as package_data instead.
if autoconf.RP_TARGET == "rp":
- setup_args.update(
- packages = ["rpki",
- "rpki.POW",
- "rpki.rtr",
- "rpki.irdb",
- "rpki.gui",
- "rpki.gui.app",
- "rpki.gui.cacheview",
- "rpki.gui.api",
- "rpki.gui.routeview"],
- ext_modules = [Extension("rpki.POW._POW", ["ext/POW.c"],
- extra_compile_args = autoconf.CFLAGS.split(),
- extra_link_args = (autoconf.LDFLAGS + " " +
- autoconf.LIBS).split())],
- package_data = {"rpki.gui.app" :
- ["migrations/*.py",
- "static/*/*",
- "templates/*.html",
- "templates/*/*.html",
- "templatetags/*.py"],
- "rpki.gui.cacheview" :
- ["templates/*/*.html"]})
-
- scripts += [(autoconf.bindir,
- ["rp/rcynic/rcynic-cron",
- "rp/rcynic/rcynic-html",
- "rp/rcynic/rcynic-svn",
- "rp/rcynic/rcynic-text",
- "rp/rcynic/validation_status",
- "rp/rpki-rtr/rpki-rtr",
- "rp/utils/find_roa",
- "rp/utils/hashdir",
- "rp/utils/print_roa",
- "rp/utils/print_rpki_manifest",
- "rp/utils/scan_roas",
- "rp/utils/scan_routercerts",
- "rp/utils/uri"])]
+
+ packages += ["rpki",
+ "rpki.POW",
+ "rpki.django_settings",
+ "rpki.rtr",
+ "rpki.irdb",
+ "rpki.pubdb",
+ "rpki.rpkidb",
+ "rpki.rcynicdb",
+ "rpki.gui",
+ "rpki.gui.app",
+ "rpki.gui.gui_rpki_cache",
+ "rpki.gui.api",
+ "rpki.gui.routeview"]
+
+ ext_modules += [Extension("rpki.POW._POW", ["ext/POW.c"],
+ include_dirs = [cflag[2:] for cflag in autoconf.CFLAGS.split() if cflag.startswith("-I")],
+ extra_compile_args = [cflag for cflag in autoconf.CFLAGS.split() if not cflag.startswith("-I")],
+ extra_link_args = autoconf.LDFLAGS.split() + autoconf.LIBS.split())]
+
+ for package in ("rpki.irdb", "rpki.pubdb", "rpki.rpkidb", "rpki.rcynicdb"):
+ package_data[package] = ["migrations/*.py"]
+
+ data_files += [(autoconf.sysconfdir + "/rpki",
+ ["rp/config/rpki-confgen.xml"])]
+
+ scripts += [(autoconf.bindir,
+ ["rp/rcynic/rcynic-cron",
+ "rp/rcynic/rcynic-html",
+ "rp/rcynic/rcynic-svn",
+ "rp/rcynic/rcynic-text",
+ "rp/rcynic/validation_status",
+ "rp/rpki-rtr/rpki-rtr",
+ "rp/utils/find_roa",
+ "rp/utils/hashdir",
+ "rp/utils/print_roa",
+ "rp/utils/print_rpki_manifest",
+ "rp/utils/scan_roas",
+ "rp/utils/scan_routercerts",
+ "rp/utils/uri"]),
+ (autoconf.sbindir,
+ ["rp/config/rpki-confgen",
+ "rp/config/rpki-sql-backup",
+ "rp/config/rpki-sql-setup",
+ "rp/config/rpki-manage",
+ "rp/config/rpki-generate-root-certificate"])]
if autoconf.CA_TARGET == "ca":
- setup_args.update(
- data_files = [(autoconf.sysconfdir + "/rpki",
- ["ca/rpki-confgen.xml"]),
- (autoconf.datarootdir + "/rpki/wsgi",
+
+ package_data["rpki.gui.app"] = ["migrations/*.py",
+ "static/*/*",
+ "templates/*.html",
+ "templates/*/*.html",
+ "templatetags/*.py"]
+
+ package_data["rpki.gui.gui_rpki_cache"] = ["migrations/*.py"]
+
+
+ data_files += [(autoconf.datarootdir + "/rpki/wsgi",
["ca/rpki.wsgi"]),
(autoconf.datarootdir + "/rpki/media/css",
glob("rpki/gui/app/static/css/*")),
(autoconf.datarootdir + "/rpki/media/js",
glob("rpki/gui/app/static/js/*")),
(autoconf.datarootdir + "/rpki/media/img",
- glob("rpki/gui/app/static/img/*")),
- (autoconf.datarootdir + "/rpki/upgrade-scripts",
- glob("ca/upgrade-scripts/*"))])
-
- scripts += [(autoconf.sbindir,
- ["ca/rpkic",
- "ca/rpki-confgen",
- "ca/rpki-start-servers",
- "ca/rpki-sql-backup",
- "ca/rpki-sql-setup",
- "ca/rpki-manage",
- "ca/rpkigui-query-routes",
- "ca/irbe_cli"]),
- (autoconf.libexecdir,
- ["ca/irdbd",
- "ca/pubd",
- "ca/rootd",
- "ca/rpkid",
- "ca/rpkigui-import-routes",
- "ca/rpkigui-check-expired",
- "ca/rpkigui-rcynic",
- "ca/rpkigui-apache-conf-gen"])]
-
-setup_args.update(scripts = scripts)
+ glob("rpki/gui/app/static/img/*"))]
+
+ scripts += [(autoconf.sbindir,
+ ["ca/rpkic",
+ "ca/rpkigui-query-routes",
+ "ca/irbe_cli"]),
+ (autoconf.libexecdir,
+ ["ca/irdbd",
+ "ca/pubd",
+ "ca/rootd",
+ "ca/rpkid",
+ "ca/rpki-nanny",
+ "ca/rpkigui-import-routes",
+ "ca/rpkigui-check-expired",
+ "ca/rpkigui-rcynic",
+ "ca/rpkigui-apache-conf-gen"])]
+
+setup_args = dict(
+ name = "rpki",
+ version = VERSION,
+ description = "RPKI Toolkit",
+ license = "BSD",
+ url = "http://rpki.net/",
+ cmdclass = {"build_scripts" : setup_extensions.build_scripts,
+ "install_scripts" : setup_extensions.install_scripts})
+
+for name in ("scripts", "data_files", "packages", "package_data", "ext_modules"):
+ val = globals().get(name)
+ if val:
+ setup_args[name] = val
+
setup(**setup_args)