Permalink
Fetching contributors…
Cannot retrieve contributors at this time
151 lines (127 sloc) 5.56 KB
# $Id$
#
# Copyright (C) 2015--2016 Parsons Government Services ("PARSONS")
# Portions 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 PARSONS, DRL, AND ISC DISCLAIM
# ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
# PARSONS, DRL, OR ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
# OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
from distutils.core import setup, Extension
from glob import glob
import setup_extensions
try:
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 = ""
try:
from rpki.version import VERSION
except ImportError:
VERSION = "0.0"
# pylint: disable=W0622
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, or, rather,
# list those as package_data instead.
if autoconf.RP_TARGET == "rp":
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":
package_data["rpki.gui.app"] = ["migrations/*.py",
"static/*/*",
"templates/*.html",
"templates/*/*.html",
"templatetags/*.py"]
package_data["rpki.gui.gui_rpki_cache"] = ["migrations/*.py"]
package_data["rpki.gui.routeview"] = ["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/*"))]
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)