gnu: gRPC: Move to (gnu packages rpc).

* gnu/packages/machine-learning.scm (grpc): Move to ...
* gnu/packages/rpc.scm: ... here.  New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Adjust accordingly.
* gnu/packages/hyperledger.scm: Adjust module imports.
This commit is contained in:
Marius Bakke 2020-03-21 12:17:11 +01:00
parent dcff9bda97
commit c61557b1b6
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
4 changed files with 106 additions and 75 deletions

@ -441,6 +441,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/rednotebook.scm \
%D%/packages/regex.scm \
%D%/packages/robotics.scm \
%D%/packages/rpc.scm \
%D%/packages/rrdtool.scm \
%D%/packages/rsync.scm \
%D%/packages/ruby.scm \

@ -39,6 +39,7 @@
#:use-module (gnu packages popt)
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages rpc)
#:use-module (gnu packages tbb)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web))

@ -73,12 +73,12 @@
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages rpc)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages statistics)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages swig)
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
@ -1296,80 +1296,6 @@ based on the Kaldi toolkit and the GStreamer framework and implemented in
Python.")
(license license:bsd-2))))
(define-public grpc
(package
(name "grpc")
(version "1.16.1")
(outputs '("out" "static"))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/grpc/grpc.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1jimqz3115f9pli5w6ik9wi7mjc7ix6y7yrq4a1ab9fc3dalj7p2"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no test target
#:configure-flags
(list "-DgRPC_ZLIB_PROVIDER=package"
"-DgRPC_CARES_PROVIDER=package"
"-DgRPC_SSL_PROVIDER=package"
"-DgRPC_PROTOBUF_PROVIDER=package"
(string-append "-DCMAKE_INSTALL_PREFIX="
(assoc-ref %outputs "out"))
"-DCMAKE_INSTALL_LIBDIR=lib"
(string-append "-DCMAKE_INSTALL_RPATH="
(assoc-ref %outputs "out") "/lib")
"-DCMAKE_VERBOSE_MAKEFILE=ON")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'configure-shared
(lambda* (#:key (configure-flags '()) #:allow-other-keys)
(mkdir "../build-shared")
(with-directory-excursion "../build-shared"
(apply invoke
"cmake" "../source"
"-DBUILD_SHARED_LIBS=ON"
configure-flags)
(apply invoke "make"
`("-j" ,(number->string (parallel-job-count)))))))
(add-after 'install 'install-shared-libraries
(lambda _
(with-directory-excursion "../build-shared"
(invoke "make" "install"))))
(add-before 'strip 'move-static-libs
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(static (assoc-ref outputs "static")))
(mkdir-p (string-append static "/lib"))
(with-directory-excursion
(string-append out "/lib")
(for-each
(lambda (file)
(rename-file file
(string-append static "/lib/" file)))
(find-files "." "\\.a$"))))
#t)))))
(inputs
`(("c-ares" ,c-ares/cmake)
("openssl" ,openssl)
("zlib" ,zlib)))
(native-inputs
`(("protobuf" ,protobuf)
("python" ,python-wrapper)))
(home-page "https://grpc.io")
(synopsis "High performance universal RPC framework")
(description "gRPC is a modern high performance @dfn{Remote Procedure Call}
(RPC) framework that can run in any environment. It can efficiently connect
services in and across data centers with pluggable support for load balancing,
tracing, health checking and authentication. It is also applicable in last
mile of distributed computing to connect devices, mobile applications and
browsers to backend services.")
(license license:asl2.0)))
;; Note that Tensorflow includes a "third_party" directory, which seems to not
;; only contain modified subsets of upstream library source code, but also
;; adapter headers provided by Google (such as the fft.h header, which is not

103
gnu/packages/rpc.scm Normal file

@ -0,0 +1,103 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages rpc)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (gnu packages adns)
#:use-module (gnu packages compression)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages tls))
(define-public grpc
(package
(name "grpc")
(version "1.16.1")
(outputs '("out" "static"))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/grpc/grpc.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1jimqz3115f9pli5w6ik9wi7mjc7ix6y7yrq4a1ab9fc3dalj7p2"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no test target
#:configure-flags
(list "-DgRPC_ZLIB_PROVIDER=package"
"-DgRPC_CARES_PROVIDER=package"
"-DgRPC_SSL_PROVIDER=package"
"-DgRPC_PROTOBUF_PROVIDER=package"
(string-append "-DCMAKE_INSTALL_PREFIX="
(assoc-ref %outputs "out"))
"-DCMAKE_INSTALL_LIBDIR=lib"
(string-append "-DCMAKE_INSTALL_RPATH="
(assoc-ref %outputs "out") "/lib")
"-DCMAKE_VERBOSE_MAKEFILE=ON")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'configure-shared
(lambda* (#:key (configure-flags '()) #:allow-other-keys)
(mkdir "../build-shared")
(with-directory-excursion "../build-shared"
(apply invoke
"cmake" "../source"
"-DBUILD_SHARED_LIBS=ON"
configure-flags)
(apply invoke "make"
`("-j" ,(number->string (parallel-job-count)))))))
(add-after 'install 'install-shared-libraries
(lambda _
(with-directory-excursion "../build-shared"
(invoke "make" "install"))))
(add-before 'strip 'move-static-libs
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(static (assoc-ref outputs "static")))
(mkdir-p (string-append static "/lib"))
(with-directory-excursion
(string-append out "/lib")
(for-each
(lambda (file)
(rename-file file
(string-append static "/lib/" file)))
(find-files "." "\\.a$"))))
#t)))))
(inputs
`(("c-ares" ,c-ares/cmake)
("openssl" ,openssl)
("zlib" ,zlib)))
(native-inputs
`(("protobuf" ,protobuf)
("python" ,python-wrapper)))
(home-page "https://grpc.io")
(synopsis "High performance universal RPC framework")
(description "gRPC is a modern high performance @dfn{Remote Procedure Call}
(RPC) framework that can run in any environment. It can efficiently connect
services in and across data centers with pluggable support for load balancing,
tracing, health checking and authentication. It is also applicable in last
mile of distributed computing to connect devices, mobile applications and
browsers to backend services.")
(license license:asl2.0)))