From 00cc1e637a8b3a5a4b508673733c94b9f2bdcb40 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Tue, 11 Jan 2022 10:25:09 +0300 Subject: [PATCH 2/2] gnu: nix: Update to 2.4. * gnu/packages/package-management.scm (nix): Update to 2.4. [source]: Switch to Github repository since upstream no longer provides tarball. [native-inputs]: Add autoconf, autoconf-archive, automake, bison, flex, gcc, googletest, jq, libtool. [inputs]: Add libarchive, libcpuid, lowdown, zlib. * gnu/packages/patches/nix-dont-build-html-doc.patch: New file. * gnu/local.mk(dist_patch_DATA): Add corresponding entry. --- gnu/local.mk | 2 + gnu/packages/package-management.scm | 66 +++++++++++++------ .../patches/nix-dont-build-html-doc.patch | 26 ++++++++ 3 files changed, 74 insertions(+), 20 deletions(-) create mode 100644 gnu/packages/patches/nix-dont-build-html-doc.patch diff --git a/gnu/local.mk b/gnu/local.mk index d5e19adea6..95c0e34e57 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -47,6 +47,7 @@ # Copyright © 2021 Dmitry Polyakov # Copyright © 2021 Andrew Tropin # Copyright © 2021 Simon Tournier +# Copyright © 2022 Zhu Zihao # # This file is part of GNU Guix. # @@ -1511,6 +1512,7 @@ dist_patch_DATA = \ %D%/packages/patches/nettle-3.5-check-_pkcs1_sec_decrypt-msg-len.patch \ %D%/packages/patches/nettle-3.5-CVE-2021-3580-pt1.patch \ %D%/packages/patches/nettle-3.5-CVE-2021-3580-pt2.patch \ + %D%/packages/patches/nix-dont-build-html-doc.patch \ %D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch \ %D%/packages/patches/ngircd-handle-zombies.patch \ %D%/packages/patches/ngless-unliftio.patch \ diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 265763cc74..4b41c01dff 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -20,6 +20,7 @@ ;;; Copyright © 2021 Ivan Gankevich ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 John Kehayias +;;; Copyright © 2022 Zhu Zihao ;;; ;;; This file is part of GNU Guix. ;;; @@ -62,6 +63,8 @@ (define-module (gnu packages package-management) #:use-module (gnu packages dbm) #:use-module (gnu packages docbook) #:use-module (gnu packages file) + #:use-module (gnu packages flex) + #:use-module (gnu packages gcc) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) @@ -70,6 +73,7 @@ (define-module (gnu packages package-management) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages guile-xyz) + #:use-module (gnu packages hardware) #:use-module (gnu packages hurd) #:use-module (gnu packages imagemagick) #:use-module (gnu packages less) @@ -77,6 +81,7 @@ (define-module (gnu packages package-management) #:use-module (gnu packages linux) #:use-module (gnu packages lisp) #:use-module (gnu packages man) + #:use-module (gnu packages markup) #:use-module (gnu packages nettle) #:use-module (gnu packages networking) #:use-module (gnu packages ninja) @@ -657,14 +662,18 @@ (define-public guix-icons (define-public nix (package (name "nix") - (version "2.3.16") - (source (origin - (method url-fetch) - (uri (string-append "https://releases.nixos.org/nix/nix-" - version "/nix-" version ".tar.xz")) - (sha256 - (base32 - "1g5aqavr6i3c1xln53w1pdh1kvlxrpnknb105m4jbd85kyv83rky")))) + (version "2.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "http://github.com/NixOS/nix") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1abgfw5ndqklm0x533li32l4azifz3f6lhaxm6s74b704043r7m2")) + (patches + (search-patches "nix-dont-build-html-doc.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--sysconfdir=/etc" "--enable-gc") @@ -680,18 +689,35 @@ (define-public nix (string-append "sysconfdir=" etc) (string-append "profiledir=" etc "/profile.d") make-flags))))))) - (native-inputs (list pkg-config)) - (inputs (list boost - brotli - bzip2 - curl - editline - libgc - libseccomp - libsodium - openssl - sqlite - xz)) + (native-inputs (list autoconf + autoconf-archive + automake + bison + flex + gcc-9 ;non-trivial designated initializers + googletest + jq + libtool + pkg-config)) + (inputs (append + (list boost + brotli + bzip2 + curl + editline + libarchive + libgc + libseccomp + libsodium + lowdown + openssl + sqlite + xz + zlib) + (if (string-prefix? "x86_64" (or (%current-target-system) + (%current-system))) + (list libcpuid) + '()))) (home-page "https://nixos.org/nix/") (synopsis "The Nix package manager") (description diff --git a/gnu/packages/patches/nix-dont-build-html-doc.patch b/gnu/packages/patches/nix-dont-build-html-doc.patch new file mode 100644 index 0000000000..79142bc215 --- /dev/null +++ b/gnu/packages/patches/nix-dont-build-html-doc.patch @@ -0,0 +1,26 @@ +"--enable-doc-gen" configure flag will enable HTML document generation that requires mdbook. +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 + $(trace-gen) $(dummy-env) NIX_PATH=nix/corepkgs=corepkgs $(bindir)/nix __dump-builtins > $@.tmp + @mv $@.tmp $@ + +-# Generate the HTML manual. +-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 + 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 + + endif -- 2.34.0