luaPackages: Replace all rockspec packages with generated ones
luaPackages replaced by generated ones:
- bit32
- compat53
- cqueues
- luacyrussasl -> cyrussasl (luarocks name)
- luaexpat
- luadbi -> luadbi front-end module + separate backend modules
luadbi-{mysql,postgresql,sqlite3}
- luafilesystem
- luaossl
- luasec
- luasocket
- luastdlib -> stdlib (luarocks name)
- lrexlib -> lrexlib-pcre (we already have lrexlib-gnu and
lrexlib-posix, lrexlib-pcre however appears to be the variant used in
mudlet, which is the only current dep in nixpkgs)
- luasqlite -> luasql-sqlite3 (luarocks name)
- lfs -> luafilesytem (we literally had two manually written
luafilesystem expressions, under different names)
Changes and additions to overrides to generated luarocks packgaes,
including:
- busted: Install bash completions along with the zsh ones
- cqueues:
- Perform minor surgery on the rockspec to allow using a single
rockspec to build for all supported Lua versions
- Add a patch by @vcunat to work around a build issue
- luuid: Wrote a tiny patch to allow for Lua 5.1/Luajit compatibility
- General changes:
- Sorted the packages
- Attempted to make the formatting consistent
- Preferenced `.override` instead of `.overrideAttrs` wherever
possible
Minor changes to other packages to adjust for the Lua package changes:
- luakit expression simplified
- prosody expression simplified; but users will now need to specify the
luadbi backend module they intend to use in withExtraLibs
- knot-resolver inputs correctd
- mudlet inputs corrected (although this package was and should still be
broken)
This commit is contained in:
@@ -1,37 +0,0 @@
|
||||
--- a/config 2013-02-18 19:36:44.000000000 +0400
|
||||
+++ b/config 2014-10-01 08:36:37.104254404 +0400
|
||||
@@ -1,12 +1,12 @@
|
||||
# $Id: config,v 1.10 2008/05/30 17:21:18 tomas Exp $
|
||||
|
||||
# Driver (leave uncommented ONLY the line with the name of the driver)
|
||||
-T= mysql
|
||||
+#T= mysql
|
||||
#T= oci8
|
||||
#T= odbc
|
||||
#T= postgres
|
||||
#T= sqlite
|
||||
-#T=sqlite3
|
||||
+T=sqlite3
|
||||
#T=firebird
|
||||
|
||||
# Installation directories
|
||||
@@ -37,8 +37,8 @@
|
||||
######## MySQL
|
||||
#DRIVER_LIBS= -L/usr/local/mysql/lib -lmysqlclient -lz
|
||||
#DRIVER_INCS= -I/usr/local/mysql/include
|
||||
-DRIVER_LIBS= -L/usr/lib -lmysqlclient -lz
|
||||
-DRIVER_INCS= -I/usr/include/mysql
|
||||
+#DRIVER_LIBS= -L/usr/lib -lmysqlclient -lz
|
||||
+#DRIVER_INCS= -I/usr/include/mysql
|
||||
######## Oracle OCI8
|
||||
#DRIVER_LIBS= -L/home/oracle/OraHome1/lib -lz -lclntsh
|
||||
#DRIVER_INCS= -I/home/oracle/OraHome1/rdbms/demo -I/home/oracle/OraHome1/rdbms/public
|
||||
@@ -51,7 +51,7 @@
|
||||
#DRIVER_LIBS= -lsqlite
|
||||
#DRIVER_INCS=
|
||||
######## SQLite3
|
||||
-#DRIVER_LIBS= -L/opt/local/lib -lsqlite3
|
||||
+DRIVER_LIBS= -lsqlite3
|
||||
#DRIVER_INCS= -I/opt/local/include
|
||||
######## ODBC
|
||||
#DRIVER_LIBS= -L/usr/local/lib -lodbc
|
||||
16
pkgs/development/lua-modules/luuid.patch
Normal file
16
pkgs/development/lua-modules/luuid.patch
Normal file
@@ -0,0 +1,16 @@
|
||||
diff -Naur 5.2/uuid/luuid.c rock/uuid/luuid.c
|
||||
--- 5.2/uuid/luuid.c 2012-05-10 11:22:00.000000000 +1000
|
||||
+++ rock/uuid/luuid.c 2019-06-13 15:13:10.374134079 +1000
|
||||
@@ -64,7 +64,11 @@
|
||||
|
||||
LUALIB_API int luaopen_uuid(lua_State *L)
|
||||
{
|
||||
- luaL_newlib(L,R);
|
||||
+ #if LUA_VERSION_NUM == 501
|
||||
+ luaL_register(L,MYNAME,R);
|
||||
+ #else
|
||||
+ luaL_newlib(L,R);
|
||||
+ #endif
|
||||
lua_pushliteral(L,"version"); /** version */
|
||||
lua_pushliteral(L,MYVERSION);
|
||||
lua_settable(L,-3);
|
||||
@@ -5,101 +5,72 @@ with super;
|
||||
##########################################3
|
||||
#### manual fixes for generated packages
|
||||
##########################################3
|
||||
lgi = super.lgi.overrideAttrs(oa: {
|
||||
nativeBuildInputs = [ pkgs.pkgconfig ];
|
||||
buildInputs = with pkgs; oa.buildInputs ++ [ glib gobjectIntrospection];
|
||||
bit32 = super.bit32.override({
|
||||
disabled = !isLua51;
|
||||
# Theoretically works with luajit, but it does redefine at least one Lua
|
||||
# 5.2 function that Luajit 2.1 provides, see:
|
||||
# https://github.com/LuaJIT/LuaJIT/issues/325
|
||||
});
|
||||
|
||||
busted = super.busted.override({
|
||||
postConfigure = ''
|
||||
substituteInPlace ''${rockspecFilename} \
|
||||
--replace "'lua_cliargs = 3.0-1'," "'lua_cliargs >= 3.0-1',"
|
||||
'';
|
||||
postInstall = ''
|
||||
install -D completions/zsh/_busted $out/share/zsh/site-functions/_busted
|
||||
install -D completions/bash/busted.bash $out/share/bash-completion/completions/busted
|
||||
'';
|
||||
});
|
||||
|
||||
cqueues = super.cqueues.override(rec {
|
||||
# Parse out a version number without the Lua version inserted
|
||||
version = with pkgs.lib; let
|
||||
version' = super.cqueues.version;
|
||||
rel = splitString "." version';
|
||||
date = head rel;
|
||||
rev = last (splitString "-" (last rel));
|
||||
in "${date}-${rev}";
|
||||
nativeBuildInputs = [
|
||||
pkgs.gnum4
|
||||
];
|
||||
externalDeps = [
|
||||
{ name = "CRYPTO"; dep = pkgs.openssl; }
|
||||
{ name = "OPENSSL"; dep = pkgs.openssl; }
|
||||
];
|
||||
patches = [
|
||||
(pkgs.fetchpatch {
|
||||
name = "lgi-find-cairo-through-typelib.patch";
|
||||
url = "https://github.com/psychon/lgi/commit/46a163d9925e7877faf8a4f73996a20d7cf9202a.patch";
|
||||
sha256 = "0gfvvbri9kyzhvq3bvdbj2l6mwvlz040dk4mrd5m9gz79f7w109c";
|
||||
})
|
||||
# https://github.com/wahern/cqueues/issues/216 &
|
||||
# https://github.com/wahern/cqueues/issues/217
|
||||
(pkgs.fetchpatch {
|
||||
name = "find-version-fix.patch";
|
||||
url = "https://github.com/wahern/cqueues/pull/217.patch";
|
||||
sha256 = "0068ql0jlxmjkvhzydyy52sjd0k4vad6b8w4y5szpbv4vb2lzcsc";
|
||||
})
|
||||
];
|
||||
disabled = luaOlder "5.1" || luaAtLeast "5.4";
|
||||
# Upstream rockspec is pointlessly broken into separate rockspecs, per Lua
|
||||
# version, which doesn't work well for us, so modify it
|
||||
postConfigure = let inherit (super.cqueues) pname; in ''
|
||||
# 'all' target auto-detects correct Lua version, which is fine for us as
|
||||
# we only have the right one available :)
|
||||
sed -Ei ''${rockspecFilename} \
|
||||
-e 's|lua == 5.[[:digit:]]|lua >= 5.1, <= 5.3|' \
|
||||
-e 's|build_target = "[^"]+"|build_target = "all"|' \
|
||||
-e 's|version = "[^"]+"|version = "${version}"|'
|
||||
specDir=$(dirname ''${rockspecFilename})
|
||||
cp ''${rockspecFilename} "$specDir/${pname}-${version}.rockspec"
|
||||
rockspecFilename="$specDir/${pname}-${version}.rockspec"
|
||||
'';
|
||||
});
|
||||
|
||||
cyrussasl = super.cyrussasl.override({
|
||||
externalDeps = [
|
||||
{ name = "LIBSASL"; dep = pkgs.cyrus_sasl; }
|
||||
];
|
||||
});
|
||||
|
||||
ltermbox = super.ltermbox.override( {
|
||||
disabled = !isLua51 || isLuaJIT;
|
||||
});
|
||||
|
||||
lua-cmsgpack = super.lua-cmsgpack.override({
|
||||
# TODO this should work with luajit once we fix luajit headers ?
|
||||
disabled = (!isLua51) || isLuaJIT;
|
||||
});
|
||||
|
||||
lrexlib-posix = super.lrexlib-posix.override({
|
||||
buildInputs = [ pkgs.glibc.dev ];
|
||||
});
|
||||
lrexlib-gnu = super.lrexlib-gnu.override({
|
||||
buildInputs = [ pkgs.gnulib ];
|
||||
});
|
||||
lua-zlib = super.lua-zlib.override({
|
||||
buildInputs = [ pkgs.zlib.dev ];
|
||||
disabled=luaOlder "5.1" || luaAtLeast "5.4";
|
||||
});
|
||||
luaevent = super.luaevent.override({
|
||||
buildInputs = with pkgs; [ libevent.dev libevent ];
|
||||
propagatedBuildInputs = [ luasocket ];
|
||||
extraConfig = ''
|
||||
variables={
|
||||
EVENT_INCDIR="${pkgs.libevent.dev}/include";
|
||||
EVENT_LIBDIR="${pkgs.libevent}/lib";
|
||||
}
|
||||
'';
|
||||
disabled= luaOlder "5.1" || luaAtLeast "5.4" || isLuaJIT;
|
||||
});
|
||||
lua-iconv = super.lua-iconv.override({
|
||||
buildInputs = [ pkgs.libiconv ];
|
||||
});
|
||||
luazip = super.luazip.override({
|
||||
buildInputs = [ pkgs.zziplib ];
|
||||
});
|
||||
luv = super.luv.overrideAttrs(oa: {
|
||||
# Use system libuv instead of building local and statically linking
|
||||
# This is a hacky way to specify -DWITH_SHARED_LIBUV=ON which
|
||||
# should be possible but I'm unable to make work.
|
||||
# While at it, remove bundled libuv source entirely to be sure.
|
||||
# We may wish to drop bundled lua submodules too...
|
||||
preBuild = ''
|
||||
sed -i 's,\(option(WITH_SHARED_LIBUV.*\)OFF,\1ON,' CMakeLists.txt
|
||||
rm -rf deps/libuv
|
||||
'';
|
||||
propagatedBuildInputs = oa.propagatedBuildInputs ++ [ pkgs.libuv ];
|
||||
});
|
||||
|
||||
busted = super.busted.overrideAttrs(oa: {
|
||||
postInstall = ''
|
||||
install -D completions/zsh/_busted $out/share/zsh/site-functions/_busted
|
||||
'';
|
||||
});
|
||||
|
||||
luuid = super.luuid.override(oa: {
|
||||
buildInputs = [ pkgs.libuuid ];
|
||||
extraConfig = ''
|
||||
variables = {
|
||||
LIBUUID_INCDIR="${pkgs.lib.getDev pkgs.libuuid}/include";
|
||||
LIBUUID_LIBDIR="${pkgs.lib.getLib pkgs.libuuid}/lib";
|
||||
}
|
||||
'';
|
||||
meta = oa.meta // {
|
||||
platforms = pkgs.lib.platforms.linux;
|
||||
};
|
||||
});
|
||||
|
||||
rapidjson = super.rapidjson.overrideAttrs(oa: {
|
||||
preBuild = ''
|
||||
sed -i '/set(CMAKE_CXX_FLAGS/d' CMakeLists.txt
|
||||
sed -i '/set(CMAKE_C_FLAGS/d' CMakeLists.txt
|
||||
'';
|
||||
});
|
||||
|
||||
binaryheap = super.binaryheap.overrideAttrs(oa: {
|
||||
meta = oa.meta // {
|
||||
maintainers = with pkgs.lib.maintainers; oa.meta.maintainers ++ [ vcunat ];
|
||||
};
|
||||
});
|
||||
|
||||
http = super.http.overrideAttrs(oa: {
|
||||
patches = oa.patches or [] ++ [
|
||||
http = super.http.override({
|
||||
patches = [
|
||||
(pkgs.fetchpatch {
|
||||
name = "invalid-state-progression.patch";
|
||||
url = "https://github.com/daurnimator/lua-http/commit/cb7b59474a.diff";
|
||||
@@ -110,8 +81,184 @@ with super;
|
||||
nativeBuildInputs = [ pandoc ];
|
||||
makeFlags = [ "-C doc" "lua-http.html" "lua-http.3" ];
|
||||
*/
|
||||
meta = oa.meta // {
|
||||
maintainers = with pkgs.lib.maintainers; oa.meta.maintainers ++ [ vcunat ];
|
||||
});
|
||||
|
||||
lgi = super.lgi.override({
|
||||
nativeBuildInputs = [
|
||||
pkgs.pkgconfig
|
||||
];
|
||||
buildInputs = [
|
||||
pkgs.glib
|
||||
pkgs.gobjectIntrospection
|
||||
];
|
||||
patches = [
|
||||
(pkgs.fetchpatch {
|
||||
name = "lgi-find-cairo-through-typelib.patch";
|
||||
url = "https://github.com/psychon/lgi/commit/46a163d9925e7877faf8a4f73996a20d7cf9202a.patch";
|
||||
sha256 = "0gfvvbri9kyzhvq3bvdbj2l6mwvlz040dk4mrd5m9gz79f7w109c";
|
||||
})
|
||||
];
|
||||
});
|
||||
|
||||
lrexlib-gnu = super.lrexlib-gnu.override({
|
||||
buildInputs = [
|
||||
pkgs.gnulib
|
||||
];
|
||||
});
|
||||
|
||||
lrexlib-pcre = super.lrexlib-pcre.override({
|
||||
externalDeps = [
|
||||
{ name = "PCRE"; dep = pkgs.pcre; }
|
||||
];
|
||||
});
|
||||
|
||||
lrexlib-posix = super.lrexlib-posix.override({
|
||||
buildInputs = [
|
||||
pkgs.glibc.dev
|
||||
];
|
||||
});
|
||||
|
||||
ltermbox = super.ltermbox.override( {
|
||||
disabled = !isLua51 || isLuaJIT;
|
||||
});
|
||||
|
||||
lua-iconv = super.lua-iconv.override({
|
||||
buildInputs = [
|
||||
pkgs.libiconv
|
||||
];
|
||||
});
|
||||
|
||||
lua-zlib = super.lua-zlib.override({
|
||||
buildInputs = [
|
||||
pkgs.zlib.dev
|
||||
];
|
||||
disabled = luaOlder "5.1" || luaAtLeast "5.4";
|
||||
});
|
||||
|
||||
luadbi-mysql = super.luadbi-mysql.override({
|
||||
extraVariables = ''
|
||||
-- Can't just be /include, unfortunately
|
||||
MYSQL_INCDIR='${pkgs.mysql.connector-c}/include/mysql';
|
||||
'';
|
||||
buildInputs = [
|
||||
pkgs.mysql.client
|
||||
pkgs.mysql.connector-c
|
||||
];
|
||||
});
|
||||
|
||||
luadbi-postgresql = super.luadbi-postgresql.override({
|
||||
buildInputs = [
|
||||
pkgs.postgresql
|
||||
];
|
||||
});
|
||||
|
||||
luadbi-sqlite3 = super.luadbi-sqlite3.override({
|
||||
externalDeps = [
|
||||
{ name = "SQLITE"; dep = pkgs.sqlite; }
|
||||
];
|
||||
});
|
||||
|
||||
luaevent = super.luaevent.override({
|
||||
propagatedBuildInputs = [
|
||||
luasocket
|
||||
];
|
||||
externalDeps = [
|
||||
{ name = "EVENT"; dep = pkgs.libevent; }
|
||||
];
|
||||
disabled = luaOlder "5.1" || luaAtLeast "5.4";
|
||||
});
|
||||
|
||||
luaexpat = super.luaexpat.override({
|
||||
externalDeps = [
|
||||
{ name = "EXPAT"; dep = pkgs.expat; }
|
||||
];
|
||||
});
|
||||
|
||||
# TODO Somehow automatically amend buildInputs for things that need luaffi
|
||||
# but are in luajitPackages?
|
||||
luaffi = super.luaffi.override({
|
||||
# The packaged .src.rock version is pretty old, and doesn't work with Lua 5.3
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "facebook"; repo = "luaffifb";
|
||||
rev = "532c757e51c86f546a85730b71c9fef15ffa633d";
|
||||
sha256 = "1nwx6sh56zfq99rcs7sph0296jf6a9z72mxknn0ysw9fd7m1r8ig";
|
||||
};
|
||||
knownRockspec = with super.luaffi; "${pname}-${version}.rockspec";
|
||||
disabled = luaOlder "5.1" || luaAtLeast "5.4" || isLuaJIT;
|
||||
});
|
||||
|
||||
luaossl = super.luaossl.override({
|
||||
externalDeps = [
|
||||
{ name = "CRYPTO"; dep = pkgs.openssl; }
|
||||
{ name = "OPENSSL"; dep = pkgs.openssl; }
|
||||
];
|
||||
});
|
||||
|
||||
luasec = super.luasec.override({
|
||||
externalDeps = [
|
||||
{ name = "OPENSSL"; dep = pkgs.openssl; }
|
||||
];
|
||||
});
|
||||
|
||||
luasql-sqlite3 = super.luasql-sqlite3.override({
|
||||
externalDeps = [
|
||||
{ name = "SQLITE"; dep = pkgs.sqlite; }
|
||||
];
|
||||
});
|
||||
|
||||
luasystem = super.luasystem.override({
|
||||
buildInputs = [
|
||||
pkgs.glibc
|
||||
];
|
||||
});
|
||||
|
||||
luazip = super.luazip.override({
|
||||
buildInputs = [
|
||||
pkgs.zziplib
|
||||
];
|
||||
});
|
||||
|
||||
luuid = super.luuid.override(old: {
|
||||
externalDeps = [
|
||||
{ name = "LIBUUID"; dep = pkgs.libuuid; }
|
||||
];
|
||||
meta = old.meta // {
|
||||
platforms = pkgs.lib.platforms.linux;
|
||||
};
|
||||
# Trivial patch to make it work in both 5.1 and 5.2. Basically just the
|
||||
# tiny diff between the two upstream versions placed behind an #if.
|
||||
# Upstreams:
|
||||
# 5.1: http://webserver2.tecgraf.puc-rio.br/~lhf/ftp/lua/5.1/luuid.tar.gz
|
||||
# 5.2: http://webserver2.tecgraf.puc-rio.br/~lhf/ftp/lua/5.2/luuid.tar.gz
|
||||
patchFlags = "-p2";
|
||||
patches = [
|
||||
./luuid.patch
|
||||
];
|
||||
postConfigure = let inherit (super.luuid) version pname; in ''
|
||||
sed -Ei ''${rockspecFilename} -e 's|lua >= 5.2|lua >= 5.1,|'
|
||||
'';
|
||||
disabled = luaOlder "5.1" || (luaAtLeast "5.4");
|
||||
});
|
||||
|
||||
luv = super.luv.override({
|
||||
# Use system libuv instead of building local and statically linking
|
||||
# This is a hacky way to specify -DWITH_SHARED_LIBUV=ON which
|
||||
# is not possible with luarocks and the current luv rockspec
|
||||
# While at it, remove bundled libuv source entirely to be sure.
|
||||
# We may wish to drop bundled lua submodules too...
|
||||
preBuild = ''
|
||||
sed -i 's,\(option(WITH_SHARED_LIBUV.*\)OFF,\1ON,' CMakeLists.txt
|
||||
rm -rf deps/libuv
|
||||
'';
|
||||
propagatedBuildInputs = [
|
||||
pkgs.libuv
|
||||
];
|
||||
});
|
||||
|
||||
rapidjson = super.rapidjson.override({
|
||||
preBuild = ''
|
||||
sed -i '/set(CMAKE_CXX_FLAGS/d' CMakeLists.txt
|
||||
sed -i '/set(CMAKE_C_FLAGS/d' CMakeLists.txt
|
||||
'';
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user