summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/tor-remove-defensive-assert.patch28
-rw-r--r--gnu/packages/tor.scm8
3 files changed, 34 insertions, 3 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 924d497057..8dd363dd79 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2018,6 +2018,7 @@ dist_patch_DATA = \
%D%/packages/patches/tofi-32bit-compat.patch \
%D%/packages/patches/tootle-glib-object-naming.patch \
%D%/packages/patches/tootle-reason-phrase.patch \
+ %D%/packages/patches/tor-remove-defensive-assert.patch \
%D%/packages/patches/transcode-ffmpeg.patch \
%D%/packages/patches/transfig-gcc10-fno-common.patch \
%D%/packages/patches/trytond-add-egg-modules-to-path.patch \
diff --git a/gnu/packages/patches/tor-remove-defensive-assert.patch b/gnu/packages/patches/tor-remove-defensive-assert.patch
new file mode 100644
index 0000000000..7207ec867a
--- /dev/null
+++ b/gnu/packages/patches/tor-remove-defensive-assert.patch
@@ -0,0 +1,28 @@
+This patch removes a call to `tor_assert_nonfatal_unreached()` in
+`relay_key_is_unavailable_()` that is only called when Tor is compiled
+without relay support.
+
+Unfortunately, the non-fatal assertion causes a BUG log
+message to appear for clients when they start up without relay support
+for each CPU worker we spawn. This makes it spotting issues during
+bootstrap harder particularly for our iOS developers.
+
+Since the call sites to `get_master_identity_key()` handles `NULL`
+values already, we do not think this will be an issue later on.
+
+Reported by Benjamin Erhart (@tla) from Guardian Project.
+
+Fixes tpo/core/tor#40848.
+
+diff --git a/src/feature/relay/routerkeys.h b/src/feature/relay/routerkeys.h
+index 7b6d80773c..b97615a9c9 100644
+--- a/src/feature/relay/routerkeys.h
++++ b/src/feature/relay/routerkeys.h
+@@ -53,7 +53,6 @@ void routerkeys_free_all(void);
+ static inline void *
+ relay_key_is_unavailable_(void)
+ {
+- tor_assert_nonfatal_unreached();
+ return NULL;
+ }
+ #define relay_key_is_unavailable(type) \
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index 7fec88656f..44e62b63cc 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -63,18 +63,20 @@
(define-public tor
(package
(name "tor")
- (version "0.4.7.14")
+ (version "0.4.8.5")
(source (origin
(method url-fetch)
(uri (string-append "https://dist.torproject.org/tor-"
version ".tar.gz"))
(sha256
(base32
- "1y2xwrji1rvk6h0k15705yra5s74h72h2g84x02zr0338vv6gb55"))))
+ "06g1awb4piqvgxa97pyswxgjzkpj8rx3iy2jbiaygvi99b8wymv9"))
+ (patches (search-patches "tor-remove-defensive-assert.patch"))))
(build-system gnu-build-system)
(arguments
(list #:configure-flags
- #~(list "--enable-lzma"
+ #~(list "--enable-gpl"
+ "--enable-lzma"
"--enable-zstd")
#:phases
#~(modify-phases %standard-phases