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.38.0.orig/Cargo.toml
+++ pushpin-1.38.0/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pushpin"
-version = "1.38.0-dev"
+version = "1.38.0"
 authors = ["Justin Karneges <jkarneges@fastly.com>"]
 description = "Reverse proxy for realtime web services"
 repository = "https://github.com/fastly/pushpin"
@@ -20,14 +20,14 @@ crate-type = ["rlib", "staticlib"]
 
 [dependencies]
 arrayvec = "0.7"
-base64 = "0.13"
-clap = { version = "=4.2.1", features = ["cargo", "string", "wrap_help", "derive"] }
+base64 = "0.21"
+clap = { version = "4", features = ["cargo", "string", "wrap_help", "derive"] }
 httparse = "1.7"
 ipnet = "2"
 jsonwebtoken = "8"
 libc = "0.2"
 log = "0.4"
-miniz_oxide = "0.6"
+miniz_oxide = "0.7"
 mio = { version = "0.8", features = ["os-poll", "os-ext", "net"] }
 openssl = "0.10"
 paste = "1.0"
@@ -38,21 +38,21 @@ 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"
-config = "0.13.3"
+config = "0.11"
+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.38.0.orig/Makefile
+++ pushpin-1.38.0/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.38.0.orig/examples/config/pushpin.conf
+++ pushpin-1.38.0/examples/config/pushpin.conf
@@ -109,7 +109,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.38.0.orig/src/client.rs
+++ pushpin-1.38.0/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.38.0.orig/src/connection.rs
+++ pushpin-1.38.0/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.38.0.orig/src/cpp/proxy/app.cpp
+++ pushpin-1.38.0/src/cpp/proxy/app.cpp
@@ -309,7 +309,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.38.0.orig/src/internal.conf
+++ pushpin-1.38.0/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.38.0.orig/src/lib.rs
+++ pushpin-1.38.0/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;
@@ -170,7 +170,7 @@ fn get_user_uid(name: &str) -> Result<li
         if libc::getpwnam_r(
             name.as_ptr(),
             pwd.as_mut_ptr(),
-            buf.as_mut_ptr() as *mut i8,
+            buf.as_mut_ptr() as *mut libc::c_char,
             buf.len(),
             &mut passwd,
         ) != 0
@@ -197,7 +197,7 @@ fn get_group_gid(name: &str) -> Result<l
         if libc::getgrnam_r(
             name.as_ptr(),
             grp.as_mut_ptr(),
-            buf.as_mut_ptr() as *mut i8,
+            buf.as_mut_ptr() as *mut libc::c_char,
             buf.len(),
             &mut group,
         ) != 0
--- pushpin-1.38.0.orig/src/server.rs
+++ pushpin-1.38.0/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.38.0.orig/src/zhttpsocket.rs
+++ pushpin-1.38.0/src/zhttpsocket.rs
@@ -2653,7 +2653,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 {
