Package: trippy Severity: serious crossterm was recently updated to and I hope to update nix to version 0.30 soon.
Trippy's debian build-dependencies allow the new versions but it's cargo dependencies do not. After relaxing the dependencies I was able to build the package sucessfully, but some snapshot tests are failling, not sure exactly why.
diff -Nru trippy-0.13.0+dfsg/debian/changelog trippy-0.13.0+dfsg/debian/changelog --- trippy-0.13.0+dfsg/debian/changelog 2025-09-09 20:13:49.000000000 +0000 +++ trippy-0.13.0+dfsg/debian/changelog 2025-09-28 16:09:13.000000000 +0000 @@ -1,3 +1,11 @@ +trippy (0.13.0+dfsg-1.2) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Remove upper limits from cargo dependencies on crossterm + and nix. + + -- Peter Michael Green <[email protected]> Sun, 28 Sep 2025 16:09:13 +0000 + trippy (0.13.0+dfsg-1.1) unstable; urgency=medium * Non-maintainer upload. diff -Nru trippy-0.13.0+dfsg/debian/patches/relax-deps.patch trippy-0.13.0+dfsg/debian/patches/relax-deps.patch --- trippy-0.13.0+dfsg/debian/patches/relax-deps.patch 2025-09-09 20:12:58.000000000 +0000 +++ trippy-0.13.0+dfsg/debian/patches/relax-deps.patch 2025-09-28 16:09:13.000000000 +0000 @@ -2,31 +2,42 @@ Last-Update: 2025-08-17 --- This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ ---- a/Cargo.toml -+++ b/Cargo.toml -@@ -32,2 +32,2 @@ +Index: trippy-0.13.0+dfsg/Cargo.toml +=================================================================== +--- trippy-0.13.0+dfsg.orig/Cargo.toml ++++ trippy-0.13.0+dfsg/Cargo.toml +@@ -29,51 +29,51 @@ trippy-core = { version = "0.13.0", path + trippy-privilege = { version = "0.13.0", path = "crates/trippy-privilege" } + trippy-dns = { version = "0.13.0", path = "crates/trippy-dns" } + trippy-packet = { version = "0.13.0", path = "crates/trippy-packet" } -anyhow = "1.0.91" -arrayvec = { version = "0.7.6", default-features = false } +anyhow = "1.0" +arrayvec = { version = "0.7", default-features = false } -@@ -36,2 +36,2 @@ + bitflags = "2.9.0" + caps = "0.5.5" -chrono = { version = "0.4.41", default-features = false } -chrono-tz = "0.10.3" +chrono = { version = "0.4.39", default-features = false } +chrono-tz = "0.10.1" -@@ -41 +41 @@ + clap = { version = "4.5.20", default-features = false } + clap_complete = "4.4.9" + clap_mangen = "0.2.20" -comfy-table = { version = "7.1.4", default-features = false } +comfy-table = { version = "7.1", default-features = false } -@@ -43,4 +43,4 @@ + crossbeam = "0.8.4" -crossterm = { version = "0.28.1", default-features = false } -csv = "1.3.1" -derive_more = { version = "2.0.1", default-features = false } -dns-lookup = "2.0.4" -+crossterm = { version = "0.27", default-features = false } ++crossterm = { version = ">= 0.27", default-features = false } +csv = "1.3" +derive_more = { version = "1", default-features = false } +dns-lookup = "1.0" -@@ -51,7 +51,7 @@ + encoding_rs_io = "0.1.7" + etcetera = "0.8.0" + hex-literal = "0.4.1" + hickory-resolver = "0.24.4" -humantime = "2.2.0" -indexmap = { version = "2.9.0", default-features = false } -insta = "1.43.1" @@ -37,15 +48,21 @@ -itertools = "0.14.0" -maxminddb = "0.25.0" -mockall = "0.13.1" +-nix = { version = "0.29.0", default-features = false } +itertools = "0.13.0" +maxminddb = "0.24.0" +mockall = "0.13" -@@ -61,2 +61,2 @@ ++nix = { version = ">= 0.29.0", default-features = false } + parking_lot = "0.12.3" + paste = "1.0.15" -petgraph = "0.7.1" -pretty_assertions = "1.4.1" +petgraph = "0.6.4" +pretty_assertions = "1.4" -@@ -67,4 +67,4 @@ + rand = "0.9.1" + ratatui = "0.29.0" + serde = { version = "1.0.201", default-features = false } + serde_json = { version = "1.0.117", default-features = false } -serde_with = { version = "3.12.0", default-features = false, features = ["macros"] } -socket2 = "0.5.9" -strum = { version = "0.27.1", default-features = false } @@ -54,18 +71,27 @@ +socket2 = "0.5.8" +strum = { version = "0.26", default-features = false } +sys-locale = "0.3" -@@ -72 +72 @@ + test-case = "3.3.1" -thiserror = "2.0.3" +thiserror = "1" -@@ -74,3 +74,3 @@ + tokio = "1.44.2" -tokio-util = "0.7.15" -toml = { version = "0.8.22", default-features = false } -tracing = "0.1.41" +tokio-util = "0.7.10" +toml = { version = "0.8.19", default-features = false } +tracing = "0.1" ---- a/examples/toy-traceroute/Cargo.toml -+++ b/examples/toy-traceroute/Cargo.toml -@@ -12 +12 @@ + tracing-chrome = "0.7.2" + tracing-subscriber = { version = "0.3.18", default-features = false } + #tun2 = "4.0.0" +Index: trippy-0.13.0+dfsg/examples/toy-traceroute/Cargo.toml +=================================================================== +--- trippy-0.13.0+dfsg.orig/examples/toy-traceroute/Cargo.toml ++++ trippy-0.13.0+dfsg/examples/toy-traceroute/Cargo.toml +@@ -9,5 +9,5 @@ publish = false + [dependencies] + trippy = { version = "0.13.0", path = "../../crates/trippy", default-features = false, features = ["core", "dns"] } + anyhow = "1.0.86" -itertools = "0.14.0" +itertools = "0.13.0" + clap = { version = "4.5.7", features = ["derive"] } diff -Nru trippy-0.13.0+dfsg/debian/trip.1 trippy-0.13.0+dfsg/debian/trip.1 --- trippy-0.13.0+dfsg/debian/trip.1 1970-01-01 00:00:00.000000000 +0000 +++ trippy-0.13.0+dfsg/debian/trip.1 2025-09-28 16:09:13.000000000 +0000 @@ -0,0 +1,371 @@ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.TH trip 1 "trip 0.13.0" +.SH NAME +trip \- A network diagnostic tool +.SH SYNOPSIS +\fBtrip\fR [\fB\-c\fR|\fB\-\-config\-file\fR] [\fB\-m\fR|\fB\-\-mode\fR] [\fB\-u\fR|\fB\-\-unprivileged\fR] [\fB\-p\fR|\fB\-\-protocol\fR] [\fB\-\-udp\fR] [\fB\-\-tcp\fR] [\fB\-\-icmp\fR] [\fB\-F\fR|\fB\-\-addr\-family\fR] [\fB\-4\fR|\fB\-\-ipv4\fR] [\fB\-6\fR|\fB\-\-ipv6\fR] [\fB\-P\fR|\fB\-\-target\-port\fR] [\fB\-S\fR|\fB\-\-source\-port\fR] [\fB\-A\fR|\fB\-\-source\-address\fR] [\fB\-I\fR|\fB\-\-interface\fR] [\fB\-i\fR|\fB\-\-min\-round\-duration\fR] [\fB\-T\fR|\fB\-\-max\-round\-duration\fR] [\fB\-g\fR|\fB\-\-grace\-duration\fR] [\fB\-\-initial\-sequence\fR] [\fB\-R\fR|\fB\-\-multipath\-strategy\fR] [\fB\-U\fR|\fB\-\-max\-inflight\fR] [\fB\-f\fR|\fB\-\-first\-ttl\fR] [\fB\-t\fR|\fB\-\-max\-ttl\fR] [\fB\-\-packet\-size\fR] [\fB\-\-payload\-pattern\fR] [\fB\-Q\fR|\fB\-\-tos\fR] [\fB\-e\fR|\fB\-\-icmp\-extensions\fR] [\fB\-\-read\-timeout\fR] [\fB\-r\fR|\fB\-\-dns\-resolve\-method\fR] [\fB\-y\fR|\fB\-\-dns\-resolve\-all\fR] [\fB\-\-dns\-timeout\fR] [\fB\-\-dns\-ttl\fR] [\fB\-z\fR|\fB\-\-dns\-lookup\-as\-info\fR] [\fB\-s\fR|\fB\-\-max\-samples\fR] [\fB\-\-max\-flows\fR] [\fB\-a\fR|\fB\-\-tui\-address\-mode\fR] [\fB\-\-tui\-as\-mode\fR] [\fB\-\-tui\-custom\-columns\fR] [\fB\-\-tui\-icmp\-extension\-mode\fR] [\fB\-\-tui\-geoip\-mode\fR] [\fB\-M\fR|\fB\-\-tui\-max\-addrs\fR] [\fB\-\-tui\-preserve\-screen\fR] [\fB\-\-tui\-refresh\-rate\fR] [\fB\-\-tui\-privacy\-max\-ttl\fR] [\fB\-\-tui\-locale\fR] [\fB\-\-tui\-timezone\fR] [\fB\-\-tui\-theme\-colors\fR] [\fB\-\-print\-tui\-theme\-items\fR] [\fB\-\-tui\-key\-bindings\fR] [\fB\-\-print\-tui\-binding\-commands\fR] [\fB\-C\fR|\fB\-\-report\-cycles\fR] [\fB\-G\fR|\fB\-\-geoip\-mmdb\-file\fR] [\fB\-\-generate\fR] [\fB\-\-generate\-man\fR] [\fB\-\-print\-config\-template\fR] [\fB\-\-print\-locales\fR] [\fB\-\-log\-format\fR] [\fB\-\-log\-filter\fR] [\fB\-\-log\-span\-events\fR] [\fB\-v\fR|\fB\-\-verbose\fR] [\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR] [\fITARGETS\fR] +.SH DESCRIPTION +A network diagnostic tool +.SH OPTIONS +.TP +\fB\-c\fR, \fB\-\-config\-file\fR \fI<CONFIG_FILE>\fR +Config file +.TP +\fB\-m\fR, \fB\-\-mode\fR \fI<MODE>\fR +Output mode [default: tui] +.br + +.br +\fIPossible values:\fR +.RS 14 +.IP \(bu 2 +tui: Display interactive TUI +.IP \(bu 2 +stream: Display a continuous stream of tracing data +.IP \(bu 2 +pretty: Generate a pretty text table report for N cycles +.IP \(bu 2 +markdown: Generate a Markdown text table report for N cycles +.IP \(bu 2 +csv: Generate a CSV report for N cycles +.IP \(bu 2 +json: Generate a JSON report for N cycles +.IP \(bu 2 +dot: Generate a Graphviz DOT file for N cycles +.IP \(bu 2 +flows: Display all flows for N cycles +.IP \(bu 2 +silent: Do not generate any tracing output for N cycles +.RE +.TP +\fB\-u\fR, \fB\-\-unprivileged\fR +Trace without requiring elevated privileges on supported platforms [default: false] +.TP +\fB\-p\fR, \fB\-\-protocol\fR \fI<PROTOCOL>\fR +Tracing protocol [default: icmp] +.br + +.br +\fIPossible values:\fR +.RS 14 +.IP \(bu 2 +icmp: Internet Control Message Protocol +.IP \(bu 2 +udp: User Datagram Protocol +.IP \(bu 2 +tcp: Transmission Control Protocol +.RE +.TP +\fB\-\-udp\fR +Trace using the UDP protocol +.TP +\fB\-\-tcp\fR +Trace using the TCP protocol +.TP +\fB\-\-icmp\fR +Trace using the ICMP protocol +.TP +\fB\-F\fR, \fB\-\-addr\-family\fR \fI<ADDR_FAMILY>\fR +The address family [default: ipv4\-then\-ipv6] +.br + +.br +\fIPossible values:\fR +.RS 14 +.IP \(bu 2 +ipv4: IPv4 only +.IP \(bu 2 +ipv6: IPv6 only +.IP \(bu 2 +ipv6\-then\-ipv4: IPv6 with a fallback to IPv4 +.IP \(bu 2 +ipv4\-then\-ipv6: IPv4 with a fallback to IPv6 +.IP \(bu 2 +system: If the OS resolver is being used then use the first IP address returned, otherwise lookup IPv6 with a fallback to IPv4 +.RE +.TP +\fB\-4\fR, \fB\-\-ipv4\fR +Use IPv4 only +.TP +\fB\-6\fR, \fB\-\-ipv6\fR +Use IPv6 only +.TP +\fB\-P\fR, \fB\-\-target\-port\fR \fI<TARGET_PORT>\fR +The target port (TCP & UDP only) [default: 80] +.TP +\fB\-S\fR, \fB\-\-source\-port\fR \fI<SOURCE_PORT>\fR +The source port (TCP & UDP only) [default: auto] +.TP +\fB\-A\fR, \fB\-\-source\-address\fR \fI<SOURCE_ADDRESS>\fR +The source IP address [default: auto] +.TP +\fB\-I\fR, \fB\-\-interface\fR \fI<INTERFACE>\fR +The network interface [default: auto] +.TP +\fB\-i\fR, \fB\-\-min\-round\-duration\fR \fI<MIN_ROUND_DURATION>\fR +The minimum duration of every round [default: 1s] +.TP +\fB\-T\fR, \fB\-\-max\-round\-duration\fR \fI<MAX_ROUND_DURATION>\fR +The maximum duration of every round [default: 1s] +.TP +\fB\-g\fR, \fB\-\-grace\-duration\fR \fI<GRACE_DURATION>\fR +The period of time to wait for additional ICMP responses after the target has responded [default: 100ms] +.TP +\fB\-\-initial\-sequence\fR \fI<INITIAL_SEQUENCE>\fR +The initial sequence number [default: 33434] +.TP +\fB\-R\fR, \fB\-\-multipath\-strategy\fR \fI<MULTIPATH_STRATEGY>\fR +The Equal\-cost Multi\-Path routing strategy (UDP only) [default: classic] +.br + +.br +\fIPossible values:\fR +.RS 14 +.IP \(bu 2 +classic: The src or dest port is used to store the sequence number +.IP \(bu 2 +paris: The UDP `checksum` field is used to store the sequence number +.IP \(bu 2 +dublin: The IP `identifier` field is used to store the sequence number +.RE +.TP +\fB\-U\fR, \fB\-\-max\-inflight\fR \fI<MAX_INFLIGHT>\fR +The maximum number of in\-flight ICMP echo requests [default: 24] +.TP +\fB\-f\fR, \fB\-\-first\-ttl\fR \fI<FIRST_TTL>\fR +The TTL to start from [default: 1] +.TP +\fB\-t\fR, \fB\-\-max\-ttl\fR \fI<MAX_TTL>\fR +The maximum number of TTL hops [default: 64] +.TP +\fB\-\-packet\-size\fR \fI<PACKET_SIZE>\fR +The size of IP packet to send (IP header + ICMP header + payload) [default: 84] +.TP +\fB\-\-payload\-pattern\fR \fI<PAYLOAD_PATTERN>\fR +The repeating pattern in the payload of the ICMP packet [default: 0] +.TP +\fB\-Q\fR, \fB\-\-tos\fR \fI<TOS>\fR +The TOS (i.e. DSCP+ECN) IP header value (IPv4 only) [default: 0] +.TP +\fB\-e\fR, \fB\-\-icmp\-extensions\fR +Parse ICMP extensions +.TP +\fB\-\-read\-timeout\fR \fI<READ_TIMEOUT>\fR +The socket read timeout [default: 10ms] +.TP +\fB\-r\fR, \fB\-\-dns\-resolve\-method\fR \fI<DNS_RESOLVE_METHOD>\fR +How to perform DNS queries [default: system] +.br + +.br +\fIPossible values:\fR +.RS 14 +.IP \(bu 2 +system: Resolve using the OS resolver +.IP \(bu 2 +resolv: Resolve using the `/etc/resolv.conf` DNS configuration +.IP \(bu 2 +google: Resolve using the Google `8.8.8.8` DNS service +.IP \(bu 2 +cloudflare: Resolve using the Cloudflare `1.1.1.1` DNS service +.RE +.TP +\fB\-y\fR, \fB\-\-dns\-resolve\-all\fR +Trace to all IPs resolved from DNS lookup [default: false] +.TP +\fB\-\-dns\-timeout\fR \fI<DNS_TIMEOUT>\fR +The maximum time to wait to perform DNS queries [default: 5s] +.TP +\fB\-\-dns\-ttl\fR \fI<DNS_TTL>\fR +The time\-to\-live (TTL) of DNS entries [default: 300s] +.TP +\fB\-z\fR, \fB\-\-dns\-lookup\-as\-info\fR +Lookup autonomous system (AS) information during DNS queries [default: false] +.TP +\fB\-s\fR, \fB\-\-max\-samples\fR \fI<MAX_SAMPLES>\fR +The maximum number of samples to record per hop [default: 256] +.TP +\fB\-\-max\-flows\fR \fI<MAX_FLOWS>\fR +The maximum number of flows to record [default: 64] +.TP +\fB\-a\fR, \fB\-\-tui\-address\-mode\fR \fI<TUI_ADDRESS_MODE>\fR +How to render addresses [default: host] +.br + +.br +\fIPossible values:\fR +.RS 14 +.IP \(bu 2 +ip: Show IP address only +.IP \(bu 2 +host: Show reverse\-lookup DNS hostname only +.IP \(bu 2 +both: Show both IP address and reverse\-lookup DNS hostname +.RE +.TP +\fB\-\-tui\-as\-mode\fR \fI<TUI_AS_MODE>\fR +How to render autonomous system (AS) information [default: asn] +.br + +.br +\fIPossible values:\fR +.RS 14 +.IP \(bu 2 +asn: Show the ASN +.IP \(bu 2 +prefix: Display the AS prefix +.IP \(bu 2 +country\-code: Display the country code +.IP \(bu 2 +registry: Display the registry name +.IP \(bu 2 +allocated: Display the allocated date +.IP \(bu 2 +name: Display the AS name +.RE +.TP +\fB\-\-tui\-custom\-columns\fR \fI<TUI_CUSTOM_COLUMNS>\fR +Custom columns to be displayed in the TUI hops table [default: holsravbwdt] +.TP +\fB\-\-tui\-icmp\-extension\-mode\fR \fI<TUI_ICMP_EXTENSION_MODE>\fR +How to render ICMP extensions [default: off] +.br + +.br +\fIPossible values:\fR +.RS 14 +.IP \(bu 2 +off: Do not show `icmp` extensions +.IP \(bu 2 +mpls: Show MPLS label(s) only +.IP \(bu 2 +full: Show full `icmp` extension data for all known extensions +.IP \(bu 2 +all: Show full `icmp` extension data for all classes +.RE +.TP +\fB\-\-tui\-geoip\-mode\fR \fI<TUI_GEOIP_MODE>\fR +How to render GeoIp information [default: short] +.br + +.br +\fIPossible values:\fR +.RS 14 +.IP \(bu 2 +off: Do not display GeoIp data +.IP \(bu 2 +short: Show short format +.IP \(bu 2 +long: Show long format +.IP \(bu 2 +location: Show latitude and Longitude format +.RE +.TP +\fB\-M\fR, \fB\-\-tui\-max\-addrs\fR \fI<TUI_MAX_ADDRS>\fR +The maximum number of addresses to show per hop [default: auto] +.TP +\fB\-\-tui\-preserve\-screen\fR +Preserve the screen on exit [default: false] +.TP +\fB\-\-tui\-refresh\-rate\fR \fI<TUI_REFRESH_RATE>\fR +The TUI refresh rate [default: 100ms] +.TP +\fB\-\-tui\-privacy\-max\-ttl\fR \fI<TUI_PRIVACY_MAX_TTL>\fR +The maximum ttl of hops which will be masked for privacy [default: none] + +If set, the source IP address and hostname will also be hidden. +.TP +\fB\-\-tui\-locale\fR \fI<TUI_LOCALE>\fR +The locale to use for the TUI [default: auto] +.TP +\fB\-\-tui\-timezone\fR \fI<TUI_TIMEZONE>\fR +The timezone to use for the TUI [default: auto] + +The timezone must be a valid IANA timezone identifier. +.TP +\fB\-\-tui\-theme\-colors\fR \fI<TUI_THEME_COLORS>\fR +The TUI theme colors [item=color,item=color,..] +.TP +\fB\-\-print\-tui\-theme\-items\fR +Print all TUI theme items and exit +.TP +\fB\-\-tui\-key\-bindings\fR \fI<TUI_KEY_BINDINGS>\fR +The TUI key bindings [command=key,command=key,..] +.TP +\fB\-\-print\-tui\-binding\-commands\fR +Print all TUI commands that can be bound and exit +.TP +\fB\-C\fR, \fB\-\-report\-cycles\fR \fI<REPORT_CYCLES>\fR +The number of report cycles to run [default: 10] +.TP +\fB\-G\fR, \fB\-\-geoip\-mmdb\-file\fR \fI<GEOIP_MMDB_FILE>\fR +The supported MaxMind or IPinfo GeoIp mmdb file +.TP +\fB\-\-generate\fR \fI<GENERATE>\fR +Generate shell completion +.br + +.br +[\fIpossible values: \fRbash, elvish, fish, powershell, zsh] +.TP +\fB\-\-generate\-man\fR +Generate ROFF man page +.TP +\fB\-\-print\-config\-template\fR +Print a template toml config file and exit +.TP +\fB\-\-print\-locales\fR +Print all available TUI locales and exit +.TP +\fB\-\-log\-format\fR \fI<LOG_FORMAT>\fR +The debug log format [default: pretty] +.br + +.br +\fIPossible values:\fR +.RS 14 +.IP \(bu 2 +compact: Display log data in a compact format +.IP \(bu 2 +pretty: Display log data in a pretty format +.IP \(bu 2 +json: Display log data in a json format +.IP \(bu 2 +chrome: Display log data in Chrome trace format +.RE +.TP +\fB\-\-log\-filter\fR \fI<LOG_FILTER>\fR +The debug log filter [default: trippy=debug] +.TP +\fB\-\-log\-span\-events\fR \fI<LOG_SPAN_EVENTS>\fR +The debug log format [default: off] +.br + +.br +\fIPossible values:\fR +.RS 14 +.IP \(bu 2 +off: Do not display event spans +.IP \(bu 2 +active: Display enter and exit event spans +.IP \(bu 2 +full: Display all event spans +.RE +.TP +\fB\-v\fR, \fB\-\-verbose\fR +Enable verbose debug logging +.TP +\fB\-h\fR, \fB\-\-help\fR +Print help (see a summary with \*(Aq\-h\*(Aq) +.TP +\fB\-V\fR, \fB\-\-version\fR +Print version +.TP +[\fITARGETS\fR] +A space delimited list of hostnames and IPs to trace +.SH VERSION +v0.13.0 +.SH AUTHORS +FujiApple <[email protected]> +

