1
0
mirror of https://github.com/NLnetLabs/routinator.git synced 2024-05-19 06:50:04 +00:00
Martin Hoffmann a5ea731a6e Rewrite logging. (#859)
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>
2023-05-30 12:05:16 +02:00

120 lines
4.5 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[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 lets 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 = "*"