;;; 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))))) 11import: print: Handle patches that are origins....* guix/import/print.scm (package->code)[source->code]: Handle patches that are origins. * tests/print.scm (pkg-with-origin-input): Add 'patches' field. (pkg-with-origin-patch, pkg-with-origin-patch-source): New variables. ("package with origin patch"): New test. Ludovic Courtès 2021-11-11import: print: Correctly handle URI lists....* guix/import/print.scm (package->code)[factorized-uri-code]: New procedure. [source->code]: Use it, and factorize URI when it's a list. * tests/print.scm (pkg-with-origin-input): Check origin URI to a list. Ludovic Courtès 2021-11-11import: print: Properly render packages with origins as inputs....* guix/import/print.scm (package->code)[source->code]: Check whether VERSION is true before calling 'factorize-uri'. [package-lists->code]: Add clause for inputs that are origins. * tests/print.scm (pkg-with-origin-input, pkg-with-origin-input-source): New variables. ("package with origin input"): New test. Ludovic Courtès 2021-07-11import: print: Emit new-style package inputs when possible....* guix/import/print.scm (redundant-input-labels?): New procedure. (package->code)[package-lists->code]: Rename to... [inputs->code]: ... this. When 'redundant-input-labels?' returns true, emit label-less inputs. Adjust callers to new name. * tests/print.scm (pkg-with-inputs): Adjust accordingly. Ludovic Courtès