[package]
# Note: some of these values are also used when building Debian packages below.
name = "routinator"
version = "0.10.2-dev"
edition = "2018"
authors = ["The NLnet Labs RPKI Team <rpki@nlnetlabs.nl>"]
description = "An RPKI relying party software."
repository = "https://github.com/NLnetLabs/routinator"
keywords = ["rpki", "routing-security", "bgp"]
categories = ["command-line-utilities"]
license = "BSD-3-Clause"
readme = "README.md"
build = "build.rs"

[dependencies]
bytes           = "1.0.0"
chrono          = "0.4.11"
clap            = { version = "2.33.0", features = [ "wrap_help" ] }
crossbeam-queue = "0.3.1"
crossbeam-utils = "0.8.1"
dirs            = "3.0.1"
fern            = "0.6.0"
form_urlencoded = "1.0"
futures         = "0.3.4"
hyper           = { version = "0.14", features = [ "server", "stream" ] }
log             = "0.4.8"
log-reroute     = "0.1.5"
num_cpus        = "1.12.0"
rand            = "0.8.1"
reqwest         = { version = "0.11.0", default-features = false, features = ["blocking", "gzip", "rustls-tls" ] }
ring            = "0.16.12"
rpki            = { version = "0.12.2", features = [ "repository", "rrdp", "rtr", "serde" ] }
serde           = { version = "1.0.95", features = [ "derive" ] }
serde_json      = "1.0.57"
tempfile        = "3.1.0"
tokio           = { version = "1.0", features = [ "io-util", "macros", "process", "rt", "rt-multi-thread", "signal", "sync" ] }
tokio-stream    = "0.1"
toml            = "0.5.6"
uuid            = "0.8.1"
routinator-ui   = { version = "0.3.4", optional = true }


[target.'cfg(unix)'.dependencies]
nix             = "0.22.0"
syslog          = "5.0.0"

[build-dependencies]
rustc_version   = "0.4.0"

[features]
default = [ "socks", "ui"]
extra-debug = ["rpki/extra-debug"]
socks = [ "reqwest/socks" ]
rta = []
native-tls = [ "reqwest/native-tls", "tls" ]
tls = []
ui = [ "routinator-ui" ]

[profile.release]
panic = "abort"

[package.metadata.deb]
name = "routinator"
maintainer = "The NLnet Labs RPKI Team <rpki@nlnetlabs.nl>"
license-file = ["LICENSE", "0"]
extended-description = """\
The Resource Public Key Infrastructure provides cryptographically signed \
statements about the association of Internet routing resources. \
In particular, it allows the holder of an IP address prefix to publish which \
AS number will be the origin of BGP route announcements for it. \
Routinator is a RPKI relying party software written in Rust. """
# ensure that the useradd and rsync tools are present by installing their respective packages
depends = "$auto, passwd, rsync"
section = "net"
priority = "optional"
assets = [
    ["target/release/routinator", "usr/bin/", "755"],
    ["README.md", "usr/share/doc/routinator/", "644"],
    ["doc/misc.md", "usr/share/doc/routinator/misc.md", "644"],
    ["doc/routinator.1", "usr/share/man/man1/routinator.1", "644"],
    ["etc/routinator.conf.system-service", "etc/routinator/routinator.conf", "644"],
    ["pkg/common/service.preset", "/lib/systemd/system-preset/50-routinator.preset", "644"],
    ["pkg/common/routinator-init", "usr/bin/", "755"]
]
maintainer-scripts = "pkg/debian"
changelog = "target/debian/changelog" # this will be generated by the pkg workflow
copyright = "Copyright (c) 2020, NLnet Labs. All rights reserved."
conf-files = ["/etc/routinator/routinator.conf"]
systemd-units = { unit-name = "routinator", unit-scripts = "pkg/common", enable = false }

[package.metadata.deb.variants.minimal]

[package.metadata.generate-rpm]
# "BSD" alone is the 3-clause license. Inheriting "license" from above causes rpmlint to
# complain with "invalid-license".
# See: https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing
license = "BSD"
assets = [
    { source = "target/release/routinator", dest = "/usr/bin/routinator", mode = "755" },
    { source = "target/rpm/routinator.service", dest = "/lib/systemd/system/routinator.service", mode = "644" },
    { source = "doc/routinator.1", dest = "/usr/share/man/man1/routinator.1", mode = "644", doc = true },
    { source = "etc/routinator.conf.system-service", dest = "/etc/routinator/routinator.conf", mode = "644", config = true },
    { source = "pkg/common/routinator-init", dest = "/usr/bin/routinator-init", mode = "755" },
    { source = "pkg/common/service.preset", dest = "/lib/systemd/system-preset/50-routinator.preset", mode = "644" },
    { source = "pkg/rpm/postinst", dest = "/usr/share/routinator/rpm/postinst", mode = "755" },
    { source = "pkg/rpm/preuninst", dest = "/usr/share/routinator/rpm/preuninst", mode = "755" },
    { source = "pkg/rpm/postuninst", dest = "/usr/share/routinator/rpm/postuninst", mode = "755" },
]
post_install_script = "/usr/share/routinator/rpm/postinst $*"
pre_uninstall_script = "/usr/share/routinator/rpm/preuninst $*"
post_uninstall_script = "/usr/share/routinator/rpm/postuninst $*"

# ensure that the useradd and rsync tools are present by installing their respective packages
[package.metadata.generate-rpm.requires]
shadow-utils = "*"
rsync = "*"