;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Brant Gardner ;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2020 Efraim Flashner ;;; ;;; 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 . (define-module (gnu packages distributed) #:use-module (guix packages) #:use-module (guix utils) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (gnu packages databases) #:use-module (gnu packages pkg-config) #:use-module (gnu packages tls) #:use-module (gnu packages curl) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) #:use-module (gnu packages perl) #:use-module (gnu packages sqlite) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz)) (define-public boinc-client (package (name "boinc-client") (version "7.16.17") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/boinc/boinc") (commit (string-append "client_release/" (version-major+minor version) "/" version)))) (file-name (git-file-name "boinc" version)) (sha256 (base32 "1p8y3mnf5yfhavhqxwf9v68prg1601h8q1pllm5z89zh661di3mj")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-server"))) (inputs `(("openssl" ,openssl) ("curl" ,curl) ("wxwidgets" ,wxwidgets) ("gtk+" ,gtk+) ("gdk-pixbuf" ,gdk-pixbuf) ("libnotify" ,libnotify) ("sqlite" ,sqlite) ("python" ,python) ("python-pyserial" ,python-pyserial))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("libtool" ,libtool) ("pkg-config" ,pkg-config))) (synopsis "Help cutting-edge science research using your computer") (description "BOINC is a platform for high-throughput computing on a large scale (thousands or millions of computers). It can be used for volunteer computing (using consumer devices) or grid computing (using organizational resources). It supports virtualized, parallel, and GPU-based applications.") (home-page "https://boinc.berkeley.edu/") ;; BOINC is distributed as LGPL3+, with some individual modules under GPL3+. (license (list license:lgpl3+ license:gpl3+)))) (define-public boinc-server ;; XXX The server and client packages duplicate many files such as /lib. ;; TODO: consolidate them? (package (inherit boinc-client) (name "boinc-server") (arguments '(#:configure-flags '("--disable-client" "--disable-manager") #:parallel-build? #f)) (inputs `(("openssl" ,openssl) ("curl" ,curl) ("mariadb:dev" ,mariadb "dev") ("zlib" ,zlib))) (propagated-inputs `(("python" ,python-wrapper) ("perl" ,perl))))) gt;....* guix/packages.scm (<content-hash>): New record type. (define-content-hash-constructor, build-content-hash) (content-hash): New macros. (print-content-hash): New procedure. (<origin>): Rename constructor to '%origin'. [sha256]: Remove field. [hash]: New field. Adjust users. (origin-compatibility-helper, origin): New macros. (origin-sha256): New deprecated procedure. (origin->derivation): Adjust accordingly. * tests/packages.scm ("package-source-derivation, origin, sha512"): New test. * guix/tests.scm: Hide (gcrypt hash) 'sha256' for proper syntax matching. * tests/challenge.scm: Add #:prefix for (gcrypt hash) and adjust users. * tests/derivations.scm: Likewise. * tests/store.scm: Likewise. * tests/graph.scm ("bag DAG, including origins"): Provide 'sha256' field with the right length. * gnu/packages/aspell.scm (aspell-dictionary) (aspell-dict-ca, aspell-dict-it): Use 'hash' and 'content-hash' for proper syntax matching. * gnu/packages/bash.scm (bash-patch): Rename 'sha256' to 'sha256-bv'. * gnu/packages/bootstrap.scm (bootstrap-executable): Rename 'sha256' to 'bv'. * gnu/packages/readline.scm (readline-patch): Likewise. * gnu/packages/virtualization.scm (qemu-patch): Rename 'sha256' to 'sha256-bv'. * guix/import/utils.scm: Hide (gcrypt hash) 'sha256'. Ludovic Courtès