[package] name = "dnst" version = "0.1.1-dev" edition = "2021" default-run = "dnst" readme = "README.md" repository = "https://github.com/nlnetlabs/dnst/" authors = ["NLnet Labs "] description = "Rust reimplementation of important ldns programs." categories = ["command-line-utilities"] license = "BSD-3-Clause" keywords = ["DNS", "domain", "ldns"] rust-version = "1.88" [[bin]] name = "ldns" path = "src/bin/ldns.rs" [features] default = ["kmip", "openssl", "ring"] # Cryptographic backends kmip = ["domain-kmip", "dep:indenter", "dep:rand"] openssl = ["domain/openssl"] ring = ["domain/ring"] # For building in a cargo cross container that lacks openssl-dev so cannot # successfully compile the Rust OpenSSL crate. static-openssl = ["openssl/vendored"] [dependencies] bytes = "1.8.0" chrono = "0.4.38" clap = { version = "4.3.4", features = ["cargo", "derive", "wrap_help"] } domain = { git = "https://github.com/NLnetLabs/domain.git", branch = "main", features = [ "bytes", "net", "resolv", "tokio-stream", "tsig", "unstable-client-transport", "unstable-sign", "unstable-validator", "unstable-zonetree" ] } domain-kmip = { git = "https://github.com/NLnetLabs/domain-kmip.git", branch = "main", optional = true, features = [ ] } indenter = { version = "0.3.4", optional = true } lexopt = "0.3.0" rayon = "1.10.0" octseq = "0.5.2" rand = { version = "0.9.2", optional = true } ring = "0.17.8" tokio = "1.40.0" openssl = { version = "*", features = ["vendored"], optional = true } # LDNS-xxx mode specific dependencies. # TODO: put these behind a feature gate? jiff = { version = "0.2", default-features = false, features = ["alloc", "std"] } # This is a workaround. lazy_static 1.0.0 fails to compile, but sharded-slab # still uses it. And sharded-slab is used by tracing-subscriber, which is # used by domain, which is used by us. _unused_lazy_static = { package = "lazy_static", version = "1.0.2" } serde_json = "1.0.137" serde = "1.0.217" smallvec = "1.13.2" tracing = "0.1.41" tracing-subscriber = "0.3.19" url = "2.5.4" futures = "0.3.31" fs2 = "0.4.3" same-file = "1.0.6" supports-color = "3.0.2" [dev-dependencies] const_format = " 0.2.33" test_bin = "0.4.0" tempfile = "3.20.0" regex = "1.11.1" domain = { git = "https://github.com/NLnetLabs/domain.git", branch = "main", features = [ "unstable-stelline", ] } pretty_assertions = "1.4.1" # Related reading: https://wiki.debian.org/Teams/RustPackaging/Policy [package.metadata.deb] depends = "$auto" section = "net" priority = "optional" assets = [ ["target/release/dnst", "usr/bin/", "755"], ["README.md", "usr/share/doc/dnst/", "644"], # TODO: Extend Ploutos to generate the man pages from sources. ["doc/manual/build/man/dnst.1", "/usr/share/man/man1/dnst.1", "644"], ["doc/manual/build/man/dnst-key2ds.1", "/usr/share/man/man1/dnst-key2ds.1", "644"], ["doc/manual/build/man/dnst-keygen.1", "/usr/share/man/man1/dnst-keygen.1", "644"], ["doc/manual/build/man/dnst-keyset.1", "/usr/share/man/man1/dnst-keyset.1", "644"], ["doc/manual/build/man/dnst-notify.1", "/usr/share/man/man1/dnst-notify.1", "644"], ["doc/manual/build/man/dnst-nsec3-hash.1", "/usr/share/man/man1/dnst-nsec3-hash.1", "644"], ["doc/manual/build/man/dnst-signzone.1", "/usr/share/man/man1/dnst-signzone.1", "644"], ["doc/manual/build/man/dnst-update.1", "/usr/share/man/man1/dnst-update.1", "644"], ["doc/manual/build/man/ldns-key2ds.1", "/usr/share/man/man1/ldns-key2ds.1", "644"], ["doc/manual/build/man/ldns-keygen.1", "/usr/share/man/man1/ldns-keygen.1", "644"], ["doc/manual/build/man/ldns-notify.1", "/usr/share/man/man1/ldns-notify.1", "644"], ["doc/manual/build/man/ldns-nsec3-hash.1", "/usr/share/man/man1/ldns-nsec3-hash.1", "644"], ["doc/manual/build/man/ldns-signzone.1", "/usr/share/man/man1/ldns-signzone.1", "644"], ["doc/manual/build/man/ldns-update.1", "/usr/share/man/man1/ldns-update.1", "644"], ] changelog = "target/debian/changelog" # this will be generated by the pkg workflow copyright = "Copyright (c) 2024, NLnet Labs. All rights reserved." maintainer-scripts = "pkg/debian" # See: https://www.debian.org/doc/debian-policy/ch-relationships.html#replacing-whole-packages-forcing-their-removal conflicts = "ldnsutils" replaces = "ldnsutils" # Related reading: https://docs.fedoraproject.org/en-US/packaging-guidelines/Rust/ [package.metadata.generate-rpm] assets = [ { source = "target/release/dnst", dest = "/usr/bin/dnst", mode = "755" }, # TODO: Extend Ploutos to generate the man pages from sources. { source = "doc/manual/build/man/dnst.1", dest = "/usr/share/man/man1/dnst.1", mode = "644", doc = true }, { source = "doc/manual/build/man/dnst-key2ds.1", dest = "/usr/share/man/man1/dnst-key2ds.1", mode = "644", doc = true }, { source = "doc/manual/build/man/dnst-keygen.1", dest = "/usr/share/man/man1/dnst-keygen.1", mode = "644", doc = true }, { source = "doc/manual/build/man/dnst-keyset.1", dest = "/usr/share/man/man1/dnst-keyset.1", mode = "644", doc = true }, { source = "doc/manual/build/man/dnst-notify.1", dest = "/usr/share/man/man1/dnst-notify.1", mode = "644", doc = true }, { source = "doc/manual/build/man/dnst-nsec3-hash.1", dest = "/usr/share/man/man1/dnst-nsec3-hash.1", mode = "644", doc = true }, { source = "doc/manual/build/man/dnst-signzone.1", dest = "/usr/share/man/man1/dnst-signzone.1", mode = "644", doc = true }, { source = "doc/manual/build/man/dnst-update.1", dest = "/usr/share/man/man1/dnst-update.1", mode = "644", doc = true }, { source = "doc/manual/build/man/ldns-key2ds.1", dest = "/usr/share/man/man1/ldns-key2ds.1", mode = "644", doc = true }, { source = "doc/manual/build/man/ldns-keygen.1", dest = "/usr/share/man/man1/ldns-keygen.1", mode = "644", doc = true }, { source = "doc/manual/build/man/ldns-notify.1", dest = "/usr/share/man/man1/ldns-notify.1", mode = "644", doc = true }, { source = "doc/manual/build/man/ldns-nsec3-hash.1", dest = "/usr/share/man/man1/ldns-nsec3-hash.1", mode = "644", doc = true }, { source = "doc/manual/build/man/ldns-signzone.1", dest = "/usr/share/man/man1/ldns-signzone.1", mode = "644", doc = true }, { source = "doc/manual/build/man/ldns-update.1", dest = "/usr/share/man/man1/ldns-update.1", mode = "644", doc = true }, ] # These get set using cargo-generate-rpm --set-metadata at package build time. #post_trans_script = ... #post_uninstall_script = ... # Set Obsoletes per https://docs.fedoraproject.org/en-US/packaging-guidelines/#renaming-or-replacing-existing-packages. [package.metadata.generate-rpm.obsoletes] ldns-utils = "< 0:1.8.4-2"