diff options
Diffstat (limited to 'setup.py')
-rw-r--r-- | setup.py | 191 |
1 files changed, 105 insertions, 86 deletions
@@ -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) |