mirror of
https://github.com/NLnetLabs/routinator.git
synced 2024-05-19 06:50:04 +00:00
This PR implements all log handling with the exception of actual syslog in Routinator itself. It also implements support for log rotation when logging into files by re-opening the log file when receiving SIGUSR2. Error handling for logging is now such that if trying to log to file or syslog fails, Routinator will exit. It will also exit if it receives SIGUSR2 and can’t open the log file. The motivation for this is that the log is used by many people to determine issues with the RPKI repositories, so silently not having logs seems bad. Also, not being able to log is a good indication for bigger problems to come. --------- Co-authored-by: Luuk Hendriks <mail@luukhendriks.eu>
120 lines
4.5 KiB
TOML
120 lines
4.5 KiB
TOML
[package]
|
||
# Note: some of these values are also used when building Debian packages below.
|
||
name = "routinator"
|
||
version = "0.13.0-dev"
|
||
edition = "2021"
|
||
rust-version = "1.63"
|
||
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"
|
||
exclude = [ ".github" ]
|
||
|
||
[dependencies]
|
||
arbitrary = { version = "1", optional = true, features = ["derive"] }
|
||
base64 = "0.13.0"
|
||
bytes = "1.0.0"
|
||
chrono = "0.4.23"
|
||
clap = { version = "4", features = [ "wrap_help", "cargo", "derive" ] }
|
||
crossbeam-queue = "0.3.1"
|
||
crossbeam-utils = "0.8.1"
|
||
dirs = "4.0.0"
|
||
form_urlencoded = "1.0"
|
||
futures = "0.3.4"
|
||
hyper = { version = "0.14", features = [ "server", "stream" ] }
|
||
listenfd = "1"
|
||
log = "0.4.8"
|
||
num_cpus = "1.12.0"
|
||
once_cell = "1"
|
||
pin-project-lite = "0.2.4"
|
||
rand = "0.8.1"
|
||
reqwest = { version = "0.11.0", default-features = false, features = ["blocking", "rustls-tls" ] }
|
||
ring = "0.16.12"
|
||
routecore = "0.3.1"
|
||
rpki = { version = "0.16.1", features = [ "repository", "rrdp", "rtr", "serde", "slurm" ] }
|
||
rustls-pemfile = "1"
|
||
serde = { version = "1.0.95", features = [ "derive" ] }
|
||
serde_json = "1.0.57"
|
||
tempfile = "3.1.0"
|
||
tokio = { version = "1.24", features = [ "io-util", "macros", "process", "rt", "rt-multi-thread", "signal", "sync" ] }
|
||
tokio-rustls = "0.23.2"
|
||
tokio-stream = { version = "0.1", features = ["net"] }
|
||
toml = "0.5.6"
|
||
uuid = "1.1"
|
||
routinator-ui = { version = "0.3.4", optional = true }
|
||
|
||
|
||
[target.'cfg(unix)'.dependencies]
|
||
nix = "0.25"
|
||
syslog = "6"
|
||
|
||
[features]
|
||
default = [ "socks", "ui"]
|
||
arbitrary = [ "dep:arbitrary", "chrono/arbitrary", "rpki/arbitrary" ]
|
||
socks = [ "reqwest/socks" ]
|
||
rta = []
|
||
native-tls = [ "reqwest/native-tls", "tls" ]
|
||
tls = []
|
||
ui = [ "routinator-ui" ]
|
||
|
||
[profile.release]
|
||
panic = "abort"
|
||
|
||
[package.metadata.docs.rs]
|
||
# Building the UI breaks docs.rs, so let’s not.
|
||
no-default-features = true
|
||
features = [ "socks" ]
|
||
|
||
[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/routinator.1", "usr/share/man/man1/routinator.1", "644"],
|
||
["etc/routinator.conf.system-service", "etc/routinator/routinator.conf", "644"]
|
||
]
|
||
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 = true }
|
||
|
||
[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 }
|
||
]
|
||
# These get set using cargo-generate-rpm --set-metadata at package build time.
|
||
#post_install_script = ...
|
||
#pre_uninstall_script = ...
|
||
#post_uninstall_script = ...
|
||
|
||
# ensure that the useradd and rsync tools are present by installing their respective packages
|
||
[package.metadata.generate-rpm.requires]
|
||
shadow-utils = "*"
|
||
rsync = "*"
|
||
|