guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#61774] [PATCH] gnu: Add luarocks.


From: Ludovic Courtès
Subject: [bug#61774] [PATCH] gnu: Add luarocks.
Date: Thu, 30 Mar 2023 23:14:49 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)

Hi,

Timo Wilken <guix@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!

Ludo’.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]