GNU bug report logs -
#61774
[PATCH] gnu: Add luarocks.
Previous Next
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
[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)]
[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)]
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.