This patch contains the differences between the upstream tarball and
the sources actually used for building the package.

Option single-debian-patch is used as the changes are tracked in git.


--- pushpin-1.39.1.orig/.github/workflows/test.yml
+++ pushpin-1.39.1/.github/workflows/test.yml
@@ -4,7 +4,7 @@ jobs:
   test:
     strategy:
       matrix:
-        rust-toolchain: [1.66.1]
+        rust-toolchain: [1.70.0]
         platform: [ubuntu-20.04]
     runs-on: ${{ matrix.platform }}
     steps:
--- pushpin-1.39.1.orig/Cargo.toml
+++ pushpin-1.39.1/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pushpin"
-version = "1.39.0-dev"
+version = "1.39.0"
 authors = ["Justin Karneges <jkarneges@fastly.com>"]
 description = "Reverse proxy for realtime web services"
 repository = "https://github.com/fastly/pushpin"
@@ -20,16 +20,16 @@ crate-type = ["rlib", "staticlib"]
 
 [dependencies]
 arrayvec = "0.7"
-base64 = "0.13"
-clap = { version = "=4.2.1", features = ["cargo", "string", "wrap_help", "derive"] }
-config = "0.13.3"
+base64 = "0.22"
+clap = { version = "4", features = ["cargo", "string", "wrap_help", "derive"] }
+config = "0.11"
 httparse = "1.7"
 ipnet = "2"
 jsonwebtoken = "8"
 libc = "0.2"
 log = "0.4"
-miniz_oxide = "0.6"
-mio = { version = "0.8", features = ["os-poll", "os-ext", "net"] }
+miniz_oxide = "0.7"
+mio = { version = "1", features = ["os-poll", "os-ext", "net"] }
 openssl = "0.10"
 paste = "1.0"
 rustls = "0.21"
@@ -39,20 +39,20 @@ serde_json = "1.0"
 sha1 = "0.10"
 signal-hook = "0.3"
 slab = "0.4"
-socket2 = "0.4"
+socket2 = "0.5"
 thiserror = "1.0"
-time = { version = "=0.3.18", features = ["formatting", "local-offset", "macros"] }
-url = "2.3"
 zmq = "0.9"
+time = { version = "0.3", features = ["formatting", "local-offset", "macros"] }
+url = "2.4"
 
 [dev-dependencies]
 criterion = "0.5"
-env_logger = { version = "0.9", default-features = false }
-test-log = "0.2"
+env_logger = { version = "0.10", default-features = false }
+#test-log = "0.2"
 
 [build-dependencies]
 pkg-config = "0.3"
-time = { version = "=0.3.18", features = ["formatting", "local-offset", "macros"] }
+time = { version = "0.3", features = ["formatting", "local-offset", "macros"] }
 
 [[bench]]
 name = "server"
--- pushpin-1.39.1.orig/Makefile
+++ pushpin-1.39.1/Makefile
@@ -25,7 +25,7 @@ postbuild-clean: FORCE
 	cd postbuild && $(MAKE) -f Makefile clean
 
 postbuild-distclean: FORCE
-	cd postbuild && $(MAKE) -f Makefile distclean
+	cd postbuild && [ ! -f Makefile ] || $(MAKE) -f Makefile distclean
 
 check: cargo-test
 
--- 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
 # pushpin will output a log message when a new version is available. report
 # mode helps the pushpin project build credibility, so please enable it if you
 # enjoy this software :)
-updates_check=report
+#
+# NOTE: Upstream enables this feature by default. The debian package
+# disables it for privacy reasons. please consider to enable it by setting
+# updates_check to 'report'.
+updates_check=off
 
 # use this field to identify your organization in updates requests. if left
 # blank, updates requests will be anonymous
