GNU logs - #75330, boring messages


Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#75330] [PATCH] gnu: nim: Update to 2.2.0.
Resent-From: ashish.is@HIDDEN
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Fri, 03 Jan 2025 23:41:02 +0000
Resent-Message-ID: <handler.75330.B.173594766110788 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 75330
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 75330 <at> debbugs.gnu.org
Cc: Ashish SHUKLA <ashish.is@HIDDEN>
X-Debbugs-Original-To: guix-patches@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.173594766110788
          (code B ref -1); Fri, 03 Jan 2025 23:41:02 +0000
Received: (at submit) by debbugs.gnu.org; 3 Jan 2025 23:41:01 +0000
Received: from localhost ([127.0.0.1]:52604 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tTrHo-0002nk-Cq
	for submit <at> debbugs.gnu.org; Fri, 03 Jan 2025 18:41:01 -0500
Received: from lists.gnu.org ([2001:470:142::17]:56746)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <ashish.is@HIDDEN>)
 id 1tTrHj-0002nR-HA
 for submit <at> debbugs.gnu.org; Fri, 03 Jan 2025 18:40:58 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ashish.is@HIDDEN>)
 id 1tTrHb-0005Ir-Sk
 for guix-patches@HIDDEN; Fri, 03 Jan 2025 18:40:48 -0500
Received: from anamika.lostca.se ([65.21.75.227])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <ashish.is@HIDDEN>)
 id 1tTrHY-0005ro-W0
 for guix-patches@HIDDEN; Fri, 03 Jan 2025 18:40:47 -0500
