;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; Copyright © 2016 ng0 ;;; Copyright © 2019 Tobias Geerinckx-Rice ;;; ;;; 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 tbb) #:use-module (guix packages) #:use-module (guix licenses) #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (gnu packages)) (define-public tbb (package (name "tbb") (version "2020.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/01org/tbb") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1vrh1mr9jmj46as9y8j5q1hpvihzd1iq4jr1y4x9a19dw8b7yk56")) (modules '((guix build utils))) (snippet '(begin (substitute* "build/common.inc" (("export tbb_build_prefix.+$") "export tbb_build_prefix?=guix\n")) ;; Don't capture the build time and kernel version. (substitute* "build/version_info_linux.sh" (("uname -srv") "uname -s") (("`date -u`") "01 Jan 1970")) (substitute* "build/linux.inc" (("os_kernel_version:=.*") "os_kernel_version:=5\n") (("os_version:=.*") "os_version:=1\n")) #t)))) (outputs '("out" "doc")) (build-system gnu-build-system) (arguments `(#:test-target "test" #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")) #:phases (modify-phases %standard-phases (add-after 'unpack 'fail-on-test-errors (lambda _ (substitute* "Makefile" (("-\\$\\(MAKE") "$(MAKE")) #t)) (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (substitute* "build/linux.gcc.inc" (("LIB_LINK_FLAGS =") (string-append "LIB_LINK_FLAGS = -Wl,-rpath=" (assoc-ref outputs "out") "/lib"))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((doc (string-append (assoc-ref outputs "doc") "/doc")) (examples (string-append doc "/examples")) (lib (string-append (assoc-ref outputs "out") "/lib")) (include (string-append (assoc-ref outputs "out") "/include"))) (mkdir-p lib) (for-each (lambda (f) (copy-file f (string-append lib "/" (basename f)))) (find-files "build/guix_release" "\\.so")) (copy-recursively "doc" doc) (copy-recursively "examples" examples) (copy-recursively "include" include) #t)))))) (home-page "https://www.threadingbuildingblocks.org") (synopsis "C++ library for parallel programming") (description "Threading Building Blocks (TBB) is a C++ runtime library that abstracts the low-level threading details necessary for optimal multi-core performance. It uses common C++ templates and coding style to eliminate tedious threading implementation work. It provides parallel loop constructs, asynchronous tasks, synchronization primitives, atomic operations, and more.") (license asl2.0))) fix in the URL regexp. (find-origin-remote): Adjust accordingly. Reported-by: Ludovic Courtès <ludo@gnu.org> Maxim Cournoyer 2020-10-19maint: update-guix-package: Prevent accidentally breaking guix pull....Fixes <https://issues.guix.gnu.org/43893>. This changes the 'update-guix-package' tool so that it: 1. Always uses a clean checkout to compute the hash of the updated 'guix' package. 2. Ensures the commit used in the updated 'guix' package definition has already been pushed upstream. * build-aux/update-guix-package.scm (%savannah-guix-git-repo-push-url): New variable. (with-input-pipe-to-string, with-temporary-git-worktree): New syntaxes. (find-origin-remote, git-add-worktree): New procedures. (commit-already-pushed?): New predicate. (main): Check the commit used has already been pushed upstream and compute the hash from a clean checkout. * doc/contributing.texi (Updating the Guix Package): Document it. * .dir-locals.el (scheme-mode): Fix indentation of with-temporary-git-worktree. Maxim Cournoyer 2020-05-28update-guix-package: Use 'origin-hash'....* gnu/packages/package-management.scm (main): Use 'origin-hash' instead of 'origin-sha256'. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> Vincent Legoll 2018-12-07maint: update-guix-package: Really register GC roots....Previously we'd pass a relative file name to 'add-indirect-root', which the daemon would interpret as relative to "/". Consequently, checkouts were not protected from GC. * build-aux/update-guix-package.scm (main): Pass an absolute file name to 'add-indirect-root'. Ludovic Courtès