--- pushpin-1.39.1.orig/src/client.rs
+++ pushpin-1.39.1/src/client.rs
@@ -2564,7 +2564,6 @@ pub mod tests {
     use crate::connection::calculate_ws_accept;
     use crate::websocket;
     use std::io::Read;
-    use test_log::test;
 
     fn recv_frame<R: Read>(
         stream: &mut R,
--- pushpin-1.39.1.orig/src/connection.rs
+++ pushpin-1.39.1/src/connection.rs
@@ -61,6 +61,7 @@ use crate::zhttppacket;
 use crate::zmq::MultipartHeader;
 use crate::{pin, Defer};
 use arrayvec::{ArrayString, ArrayVec};
+use base64::prelude::{Engine as _, BASE64_STANDARD};
 use ipnet::IpNet;
 use log::{debug, log, warn, Level};
 use sha1::{Digest, Sha1};
@@ -127,7 +128,7 @@ fn gen_ws_key() -> ArrayString<WS_KEY_MA
 
     let mut output = [0; WS_KEY_MAX];
 
-    let size = base64::encode_config_slice(nonce, base64::STANDARD, &mut output);
+    let size = BASE64_STANDARD.encode_slice(nonce, &mut output).unwrap();
 
     let output = str::from_utf8(&output[..size]).unwrap();
 
@@ -155,7 +156,7 @@ pub fn calculate_ws_accept(key: &[u8]) -
 
     let mut output = [0; WS_ACCEPT_MAX];
 
-    let size = base64::encode_config_slice(digest, base64::STANDARD, &mut output);
+    let size = BASE64_STANDARD.encode_slice(digest, &mut output).unwrap();
 
     let output = match str::from_utf8(&output[..size]) {
         Ok(s) => s,
@@ -7713,7 +7714,6 @@ mod tests {
     use std::sync::Arc;
     use std::task::Poll;
     use std::time::Instant;
-    use test_log::test;
 
     #[test]
     fn ws_ext_header() {
--- pushpin-1.39.1.orig/src/cpp/proxy/app.cpp
+++ pushpin-1.39.1/src/cpp/proxy/app.cpp
@@ -486,7 +486,7 @@ public:
 		Jwt::EncodingKey sigKey = Jwt::EncodingKey::fromConfigString(settings.value("proxy/sig_key").toString(), configDir);
 		Jwt::DecodingKey upstreamKey = Jwt::DecodingKey::fromConfigString(settings.value("proxy/upstream_key").toString(), configDir);
 		QString sockJsUrl = settings.value("proxy/sockjs_url").toString();
-		QString updatesCheck = settings.value("proxy/updates_check").toString();
+		QString updatesCheck = settings.value("proxy/updates_check","off").toString();
 		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();
--- pushpin-1.39.1.orig/src/future.rs
+++ pushpin-1.39.1/src/future.rs
@@ -702,7 +702,7 @@ impl AsyncUnixListener {
         Ok(Self::new(listener))
     }
 
-    pub fn local_addr(&self) -> Result<mio::net::SocketAddr, io::Error> {
+    pub fn local_addr(&self) -> Result<std::os::unix::net::SocketAddr, io::Error> {
         self.evented.io().local_addr()
     }
 
@@ -1621,7 +1621,7 @@ pub struct UnixAcceptFuture<'a> {
 }
 
 impl Future for UnixAcceptFuture<'_> {
-    type Output = Result<(UnixStream, mio::net::SocketAddr), io::Error>;
+    type Output = Result<(UnixStream, std::os::unix::net::SocketAddr), io::Error>;
 
     fn poll(mut self: Pin<&mut Self>, cx: &mut Context) -> Poll<Self::Output> {
         let f = &mut *self;
--- 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
 condure_client_in_specs=ipc://{rundir}/{ipc_prefix}condure-client-out
 
 # list of connect PUSH for sending zurl HTTP/WS requests
-zurl_out_specs=ipc://{rundir}/{ipc_prefix}zurl-in
+zurl_out_specs=ipc:///var/run/zurl/zurl-in
 
 # list of connect ROUTER for continuing zurl HTTP/WS requests
-zurl_out_stream_specs=ipc://{rundir}/{ipc_prefix}zurl-in-stream
+zurl_out_stream_specs=ipc:///var/run/zurl/zurl-in-stream
 
 # list of connect SUB for receiving zurl HTTP/WS responses
-zurl_in_specs=ipc://{rundir}/{ipc_prefix}zurl-out
+zurl_in_specs=ipc:///var/run/zurl/zurl-out
 
 # bind DEALER for requesting inspection info (internal, used with handler)
 handler_inspect_spec=ipc://{rundir}/{ipc_prefix}inspect
--- pushpin-1.39.1.orig/src/lib.rs
+++ pushpin-1.39.1/src/lib.rs
@@ -26,7 +26,7 @@ pub mod buffer;
 pub mod channel;
 pub mod client;
 pub mod condure;
-pub mod config;
+//pub mod config;
 pub mod connection;
 pub mod counter;
 pub mod event;
@@ -43,9 +43,9 @@ pub mod pool;
 pub mod publish_cli;
 pub mod reactor;
 pub mod resolver;
-pub mod runner;
+//pub mod runner;
 pub mod server;
-pub mod service;
+//pub mod service;
 pub mod shuffle;
 pub mod timer;
 pub mod tls;
--- 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
 #[derive(Debug)]
 pub enum SocketAddr {
     Ip(std::net::SocketAddr),
-    Unix(mio::net::SocketAddr),
+    Unix(std::os::unix::net::SocketAddr),
 }
 
 impl fmt::Display for SocketAddr {
--- pushpin-1.39.1.orig/src/server.rs
+++ pushpin-1.39.1/src/server.rs
@@ -2929,7 +2929,6 @@ pub mod tests {
     use super::*;
     use crate::websocket;
     use std::io::Read;
-    use test_log::test;
 
     fn recv_frame<R: Read>(
         stream: &mut R,
--- pushpin-1.39.1.orig/src/zhttpsocket.rs
+++ pushpin-1.39.1/src/zhttpsocket.rs
@@ -2740,7 +2740,6 @@ mod tests {
     use crate::zhttppacket::{
         PacketParse, Request, RequestData, RequestPacket, Response, ResponsePacket,
     };
-    use test_log::test;
 
     fn wait_readable(poller: &mut event::Poller, token: mio::Token) {
         loop {
