Package: pushpin
I hope to update rustls-native-certs to 0.8 soon, pushpin needs
a small patch to build with the new rustls-native-certs.
While working on the patch I ran into and dealt with a couple
of unrelated build failures.
debdiff is attatched.
diff -Nru pushpin-1.39.1/debian/changelog pushpin-1.39.1/debian/changelog
--- pushpin-1.39.1/debian/changelog 2024-12-03 21:36:58.000000000 +0000
+++ pushpin-1.39.1/debian/changelog 2025-02-18 18:58:45.000000000 +0000
@@ -1,3 +1,13 @@
+pushpin (1.39.1-3.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Add type annotation to str derived from arraystring.
+ * Relax cargo dependency on base64.
+ * Fix build to support rustls-native-certs 0.8 and update
+ dependencies.
+
+ -- Peter Michael Green <plugw...@debian.org> Tue, 18 Feb 2025 18:58:45 +0000
+
pushpin (1.39.1-3) unstable; urgency=medium
* Upgrade base64 dependency to version 0.22 (Closes: #1084517)
diff -Nru pushpin-1.39.1/debian/control pushpin-1.39.1/debian/control
--- pushpin-1.39.1/debian/control 2024-12-03 21:36:58.000000000 +0000
+++ pushpin-1.39.1/debian/control 2025-02-18 17:58:04.000000000 +0000
@@ -2,7 +2,7 @@
Section: net
Priority: optional
Maintainer: Jan Niehusmann <j...@debian.org>
-Build-Depends: debhelper (>= 11), qtbase5-dev, qt5-qmake, qtchooser,
libzmq3-dev (>= 2.0), pkg-config, qconf, cargo (>= 0.43), librust-clap-dev,
librust-log-dev, librust-serde-dev, librust-serde-json-dev, librust-zmq-dev (>=
0.9.2-3), librust-serde-derive-dev, librust-base64-dev, librust-slab-dev,
librust-jsonwebtoken-dev, librust-config-dev, librust-httparse-dev,
librust-ipnet-dev, librust-miniz-oxide-dev, librust-mio-dev,
librust-openssl-dev, librust-paste-dev, librust-rustls-dev,
librust-rustls-native-certs-dev, librust-sha1-dev, librust-signal-hook-dev,
librust-socket2-dev, librust-criterion-dev, libboost-dev, librust-url-dev,
help2man
+Build-Depends: debhelper (>= 11), qtbase5-dev, qt5-qmake, qtchooser,
libzmq3-dev (>= 2.0), pkg-config, qconf, cargo (>= 0.43), librust-clap-dev,
librust-log-dev, librust-serde-dev, librust-serde-json-dev, librust-zmq-dev (>=
0.9.2-3), librust-serde-derive-dev, librust-base64-dev, librust-slab-dev,
librust-jsonwebtoken-dev, librust-config-dev, librust-httparse-dev,
librust-ipnet-dev, librust-miniz-oxide-dev, librust-mio-dev,
librust-openssl-dev, librust-paste-dev, librust-rustls-dev,
librust-rustls-native-certs-0.8-dev, librust-sha1-dev, librust-signal-hook-dev,
librust-socket2-dev, librust-criterion-dev, libboost-dev, librust-url-dev,
help2man
Standards-Version: 4.1.4
Homepage: https://github.com/fanout/pushpin
Vcs-Git: https://salsa.debian.org/jan/pushpin.git
diff -Nru pushpin-1.39.1/debian/patches/debian-changes
pushpin-1.39.1/debian/patches/debian-changes
--- pushpin-1.39.1/debian/patches/debian-changes 2024-12-03
21:36:58.000000000 +0000
+++ pushpin-1.39.1/debian/patches/debian-changes 2025-02-18
18:58:45.000000000 +0000
@@ -4,6 +4,8 @@
Option single-debian-patch is used as the changes are tracked in git.
+Index: pushpin-1.39.1/.github/workflows/test.yml
+===================================================================
--- pushpin-1.39.1.orig/.github/workflows/test.yml
+++ pushpin-1.39.1/.github/workflows/test.yml
@@ -4,7 +4,7 @@ jobs:
@@ -15,6 +17,8 @@
platform: [ubuntu-20.04]
runs-on: ${{ matrix.platform }}
steps:
+Index: pushpin-1.39.1/Cargo.toml
+===================================================================
--- pushpin-1.39.1.orig/Cargo.toml
+++ pushpin-1.39.1/Cargo.toml
@@ -1,6 +1,6 @@
@@ -25,7 +29,7 @@
authors = ["Justin Karneges <jkarne...@fastly.com>"]
description = "Reverse proxy for realtime web services"
repository = "https://github.com/fastly/pushpin"
-@@ -20,16 +20,16 @@ crate-type = ["rlib", "staticlib"]
+@@ -20,39 +20,39 @@ crate-type = ["rlib", "staticlib"]
[dependencies]
arrayvec = "0.7"
@@ -47,7 +51,10 @@
openssl = "0.10"
paste = "1.0"
rustls = "0.21"
-@@ -39,20 +39,20 @@ serde_json = "1.0"
+-rustls-native-certs = "0.6"
++rustls-native-certs = "0.8"
+ serde = { version = "1.0", features = ["derive"] }
+ serde_json = "1.0"
sha1 = "0.10"
signal-hook = "0.3"
slab = "0.4"
@@ -64,7 +71,7 @@
criterion = "0.5"
-env_logger = { version = "0.9", default-features = false }
-test-log = "0.2"
-+env_logger = { version = "0.10", default-features = false }
++env_logger = { version = ">= 0.10", default-features = false }
+#test-log = "0.2"
[build-dependencies]
@@ -74,6 +81,8 @@
[[bench]]
name = "server"
+Index: pushpin-1.39.1/Makefile
+===================================================================
--- pushpin-1.39.1.orig/Makefile
+++ pushpin-1.39.1/Makefile
@@ -25,7 +25,7 @@ postbuild-clean: FORCE
@@ -85,6 +94,8 @@
check: cargo-test
+Index: pushpin-1.39.1/examples/config/pushpin.conf
+===================================================================
--- pushpin-1.39.1.orig/examples/config/pushpin.conf
+++ pushpin-1.39.1/examples/config/pushpin.conf
@@ -108,7 +108,11 @@ sockjs_url=http://cdn.jsdelivr.net/sockj
@@ -100,6 +111,8 @@
# use this field to identify your organization in updates requests. if left
# blank, updates requests will be anonymous
+Index: pushpin-1.39.1/src/client.rs
+===================================================================
--- pushpin-1.39.1.orig/src/client.rs
+++ pushpin-1.39.1/src/client.rs
@@ -2564,7 +2564,6 @@ pub mod tests {
@@ -110,6 +123,8 @@
fn recv_frame<R: Read>(
stream: &mut R,
+Index: pushpin-1.39.1/src/connection.rs
+===================================================================
--- pushpin-1.39.1.orig/src/connection.rs
+++ pushpin-1.39.1/src/connection.rs
@@ -61,6 +61,7 @@ use crate::zhttppacket;
@@ -138,6 +153,15 @@
let output = match str::from_utf8(&output[..size]) {
Ok(s) => s,
+@@ -4292,7 +4293,7 @@ async fn server_stream_connection_inner<
+ let shared = shared.get();
+
+ let msg = if let Some(addr) = shared.to_addr().get() {
+- let id = cid.as_ref();
++ let id: &str = cid.as_ref();
+
+ let mut zreq =
zhttppacket::Request::new_cancel(b"", &[]);
+
@@ -7713,7 +7714,6 @@ mod tests {
use std::sync::Arc;
use std::task::Poll;
@@ -146,6 +170,8 @@
#[test]
fn ws_ext_header() {
+Index: pushpin-1.39.1/src/cpp/proxy/app.cpp
+===================================================================
--- pushpin-1.39.1.orig/src/cpp/proxy/app.cpp
+++ pushpin-1.39.1/src/cpp/proxy/app.cpp
@@ -486,7 +486,7 @@ public:
@@ -157,6 +183,8 @@
QString organizationName =
settings.value("proxy/organization_name").toString();
int clientMaxconn = settings.value("runner/client_maxconn",
50000).toInt();
bool statsConnectionSend =
settings.value("global/stats_connection_send", true).toBool();
+Index: pushpin-1.39.1/src/future.rs
+===================================================================
--- pushpin-1.39.1.orig/src/future.rs
+++ pushpin-1.39.1/src/future.rs
@@ -702,7 +702,7 @@ impl AsyncUnixListener {
@@ -177,6 +205,8 @@
fn poll(mut self: Pin<&mut Self>, cx: &mut Context) -> Poll<Self::Output>
{
let f = &mut *self;
+Index: pushpin-1.39.1/src/internal.conf
+===================================================================
--- pushpin-1.39.1.orig/src/internal.conf
+++ pushpin-1.39.1/src/internal.conf
@@ -27,13 +27,13 @@ condure_client_out_stream_specs=ipc://{r
@@ -196,6 +226,8 @@
# bind DEALER for requesting inspection info (internal, used with handler)
handler_inspect_spec=ipc://{rundir}/{ipc_prefix}inspect
+Index: pushpin-1.39.1/src/lib.rs
+===================================================================
--- pushpin-1.39.1.orig/src/lib.rs
+++ pushpin-1.39.1/src/lib.rs
@@ -26,7 +26,7 @@ pub mod buffer;
@@ -219,6 +251,8 @@
pub mod shuffle;
pub mod timer;
pub mod tls;
+Index: pushpin-1.39.1/src/net.rs
+===================================================================
--- pushpin-1.39.1.orig/src/net.rs
+++ pushpin-1.39.1/src/net.rs
@@ -44,7 +44,7 @@ pub fn set_socket_opts(stream: &mut TcpS
@@ -230,6 +264,8 @@
}
impl fmt::Display for SocketAddr {
+Index: pushpin-1.39.1/src/server.rs
+===================================================================
--- pushpin-1.39.1.orig/src/server.rs
+++ pushpin-1.39.1/src/server.rs
@@ -2929,7 +2929,6 @@ pub mod tests {
@@ -240,6 +276,8 @@
fn recv_frame<R: Read>(
stream: &mut R,
+Index: pushpin-1.39.1/src/zhttpsocket.rs
+===================================================================
--- pushpin-1.39.1.orig/src/zhttpsocket.rs
+++ pushpin-1.39.1/src/zhttpsocket.rs
@@ -2740,7 +2740,6 @@ mod tests {
@@ -250,3 +288,21 @@
fn wait_readable(poller: &mut event::Poller, token: mio::Token) {
loop {
+Index: pushpin-1.39.1/src/publish_cli.rs
+===================================================================
+--- pushpin-1.39.1.orig/src/publish_cli.rs
++++ pushpin-1.39.1/src/publish_cli.rs
+@@ -238,8 +238,11 @@ impl TlsStream {
+ fn new(stream: net::TcpStream, host: &str) -> Result<Self, Box<dyn
Error>> {
+ let mut root_store = rustls::RootCertStore::empty();
+
+- for cert in rustls_native_certs::load_native_certs()? {
+- root_store.add(&rustls::Certificate(cert.0)).unwrap();
++ let certs = rustls_native_certs::load_native_certs();
++ if certs.errors.len() > 0 { return
Err(Box::new(certs.errors.into_iter().next().unwrap())) };
++ let certs = certs.certs;
++ for cert in certs {
++ root_store.add(&rustls::Certificate(cert.to_vec())).unwrap();
+ }
+
+ let config = rustls::ClientConfig::builder()