mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-17 15:22:59 +01:00
Merge pull request #178158 from teto/luarocks-add-sqlite
This commit is contained in:
commit
0633b702a6
8 changed files with 101 additions and 14 deletions
|
@ -86,6 +86,7 @@ plenary.nvim,https://github.com/nvim-lua/plenary.nvim.git,,,,lua5_1,
|
||||||
rapidjson,https://github.com/xpol/lua-rapidjson.git,,,,,
|
rapidjson,https://github.com/xpol/lua-rapidjson.git,,,,,
|
||||||
readline,,,,,,
|
readline,,,,,,
|
||||||
say,https://github.com/Olivine-Labs/say.git,,,,,
|
say,https://github.com/Olivine-Labs/say.git,,,,,
|
||||||
|
sqlite,,,,,,
|
||||||
std._debug,https://github.com/lua-stdlib/_debug.git,,,,,
|
std._debug,https://github.com/lua-stdlib/_debug.git,,,,,
|
||||||
std.normalize,https://github.com/lua-stdlib/normalize.git,,,,,
|
std.normalize,https://github.com/lua-stdlib/normalize.git,,,,,
|
||||||
stdlib,,,,41.2.2,,vyp
|
stdlib,,,,41.2.2,,vyp
|
||||||
|
|
Can't render this file because it has a wrong number of fields in line 72.
|
|
@ -103,7 +103,6 @@
|
||||||
, golint
|
, golint
|
||||||
, gomodifytags
|
, gomodifytags
|
||||||
, gopls
|
, gopls
|
||||||
, gotags
|
|
||||||
, gotools
|
, gotools
|
||||||
, iferr
|
, iferr
|
||||||
, impl
|
, impl
|
||||||
|
@ -1042,7 +1041,6 @@ self: super: {
|
||||||
gomodifytags
|
gomodifytags
|
||||||
gopls
|
gopls
|
||||||
# gorename
|
# gorename
|
||||||
# gotags
|
|
||||||
gotools # contains staticcheck
|
gotools # contains staticcheck
|
||||||
# guru
|
# guru
|
||||||
iferr
|
iferr
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
, wrapLua
|
, wrapLua
|
||||||
# Whether the derivation provides a lua module or not.
|
# Whether the derivation provides a lua module or not.
|
||||||
, toLuaModule
|
, toLuaModule
|
||||||
|
, luarocksCheckHook
|
||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -42,6 +43,7 @@ pname
|
||||||
|
|
||||||
, passthru ? {}
|
, passthru ? {}
|
||||||
, doCheck ? false
|
, doCheck ? false
|
||||||
|
, doInstallCheck ? false
|
||||||
|
|
||||||
# Non-Lua / system (e.g. C library) dependencies. Is a list of deps, where
|
# Non-Lua / system (e.g. C library) dependencies. Is a list of deps, where
|
||||||
# each dep is either a derivation, or an attribute set like
|
# each dep is either a derivation, or an attribute set like
|
||||||
|
@ -97,10 +99,12 @@ let
|
||||||
# Filter out the lua derivation itself from the Lua module dependency
|
# Filter out the lua derivation itself from the Lua module dependency
|
||||||
# closure, as it doesn't have a rock tree :)
|
# closure, as it doesn't have a rock tree :)
|
||||||
requiredLuaRocks = lib.filter (d: d ? luaModule)
|
requiredLuaRocks = lib.filter (d: d ? luaModule)
|
||||||
(lua.pkgs.requiredLuaModules luarocksDrv.propagatedBuildInputs);
|
(lua.pkgs.requiredLuaModules (luarocksDrv.nativeBuildInputs ++ luarocksDrv.propagatedBuildInputs));
|
||||||
|
|
||||||
# example externalDeps': [ { name = "CRYPTO"; dep = pkgs.openssl; } ]
|
# example externalDeps': [ { name = "CRYPTO"; dep = pkgs.openssl; } ]
|
||||||
externalDepsGenerated = lib.unique (lib.filter (drv: !drv ? luaModule) (luarocksDrv.propagatedBuildInputs ++ luarocksDrv.buildInputs));
|
externalDepsGenerated = lib.unique (lib.filter (drv: !drv ? luaModule) (
|
||||||
|
luarocksDrv.nativeBuildInputs ++ luarocksDrv.propagatedBuildInputs ++ luarocksDrv.buildInputs)
|
||||||
|
);
|
||||||
externalDeps' = lib.filter (dep: !lib.isDerivation dep) externalDeps;
|
externalDeps' = lib.filter (dep: !lib.isDerivation dep) externalDeps;
|
||||||
|
|
||||||
luarocksDrv = toLuaModule ( lua.stdenv.mkDerivation (
|
luarocksDrv = toLuaModule ( lua.stdenv.mkDerivation (
|
||||||
|
@ -108,15 +112,17 @@ builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps" "extraVariab
|
||||||
|
|
||||||
name = namePrefix + pname + "-" + version;
|
name = namePrefix + pname + "-" + version;
|
||||||
|
|
||||||
buildInputs = [ wrapLua lua.pkgs.luarocks ]
|
nativeBuildInputs = [
|
||||||
|
wrapLua
|
||||||
|
lua.pkgs.luarocks
|
||||||
|
]
|
||||||
++ buildInputs
|
++ buildInputs
|
||||||
++ lib.optionals doCheck checkInputs
|
++ lib.optionals doCheck ([ luarocksCheckHook ] ++ checkInputs)
|
||||||
++ (map (d: d.dep) externalDeps')
|
++ (map (d: d.dep) externalDeps')
|
||||||
;
|
;
|
||||||
|
|
||||||
# propagate lua to active setup-hook in nix-shell
|
# propagate lua to active setup-hook in nix-shell
|
||||||
propagatedBuildInputs = propagatedBuildInputs ++ [ lua ];
|
propagatedBuildInputs = propagatedBuildInputs ++ [ lua ];
|
||||||
inherit doCheck;
|
|
||||||
|
|
||||||
# @-patterns do not capture formal argument default values, so we need to
|
# @-patterns do not capture formal argument default values, so we need to
|
||||||
# explicitly inherit this for it to be available as a shell variable in the
|
# explicitly inherit this for it to be available as a shell variable in the
|
||||||
|
@ -190,6 +196,14 @@ builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps" "extraVariab
|
||||||
runHook postCheck
|
runHook postCheck
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
LUAROCKS_CONFIG="$PWD/${luarocks_config}";
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
runHook preShell
|
||||||
|
export LUAROCKS_CONFIG="$PWD/${luarocks_config}";
|
||||||
|
runHook postShell
|
||||||
|
'';
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
inherit lua; # The lua interpreter
|
inherit lua; # The lua interpreter
|
||||||
inherit externalDeps;
|
inherit externalDeps;
|
||||||
|
|
|
@ -24,4 +24,9 @@ in {
|
||||||
mv hook.sh $out
|
mv hook.sh $out
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
luarocksCheckHook = callPackage ({ luarocks }:
|
||||||
|
makeSetupHook {
|
||||||
|
name = "luarocks-check-hook";
|
||||||
|
deps = [ luarocks ];
|
||||||
|
} ./luarocks-check-hook.sh) {};
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
# Setup hook for checking whether Python imports succeed
|
||||||
|
echo "Sourcing luarocks-check-hook.sh"
|
||||||
|
|
||||||
|
luarocksCheckPhase () {
|
||||||
|
echo "Executing luarocksCheckPhase"
|
||||||
|
runHook preCheck
|
||||||
|
|
||||||
|
luarocks test
|
||||||
|
|
||||||
|
runHook postCheck
|
||||||
|
echo "Finished executing luarocksCheckPhase"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -z "${dontLuarocksCheck-}" ] && [ -z "${checkPhase-}" ]; then
|
||||||
|
echo "Using luarocksCheckPhase"
|
||||||
|
checkPhase+=" luarocksCheckPhase"
|
||||||
|
fi
|
||||||
|
|
|
@ -2546,6 +2546,38 @@ buildLuarocksPackage {
|
||||||
};
|
};
|
||||||
}) {};
|
}) {};
|
||||||
|
|
||||||
|
sqlite = callPackage({ buildLuarocksPackage, luaOlder, luaAtLeast
|
||||||
|
, fetchgit, luv
|
||||||
|
}:
|
||||||
|
buildLuarocksPackage {
|
||||||
|
pname = "sqlite";
|
||||||
|
version = "v1.2.2-0";
|
||||||
|
knownRockspec = (fetchurl {
|
||||||
|
url = "mirror://luarocks/sqlite-v1.2.2-0.rockspec";
|
||||||
|
sha256 = "0jxsl9lpxsbzc6s5bwmh27mglkqz1299lz68vfxayvailwl3xbxm";
|
||||||
|
}).outPath;
|
||||||
|
src = fetchgit ( removeAttrs (builtins.fromJSON ''{
|
||||||
|
"url": "https://github.com/tami5/sqlite.lua.git",
|
||||||
|
"rev": "6c00ab414dc1b69621b145908c582b747f24b46e",
|
||||||
|
"date": "2022-06-17T15:57:13+03:00",
|
||||||
|
"path": "/nix/store/637s46bsvsxfnzmy6ygig3y0vqmf3r8p-sqlite.lua",
|
||||||
|
"sha256": "0ckifx6xxrannn9szacgiiqjsp4rswghxscdl3s411dhas8djj1m",
|
||||||
|
"fetchLFS": false,
|
||||||
|
"fetchSubmodules": true,
|
||||||
|
"deepClone": false,
|
||||||
|
"leaveDotGit": false
|
||||||
|
}
|
||||||
|
'') ["date" "path"]) ;
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ luv ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = "https://github.com/tami5/sqlite.lua";
|
||||||
|
description = "SQLite/LuaJIT binding and a highly opinionated wrapper for storing, retrieving, caching, and persisting [SQLite] databases";
|
||||||
|
license.fullName = "MIT";
|
||||||
|
};
|
||||||
|
}) {};
|
||||||
|
|
||||||
std-_debug = callPackage({ buildLuarocksPackage, luaOlder, luaAtLeast
|
std-_debug = callPackage({ buildLuarocksPackage, luaOlder, luaAtLeast
|
||||||
, fetchgit, lua
|
, fetchgit, lua
|
||||||
}:
|
}:
|
||||||
|
|
|
@ -15,7 +15,7 @@ with prev;
|
||||||
});
|
});
|
||||||
|
|
||||||
busted = prev.busted.overrideAttrs(oa: {
|
busted = prev.busted.overrideAttrs(oa: {
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = oa.nativeBuildInputs ++ [
|
||||||
pkgs.installShellFiles
|
pkgs.installShellFiles
|
||||||
];
|
];
|
||||||
postConfigure = ''
|
postConfigure = ''
|
||||||
|
@ -30,9 +30,6 @@ with prev;
|
||||||
});
|
});
|
||||||
|
|
||||||
cqueues = (prev.lib.overrideLuarocks prev.cqueues (drv: {
|
cqueues = (prev.lib.overrideLuarocks prev.cqueues (drv: {
|
||||||
nativeBuildInputs = [
|
|
||||||
pkgs.gnum4
|
|
||||||
];
|
|
||||||
externalDeps = [
|
externalDeps = [
|
||||||
{ name = "CRYPTO"; dep = pkgs.openssl; }
|
{ name = "CRYPTO"; dep = pkgs.openssl; }
|
||||||
{ name = "OPENSSL"; dep = pkgs.openssl; }
|
{ name = "OPENSSL"; dep = pkgs.openssl; }
|
||||||
|
@ -46,6 +43,11 @@ with prev;
|
||||||
date = head rel;
|
date = head rel;
|
||||||
rev = last (splitString "-" (last rel));
|
rev = last (splitString "-" (last rel));
|
||||||
in "${date}-${rev}";
|
in "${date}-${rev}";
|
||||||
|
|
||||||
|
nativeBuildInputs = oa.nativeBuildInputs ++ [
|
||||||
|
pkgs.gnum4
|
||||||
|
];
|
||||||
|
|
||||||
# Upstream rockspec is pointlessly broken into separate rockspecs, per Lua
|
# Upstream rockspec is pointlessly broken into separate rockspecs, per Lua
|
||||||
# version, which doesn't work well for us, so modify it
|
# version, which doesn't work well for us, so modify it
|
||||||
postConfigure = let inherit (prev.cqueues) pname; in ''
|
postConfigure = let inherit (prev.cqueues) pname; in ''
|
||||||
|
@ -111,8 +113,8 @@ with prev;
|
||||||
propagatedBuildInputs = with pkgs.lib; optional (!isLuaJIT) luaffi;
|
propagatedBuildInputs = with pkgs.lib; optional (!isLuaJIT) luaffi;
|
||||||
});
|
});
|
||||||
|
|
||||||
lgi = prev.lib.overrideLuarocks prev.lgi (drv: {
|
lgi = prev.lgi.overrideAttrs (oa: {
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = oa.nativeBuildInputs ++ [
|
||||||
pkgs.pkg-config
|
pkgs.pkg-config
|
||||||
];
|
];
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
@ -415,6 +417,23 @@ with prev;
|
||||||
'';
|
'';
|
||||||
});
|
});
|
||||||
|
|
||||||
|
sqlite = prev.lib.overrideLuarocks prev.sqlite (drv: {
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
checkInputs = [ final.plenary-nvim pkgs.neovim-unwrapped ];
|
||||||
|
|
||||||
|
# we override 'luarocks test' because otherwise neovim doesn't find/load the plenary plugin
|
||||||
|
checkPhase = ''
|
||||||
|
export LIBSQLITE="${pkgs.sqlite.out}/lib/libsqlite3.so"
|
||||||
|
export HOME="$TMPDIR";
|
||||||
|
|
||||||
|
nvim --headless -i NONE \
|
||||||
|
-u test/minimal_init.vim --cmd "set rtp+=${pkgs.vimPlugins.plenary-nvim}" \
|
||||||
|
-c "PlenaryBustedDirectory test/auto/ { minimal_init = './test/minimal_init.vim' }"
|
||||||
|
'';
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
std-_debug = prev.std-_debug.overrideAttrs(oa: {
|
std-_debug = prev.std-_debug.overrideAttrs(oa: {
|
||||||
# run make to generate lib/std/_debug/version.lua
|
# run make to generate lib/std/_debug/version.lua
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
|
|
|
@ -50,7 +50,7 @@ in
|
||||||
getLuaCPath = drv: getPath drv luaLib.luaCPathList;
|
getLuaCPath = drv: getPath drv luaLib.luaCPathList;
|
||||||
|
|
||||||
inherit (callPackage ../development/interpreters/lua-5/hooks { inherit (args) lib;})
|
inherit (callPackage ../development/interpreters/lua-5/hooks { inherit (args) lib;})
|
||||||
lua-setup-hook;
|
luarocksCheckHook lua-setup-hook;
|
||||||
|
|
||||||
inherit lua callPackage;
|
inherit lua callPackage;
|
||||||
inherit buildLuaPackage buildLuarocksPackage buildLuaApplication;
|
inherit buildLuaPackage buildLuarocksPackage buildLuaApplication;
|
||||||
|
|
Loading…
Reference in a new issue