;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2020 Marius Bakke ;;; ;;; 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 ninja) #:use-module ((guix licenses) #:select (asl2.0)) #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages python)) (define-public ninja (package (name "ninja") (version "1.10.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/ninja-build/ninja") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0mspq4mvx41qri2v2zlg2y3znx5gfw6d8s3czbcfpr2218qbpz55")))) (build-system gnu-build-system) (inputs `(("python" ,python-wrapper))) (arguments '(#:phases (modify-phases %standard-phases (replace 'configure (lambda _ (substitute* "src/subprocess-posix.cc" (("/bin/sh") (which "sh"))) (substitute* "src/subprocess_test.cc" (("/bin/echo") (which "echo"))))) (replace 'build (lambda _ (invoke "./configure.py" "--bootstrap"))) (replace 'check (lambda _ (invoke "./configure.py") (invoke "./ninja" "ninja_test") (invoke "./ninja_test"))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin")) (doc (string-append out "/share/doc/ninja"))) (install-file "ninja" bin) (install-file "doc/manual.asciidoc" doc))))))) (home-page "https://ninja-build.org/") (synopsis "Small build system") (description "Ninja is a small build system with a focus on speed. It differs from other build systems in two major respects: it is designed to have its input files generated by a higher-level build system, and it is designed to run builds as fast as possible.") (license asl2.0))) eq?....* gnu/system/shadow.scm (account-activation): Delete duplicate (eq?) users and groups before transforming them to specs and asserting, that names are unique. Leo Prikler 2021-01-20shadow: End duplicate warnings with new lines....The change from formatted message causes the line to no longer automatically be ended. This will need to be reverted once again, when duplicate names become hard errors. * gnu/system/shadow.scm (assert-unique-account-names) (assert-unique-group-names): End format strings in ~%. Leo Prikler 2021-01-13Reapply "system: Assert, that user and group names are unique."...* gnu/system/shadow.scm (assert-unique-account-names) (assert-unique-group-names): Demote formatted-message to warning. Leo Prikler 2021-01-12Revert "system: Assert, that user and group names are unique."...This reverts commit a3002104a84c60556b6616d100cb98019e48759d, which breaks certain system configurations like: $ guix system reconfigure config.scm guix system: error: the following groups appear more than once: lp Jonathan Brielmaier 2021-01-11system: Assert, that user and group names are unique....*gnu/system/shadow.scm (find-duplicates): New variable. (assert-unique-account-names, assert-unique-group-names): New variables. (account-activation): Use them here. Leo Prikler