mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
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:
parent
dcff9bda97
commit
c61557b1b6
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 @@ (define-module (gnu packages hyperledger)
|
|||
#: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 @@ (define-module (gnu packages machine-learning)
|
|||
#: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 @@ (define-public kaldi-gstreamer-server
|
|||
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
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)))
|
Loading…
Reference in a new issue