;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016, 2018 Eric Bavier ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice ;;; Copyright © 2021, 2022 Greg Hogan ;;; Copyright © 2022 Maxim Cournoyer ;;; ;;; 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 ccache) #:use-module (guix gexp) #:use-module (guix packages) #:use-module ((guix licenses) #:select (gpl3+)) #:use-module (guix download) #:use-module (guix build-system cmake) #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (gnu packages perl) #:use-module (gnu packages ruby)) (define-public ccache (package (name "ccache") (version "4.7.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/ccache/ccache/releases/download/v" version "/ccache-" version ".tar.xz")) (sha256 (base32 "0djfm138m863g772bnq7m2mfwh3y8sqxczc3yssg1yiybp8n836z")))) (build-system cmake-build-system) (arguments (list #:configure-flags ;; The backend must be explicitly disabled to build without Redis. #~(list "-DREDIS_STORAGE_BACKEND=OFF") #:phases #~(modify-phases %standard-phases (add-before 'configure 'fix-shell ;; Run early whilst we're still in the source directory. (lambda _ (substitute* (list "test/run" "test/suites/base.bash" "unittest/test_hashutil.cpp") (("compgen -e") "env | cut -d= -f1") (("#!/bin/sh") (string-append "#!" (which "sh")))))) (add-before 'check 'set-home ;; Tests require a writable HOME. (lambda _ (setenv "HOME" (getenv "TMPDIR"))))))) (native-inputs (list perl ruby-asciidoctor which)) (inputs (list zlib `(,zstd "lib"))) (home-page "https://ccache.dev/") (synopsis "Compiler cache") (description "Ccache is a compiler cache. It speeds up recompilation by caching previous compilations and detecting when the same compilation is being done again. Supported languages are C, C++, Objective-C and Objective-C++.") (license gpl3+))) tests: install: Fix gui-installed-desktop-os-encrypted test....* gnu/tests/base.scm (run-basic-test): Add a 'desktop?' argument. Wait 30 seconds before trying to switch to TTY1 on desktop. * gnu/tests/install.scm (guided-installation-test): Use 512MiB of RAM and pass the desktop argument to "run-basic-test". Mathieu Othacehe 2020-04-07services: guix: Add 'set-http-proxy' action....Fixes <https://bugs.gnu.org/25569>. Reported by Divan Santana <divan@santanas.co.za>. * gnu/services/base.scm (shepherd-set-http-proxy-action): New procedure. (guix-shepherd-service): Add 'actions' field. Change 'start' to a lambda; check the value of the "http_proxy" environment variable and add "http_proxy" and "https_proxy" to #:environment-variables as a function of that. * gnu/tests/base.scm (run-basic-test)["guix-daemon set-http-proxy action", "guix-daemon set-http-proxy action, clear"]: New tests. * doc/guix.texi (Base Services): Document it. Ludovic Courtès 2020-04-06services: syslog: Create log files as non-world-readable....Partly fixes <https://bugs.gnu.org/40405>. Reported by Diego Nicola Barbato <dnbarbato@posteo.de>. * gnu/services/base.scm (syslog-service-type): Change 'start' method to set umask to #o137 before spawning syslogd. * gnu/tests/base.scm (run-basic-test)["/var/log/messages is not world-readable"]: New test. Ludovic Courtès 2020-03-05tests: 'run-basic-test' can enter a root password....* gnu/tests/base.scm (run-basic-test): Add #:root-password and honor it. Ludovic Courtès