summaryrefslogtreecommitdiff
path: root/gnu/packages/tor.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/tor.scm')
-rw-r--r--gnu/packages/tor.scm82
1 files changed, 47 insertions, 35 deletions
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index a881e68241..fc489dcbaf 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
@@ -64,7 +64,8 @@
version ".tar.gz"))
(sha256
(base32
- "0sj7qn6d6js6gk4vjfkc7p9g021czbfaq00yfq3mn5ycnhvimkhm"))))
+ "0sj7qn6d6js6gk4vjfkc7p9g021czbfaq00yfq3mn5ycnhvimkhm"))
+ (patches (search-patches "tor-sandbox-i686.patch"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -75,8 +76,19 @@
(add-before 'check 'skip-practracker
;; This is a style linter. It doesn't get to throw fatal errors.
(lambda _
- (setenv "TOR_DISABLE_PRACTRACKER" "set")
- #t)))))
+ (setenv "TOR_DISABLE_PRACTRACKER" "set")))
+ ,@(if (or (target-aarch64?)
+ (target-ppc32?))
+ ;; Work around upstream issue relating to sandboxing and glibc-2.33.
+ ;; This is similar to the issue the tor-sandbox-i686 patch fixes
+ ;; but for other architectures.
+ ;; https://gitlab.torproject.org/tpo/core/tor/-/issues/40381
+ ;; https://gitlab.torproject.org/tpo/core/tor/-/merge_requests/446
+ `((add-before 'check 'adjust-test-suite
+ (lambda _
+ (substitute* "src/test/test_include.sh"
+ ((".*Sandbox 1.*") "")))))
+ '()))))
(native-inputs
`(("pkg-config" ,pkg-config)
("python" ,python))) ; for tests
@@ -226,7 +238,7 @@ networks.")
(define-public onionshare-cli
(package
(name "onionshare-cli")
- (version "2.3.2")
+ (version "2.4")
(source
(origin
(method git-fetch)
@@ -235,7 +247,7 @@ networks.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1qk0zvbaws9md1lmi0al1jc8v86l65nf7n3w1s36iwsfzazc6clv"))))
+ (base32 "157ryxm4p1q7b3nj32v9fziw1li6s6s203b7ll80js14cbp6dj9d"))))
(build-system python-build-system)
(native-inputs
`(("python-pytest" ,python-pytest)))
@@ -247,6 +259,7 @@ networks.")
("python-flask" ,python-flask)
("python-flask-httpauth" ,python-flask-httpauth)
("python-flask-socketio" ,python-flask-socketio)
+ ("python-pynacl" ,python-pynacl)
("python-psutil" ,python-psutil)
("python-pycryptodome" ,python-pycryptodome)
("python-pysocks" ,python-pysocks)
@@ -264,18 +277,21 @@ networks.")
"desktop/src/onionshare/gui_common.py")
(("shutil\\.which\\(\\\"tor\\\"\\)")
(string-append "\"" (which "tor") "\"")))
- #t))
+ (substitute* "cli/tests/test_cli_common.py"
+ (("/usr/share/tor")
+ (string-append (assoc-ref inputs "tor") "/share/tor")))))
(add-before 'build 'change-directory
- (lambda _ (chdir "cli") #t))
+ (lambda _ (chdir "cli")))
(replace 'check
- (lambda _
- (setenv "HOME" "/tmp")
- ;; Greendns is not needed for testing, and if eventlet tries to
- ;; load it, an OSError is thrown when getprotobyname is called.
- ;; Thankfully there is an environment variable to disable the
- ;; greendns import, so use it:
- (setenv "EVENTLET_NO_GREENDNS" "yes")
- (invoke "pytest" "-v" "./tests"))))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (setenv "HOME" "/tmp")
+ ;; Greendns is not needed for testing, and if eventlet tries to
+ ;; load it, an OSError is thrown when getprotobyname is called.
+ ;; Thankfully there is an environment variable to disable the
+ ;; greendns import, so use it:
+ (setenv "EVENTLET_NO_GREENDNS" "yes")
+ (invoke "pytest" "-v" "./tests")))))))
(home-page "https://onionshare.org/")
(synopsis "Securely and anonymously share files")
(description "OnionShare lets you securely and anonymously share files,
@@ -294,7 +310,7 @@ OnionShare.")
((#:phases phases)
`(modify-phases ,phases
(replace 'change-directory
- (lambda _ (chdir "desktop/src") #t))
+ (lambda _ (chdir "desktop/src")))
(add-after 'unpack 'patch-tests
(lambda _
;; Disable tests that require starting servers, which will hang
@@ -334,22 +350,19 @@ OnionShare.")
(display line out)
(loop))))))))))
(replace 'check
- (lambda _
- ;; Some tests need a writable homedir:
- (setenv "HOME" "/tmp")
- ;; Ensure installed modules can be found:
- (setenv "PYTHONPATH"
- (string-append %output "/lib/python"
- ,(version-major+minor (package-version python))
- "/site-packages:"
- (getenv "PYTHONPATH")))
- ;; Avoid `getprotobyname` issues:
- (setenv "EVENTLET_NO_GREENDNS" "yes")
- ;; Make Qt render "offscreen":
- (setenv "QT_QPA_PLATFORM" "offscreen")
- ;; Must be run from "desktop" dir:
- (chdir "..")
- (invoke "./tests/run.sh")))
+ (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+ (when tests?
+ ;; Some tests need a writable homedir:
+ (setenv "HOME" "/tmp")
+ ;; Ensure installed modules can be found:
+ (add-installed-pythonpath inputs outputs)
+ ;; Avoid `getprotobyname` issues:
+ (setenv "EVENTLET_NO_GREENDNS" "yes")
+ ;; Make Qt render "offscreen":
+ (setenv "QT_QPA_PLATFORM" "offscreen")
+ ;; Must be run from "desktop" dir:
+ (with-directory-excursion ".."
+ (invoke "./tests/run.sh")))))
(add-after 'install 'install-data
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -357,8 +370,7 @@ OnionShare.")
(install-file "org.onionshare.OnionShare.svg"
(string-append share "/icons/hicolor/scalable/apps"))
(install-file "org.onionshare.OnionShare.desktop"
- (string-append share "/applications"))
- #t)))))))
+ (string-append share "/applications")))))))))
(native-inputs
`(("python-pytest" ,python-pytest)))
(inputs