diff mbox series

[bug#63893,v3,2/2] gnu: nix: Update to 2.16.1.

Message ID 1bb01ed6f9710f2cb8cdaac882154de33f56c971.1686493692.git.jgart@dismail.de
State New
Headers show
Series [bug#63893,v3,1/2] gnu: Add rapidcheck. | expand

Commit Message

jgart June 11, 2023, 2:29 p.m. UTC
* 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 <jgart@dismail.de>
---

Oops v3, forgot to add in the actual changes that were in the staging area ;()

 gnu/packages/package-management.scm           | 28 ++++++++++++----
 .../patches/nix-dont-build-html-doc.diff      | 33 ++++++++++++++-----
 2 files changed, 47 insertions(+), 14 deletions(-)

Comments

Zhu Zihao June 19, 2023, 3:47 p.m. UTC | #1
Hi, jgart!

I think the patch (includes your modification) is quite good for daily
usage, and I don't meet any bugs. Can you help commit these changes? Thanks!
jgart June 24, 2023, 5:12 p.m. UTC | #2
retitle 63893 [PATCH v3 2/2] gnu: nix: Update to 2.16.1
jgart June 24, 2023, 5:20 p.m. UTC | #3
Hi Trofi,

If you find the time, would you be able to help review this patch series?

I saw that you've done a fare amount of work on guix/nix packaging in nix-guix-gentoo and could use your expertise in this area for reviewing this patch set:

https://github.com/trofi/nix-guix-gentoo

Feel free to send a v4 patch and add yourself as co-author if you'd like to help directly.

Also, feel free to ignore if you don't have the time to review this one or help out on it.

I could particular use some guidance on enabling the tests for rapidcheck. My cmake knowledge is very fresh.

all best,

jgart
Sergey Trofimov June 24, 2023, 7:34 p.m. UTC | #4
Hi jgart,

I'm not that trofi you're referencing to. You could find the right 
email in their github profile.

"jgart" <jgart@dismail.de> writes:

> Hi Trofi,
>
> If you find the time, would you be able to help review this 
> patch series?
>
> I saw that you've done a fare amount of work on guix/nix 
> packaging in
> nix-guix-gentoo and could use your expertise in this area for 
> reviewing this
> patch set:
>
> https://github.com/trofi/nix-guix-gentoo
jgart June 25, 2023, 3:01 a.m. UTC | #5
hi Sergey,

Oh funny, ok, thanks for letting me know ;()
diff mbox series

Patch

diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 4791880375..bd989405c2 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -20,7 +20,8 @@ 
 ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
 ;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com>
-;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2022, 2023 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2023 jgart <jgart@dismail.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -56,6 +57,7 @@  (define-module (gnu packages package-management)
   #: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 @@  (define-public guix-modules
 (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 @@  (define-public nix
                 (apply invoke "make" "install"
                        (string-append "sysconfdir=" etc)
                        (string-append "profiledir=" etc "/profile.d")
-                       make-flags)))))))
+                       make-flags))))
+          (replace 'check
+            (lambda args
+              ;; Some test expect 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 @@  (define-public nix
            googletest
            jq
            libtool
-           pkg-config))
+           pkg-config
+           rapidcheck))
     (inputs
      (append (list boost
                    brotli
@@ -779,6 +794,7 @@  (define-public nix
                    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 <all_but_last@163.com>
 
-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