From b5baa98053363180a2dedcb11c96efcf5bd20ece Mon Sep 17 00:00:00 2001 From: Zhu Zihao Date: Mon, 5 Jun 2023 00:43:46 +0800 Subject: [PATCH] gnu: nix: Update to 2.16.1. * gnu/packages/package-management.scm (nix): Update to 2.16.1. [source]: Use HTTPS for package source. [inputs]: Add nlohmann-json. [native-inputs]: Add rapidcheck. [arguments]<#:phases>: In phase "check", change the value of environment variable "NIX_STORE" to "/nix/store" temporarily. * gnu/packages/patches/nix-dont-build-html-doc.diff: Update. Co-authored-by: jgart --- gnu/packages/package-management.scm | 28 ++++++++++++---- .../patches/nix-dont-build-html-doc.diff | 33 ++++++++++++++----- 2 files changed, 47 insertions(+), 14 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index e3dba508f0..9312d34242 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -20,7 +20,8 @@ ;;; Copyright © 2021 Ivan Gankevich ;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer ;;; Copyright © 2021 John Kehayias -;;; Copyright © 2022 Zhu Zihao +;;; Copyright © 2022, 2023 Zhu Zihao +;;; Copyright © 2023 jgart ;;; ;;; This file is part of GNU Guix. ;;; @@ -56,6 +57,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages cmake) #:use-module (gnu packages cpio) + #:use-module (gnu packages cpp) #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages databases) @@ -731,16 +733,16 @@ high-performance computing} clusters.") (define-public nix (package (name "nix") - (version "2.5.1") + (version "2.16.1") (source (origin (method git-fetch) (uri (git-reference - (url "http://github.com/NixOS/nix") + (url "https://github.com/NixOS/nix") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1m8rmv8i6lg83pmalvjlq1fn8mcghn3ngjv3kw1kqsa45ymj5sqq")) + (base32 "1rca8ljd33dmvh9bqk6sy1zxk97aawcr6k1f7hlm4d1cd9mrcw7x")) (patches (search-patches "nix-dont-build-html-doc.diff")))) (build-system gnu-build-system) @@ -757,7 +759,19 @@ high-performance computing} clusters.") (apply invoke "make" "install" (string-append "sysconfdir=" etc) (string-append "profiledir=" etc "/profile.d") - make-flags))))))) + make-flags)))) + (replace 'check + (lambda args + ;; A few tests expect the environment variable NIX_STORE to be + ;; "/nix/store" + (let ((original-NIX_STORE (getenv "NIX_STORE"))) + (dynamic-wind + (lambda () + (setenv "NIX_STORE" "/nix/store")) + (lambda () + (apply (assoc-ref %standard-phases 'check) args)) + (lambda () + (setenv "NIX_STORE" original-NIX_STORE))))))))) (native-inputs (list autoconf autoconf-archive @@ -767,7 +781,8 @@ high-performance computing} clusters.") googletest jq libtool - pkg-config)) + pkg-config + rapidcheck)) (inputs (append (list boost brotli @@ -779,6 +794,7 @@ high-performance computing} clusters.") libseccomp libsodium lowdown + nlohmann-json openssl sqlite xz diff --git a/gnu/packages/patches/nix-dont-build-html-doc.diff b/gnu/packages/patches/nix-dont-build-html-doc.diff index 79142bc215..2eb45117b0 100644 --- a/gnu/packages/patches/nix-dont-build-html-doc.diff +++ b/gnu/packages/patches/nix-dont-build-html-doc.diff @@ -3,24 +3,41 @@ We can't simply disable it because we need manpages. Author: Zhu Zihao -diff --git a/doc/manual/local.mk b/doc/manual/local.mk -index e43d9f2fb..c323d1847 100644 --- a/doc/manual/local.mk +++ b/doc/manual/local.mk -@@ -69,8 +69,6 @@ $(d)/builtins.json: $(bindir)/nix +@@ -138,11 +138,6 @@ $(trace-gen) $(dummy-env) NIX_PATH=nix/corepkgs=corepkgs $(bindir)/nix __dump-builtins > $@.tmp @mv $@.tmp $@ -# Generate the HTML manual. +-.PHONY: manual-html +-manual-html: $(docdir)/manual/index.html -install: $(docdir)/manual/index.html - +- # Generate 'nix' manpages. install: $(mandir)/man1/nix3-manpages -@@ -94,7 +92,5 @@ doc/manual/generated/man1/nix3-manpages: $(d)/src/command-ref/new-cli + man: doc/manual/generated/man1/nix3-manpages +@@ -167,23 +162,4 @@ done @touch $@ --$(docdir)/manual/index.html: $(MANUAL_SRCS) $(d)/book.toml $(d)/custom.css $(d)/src/SUMMARY.md $(d)/src/command-ref/new-cli $(d)/src/command-ref/conf-file.md $(d)/src/expressions/builtins.md $(call rwildcard, $(d)/src, *.md) -- $(trace-gen) RUST_LOG=warn mdbook build doc/manual -d $(DESTDIR)$(docdir)/manual - +-$(docdir)/manual/index.html: $(MANUAL_SRCS) $(d)/book.toml $(d)/anchors.jq $(d)/custom.css $(d)/src/SUMMARY.md $(d)/src/command-ref/new-cli $(d)/src/contributing/experimental-feature-descriptions.md $(d)/src/command-ref/conf-file.md $(d)/src/language/builtins.md +- $(trace-gen) \ +- tmp="$$(mktemp -d)"; \ +- cp -r doc/manual "$$tmp"; \ +- find "$$tmp" -name '*.md' | while read -r file; do \ +- $(call process-includes,$$file,$$file); \ +- done; \ +- find "$$tmp" -name '*.md' | while read -r file; do \ +- docroot="$$(realpath --relative-to="$$(dirname "$$file")" $$tmp/manual/src)"; \ +- sed -i "s,@docroot@,$$docroot,g" "$$file"; \ +- done; \ +- set -euo pipefail; \ +- RUST_LOG=warn mdbook build "$$tmp/manual" -d $(DESTDIR)$(docdir)/manual.tmp 2>&1 \ +- | { grep -Fv "because fragment resolution isn't implemented" || :; }; \ +- rm -rf "$$tmp/manual" +- @rm -rf $(DESTDIR)$(docdir)/manual +- @mv $(DESTDIR)$(docdir)/manual.tmp/html $(DESTDIR)$(docdir)/manual +- @rm -rf $(DESTDIR)$(docdir)/manual.tmp +- endif