aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--buildtools/debian-skeleton/rpki-ca.postinst2
-rwxr-xr-xca/rpkigui-apache-conf-gen43
2 files changed, 28 insertions, 17 deletions
diff --git a/buildtools/debian-skeleton/rpki-ca.postinst b/buildtools/debian-skeleton/rpki-ca.postinst
index dd01d3f8..c94e052c 100644
--- a/buildtools/debian-skeleton/rpki-ca.postinst
+++ b/buildtools/debian-skeleton/rpki-ca.postinst
@@ -20,7 +20,7 @@ setup_rpkid_group() {
}
setup_apache() {
- /usr/lib/rpki/rpkigui-apache-conf-gen --debian --install --verbose
+ /usr/lib/rpki/rpkigui-apache-conf-gen --install --verbose
}
setup_rpki_conf() {
diff --git a/ca/rpkigui-apache-conf-gen b/ca/rpkigui-apache-conf-gen
index 36e75e71..a89111ca 100755
--- a/ca/rpkigui-apache-conf-gen
+++ b/ca/rpkigui-apache-conf-gen
@@ -152,8 +152,10 @@ def Guess(args):
return Darwin(args)
if system == "Linux":
distro = platform.linux_distribution()[0].lower()
- if distro in ("debian", "ubuntu"):
+ if distro == "debian":
return Debian(args)
+ if distro == "ubuntu":
+ return Ubuntu(args)
if distro in ("fedora", "centos"):
return Redhat(args)
raise NotImplementedError("Can't guess what platform this is, sorry")
@@ -385,22 +387,17 @@ class Debian(Platform):
Debian and related platforms like Ubuntu.
"""
- # Wheezy chokes if the .conf filename suffix is present. Trusty
- # chokes if the .conf filename suffix is absent. Precise didn't
- # seem to care last I checked. I suspect that this will work out to
- # be specific to particular releases rather than a case of Debian
- # consistently doing it one way and Ubuntu consistently doing it the
- # other, so probably best to handle this at runtime rather than with
- # through the class system.
- #
- # If I'm wrong, well, restructure it when we figure that out.
+ @property
+ def distribution_version(self):
+ return [int(v) for v in platform.linux_distribution()[1].split(".")]
+
+ # As of Wheezy, Debian still wants the configuration filename
+ # without the .conf suffix. Keep an eye on this, as it may change
+ # in future releases.
#
@property
def apache_conf_target(self):
- if platform.linux_distribution()[0].lower() == "debian":
- return "/etc/apache2/sites-available/rpki"
- else:
- return "/etc/apache2/sites-available/rpki.conf"
+ return "/etc/apache2/sites-available/rpki"
snake_oil_cer = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
snake_oil_key = "/etc/ssl/private/ssl-cert-snakeoil.key"
@@ -429,6 +426,17 @@ class Debian(Platform):
def restart(self):
self.run("service", "apache2", "restart")
+class Ubuntu(Debian):
+
+ # On Ubuntu, the filename must end in .conf on Trusty and must not
+ # end in .conf on Precise.
+ @property
+ def apache_conf_target(self):
+ if self.distribution_version >= (14, 0):
+ return "/etc/apache2/sites-available/rpki.conf"
+ else:
+ return "/etc/apache2/sites-available/rpki"
+
class NIY(Platform):
def __init__(self, args):
super(NIY, self).__init__(args)
@@ -463,9 +471,12 @@ def main():
group1.add_argument("--freebsd",
help = "configure for FreeBSD",
action = "store_const", dest = "platform", const = FreeBSD)
- group1.add_argument("--debian", "--ubuntu",
- help = "configure for Debian/Ubuntu",
+ group1.add_argument("--debian",
+ help = "configure for Debian",
action = "store_const", dest = "platform", const = Debian)
+ group1.add_argument("--ubuntu",
+ help = "configure for Ubuntu",
+ action = "store_const", dest = "platform", const = Ubuntu)
group1.add_argument("--redhat", "--fedora", "--centos",
help = "configure for Redhat/Fedora/CentOS",
action = "store_const", dest = "platform", const = Redhat)