~ruther/guix-local

e36774495faabae54f25286e065136d48cb22c4d — Maxim Cournoyer 1 year, 11 months ago a033b85
gnu: opendht: Update to 3.1.11-0.318d02c.

* gnu/packages/networking.scm (opendht): Update to 3.1.11-0.318d02c.

Change-Id: I36f7bb3a5979e3286c9a54b29dceb7daf6161b7a
1 files changed, 116 insertions(+), 112 deletions(-)

M gnu/packages/networking.scm
M gnu/packages/networking.scm => gnu/packages/networking.scm +116 -112
@@ 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.