mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
gnu: Add luarocks.
* gnu/packages/lua.scm (luarocks): Add variable. * gnu/packages/lua.scm (make-luarocks): New function. * gnu/packages/lua.scm (lua5.2-luarocks): New variable. Co-authored-by: Andrew Tropin <andrew@trop.in> Signed-off-by: Andrew Tropin <andrew@trop.in> Change-Id: I7f14f43c85384917b2bd39bdedafb372558a1ab8
This commit is contained in:
parent
e51d98d8e9
commit
dc8fb56724
1 changed files with 122 additions and 1 deletions
|
@ -20,6 +20,7 @@
|
|||
;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
|
||||
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
|
||||
;;; Copyright © 2023 Valter Nazianzeno <manipuladordedados@gmail.com>
|
||||
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -48,12 +49,17 @@ (define-module (gnu packages lua)
|
|||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages build-tools)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gperf)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages libevent)
|
||||
#:use-module (gnu packages libffi)
|
||||
|
@ -65,11 +71,15 @@ (define-module (gnu packages lua)
|
|||
#:use-module (gnu packages rdf)
|
||||
#:use-module (gnu packages re2c)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages rsync)
|
||||
#:use-module (gnu packages ssh)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages vim)
|
||||
#:use-module (gnu packages wget)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (srfi srfi-1))
|
||||
#:use-module ((srfi srfi-1) #:hide (zip)))
|
||||
|
||||
(define-public lua
|
||||
(package
|
||||
|
@ -1139,6 +1149,117 @@ (define-public lua-resty-shell
|
|||
shell command executions.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public (make-luarocks name lua)
|
||||
(package
|
||||
(name name)
|
||||
(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")
|
||||
(search-input-file inputs "/bin/sh")))))
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(invoke "./configure"
|
||||
(string-append "--prefix=" out)))))
|
||||
(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 = \"" (search-input-file inputs "/bin/ar") "\";\n"
|
||||
" BUNZIP2 = \"" (search-input-file inputs "/bin/bunzip2") "\";\n"
|
||||
" CC = \"" (search-input-file inputs "/bin/gcc") "\";\n"
|
||||
" CHMOD = \"" (search-input-file inputs "/bin/chmod") "\";\n"
|
||||
" CP = \"" (search-input-file inputs "/bin/cp") "\";\n"
|
||||
" CURL = \"" (search-input-file inputs "/bin/curl") "\";\n"
|
||||
" FIND = \"" (search-input-file inputs "/bin/find") "\";\n"
|
||||
" GIT = \"" (search-input-file inputs "/bin/git") "\";\n"
|
||||
" GPG = \"" (search-input-file inputs "/bin/gpg") "\";\n"
|
||||
" GUNZIP = \"" (search-input-file inputs "/bin/gunzip") "\";\n"
|
||||
" HG = \"" (search-input-file inputs "/bin/hg") "\";\n"
|
||||
" LD = \"" (search-input-file inputs "/bin/ld") "\";\n"
|
||||
" LS = \"" (search-input-file inputs "/bin/ls") "\";\n"
|
||||
" MAKE = \"" (search-input-file inputs "/bin/make") "\";\n"
|
||||
" MD5SUM = \"" (search-input-file inputs "/bin/md5sum") "\";\n"
|
||||
" MKDIR = \"" (search-input-file inputs "/bin/mkdir") "\";\n"
|
||||
" MKTEMP = \"" (search-input-file inputs "/bin/mktemp") "\";\n"
|
||||
" OPENSSL = \"" (search-input-file inputs "/bin/openssl") "\";\n"
|
||||
" PWD = \"" (search-input-file inputs "/bin/pwd") "\";\n"
|
||||
" RANLIB = \"" (search-input-file inputs "/bin/ranlib") "\";\n"
|
||||
" RM = \"" (search-input-file inputs "/bin/rm") "\";\n"
|
||||
" RMDIR = \"" (search-input-file inputs "/bin/rmdir") "\";\n"
|
||||
" RSYNC = \"" (search-input-file inputs "/bin/rsync") "\";\n"
|
||||
" SCP = \"" (search-input-file inputs "/bin/scp") "\";\n"
|
||||
" TAR = \"" (search-input-file inputs "/bin/tar") "\";\n"
|
||||
" TEST = \"" (search-input-file inputs "/bin/test") "\";\n"
|
||||
" TOUCH = \"" (search-input-file inputs "/bin/touch") "\";\n"
|
||||
" UNZIP = \"" (search-input-file inputs "/bin/unzip") " -n\";\n"
|
||||
" WGET = \"" (search-input-file inputs "/bin/wget") "\";\n"
|
||||
" ZIP = \"" (search-input-file inputs "/bin/zip") "\";"))))))))
|
||||
(inputs (list lua
|
||||
bash-minimal
|
||||
;; Executables required by luarocks.
|
||||
binutils
|
||||
bzip2
|
||||
coreutils
|
||||
curl
|
||||
findutils
|
||||
gcc
|
||||
git
|
||||
gnupg
|
||||
gzip
|
||||
gnu-make
|
||||
mercurial
|
||||
openssh
|
||||
openssl
|
||||
rsync
|
||||
tar
|
||||
unzip
|
||||
wget
|
||||
zip))
|
||||
(native-inputs (list unzip))
|
||||
(synopsis "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.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public lua5.2-luarocks
|
||||
(make-luarocks "lua5.2-luarocks" lua-5.2))
|
||||
|
||||
(define-public luarocks
|
||||
(make-luarocks "luarocks" lua))
|
||||
|
||||
(define-public emilua
|
||||
(package
|
||||
(name "emilua")
|
||||
|
|
Loading…
Reference in a new issue