Received: from borboleta.inet6.in (unknown [IPv6:2a01:4f9:3070:1aea::2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested) (Authenticated sender: abbe)
 by anamika.lostca.se (Postfix) with ESMTPSA id 6C65945C12;
 Fri,  3 Jan 2025 23:40:41 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lostca.se; s=anamika; 
 t=1735947641;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 content-transfer-encoding:content-transfer-encoding;
 bh=puMqjraij+iJTUXzbdGSpDGwffZwA9eR8Xc9/pZ4qB0=;
 b=aL5lZApptalswnKz6Ty1wJKph1S7NtCMwvR86xO73eVRlIWaceMMSOtGF4QBiJaamdMvKA
 MUT6Nfbwx3XWB8D6pCV0aCFaUUfD39aKnDuH6/uR0JL8BnGE67DxOfxhy9shabBTfikrZ0
 fw5zSuHouHj3zvd3F1NQmX/Wm3KVJtI=
From: ashish.is@HIDDEN
Date: Fri,  3 Jan 2025 23:40:24 +0000
Message-ID: <dd724ba8a4e2c3938ad5b4ada563dfc711638650.1735947624.git.ashish.is@HIDDEN>
X-Mailer: git-send-email 2.47.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Received-SPF: pass client-ip=65.21.75.227; envelope-from=ashish.is@HIDDEN;
 helo=anamika.lostca.se
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.9 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.1 (/)

From: Ashish SHUKLA <ashish.is@HIDDEN>

* gnu/packages/nim.scm (%atlas-commit, %sat-commit, atlas, sat): New
variables.
(nim): Update to 2.2.0. [arguments]: Use G-expressions. <#:phases>:
Add phase "copy-deps". Update phases "patch-installer",
"patch-dynamic-libraries", and "patch-more-shebangs".

Change-Id: Ibd8fdaf7f033755ada3e4638a9f3a9295cd5e3b2
---
 gnu/packages/nim.scm | 275 ++++++++++++++++++++++++++++---------------
 1 file changed, 180 insertions(+), 95 deletions(-)

diff --git a/gnu/packages/nim.scm b/gnu/packages/nim.scm
index ebcff26c7b..af2b8234a2 100644
--- a/gnu/packages/nim.scm
+++ b/gnu/packages/nim.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2022 (unmatched parenthesis <paren@HIDDEN>
 ;;; Copyright © 2022 Trevor Richards <trev@HIDDEN>
 ;;; Copyright © 2023 Gruruya <greytest@HIDDEN>
+;;; Copyright © 2025 Ashish SHUKLA <ashish.is@HIDDEN>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,6 +26,8 @@
 (define-module (gnu packages nim)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix gexp)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (gnu packages bdw-gc)
@@ -34,119 +37,201 @@ (define-module (gnu packages nim)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tls))
 
+;; referenced in koch.nim
+(define %atlas-commit "5faec3e9a33afe99a7d22377dd1b45a5391f5504")
+(define %sat-commit "faf1617f44d7632ee9601ebc13887644925dcc01")
+
+(define atlas
+  (origin
+    (method git-fetch)
+    (uri
+      (git-reference
+        (url "https://github.com/nim-lang/atlas.git")
+        (commit %atlas-commit)))
+    (sha256 (base32 "1yd3pcg46blkxfkpcvymfln44wgryq9v1mcxblqjhgfi0rvdjm0v"))))
+
+(define sat
+  (origin
+    (method git-fetch)
+    (uri
+      (git-reference
+        (url "https://github.com/nim-lang/sat.git")
+        (commit %sat-commit)))
+    (sha256 (base32 "1dxbc41wbvkpdp6q3qz1r38lpn32447qkkgyh2s12ym6bx4ynni4"))))
+
 (define-public nim
   (package
     (name "nim")
-    (version "1.6.12")
+    (version "2.2.0")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "https://nim-lang.org/download/"
                           name "-" version ".tar.xz"))
       (sha256
-       (base32 "1hjd9dxhqzn2ifr988li8q7v6kxpxlcqbdllfd6lsq3knw50pvxc"))))
+       (base32 "0g498iv2bbkjghf401g6zb548a0ggkgxl76xxj3y8q4pkj24566f"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f          ; TODO: Investigate tests failures.
        #:phases
-         (modify-phases %standard-phases
-           (delete 'configure)          ; no configure script
-           (add-after 'unpack 'patch-installer
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 (substitute* "install.sh"
-                  (("/usr/local") out)
-                  (("/lib/nim") "/lib")
-                  (("/opt/nimble") (string-append out "/share/nimble"))
-                  (("configdir=/etc/nim")
-                   (string-append "configdir=" out "/etc/nim"))))))
-           (add-after 'unpack 'patch-dynamic-libraries
-             (lambda* (#:key inputs native-inputs #:allow-other-keys)
-               ;(substitute* "compiler/nodejs.nim"
-               ;  (("nodejs")
-               ;   (search-input-file (or native-inputs inputs)
-               ;                      "/bin/nodejs"))
-               ;  (("node")
-               ;   (search-input-file (or native-inputs inputs)
-               ;                      "/bin/node")))
-               (substitute* "lib/system.nim"
-                 (("libgc\\.so")
-                  (search-input-file (or native-inputs inputs)
-                                     "/lib/libgc.so")))
-               ;(substitute* "lib/wrappers/mysql.nim"
-               ;  (("\(libmysqlclient|libmariadbclient\)\\.so")
-               ;   (search-input-file (or native-inputs inputs)
-               ;                      "/lib/libmariadbclient.so")))
-               (substitute* "lib/wrappers/openssl.nim"
-                 (("libssl\\.so")
-                  (search-input-file (or native-inputs inputs)
-                                     "/lib/libssl.so"))
-                 (("libcrypto\\.so")
-                  (search-input-file (or native-inputs inputs)
-                                     "/lib/libcrypto.so")))
-               (substitute* "lib/wrappers/pcre.nim"
-                 (("libpcre\\.so")
-                  (search-input-file (or native-inputs inputs)
-                                     "/lib/libpcre.so")))
-               ;(substitute* "lib/wrappers/postgres.nim"
-               ;  (("libpg\\.so")
-               ;   (search-input-file (or native-inputs inputs)
-               ;                      "/lib/libpg.so")))
-               (substitute* "lib/wrappers/sqlite3.nim"
-                 (("libsqlite3\\.so")
-                  (search-input-file (or native-inputs inputs)
-                                     "/lib/libsqlite3.so")))))
-           (add-after 'patch-source-shebangs 'patch-more-shebangs
-             (lambda _
-               (let ((sh (which "sh")))
+       ,#~(modify-phases %standard-phases
+             (delete 'configure)          ; no configure script
+             (add-after 'unpack 'copy-deps:www
+               (lambda _
+                 (copy-recursively #$atlas "dist/atlas"
+                                   #:keep-permissions? #f)
+                 (copy-recursively #$sat "dist/atlas/dist/sat"
+                                   #:keep-permissions? #f)))
+             (add-after 'unpack 'patch-installer
+               (lambda* (#:key outputs #:allow-other-keys)
+                 (let ((out (assoc-ref outputs "out")))
+                   (substitute* "install.sh"
+                    (("/usr/local") out)
+                    (("/lib/nim") "/lib")
+                    (("/opt/nimble") (string-append out "/share/nimble"))
+                    (("configdir=\"/etc/nim\"")
+                     (string-append "configdir=\"" out "/etc/nim\""))))))
+             (add-after 'unpack 'patch-dynamic-libraries
+               (lambda* (#:key inputs native-inputs #:allow-other-keys)
+                 (substitute* "lib/system.nim"
+                   (("libgc\\.so")
+                    (search-input-file (or native-inputs inputs)
+                                       "/lib/libgc.so")))
+                 (substitute* "lib/wrappers/openssl.nim"
+                   (("libssl\\.so")
+                    (search-input-file (or native-inputs inputs)
+                                       "/lib/libssl.so"))
+                   (("libcrypto\\.so")
+                    (search-input-file (or native-inputs inputs)
+                                       "/lib/libcrypto.so")))
+                 (substitute* "lib/wrappers/pcre.nim"
+                   (("libpcre\\.so")
+                    (search-input-file (or native-inputs inputs)
+                                       "/lib/libpcre.so")))))
+             (add-after 'patch-source-shebangs 'patch-more-shebangs
+               (lambda _
+                 (use-modules (ice-9 rdelim))
+                 (use-modules (ice-9 regex))
+
+                 (define sh (which "sh"))
+                 (define sh-len (string-length sh))
+
+                 (define rx1 (make-regexp "^(.*NIM_CHAR data\\[)7(\\+1\\];.*)$" regexp/extended))
+                 ;; } TM__HZdw8BhppcTQo8DIK46LSg_5 = { 7 | NIM_STRLIT_FLAG, "/bin/sh" };
+                 (define rx2 (make-regexp
+                               (string-append "^(\\} )"
+                                               "([^[:space:]]+)"
+                                               "( = \\{ )"
+                                               "7"
+                                               "( [|] NIM_STRLIT_FLAG, )"
+                                               "\"/bin/sh\""
+                                               "(.*)$")
+                               regexp/extended))
+
+                 (define (fixup-1 matches out)
+                   (format out "~a~a~a\n"
+                           (match:substring matches 1)
+                           sh-len
+                           (match:substring matches 2))
+                   #f)
+
+                 (define (fixup-2 matches out)
+                   (format out "~a~a~a~a~a~s~a\n"
+                           (match:substring matches 1)
+                           (match:substring matches 2)
+                           (match:substring matches 3)
+                           sh-len
+                           (match:substring matches 4)
+                           sh
+                           (match:substring matches 5))
+                   (match:substring matches 2))
+
+                 (define fixups
+                   (list (cons rx1 fixup-1)
+                         (cons rx2 fixup-2)))
+
+                 (define (rx-match rx line in out)
+                   (if (null? rx)
+                       (begin
+                         (format out "~a\n" line)
+                         #f)
+
+                       (let ((matches (regexp-exec (caar rx) line)))
+                         (if (regexp-match? matches)
+                             ((cdar rx) matches out)
+                             (rx-match (cdr rx) line in out)))))
+
+                 (define (fixup-bin-sh-references in out)
+                   (let loop ((line (read-line in))
+                              (flagged #f))
+                     (let* ((pat (and (string? flagged)
+                                      (format #f "{7, (NimStrPayload*)&~a};" flagged)))
+                            (pat-len (if (string? pat) (string-length pat) 0)))
+                       (unless (eof-object? line)
+                         (if (and (string? pat) (string-suffix? pat line))
+                             (begin
+                               (format out
+                                       "~a{~a, (NimStrPayload*)&~a};\n"
+                                       (substring line 0
+                                                  (- (string-length line) pat-len))
+                                       sh-len
+                                       flagged)
+                               (loop (read-line in) flagged))
+
+                             (loop (read-line in)
+                                   (rx-match fixups line in out)))))))
+
                  (substitute* '("tests/stdlib/tosprocterminate.nim"
                                 "tests/stdlib/tstrscans.nim"
                                 "lib/pure/osproc.nim"
                                 "lib/pure/strscans.nim")
                    (("/bin/sh") sh))
-                 (substitute* (find-files "c_code" "@m\\.\\.@slib@spure@sosproc\\.nim\\.c")
-                   (("\"/bin/sh\", 7") (format #f "~s, ~s" sh (string-length sh)))))))
-           (replace 'build
-             (lambda* (#:key (parallel-build? #t) #:allow-other-keys)
-               (setenv "XDG_CACHE_HOME" "./cache-home")
-               (setenv "HOME" "./cache-home")
-               (mkdir-p "./cache-home")
-               (invoke "sh" "build.sh"
-                       "--parallel"
-                       (if parallel-build?
-                         (number->string (parallel-job-count))
-                         "1"))
-               (sleep 5)        ; Wait for the parallel builds to finish.
-               (invoke "./bin/nim" "c" "-d:release" "koch")
-               (invoke "./koch" "boot" "-d:release")
-               (invoke "./koch" "tools")))
-           (replace 'check
-             (lambda* (#:key tests? #:allow-other-keys)
-               (when tests?
-                 (invoke "./koch" "tests"))))
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
-                 (mkdir-p bin)
-                 (invoke "./install.sh" bin)
-                 (for-each (lambda (file)
-                             (install-file file bin))
-                           (delete "testament" (find-files "bin"))))))
-           (add-after 'install 'install-completions
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((share (string-append (assoc-ref outputs "out") "/share"))
-                      (bash  (string-append share "/bash-completion/completions"))
-                      (zsh   (string-append share "/zsh/vendor_completions")))
-                 (mkdir-p bash)
-                 (mkdir-p zsh)
-                 (copy-file "tools/nim.bash-completion"
-                            (string-append bash "/nim"))
-                 (copy-file "dist/nimble/nimble.bash-completion"
-                            (string-append bash "/nimble"))
-                 (copy-file "tools/nim.zsh-completion"
-                            (string-append zsh "/_nim"))
-                 (copy-file "dist/nimble/nimble.bash-completion"
-                            (string-append zsh "/_nimble"))))))))
+
+                 (for-each (lambda (f)
+                             (with-atomic-file-replacement f fixup-bin-sh-references))
+                           (find-files "c_code" "@m\\.\\.@slib@spure@sosproc\\.nim\\.c"))))
+             (replace 'build
+               (lambda* (#:key (parallel-build? #t) #:allow-other-keys)
+                 (setenv "XDG_CACHE_HOME" "./cache-home")
+                 (setenv "HOME" "./cache-home")
+                 (setenv "SHELL" (which "sh"))
+                 (mkdir-p "./cache-home")
+                 (invoke "sh" "build.sh"
+                         "--parallel"
+                         (if parallel-build?
+                           (number->string (parallel-job-count))
+                           "1"))
+                 (sleep 5)        ; Wait for the parallel builds to finish.
+                 (invoke "./bin/nim" "c" "-d:release" "koch")
+                 (invoke "./koch" "boot" "-d:release")
+                 (invoke "./koch" "tools")))
+             (replace 'check
+               (lambda* (#:key tests? #:allow-other-keys)
+                 (when tests?
+                   (invoke "./koch" "tests"))))
+             (replace 'install
+               (lambda* (#:key outputs #:allow-other-keys)
+                 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+                   (mkdir-p bin)
+                   (invoke "./install.sh" bin)
+                   (for-each (lambda (file)
+                               (install-file file bin))
+                             (delete "testament" (find-files "bin"))))))
+             (add-after 'install 'install-completions
+               (lambda* (#:key outputs #:allow-other-keys)
+                 (let* ((share (string-append (assoc-ref outputs "out") "/share"))
+                        (bash  (string-append share "/bash-completion/completions"))
+                        (zsh   (string-append share "/zsh/vendor_completions")))
+                   (mkdir-p bash)
+                   (mkdir-p zsh)
+                   (copy-file "tools/nim.bash-completion"
+                              (string-append bash "/nim"))
+                   (copy-file "dist/nimble/nimble.bash-completion"
+                              (string-append bash "/nimble"))
+                   (copy-file "tools/nim.zsh-completion"
+                              (string-append zsh "/_nim"))
+                   (copy-file "dist/nimble/nimble.bash-completion"
+                              (string-append zsh "/_nimble"))))))))
     (inputs (list libgc openssl pcre sqlite))
     (native-inputs (list nss-certs parallel))
     (home-page "https://nim-lang.org")

base-commit: 851c550290ee39ea8beeded60730f2da82b32e1c
-- 
2.47.1





Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: ashish.is@HIDDEN
Subject: bug#75330: Acknowledgement ([PATCH] gnu: nim: Update to 2.2.0.)
Message-ID: <handler.75330.B.173594766110788.ack <at> debbugs.gnu.org>
References: <dd724ba8a4e2c3938ad5b4ada563dfc711638650.1735947624.git.ashish.is@HIDDEN>
X-Gnu-PR-Message: ack 75330
X-Gnu-PR-Package: guix-patches
X-Gnu-PR-Keywords: patch
Reply-To: 75330 <at> debbugs.gnu.org
Date: Fri, 03 Jan 2025 23:41:03 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 guix-patches@HIDDEN

If you wish to submit further information on this problem, please
send it to 75330 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
75330: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D75330
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#75330] [PATCH] gnu: nim: Update to 2.2.0.
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 23 Feb 2025 22:59:01 +0000
Resent-Message-ID: <handler.75330.B75330.174035150926899 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75330
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: ashish.is@HIDDEN
Cc: 75330 <at> debbugs.gnu.org
Received: via spool by 75330-submit <at> debbugs.gnu.org id=B75330.174035150926899
          (code B ref 75330); Sun, 23 Feb 2025 22:59:01 +0000
Received: (at 75330) by debbugs.gnu.org; 23 Feb 2025 22:58:29 +0000
Received: from localhost ([127.0.0.1]:37288 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tmKvc-0006zn-Qo
	for submit <at> debbugs.gnu.org; Sun, 23 Feb 2025 17:58:29 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:58588)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1tmKvZ-0006zQ-AQ
 for 75330 <at> debbugs.gnu.org; Sun, 23 Feb 2025 17:58:27 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ludo@HIDDEN>)
 id 1tmKvT-0002II-OJ; Sun, 23 Feb 2025 17:58:19 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To:
 From; bh=uIRW2C0WiTDMY2jQvJW8+9Xb+2ajD4HWt9sDsnluGKQ=; b=jlYA289oUG51g45m4yGT
 2Y4NT3PnxJyhmoOVQUrK+6gz8us3OJ+eNKhqIF+WouwIf9arZIhLhnCMDLUuRB6L8dfy3qtZj71sG
 SliNvj3s0zdzBcMa9FOpGK0gwI9PUgQ7NrrH7cm2ADvI2fX7dCdfqQOm+himmBeWwzfpvEHXMIZX/
 mRhm21wI5nqupL7Tu1Buvvo/H37Ug4fMxz4uKkoy4rActnz/UeU3DOmry7VMUDB0BK/+OzgfUkXIS
 RzAKhRmxPEmBHENl6MlzCOdHwzQUeRcbCh2QddF6BQPLAmVnK5XMe+uyx2FzzJ0Nx6wDUwsay3E7/
 aM+zU+kD2SzNDw==;
From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
In-Reply-To: <dd724ba8a4e2c3938ad5b4ada563dfc711638650.1735947624.git.ashish.is@HIDDEN>
 (ashish is's message of "Fri, 3 Jan 2025 23:40:24 +0000")
References: <dd724ba8a4e2c3938ad5b4ada563dfc711638650.1735947624.git.ashish.is@HIDDEN>
Date: Sun, 23 Feb 2025 23:58:00 +0100
Message-ID: <8734g4uv47.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Hi,

ashish.is@HIDDEN skribis:

> From: Ashish SHUKLA <ashish.is@HIDDEN>
>
> * gnu/packages/nim.scm (%atlas-commit, %sat-commit, atlas, sat): New
> variables.
> (nim): Update to 2.2.0. [arguments]: Use G-expressions. <#:phases>:
> Add phase "copy-deps". Update phases "patch-installer",
> "patch-dynamic-libraries", and "patch-more-shebangs".
>
> Change-Id: Ibd8fdaf7f033755ada3e4638a9f3a9295cd5e3b2

[...]

> +;; referenced in koch.nim
> +(define %atlas-commit "5faec3e9a33afe99a7d22377dd1b45a5391f5504")
> +(define %sat-commit "faf1617f44d7632ee9601ebc13887644925dcc01")

Since there=E2=80=99s only one reference to each of these variables, I thin=
k the
commit ID can go directly in the =E2=80=98commit=E2=80=99 field, without de=
fining these
variables.

> +             (add-after 'unpack 'copy-deps:www
> +               (lambda _
> +                 (copy-recursively #$atlas "dist/atlas"
> +                                   #:keep-permissions? #f)
> +                 (copy-recursively #$sat "dist/atlas/dist/sat"
> +                                   #:keep-permissions? #f)))

Could you add a =E2=80=98file-name to =E2=80=98atlas=E2=80=99 and =E2=80=98=
sat=E2=80=99, add the both to
=E2=80=98inputs=E2=80=99 of this package, and then refer to them in this ph=
ase like so:

  (copy-recursively #$(this-package-input "atlas-checkout") "dist/atlas"
                    #:keep-permissions? #f)

=E2=80=A6 where =E2=80=9Catlas-checkout=E2=80=9D must match the =E2=80=98fi=
le-name=E2=80=99 field of =E2=80=98atlas=E2=80=99.

That way, those inputs are visible to code the traverses the package
graph.

> +             (add-after 'patch-source-shebangs 'patch-more-shebangs
> +               (lambda _
> +                 (use-modules (ice-9 rdelim))
> +                 (use-modules (ice-9 regex))

Please use the #:modules parameters instead of =E2=80=98use-modules=E2=80=
=99 in the
middle of the phase.

> +                 (define sh (which "sh"))
> +                 (define sh-len (string-length sh))
> +
> +                 (define rx1 (make-regexp "^(.*NIM_CHAR data\\[)7(\\+1\\=
];.*)$" regexp/extended))
> +                 ;; } TM__HZdw8BhppcTQo8DIK46LSg_5 =3D { 7 | NIM_STRLIT_=
FLAG, "/bin/sh" };
> +                 (define rx2 (make-regexp
> +                               (string-append "^(\\} )"
> +                                               "([^[:space:]]+)"
> +                                               "( =3D \\{ )"
> +                                               "7"
> +                                               "( [|] NIM_STRLIT_FLAG, )"
> +                                               "\"/bin/sh\""
> +                                               "(.*)$")
> +                               regexp/extended))
> +
> +                 (define (fixup-1 matches out)
> +                   (format out "~a~a~a\n"
> +                           (match:substring matches 1)
> +                           sh-len
> +                           (match:substring matches 2))
> +                   #f)
> +
> +                 (define (fixup-2 matches out)
> +                   (format out "~a~a~a~a~a~s~a\n"
> +                           (match:substring matches 1)
> +                           (match:substring matches 2)
> +                           (match:substring matches 3)
> +                           sh-len
> +                           (match:substring matches 4)
> +                           sh
> +                           (match:substring matches 5))
> +                   (match:substring matches 2))
> +
> +                 (define fixups
> +                   (list (cons rx1 fixup-1)
> +                         (cons rx2 fixup-2)))

I think this whole part could use some comments, at the very least for
the cryptic =E2=80=98rx1=E2=80=99.

> +                 (define (rx-match rx line in out)
> +                   (if (null? rx)
> +                       (begin
> +                         (format out "~a\n" line)
> +                         #f)
> +
> +                       (let ((matches (regexp-exec (caar rx) line)))
> +                         (if (regexp-match? matches)
> +                             ((cdar rx) matches out)
> +                             (rx-match (cdr rx) line in out)))))

Please use =E2=80=98match=E2=80=99 instead of cdar & co. (info "(guix) Data=
 Types and
Pattern Matching").

Apart from that LGTM.

Could you send an updated patch?

Thanks,
Ludo=E2=80=99.




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#75330] [PATCH v2] gnu: nim: Update to 2.2.2
Resent-From: ashish.is@HIDDEN
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Mon, 24 Feb 2025 22:30:02 +0000
Resent-Message-ID: <handler.75330.B75330.17404361437866 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75330
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: ludo@HIDDEN
Cc: 75330 <at> debbugs.gnu.org, Ashish SHUKLA <ashish.is@HIDDEN>
Received: via spool by 75330-submit <at> debbugs.gnu.org id=B75330.17404361437866
          (code B ref 75330); Mon, 24 Feb 2025 22:30:02 +0000
Received: (at 75330) by debbugs.gnu.org; 24 Feb 2025 22:29:03 +0000
Received: from localhost ([127.0.0.1]:43244 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tmgwY-00022F-IK
	for submit <at> debbugs.gnu.org; Mon, 24 Feb 2025 17:29:03 -0500
Received: from anamika.lostca.se ([2a01:4f9:3b:505c::2]:36864)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <ashish.is@HIDDEN>)
 id 1tmgwU-00021v-Tp
 for 75330 <at> debbugs.gnu.org; Mon, 24 Feb 2025 17:28:52 -0500
Received: from borboleta.inet6.in (unknown [IPv6:2a01:4f9:3070:1aea::2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested) (Authenticated sender: abbe)
 by anamika.lostca.se (Postfix) with ESMTPSA id A7B8EBED6;
 Mon, 24 Feb 2025 22:28:42 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lostca.se; s=anamika; 
 t=1740436122;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 content-transfer-encoding:content-transfer-encoding:
 in-reply-to:in-reply-to:references:references;
 bh=hIIkr6CEX7o40Wd9HqYKiH0AY+UyFqBzbyIz//Ekihc=;
 b=A9Ivlgsiq5RycdPVR7tq3dHqJRi2X/te3NcUU5QIGVcSyKoolkL6ppgjGobh2UH3Qn+Tb0
 m1tWuHBBVaXYC/rnNBNCii00KcgypUgGAuM6zVyDTF3aipEHLSQucQniQhckI3nbYllnM2
 n/xN+lam7HXgmG//0mVBzdwnVooqXRM=
From: ashish.is@HIDDEN
Date: Mon, 24 Feb 2025 22:27:35 +0000
Message-ID: <e3b8f44478acd7d48dc00933a5add937cb146563.1740436054.git.ashish.is@HIDDEN>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <8734g4uv47.fsf@HIDDEN>
References: <8734g4uv47.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

From: Ashish SHUKLA <ashish.is@HIDDEN>

* gnu/packages/nim.scm (atlas, sat): New variables.
(nim): Update to 2.2.0. [arguments]: Use G-expressions.
<#:modules> Import modules used by phases. <#:phases>:
Add phase "copy-deps". Update phases "patch-installer",
"patch-dynamic-libraries", and "patch-more-shebangs".

Change-Id: I3f88dd6a3b78699e91e59b23ededf9f1923eb721
---
Hi,

Thanks for the helpful review. I hope I addressed all of the concerns, and while here, I also updatd it to 2.2.2.

 gnu/packages/nim.scm | 285 ++++++++++++++++++++++++++++---------------
 1 file changed, 189 insertions(+), 96 deletions(-)

diff --git a/gnu/packages/nim.scm b/gnu/packages/nim.scm
index ebcff26c7b..90ce4a7134 100644
--- a/gnu/packages/nim.scm
+++ b/gnu/packages/nim.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2022 (unmatched parenthesis <paren@HIDDEN>
 ;;; Copyright © 2022 Trevor Richards <trev@HIDDEN>
 ;;; Copyright © 2023 Gruruya <greytest@HIDDEN>
+;;; Copyright © 2025 Ashish SHUKLA <ashish.is@HIDDEN>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,6 +26,8 @@
 (define-module (gnu packages nim)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix gexp)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (gnu packages bdw-gc)
@@ -34,120 +37,210 @@ (define-module (gnu packages nim)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tls))
 
+(define atlas
+  (origin
+    (method git-fetch)
+    (file-name "atlas-checkout")
+    (uri
+     (git-reference
+      (url "https://github.com/nim-lang/atlas.git")
+      ;; referenced in koch.nim
+      (commit "5faec3e9a33afe99a7d22377dd1b45a5391f5504")))
+    (sha256 (base32 "1yd3pcg46blkxfkpcvymfln44wgryq9v1mcxblqjhgfi0rvdjm0v"))))
+
+(define sat
+  (origin
+    (method git-fetch)
+    (file-name "sat-checkout")
+    (uri
+     (git-reference
+      (url "https://github.com/nim-lang/sat.git")
+      ;; referenced in koch.nim
+      (commit "faf1617f44d7632ee9601ebc13887644925dcc01")))
+    (sha256 (base32 "1dxbc41wbvkpdp6q3qz1r38lpn32447qkkgyh2s12ym6bx4ynni4"))))
+
 (define-public nim
   (package
     (name "nim")
-    (version "1.6.12")
+    (version "2.2.2")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "https://nim-lang.org/download/"
                           name "-" version ".tar.xz"))
       (sha256
-       (base32 "1hjd9dxhqzn2ifr988li8q7v6kxpxlcqbdllfd6lsq3knw50pvxc"))))
+       (base32 "07wazlsj3yby4vb008b2rairdkl0hhnnxhpxi6jaa2wwmj3rpk3z"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f          ; TODO: Investigate tests failures.
+       #:modules
+       ((ice-9 rdelim)
+        (ice-9 regex)
+        (ice-9 match)
+        ,@%default-gnu-modules)
        #:phases
-         (modify-phases %standard-phases
-           (delete 'configure)          ; no configure script
-           (add-after 'unpack 'patch-installer
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 (substitute* "install.sh"
-                  (("/usr/local") out)
-                  (("/lib/nim") "/lib")
-                  (("/opt/nimble") (string-append out "/share/nimble"))
-                  (("configdir=/etc/nim")
-                   (string-append "configdir=" out "/etc/nim"))))))
-           (add-after 'unpack 'patch-dynamic-libraries
-             (lambda* (#:key inputs native-inputs #:allow-other-keys)
-               ;(substitute* "compiler/nodejs.nim"
-               ;  (("nodejs")
-               ;   (search-input-file (or native-inputs inputs)
-               ;                      "/bin/nodejs"))
-               ;  (("node")
-               ;   (search-input-file (or native-inputs inputs)
-               ;                      "/bin/node")))
-               (substitute* "lib/system.nim"
-                 (("libgc\\.so")
-                  (search-input-file (or native-inputs inputs)
-                                     "/lib/libgc.so")))
-               ;(substitute* "lib/wrappers/mysql.nim"
-               ;  (("\(libmysqlclient|libmariadbclient\)\\.so")
-               ;   (search-input-file (or native-inputs inputs)
-               ;                      "/lib/libmariadbclient.so")))
-               (substitute* "lib/wrappers/openssl.nim"
-                 (("libssl\\.so")
-                  (search-input-file (or native-inputs inputs)
-                                     "/lib/libssl.so"))
-                 (("libcrypto\\.so")
-                  (search-input-file (or native-inputs inputs)
-                                     "/lib/libcrypto.so")))
-               (substitute* "lib/wrappers/pcre.nim"
-                 (("libpcre\\.so")
-                  (search-input-file (or native-inputs inputs)
-                                     "/lib/libpcre.so")))
-               ;(substitute* "lib/wrappers/postgres.nim"
-               ;  (("libpg\\.so")
-               ;   (search-input-file (or native-inputs inputs)
-               ;                      "/lib/libpg.so")))
-               (substitute* "lib/wrappers/sqlite3.nim"
-                 (("libsqlite3\\.so")
-                  (search-input-file (or native-inputs inputs)
-                                     "/lib/libsqlite3.so")))))
-           (add-after 'patch-source-shebangs 'patch-more-shebangs
-             (lambda _
-               (let ((sh (which "sh")))
+       ,#~(modify-phases %standard-phases
+             (delete 'configure)          ; no configure script
+             (add-after 'unpack 'copy-deps:www
+               (lambda _
+                 (copy-recursively #$(this-package-input "atlas-checkout") "dist/atlas"
+                                   #:keep-permissions? #f)
+                 (copy-recursively #$(this-package-input "sat-checkout") "dist/atlas/dist/sat"
+                                   #:keep-permissions? #f)))
+             (add-after 'unpack 'patch-installer
+               (lambda* (#:key outputs #:allow-other-keys)
+                 (let ((out (assoc-ref outputs "out")))
+                   (substitute* "install.sh"
+                    (("/usr/local") out)
+                    (("/lib/nim") "/")
+                    (("/opt/nimble") (string-append out "/share/nimble"))
+                    (("configdir=\"/etc/nim\"")
+                     (string-append "configdir=\"" out "/etc/nim\""))))))
+             (add-after 'unpack 'patch-dynamic-libraries
+               (lambda* (#:key inputs native-inputs #:allow-other-keys)
+                 (substitute* "lib/system.nim"
+                   (("libgc\\.so")
+                    (search-input-file (or native-inputs inputs)
+                                       "/lib/libgc.so")))
+                 (substitute* "lib/wrappers/openssl.nim"
+                   (("libssl\\.so")
+                    (search-input-file (or native-inputs inputs)
+                                       "/lib/libssl.so"))
+                   (("libcrypto\\.so")
+                    (search-input-file (or native-inputs inputs)
+                                       "/lib/libcrypto.so")))
+                 (substitute* "lib/wrappers/pcre.nim"
+                   (("libpcre\\.so")
+                    (search-input-file (or native-inputs inputs)
+                                       "/lib/libpcre.so")))))
+             (add-after 'patch-source-shebangs 'patch-more-shebangs
+               (lambda _
+
+                 (define sh (which "sh"))
+                 (define sh-len (string-length sh))
+
+                 (define rx1 (make-regexp "^(.*NIM_CHAR data\\[)7(\\+1\\];.*)$" regexp/extended))
+                 ;; } TM__HZdw8BhppcTQo8DIK46LSg_5 = { 7 | NIM_STRLIT_FLAG, "/bin/sh" };
+                 (define rx2 (make-regexp
+                               (string-append "^(\\} )"
+                                               "([^[:space:]]+)"
+                                               "( = \\{ )"
+                                               "7"
+                                               "( [|] NIM_STRLIT_FLAG, )"
+                                               "\"/bin/sh\""
+                                               "(.*)$")
+                               regexp/extended))
+
+                 (define (fixup-1 matches out)
+                   (format out "~a~a~a\n"
+                           ;;   NI cap; NIM_CHAR data[(string-length (which "sh"))+1];
+                           (match:substring matches 1)  ;; NI cap; NIM_CHAR data[
+                           sh-len                       ;; (string-length (which "sh")
+                           (match:substring matches 2)) ;; +1];
+                   #f)
+
+                 (define (fixup-2 matches out)
+                   (format out "~a~a~a~a~a~s~a\n"
+                           ;; } TM__HZdw8BhppcTQo8DIK46LSg_5 = { (string-length (which "sh")) | NIM_STRLIT_FLAG, (which "sh") };
+                           (match:substring matches 1)  ;; }
+                           (match:substring matches 2)  ;; TM__HZdw8BhppcTQo8DIK46LSg_5
+                           (match:substring matches 3)  ;; = {
+                           sh-len                       ;; (string-length (which "sh"))
+                           (match:substring matches 4)  ;; | NIM_STRLIT_FLAG,
+                           sh                           ;; (which "sh")
+                           (match:substring matches 5)) ;; };
+                   ;; return a reference to patch
+                   (match:substring matches 2)) ;; TM__HZdw8BhppcTQo8DIK46LSg_5
+
+                 (define fixups
+                   (list (list rx1 fixup-1)
+                         (list rx2 fixup-2)))
+
+                 (define (rx-match rx-list line in out)
+                   (if (null? rx-list)
+                       (begin
+                         (format out "~a\n" line)
+                         #f)
+
+                       (match rx-list
+                         (((rx fixup) . rest)
+                          (let ((matches (regexp-exec rx line)))
+                            (if (regexp-match? matches)
+                                (fixup matches out)
+                                (rx-match rest line in out)))))))
+
+                 (define (fixup-bin-sh-references in out)
+                   (let loop ((line (read-line in))
+                              (flagged #f))
+                     (let* ((pat (and (string? flagged)
+                                      (format #f "{7, (NimStrPayload*)&~a};" flagged)))
+                            (pat-len (if (string? pat) (string-length pat) 0)))
+                       (unless (eof-object? line)
+                         (if (and (string? pat) (string-suffix? pat line))
+                             (begin
+                               (format out
+                                       "~a{~a, (NimStrPayload*)&~a};\n"
+                                       (substring line 0
+                                                  (- (string-length line) pat-len))
+                                       sh-len
+                                       flagged)
+                               (loop (read-line in) flagged))
+
+                             (loop (read-line in)
+                                   (rx-match fixups line in out)))))))
+
                  (substitute* '("tests/stdlib/tosprocterminate.nim"
                                 "tests/stdlib/tstrscans.nim"
                                 "lib/pure/osproc.nim"
                                 "lib/pure/strscans.nim")
                    (("/bin/sh") sh))
-                 (substitute* (find-files "c_code" "@m\\.\\.@slib@spure@sosproc\\.nim\\.c")
-                   (("\"/bin/sh\", 7") (format #f "~s, ~s" sh (string-length sh)))))))
-           (replace 'build
-             (lambda* (#:key (parallel-build? #t) #:allow-other-keys)
-               (setenv "XDG_CACHE_HOME" "./cache-home")
-               (setenv "HOME" "./cache-home")
-               (mkdir-p "./cache-home")
-               (invoke "sh" "build.sh"
-                       "--parallel"
-                       (if parallel-build?
-                         (number->string (parallel-job-count))
-                         "1"))
-               (sleep 5)        ; Wait for the parallel builds to finish.
-               (invoke "./bin/nim" "c" "-d:release" "koch")
-               (invoke "./koch" "boot" "-d:release")
-               (invoke "./koch" "tools")))
-           (replace 'check
-             (lambda* (#:key tests? #:allow-other-keys)
-               (when tests?
-                 (invoke "./koch" "tests"))))
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
-                 (mkdir-p bin)
-                 (invoke "./install.sh" bin)
-                 (for-each (lambda (file)
-                             (install-file file bin))
-                           (delete "testament" (find-files "bin"))))))
-           (add-after 'install 'install-completions
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((share (string-append (assoc-ref outputs "out") "/share"))
-                      (bash  (string-append share "/bash-completion/completions"))
-                      (zsh   (string-append share "/zsh/vendor_completions")))
-                 (mkdir-p bash)
-                 (mkdir-p zsh)
-                 (copy-file "tools/nim.bash-completion"
-                            (string-append bash "/nim"))
-                 (copy-file "dist/nimble/nimble.bash-completion"
-                            (string-append bash "/nimble"))
-                 (copy-file "tools/nim.zsh-completion"
-                            (string-append zsh "/_nim"))
-                 (copy-file "dist/nimble/nimble.bash-completion"
-                            (string-append zsh "/_nimble"))))))))
-    (inputs (list libgc openssl pcre sqlite))
+
+                 (for-each (lambda (f)
+                             (with-atomic-file-replacement f fixup-bin-sh-references))
+                           (find-files "c_code" "@m\\.\\.@slib@spure@sosproc\\.nim\\.c"))))
+             (replace 'build
+               (lambda* (#:key (parallel-build? #t) #:allow-other-keys)
+                 (setenv "XDG_CACHE_HOME" "./cache-home")
+                 (setenv "HOME" "./cache-home")
+                 (setenv "SHELL" (which "sh"))
+                 (mkdir-p "./cache-home")
+                 (invoke "sh" "build.sh"
+                         "--parallel"
+                         (if parallel-build?
+                           (number->string (parallel-job-count))
+                           "1"))
+                 (sleep 5)        ; Wait for the parallel builds to finish.
+                 (invoke "./bin/nim" "c" "-d:release" "koch")
+                 (invoke "./koch" "boot" "-d:release")
+                 (invoke "./koch" "tools")))
+             (replace 'check
+               (lambda* (#:key tests? #:allow-other-keys)
+                 (when tests?
+                   (invoke "./koch" "tests"))))
+             (replace 'install
+               (lambda* (#:key outputs #:allow-other-keys)
+                 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+                   (mkdir-p bin)
+                   (invoke "./install.sh" bin)
+                   (for-each (lambda (file)
+                               (install-file file bin))
+                             (delete "testament" (find-files "bin"))))))
+             (add-after 'install 'install-completions
+               (lambda* (#:key outputs #:allow-other-keys)
+                 (let* ((share (string-append (assoc-ref outputs "out") "/share"))
+                        (bash  (string-append share "/bash-completion/completions"))
+                        (zsh   (string-append share "/zsh/vendor_completions")))
+                   (mkdir-p bash)
+                   (mkdir-p zsh)
+                   (copy-file "tools/nim.bash-completion"
+                              (string-append bash "/nim"))
+                   (copy-file "dist/nimble/nimble.bash-completion"
+                              (string-append bash "/nimble"))
+                   (copy-file "tools/nim.zsh-completion"
+                              (string-append zsh "/_nim"))
+                   (copy-file "dist/nimble/nimble.bash-completion"
+                              (string-append zsh "/_nimble"))))))))
+    (inputs (list atlas libgc openssl pcre sat sqlite))
     (native-inputs (list nss-certs parallel))
     (home-page "https://nim-lang.org")
     (synopsis "Statically-typed, imperative programming language")

base-commit: e08dd8c33a38d692d7754c1061e30a24928e23a9
-- 
2.48.1





Message received at control <at> debbugs.gnu.org:


Received: (at control) by debbugs.gnu.org; 24 Feb 2025 22:30:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 24 17:30:40 2025
Received: from localhost ([127.0.0.1]:43257 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tmgyB-0002DA-Nt
	for submit <at> debbugs.gnu.org; Mon, 24 Feb 2025 17:30:39 -0500
Received: from anamika.lostca.se ([65.21.75.227]:40300)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <ashish.is@HIDDEN>)
 id 1tmgy7-0002Cr-R9
 for control <at> debbugs.gnu.org; Mon, 24 Feb 2025 17:30:33 -0500
Received: from localhost (unknown
 [IPv6:2a02:9140:3880:f200:c154:4db:394b:b080])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits)
 server-digest SHA256) (No client certificate requested)
 (Authenticated sender: abbe)
 by anamika.lostca.se (Postfix) with ESMTPSA id 6D95FBEDA;
 Mon, 24 Feb 2025 22:30:25 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lostca.se; s=anamika; 
 t=1740436225;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:mime-version:mime-version:content-type:content-type;
 bh=LrsJ/Gm2pyvZkO6J+J+C40rnqVotgRCqkyHl2XtDgKI=;
 b=G3B8xz/ldQ2WC56U5NcH/c7NdvQ2407KxvvdOtEevng77rfctdHZJ2tJD4BpH9jNSUsk24
 /tY+qbY1sdLBKyn24Pw4CAZQcGm0+K4PElGoA21obNfkAgc4H7j/LmqHN+vtLDy/Kzf0Kq
 ioOrEs9JVpwrVjWqA6CV5peF9Wp5PLo=
Mime-Version: 1.0
Content-Type: multipart/signed;
 boundary=0aae02d7b761a0c7288a055c25ad3d42f866c47c53ad161939c0e12e1b37;
 micalg=pgp-sha512; protocol="application/pgp-signature"
Date: Mon, 24 Feb 2025 23:30:23 +0100
Message-Id: <D8115F3MGTO8.MRWXFCTFN7NH@HIDDEN>
Subject: retitle bug
From: "Ashish SHUKLA" <ashish.is@HIDDEN>
To: <control <at> debbugs.gnu.org>
X-Mailer: aerc 0.18.2
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: control
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--0aae02d7b761a0c7288a055c25ad3d42f866c47c53ad161939c0e12e1b37
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8; format=Flowed

retitle 75330 [PATCH v2] gnu: nim: Update to 2.2.2
quit

--0aae02d7b761a0c7288a055c25ad3d42f866c47c53ad161939c0e12e1b37
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQKTBAABCgB9FiEE9oLNzDncD+rhFiC2x0bPqedPpLAFAme88v9fFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEY2
ODJDRENDMzlEQzBGRUFFMTE2MjBCNkM3NDZDRkE5RTc0RkE0QjAACgkQx0bPqedP
pLBSJw//eTT6DQa2zTrXkobmVVwI6rr3TZr5gWzv5pi9zqbymHYHvyCxZz/s0pti
gn7raQE2/thcY3F3e4+34wKnhPLtofbHicB8snUxgsGSxwJAGXmM0QLtcVKT1j56
YzYQesmS+QNITuira4G802CT5tClwGqj1Xn6i7t02kAVq4Suu5xFnj97HMg/nA9n
nUZtVxD/ZKJmGHhF1xhq7vWOiDZPYcRSTUrqtuXSBE7tjmE2thJqYsMv8ec5RMQ6
eyhkXokyLOIaE+a+F1GJUDLtd5V599PYvZcYi6/aZac4xdHXQVFhjHqIqDOizPod
l8ADPVJ4q44SQQfk+SpWdPUwtRp3EzgdCGTvYC8HLO/gfPU3/+KrlacILV2IZgx0
2BoTwpf1fIyCshMtPu+dg03mfsY+RhO1ZLKUFafCLpRZpBnh1xniy2m5SNL1y3/x
RgIMux+PCaDV2FL87I1tU/5cl9ydC2buZt/3vEjXPnfKH2rq4dcSSlQY3FwelkdV
m95tWhYgBzm0u5UngCKdDYUwcQLhgrtzyc7Fxg2xYvkLmJQdSulRthyXiLSB60PZ
D5ZylF+23xjTG94dt+K5wVAC6SUtFfZX2g46sbEVm7TBi5/2ZI3Y40aqi02mmB0p
ZvOHZPARXfbQoVCIVm2E4FXZej0Me2br/ADk/EhY1j2c9452A2k=
=J/aX
-----END PGP SIGNATURE-----

--0aae02d7b761a0c7288a055c25ad3d42f866c47c53ad161939c0e12e1b37--





Last modified: Mon, 24 Feb 2025 22:45:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.