GNU bug report logs - #61774
[PATCH] gnu: Add luarocks.

Previous Next

Package: guix-patches;

Reported by: Timo Wilken <guix <at> twilken.net>

Date: Fri, 24 Feb 2023 22:47:02 UTC

Severity: normal

Tags: moreinfo, patch

Done: Andrew Tropin <andrew <at> trop.in>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Timo Wilken <guix <at> twilken.net>
Subject: bug#61774: closed (Re: [bug#61774] [PATCH] gnu: Add luarocks.)
Date: Sun, 26 May 2024 11:28:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#61774: [PATCH] gnu: Add luarocks.

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 61774 <at> debbugs.gnu.org.

-- 
61774: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=61774
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Andrew Tropin <andrew <at> trop.in>
To: Ludovic Courtès <ludo <at> gnu.org>, Timo Wilken
 <guix <at> twilken.net>
Cc: 61774-done <at> debbugs.gnu.org
Subject: Re: [bug#61774] [PATCH] gnu: Add luarocks.
Date: Sun, 26 May 2024 15:26:43 +0400
[Message part 3 (text/plain, inline)]
On 2023-03-30 23:14, Ludovic Courtès wrote:

> Hi,
>
> Timo Wilken <guix <at> twilken.net> skribis:
>
>> Luarocks is a package manager for Lua modules.
>>
>> It is used by the Prosody XMPP server (already packaged in Guix) to
>> install extensions.
>>
>> * gnu/packages/lua.scm (luarocks): Add variable.
>
> Could resend the two patches merged as one?
>
> Some comments:
>
>> +                      (substitute* '("GNUmakefile" "src/luarocks/fs/unix.lua"
>> +                                     "src/luarocks/core/sysdetect.lua")
>> +                        (("/bin/sh")
>> +                         (string-append (assoc-ref inputs "bash-minimal")
>> +                                        "/bin/sh")))))
>
> Rather (search-input-file inputs "/bin/sh").
>
>> +    (synopsis "A package manager for Lua modules")
>
> I believe ‘guix lint’ will tel you to remove “A”.  :-)
>
>> +    ;; The home page says:
>> +    ;; "LuaRocks is free software and uses the same license as Lua."
>> +    (license license:x11)))
>
> Please double-check the license in the source (and remove the comment).
>
>> +         (add-after 'install 'patch-unzip
>> +           (lambda* (#:key inputs outputs #:allow-other-keys)
>> +             (substitute*
>> +                 (string-append
>> +                  (assoc-ref outputs "out") "/etc/luarocks/config-"
>> +                  ,(substring (package-version lua) 0 3) ".lua") ;e.g. "5.2"
>> +               (("variables = \\{")
>> +                (string-append
>> +                 "variables = {\n"
>> +                 "   AR = \"" (assoc-ref inputs "binutils") "/bin/ar\";\n"
>> +                 "   BUNZIP2 = \"" (assoc-ref inputs "bzip2") "/bin/bunzip2\";\n"
>> +                 "   CC = \"" (assoc-ref inputs "gcc") "/bin/gcc\";\n"
>> +                 "   CHMOD = \"" (assoc-ref inputs "coreutils") "/bin/chmod\";\n"
>> +                 "   CMAKE = \"" (assoc-ref inputs "coreutils") "/bin/cmake\";\n"
>
> These should all use ‘search-input-file’.  However…
>
>> +                 "   CP = \"" (assoc-ref inputs "coreutils") "/bin/cp\";\n"
>> +                 "   CURL = \"" (assoc-ref inputs "curl") "/bin/curl\";\n"
>> +                 "   CVS = \"" (assoc-ref inputs "cvs") "/bin/cvs\";\n"
>> +                 "   FIND = \"" (assoc-ref inputs "findutils") "/bin/find\";\n"
>> +                 "   GIT = \"" (assoc-ref inputs "git") "/bin/git\";\n"
>> +                 "   GPG = \"" (assoc-ref inputs "gnupg") "/bin/gpg\";\n"
>
> [...]
>
>> +                 "   RSYNC = \"" (assoc-ref inputs "rsync") "/bin/rsync\";\n"
>> +                 "   SCP = \"" (assoc-ref inputs "openssh") "/bin/scp\";\n"
>> +                 "   SEVENZ = \"" (assoc-ref inputs "p7zip") "/bin/7z\";\n"
>> +                 "   SVN = \"" (assoc-ref inputs "subversion") "/bin/svn\";\n"
>> +                 "   TAR = \"" (assoc-ref inputs "tar") "/bin/tar\";\n"
>
> Does it really need all these things?  What does ‘guix size luarocks’
> say now?
>
> Maybe it’s OK to assume that some of the rarely-used dependencies (say,
> CVS, SVN, 7zip) will be picked from $PATH and that it will fail
> otherwise?  That would help keep the closure size under control.
>
>> +    (inputs (list lua bash-minimal
>> +                  ;; Executables required by luarocks.
>> +                  binutils bzip2 coreutils curl cvs findutils gcc git gnupg
>> +                  gzip gnu-make mercurial openssh openssl p7zip rsync
>> +                  subversion tar unzip wget zip))
>
> Please one per line since there are many of them (you can run ‘guix
> style luarocks’).
>
> Could you send an updated patch?
>
> Thanks!

Addressed all the comments, pushed as
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=dc8fb56724

-- 
Best regards,
Andrew Tropin
[signature.asc (application/pgp-signature, inline)]
[Message part 5 (message/rfc822, inline)]
From: Timo Wilken <guix <at> twilken.net>
To: guix-patches <at> gnu.org
Cc: Timo Wilken <guix <at> twilken.net>
Subject: [PATCH] gnu: Add luarocks.
Date: Fri, 24 Feb 2023 23:46:13 +0100
Luarocks is a package manager for Lua modules.

It is used by the Prosody XMPP server (already packaged in Guix) to
install extensions.

* gnu/packages/lua.scm (luarocks): Add variable.
---
 gnu/packages/lua.scm | 50 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index d50890bf1e..3d18e18ca9 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -18,6 +18,7 @@
 ;;; Copyright © 2022 Brandon Lucas <br <at> ndon.dk>
 ;;; Copyright © 2022 Luis Henrique Gomes Higino <luishenriquegh2701 <at> gmail.com>
 ;;; Copyright © 2022 Leo Nikkilä <hello <at> lnikki.la>
+;;; Copyright © 2023 Timo Wilken <guix <at> twilken.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -49,6 +50,7 @@ (define-module (gnu packages lua)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages build-tools)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages libevent)
@@ -1126,6 +1128,54 @@ (define-public lua-resty-shell
 shell command executions.")
     (license license:bsd-3)))
 
+(define-public luarocks
+  (package
+    (name "luarocks")
+    (version "3.9.2")
+    (home-page "https://luarocks.org/")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://luarocks.org/releases/luarocks-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1nsfp7cwqcxa8vmkcqkgi5wc0iax0j3gbdfd183kw81cq3nf99mw"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f ;upstream has no tests
+       #:phases (modify-phases %standard-phases
+                  (add-before 'build 'patch-bin-sh
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (substitute* '("GNUmakefile" "src/luarocks/fs/unix.lua"
+                                     "src/luarocks/core/sysdetect.lua")
+                        (("/bin/sh")
+                         (string-append (assoc-ref inputs "bash-minimal")
+                                        "/bin/sh")))))
+                  (replace 'configure
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (invoke "./configure"
+                                (string-append "--prefix=" out))))))))
+    (inputs (list lua bash-minimal))
+    (native-inputs (list unzip))
+    (synopsis "A package manager for Lua modules")
+    (description
+     "LuaRocks is the package manager for the Lua programming
+language.
+
+It allows you to install Lua modules as self-contained packages called
+@url{https://luarocks.org/en/Types_of_rocks, @emph{rocks}}, which also contain
+version @url{https://luarocks.org/en/Dependencies, dependency} information.
+This information can be used both during installation, so that when one rock
+is requested all rocks it depends on are installed as well, and also
+optionally at run time, so that when a module is required, the correct version
+is loaded.  LuaRocks supports both local and
+@url{http://luarocks.org/en/Rocks_repositories, remote} repositories, and
+multiple local rocks trees.")
+    ;; The home page says:
+    ;; "LuaRocks is free software and uses the same license as Lua."
+    (license license:x11)))
+
 (define-public emilua
   (package
    (name "emilua")
-- 
2.39.1




This bug report was last modified 1 year and 55 days ago.

Previous Next


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