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 @@ | |||
|   #: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
									
								
							
							
						
						
									
										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))) | ||||
		Reference in a new issue