From 51a7de78cebf893ebd15169f6af154b04b734e31 Mon Sep 17 00:00:00 2001 From: Zhu Zihao Date: Wed, 10 Nov 2021 19:36:01 +0800 Subject: [PATCH 3/3] 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.diff: New file. * gnu/local.mk(dist_patch_DATA): Add corresponding entry. --- gnu/local.mk | 1 + gnu/packages/package-management.scm | 67 +++++++++++++------ .../patches/nix-dont-build-html-doc.diff | 26 +++++++ 3 files changed, 74 insertions(+), 20 deletions(-) create mode 100644 gnu/packages/patches/nix-dont-build-html-doc.diff diff --git a/gnu/local.mk b/gnu/local.mk index 3a849ed2b0..28c01a02ca 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1529,6 +1529,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.diff \ %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 3c9d4da941..f45d09db78 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2020 Vincent Legoll ;;; Copyright © 2021 Ivan Gankevich ;;; Copyright © 2021 Maxim Cournoyer +;;; Copyright © 2021 Zhu Zihao ;;; ;;; This file is part of GNU Guix. ;;; @@ -60,6 +61,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) @@ -68,12 +71,14 @@ (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 less) #:use-module (gnu packages libedit) #: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) @@ -596,14 +601,18 @@ (define-public current-guix (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.diff")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--sysconfdir=/etc" "--enable-gc") @@ -619,18 +628,36 @@ (define-public nix (string-append "sysconfdir=" etc) (string-append "profiledir=" etc "/profile.d") make-flags))))))) - (native-inputs `(("pkg-config" ,pkg-config))) - (inputs `(("boost" ,boost) - ("brotli" ,brotli) - ("bzip2" ,bzip2) - ("curl" ,curl) - ("editline" ,editline) - ("libgc" ,libgc) - ("libseccomp" ,libseccomp) - ("libsodium" ,libsodium) - ("openssl" ,openssl) - ("sqlite" ,sqlite) - ("xz" ,xz))) + (native-inputs + `(("autoconf" ,autoconf) + ("autoconf-archive" ,autoconf-archive) + ("automake" ,automake) + ("bison" ,bison) + ("flex" ,flex) + ("gcc" ,gcc-9) ;non-trivial designated initializers + ("googletest" ,googletest) + ("jq" ,jq) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (inputs + `(("boost" ,boost) + ("brotli" ,brotli) + ("bzip2" ,bzip2) + ("curl" ,curl) + ("editline" ,editline) + ("libarchive" ,libarchive) + ,@(if (string-prefix? "x86_64" (or (%current-target-system) + (%current-system))) + `(("libcpuid" ,libcpuid)) + '()) + ("libgc" ,libgc) + ("libseccomp" ,libseccomp) + ("libsodium" ,libsodium) + ("lowdown" ,lowdown) + ("openssl" ,openssl) + ("sqlite" ,sqlite) + ("xz" ,xz) + ("zlib" ,zlib))) (home-page "https://nixos.org/nix/") (synopsis "The Nix package manager") (description diff --git a/gnu/packages/patches/nix-dont-build-html-doc.diff b/gnu/packages/patches/nix-dont-build-html-doc.diff new file mode 100644 index 0000000000..79142bc215 --- /dev/null +++ b/gnu/packages/patches/nix-dont-build-html-doc.diff @@ -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.33.1