diff options
-rw-r--r-- | gnu/packages/networking.scm | 228 |
1 files changed, 116 insertions, 112 deletions
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index e62f3d2ecb..35779460a3 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -3848,117 +3848,121 @@ and targeted primarily for asynchronous processing of HTTP-requests.") (replace "llhttp" http-parser))))) (define-public opendht - (package - (name "opendht") - (version "3.1.11") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/savoirfairelinux/opendht") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "05zli0c14wg5dafw12xjhnva0rlsm3dgiksn6n9g8ab990d915ll")))) - (outputs '("out" "python" "tools" "debug")) - (build-system gnu-build-system) - (arguments - (list - #:imported-modules `((guix build python-build-system) ;for site-packages - ,@%gnu-build-system-modules) - #:modules '(((guix build python-build-system) #:prefix python:) - (guix build gnu-build-system) - (guix build utils)) - #:configure-flags - #~(list "--disable-static" ;to reduce size - "--enable-tests" - "--enable-proxy-server" - "--enable-push-notifications" - "--enable-proxy-server-identity" - "--enable-proxy-client") - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'disable-problematic-tests - (lambda _ - ;; The dhtrunnertester test suite includes 'testListen', which - ;; is sensitive to the performance/load of the machine it runs - ;; on, introducing nondeterminism (see: - ;; https://github.com/savoirfairelinux/opendht/issues/626). - (substitute* "tests/Makefile.am" - (("\\bdhtrunnertester\\.(h|cpp)\\b") - "")))) - (add-after 'unupack 'relax-test-timeouts - (lambda _ - ;; At least the 'test_send_json' has been seen to fail - ;; non-deterministically, but it seems hard to reproducible that - ;; failure. - (substitute* "tests/httptester.cpp" - (("std::chrono::seconds\\(10)") - "std::chrono::seconds(30)")))) - (add-after 'unpack 'fix-python-installation-prefix - ;; Specify the installation prefix for the compiled Python module - ;; that would otherwise attempt to installs itself to Python's own - ;; site-packages directory. - (lambda _ - (substitute* "python/Makefile.am" - (("--root=\\$\\(DESTDIR)/") - (string-append "--root=/ --single-version-externally-managed " - "--prefix=" #$output:python))))) - (add-after 'unpack 'specify-runpath-for-python-module - (lambda _ - (substitute* "python/setup.py.in" - (("extra_link_args=\\[(.*)\\]" _ args) - (string-append "extra_link_args=[" args - ", '-Wl,-rpath=" #$output "/lib']"))))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "tests/opendht_unit_tests")))) - (add-before 'bootstrap 'delete-autogen.sh - (lambda _ - ;; The autogen.sh script lacks a shebang, cannot be executed - ;; directly. Let the bootstrap phase invoke autoreconf itself. - (delete-file "autogen.sh"))) - (add-after 'install 'move-and-wrap-tools - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((tools (assoc-ref outputs "tools")) - (dhtcluster (string-append tools "/bin/dhtcluster")) - (site-packages (python:site-packages inputs outputs))) - (mkdir tools) - (rename-file (string-append #$output "/bin") - (string-append tools "/bin")) - ;; TODO: Contribute a patch to python/Makefile.am to - ;; automate this. - (copy-file "python/tools/dhtcluster.py" dhtcluster) - (chmod dhtcluster #o555) - (wrap-program dhtcluster - `("GUIX_PYTHONPATH" prefix (,site-packages))))))))) - (inputs - (list bash-minimal - fmt - readline)) - (propagated-inputs - (list msgpack-cxx ;included in several installed headers - restinio-0.6 ;included in opendht/http.h - ;; The following are listed in the 'Requires.private' field of - ;; opendht.pc: - argon2 - gnutls - jsoncpp - nettle - openssl ;required for the DHT proxy - python)) - (native-inputs - (list autoconf - automake - pkg-config - python - python-cython - libtool - cppunit)) - (home-page "https://github.com/savoirfairelinux/opendht/") - (synopsis "Lightweight Distributed Hash Table (DHT) library") - (description "OpenDHT provides an easy to use distributed in-memory data + ;; Temporarily use the latest commit, as the latest release lacks a 'detach' + ;; procedure used by a recent DhtNet, required by Jami. + (let ((commit "318d02c55a7061a771a632ff2224b0d195a80d42") + (revision "0")) + (package + (name "opendht") + (version (git-version "3.1.11" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/savoirfairelinux/opendht") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0d4m9bxvwa1pz8r0sfrjjyml4yp5v7n4vy8ad7k4hcryyvd5npb0")))) + (outputs '("out" "python" "tools" "debug")) + (build-system gnu-build-system) + (arguments + (list + #:imported-modules `((guix build python-build-system) ;for site-packages + ,@%gnu-build-system-modules) + #:modules '(((guix build python-build-system) #:prefix python:) + (guix build gnu-build-system) + (guix build utils)) + #:configure-flags + #~(list "--disable-static" ;to reduce size + "--enable-tests" + "--enable-proxy-server" + "--enable-push-notifications" + "--enable-proxy-server-identity" + "--enable-proxy-client") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'disable-problematic-tests + (lambda _ + ;; The dhtrunnertester test suite includes 'testListen', which + ;; is sensitive to the performance/load of the machine it runs + ;; on, introducing nondeterminism (see: + ;; https://github.com/savoirfairelinux/opendht/issues/626). + (substitute* "tests/Makefile.am" + (("\\bdhtrunnertester\\.(h|cpp)\\b") + "")))) + (add-after 'unupack 'relax-test-timeouts + (lambda _ + ;; At least the 'test_send_json' has been seen to fail + ;; non-deterministically, but it seems hard to reproducible that + ;; failure. + (substitute* "tests/httptester.cpp" + (("std::chrono::seconds\\(10)") + "std::chrono::seconds(30)")))) + (add-after 'unpack 'fix-python-installation-prefix + ;; Specify the installation prefix for the compiled Python module + ;; that would otherwise attempt to installs itself to Python's own + ;; site-packages directory. + (lambda _ + (substitute* "python/Makefile.am" + (("--root=\\$\\(DESTDIR)/") + (string-append "--root=/ --single-version-externally-managed " + "--prefix=" #$output:python))))) + (add-after 'unpack 'specify-runpath-for-python-module + (lambda _ + (substitute* "python/setup.py.in" + (("extra_link_args=\\[(.*)\\]" _ args) + (string-append "extra_link_args=[" args + ", '-Wl,-rpath=" #$output "/lib']"))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "tests/opendht_unit_tests")))) + (add-before 'bootstrap 'delete-autogen.sh + (lambda _ + ;; The autogen.sh script lacks a shebang, cannot be executed + ;; directly. Let the bootstrap phase invoke autoreconf itself. + (delete-file "autogen.sh"))) + (add-after 'install 'move-and-wrap-tools + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((tools (assoc-ref outputs "tools")) + (dhtcluster (string-append tools "/bin/dhtcluster")) + (site-packages (python:site-packages inputs outputs))) + (mkdir tools) + (rename-file (string-append #$output "/bin") + (string-append tools "/bin")) + ;; TODO: Contribute a patch to python/Makefile.am to + ;; automate this. + (copy-file "python/tools/dhtcluster.py" dhtcluster) + (chmod dhtcluster #o555) + (wrap-program dhtcluster + `("GUIX_PYTHONPATH" prefix (,site-packages))))))))) + (inputs + (list bash-minimal + fmt + readline)) + (propagated-inputs + (list msgpack-cxx ;included in several installed headers + restinio-0.6 ;included in opendht/http.h + ;; The following are listed in the 'Requires.private' field of + ;; opendht.pc: + argon2 + gnutls + jsoncpp + nettle + openssl ;required for the DHT proxy + python)) + (native-inputs + (list autoconf + automake + pkg-config + python + python-cython + libtool + cppunit)) + (home-page "https://github.com/savoirfairelinux/opendht/") + (synopsis "Lightweight Distributed Hash Table (DHT) library") + (description "OpenDHT provides an easy to use distributed in-memory data store. Every node in the network can read and write values to the store. Values are distributed over the network, with redundancy. It includes the following features: @@ -3981,7 +3985,7 @@ library (get, put, etc.) with text values. @item dhtchat A very simple IM client working over the DHT. @end table") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public dhtnet ;; There is no tag nor release; use the latest available commit. |