Files
NLnetLabs-krill/Cargo.toml
T

184 lines
7.7 KiB
TOML

[package]
# Note: some of these values are also used when building Debian packages below.
name = "krill"
version = "0.9.1"
edition = "2018"
authors = [ "The NLnet Labs RPKI team <rpki-team@nlnetlabs.nl>" ]
description = "Resource Public Key Infrastructure (RPKI) daemon"
homepage = "https://www.nlnetlabs.nl/projects/rpki/krill/"
repository = "https://github.com/NLnetLabs/krill"
keywords = ["rpki", "routing-security", "bgp"]
readme = "README.md"
license = "MPL-2.0"
exclude = [
"test-resources/*",
"tests/*",
".github/*",
"docker/*",
"pkg/*",
"Dockerfile",
]
build = "build.rs"
[dependencies]
base64 = "^0.13"
basic-cookies = { version = "^0.1", optional = true }
bcder = "^0.6"
bytes = "1.0"
chrono = { version = "^0.4", features = ["serde"] }
clap = "^2.33"
clokwerk = "^0.3"
fern = { version = "^0.5", features = ["syslog-4"] }
futures = "^0.3"
futures-util = "^0.3"
hex = "^0.4"
hyper = { version = "^0.14", features = ["server"] }
intervaltree = "0.2.6"
jmespatch = { version = "^0.3", features = ["sync"], optional = true }
libflate = "^1.0"
log = "^0.4"
openidconnect = { version = "^2.0.0", optional = true, default_features = false }
openssl = { version = "^0.10", features = ["v110"] }
oso = { version = "^0.12", optional = true, default_features = false }
regex = { version = "^1.4", optional = true, default_features = false, features = ["std"] }
reqwest = { version = "0.11", features = ["json"] }
reqwestblocking = { version = "0.9.24", optional = true, package = "reqwest" }
rpassword = { version = "^5.0", optional = true }
# rpki = "^0.10.1"
rpki = { version = "0.11.1-dev", features = [ "repository", "rrdp", "serde" ], git = "https://github.com/NLnetLabs/rpki-rs.git" }
scrypt = { version = "^0.6", optional = true, default-features = false }
serde = { version = "^1.0", features = ["derive"] }
serde_json = "^1.0"
tokio = { version = "1", features = ["rt", "rt-multi-thread", "macros", "time"] }
tokio-rustls = "^0.22"
toml = "^0.5"
unicode-normalization = { version = "^0.1", optional = true }
urlparse = { version = "^0.7", optional = true }
uuid = { version = "^0.8", features = [ "v4"] }
xml-rs = "^0.8"
[target.'cfg(unix)'.dependencies]
libc = "^0.2"
syslog = "^4.0"
[build-dependencies]
rustc_version = "0.2.3"
[features]
default = [ "multi-user" ]
rta = []
multi-user = [ "basic-cookies", "jmespatch/sync", "regex", "oso", "openidconnect", "reqwestblocking", "rpassword", "scrypt", "unicode-normalization", "urlparse" ]
functional-tests = []
ui-tests = []
extra-debug = [ "rpki/extra-debug" ]
static-openssl = [ "openssl/vendored" ]
# Make sure that Krill crashes on panics, rather than losing threads and
# limping on in a bad state.
[profile.release]
panic = "abort"
[dev-dependencies]
# for user management
tiny_http = { version = "^0.8", features = ["ssl"] }
ctrlc = "^3.1"
# ------------------------------------------------------------------------------
# START DEBIAN PACKAGING
#
# Configurations for the cargo-deb cargo plugin which builds Debian packages in
# target/debian/ when invoked with: cargo deb. Tested with cargo-deb v1.23.1.
# Use `--variant` to select which section below to use. Variant sections inherit
# and override the settings in the base [package.metadata.deb] section. The
# configs vary because of differing degrees of OpenSSL and systemd support
# across operating systems.
#
# Note that as the postinst script uses the adduser command we declare a
# dependency on the adduser package to keep the lintian tool happy.
# Note: krill.conf is deliberately NOT specified as a "conf-file" because it is
# generated.
#
# The GitHub Actions pkg.yml workflow definition file uses these configurations
# to build and test Ubuntu/Debian packages for Krill.
#
# See:
# - https://github.com/mmstick/cargo-deb
# - https://lintian.debian.org/tags/systemd-service-file-outside-lib.html
# - https://www.debian.org/doc/debian-policy/ch-files.html#behavior
# - .github/workflows/pkg.yml
[package.metadata.deb]
name = "krill"
priority = "optional"
section = "net"
extended-description-file = "pkg/debian/description.txt"
license-file = ["LICENSE", "0"]
depends = "$auto, passwd, libssl1.1"
maintainer-scripts = "pkg/debian/"
changelog = "target/debian/changelog" # this will be generated by the pkg workflow
copyright = "Copyright (c) 2019, NLnet Labs. All rights reserved."
assets = [
["target/release/krill", "/usr/bin/krill", "755"],
["target/release/krillc", "/usr/bin/krillc", "755"],
["defaults/krill.conf", "/usr/share/doc/krill/krill.conf", "644"],
["doc/krill.1", "/usr/share/man/man1/krill.1", "644"],
["doc/krillc.1", "/usr/share/man/man1/krillc.1", "644"],
["pkg/common/krill.service.preset", "/lib/systemd/system-preset/50-krill.preset", "644"],
]
systemd-units = { unit-name = "krill", unit-scripts = "pkg/common", enable = false }
# Variant of the Debian packaging configuration that:
# a) statically links with OpenSSL when building a Debian package because the
# newest OpenSSL available on Ubuntu 16.04 at the time of writing is 1.0.2g
# (see: https://packages.ubuntu.com/xenial/openssl) while Krill requires
# OpenSSL >= 1.1.0.
# b) uses a simpler systemd service unit file because Ubuntu 16.04 doesn't
# support newer features supported by Ubuntu 18.04 and 20.04.
[package.metadata.deb.variants.ubuntu-xenial]
features = [ "static-openssl" ]
depends = "$auto, passwd"
[package.metadata.deb.variants.ubuntu-bionic]
[package.metadata.deb.variants.ubuntu-focal]
[package.metadata.deb.variants.debian-stretch]
features = [ "static-openssl" ]
depends = "$auto, passwd"
[package.metadata.deb.variants.debian-buster]
[package.metadata.deb.variants.debian-bullseye]
# END DEBIAN PACKAGING
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------
# START RPM PACKAGING
#
# Configurations for the cargo-generate-rpm cargo plugin which builds RPM
# packages in target/generate-rpm/ when invoked with: cargo generate-rpm
#
[package.metadata.generate-rpm]
# See: https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing
license = "MPLv2.0"
assets = [
{ source = "target/release/krill", dest = "/usr/bin/krill", mode = "755" },
{ source = "target/release/krillc", dest = "/usr/bin/krillc", mode = "755" },
{ source = "target/rpm/krill.service", dest = "/lib/systemd/system/krill.service", mode = "644" },
{ source = "defaults/krill.conf", dest = "/usr/share/doc/krill/krill.conf", mode = "644", doc = true },
{ source = "doc/krill.1", dest = "/usr/share/man/man1/krill.1", mode = "644", doc = true },
{ source = "doc/krillc.1", dest = "/usr/share/man/man1/krillc.1", mode = "644", doc = true },
{ source = "pkg/common/krill.service.preset", dest = "/lib/systemd/system-preset/50-krill.preset", mode = "644" },
{ source = "pkg/rpm/postinst", dest = "/usr/share/krill/rpm/postinst", mode = "755" },
{ source = "pkg/rpm/postrm", dest = "/usr/share/krill/rpm/postrm", mode = "755" },
]
post_install_script = "/usr/share/krill/rpm/postinst $*"
post_uninstall_script = "/usr/share/krill/rpm/postrm $*"
# ensure that the useradd tool is present by depending on its package
[package.metadata.generate-rpm.requires]
shadow-utils = "*"
# END RPM PACKAGING
# ------------------------------------------------------------------------------