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()

Reply via email to