--- Begin Message ---
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]>
+
--- End Message ---