Merge pull request #260759 from mrcjkb/toml-edit

luaPackages: add some lua packages
This commit is contained in:
Matthieu Coudron 2023-10-13 15:28:36 +02:00 committed by GitHub
commit 922a4d82c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 236 additions and 0 deletions

View File

@ -72,6 +72,7 @@ lualogging,,,,,,
luaossl,,,,,5.1,
luaposix,,,,34.1.1-1,,vyp lblasc
luarepl,,,,,,
luarocks-build-rust-mlua,,,,,,mrcjkb
luasec,,,,,,flosse
luasocket,,,,,,
luasql-sqlite3,,,,,,vyp
@ -92,6 +93,7 @@ mediator_lua,,,,,,
middleclass,,,,,,
mpack,,,,,,
moonscript,https://github.com/leafo/moonscript.git,dev-1,,,,arobyn
nui-nvim,,,,,,mrcjkb
nvim-client,https://github.com/neovim/lua-client.git,,,,,
nvim-cmp,https://github.com/hrsh7th/nvim-cmp,,,,,
penlight,https://github.com/lunarmodules/Penlight.git,,,,,alerque
@ -109,5 +111,7 @@ teal-language-server,,,http://luarocks.org/dev,,,
telescope.nvim,,,,,5.1,
telescope-manix,,,,,,
tl,,,,,,mephistophiles
toml,,,,,,mrcjkb
toml-edit,,,,,5.1,mrcjkb
vstruct,https://github.com/ToxicFrog/vstruct.git,,,,,
vusted,,,,,,figsoda

1 name src ref server version luaversion maintainers
72 luaossl 5.1
73 luaposix 34.1.1-1 vyp lblasc
74 luarepl
75 luarocks-build-rust-mlua mrcjkb
76 luasec flosse
77 luasocket
78 luasql-sqlite3 vyp
93 middleclass
94 mpack
95 moonscript https://github.com/leafo/moonscript.git dev-1 arobyn
96 nui-nvim mrcjkb
97 nvim-client https://github.com/neovim/lua-client.git
98 nvim-cmp https://github.com/hrsh7th/nvim-cmp
99 penlight https://github.com/lunarmodules/Penlight.git alerque
111 telescope.nvim 5.1
112 telescope-manix
113 tl mephistophiles
114 toml mrcjkb
115 toml-edit 5.1 mrcjkb
116 vstruct https://github.com/ToxicFrog/vstruct.git
117 vusted figsoda

View File

@ -0,0 +1,36 @@
{ fetchFromGitHub
, lib
, stdenv
, cmake
, lua
}:
stdenv.mkDerivation (finalAttrs: {
pname = "sol2";
version = "3.3.1";
src = fetchFromGitHub {
owner = "ThePhD";
repo = "sol2";
rev = "v${finalAttrs.version}";
hash = "sha256-7QHZRudxq3hdsfEAYKKJydc4rv6lyN6UIt/2Zmaejx8=";
};
nativeBuildInputs = [ cmake lua ];
cmakeFlags = [
"-DSOL2_LUA_VERSION=${lua.version}"
"-DSOL2_BUILD_LUA=FALSE"
];
meta = with lib;{
description = "Lua API wrapper with advanced features and top notch performance";
longDescription = ''
sol2 is a C++ library binding to Lua.
It currently supports all Lua versions 5.1+ (LuaJIT 2.0+ and MoonJIT included).
sol2 aims to be easy to use and easy to add to a project.
The library is header-only for easy integration with projects, and a single header can be used for drag-and-drop start up.
'';
homepage = "https://github.com/ThePhD/sol2";
license = licenses.mit;
maintainers = with maintainers; [ mrcjkb ];
};
})

View File

@ -2066,6 +2066,35 @@ buildLuarocksPackage {
};
}) {};
luarocks-build-rust-mlua = callPackage({ fetchgit, buildLuarocksPackage }:
buildLuarocksPackage {
pname = "luarocks-build-rust-mlua";
version = "0.1.2-1";
knownRockspec = (fetchurl {
url = "mirror://luarocks/luarocks-build-rust-mlua-0.1.2-1.rockspec";
sha256 = "1sx908fm2ihpxz2mm54xzkfmdzlqdvrqjkh1zz7rcjgmqba4mh1j";
}).outPath;
src = fetchgit ( removeAttrs (builtins.fromJSON ''{
"url": "https://github.com/khvzak/luarocks-build-rust-mlua",
"rev": "c8080aa0832563b7f8b2cb85a195c1598ce312e0",
"date": "2023-06-29T16:47:41+01:00",
"path": "/nix/store/n7id28r1m11xd550hayv99xhz96vpdjq-luarocks-build-rust-mlua",
"sha256": "1zh1p5k7xpczi5db3k0fw0ljw9w0xxk1qjjcfg5rcznqjf48i3x7",
"fetchLFS": false,
"fetchSubmodules": true,
"deepClone": false,
"leaveDotGit": false
}
'') ["date" "path"]) ;
meta = {
homepage = "https://github.com/khvzak/luarocks-build-rust-mlua";
description = "A LuaRocks build backend for Lua modules written in Rust using mlua";
license.fullName = "MIT";
};
}) {};
luasec = callPackage({ fetchgit, luaOlder, luasocket, buildLuarocksPackage, lua }:
buildLuarocksPackage {
pname = "luasec";
@ -2574,6 +2603,36 @@ buildLuarocksPackage {
};
}) {};
nui-nvim = callPackage( { fetchgit, buildLuarocksPackage }:
buildLuarocksPackage {
pname = "nui.nvim";
version = "0.2.0-1";
knownRockspec = (fetchurl {
url = "mirror://luarocks/nui.nvim-0.2.0-1.rockspec";
sha256 = "0v2z6lgl6hrzcjlzhis8nrkdkh9kvx8zg3q5svi5gyklg7vmcbc2";
}).outPath;
src = fetchgit ( removeAttrs (builtins.fromJSON ''{
"url": "https://github.com/MunifTanjim/nui.nvim.git",
"rev": "9e3916e784660f55f47daa6f26053ad044db5d6a",
"date": "2023-07-20T10:45:09+06:00",
"path": "/nix/store/8zdhjgipjjhi9b1y40r2yk5np4lp39as-nui.nvim",
"sha256": "14a73dwl56kah9h36b40ir6iylvfs261ysz17qvi9vhp63vjq9cx",
"fetchLFS": false,
"fetchSubmodules": true,
"deepClone": false,
"leaveDotGit": false
}
'') ["date" "path"]) ;
meta = {
homepage = "https://github.com/MunifTanjim/nui.nvim";
description = "UI Component Library for Neovim.";
maintainers = with lib.maintainers; [ mrcjkb ];
license.fullName = "MIT";
};
}) {};
nvim-client = callPackage({ coxpcall, fetchurl, mpack, lua, luaOlder, luv, buildLuarocksPackage }:
buildLuarocksPackage {
pname = "nvim-client";
@ -3039,6 +3098,70 @@ buildLuarocksPackage {
};
}) {};
toml = callPackage({ lua, fetchgit, luaOlder, buildLuarocksPackage }:
buildLuarocksPackage {
pname = "toml";
version = "0.3.0-0";
knownRockspec = (fetchurl {
url = "mirror://luarocks/toml-0.3.0-0.rockspec";
sha256 = "0y4qdzsvf4xwnr49xcpbqclrq9d6snv83cbdkrchl0cn4cx6zpxy";
}).outPath;
src = fetchgit ( removeAttrs (builtins.fromJSON ''{
"url": "https://github.com/LebJe/toml.lua.git",
"rev": "319e9accf8c5cedf68795354ba81e54c817d1277",
"date": "2023-02-19T23:00:49-05:00",
"path": "/nix/store/p6a98sqp9a4jwsw6ghqcwpn9lxmhvkdg-toml.lua",
"sha256": "05p33bq0ajl41vbsw9bx73shpf0p11n5gb6yy8asvp93zh2m51hq",
"fetchLFS": false,
"fetchSubmodules": true,
"deepClone": false,
"leaveDotGit": false
}
'') ["date" "path"]) ;
disabled = (luaOlder "5.1");
propagatedBuildInputs = [ lua ];
meta = {
homepage = "https://github.com/LebJe/toml.lua";
description = "TOML v1.0.0 parser and serializer for Lua. Powered by toml++.";
maintainers = with lib.maintainers; [ mrcjkb ];
license.fullName = "MIT";
};
}) {};
toml-edit = callPackage({ luaOlder, luarocks-build-rust-mlua, buildLuarocksPackage, lua, fetchgit }:
buildLuarocksPackage {
pname = "toml-edit";
version = "0.1.4-1";
knownRockspec = (fetchurl {
url = "mirror://luarocks/toml-edit-0.1.4-1.rockspec";
sha256 = "05bcc1xafcspdf1rcka9bhg7b6z617b4jrcahs1r7grcp78w89vf";
}).outPath;
src = fetchgit ( removeAttrs (builtins.fromJSON ''{
"url": "https://github.com/vhyrro/toml-edit.lua",
"rev": "f6efdab4ca6fab276f172060971781dc42a94f2d",
"date": "2023-10-02T16:54:10+02:00",
"path": "/nix/store/p1368agmqg4jwb1qvf2iff3fdrq9vkdj-toml-edit.lua",
"sha256": "1aa8znjnmm84392gnl7w0hm069xfv7niym3i8my7kyk0vdgxja06",
"fetchLFS": false,
"fetchSubmodules": true,
"deepClone": false,
"leaveDotGit": false
}
'') ["date" "path"]) ;
disabled = (luaOlder "5.1");
propagatedBuildInputs = [ lua luarocks-build-rust-mlua ];
meta = {
homepage = "https://github.com/vhyrro/toml-edit.lua";
description = "TOML Parser + Formatting and Comment-Preserving Editor";
maintainers = with lib.maintainers; [ mrcjkb ];
license.fullName = "MIT";
};
}) {};
vstruct = callPackage({ fetchgit, lua, buildLuarocksPackage, luaOlder }:
buildLuarocksPackage {
pname = "vstruct";

View File

@ -1,5 +1,6 @@
# do not add pkgs, it messes up splicing
{ stdenv
, cargo
, cmake
, curl
, cyrus_sasl
@ -27,6 +28,7 @@
, libxcrypt
, libyaml
, mariadb
, magic-enum
, mpfr
, neovim-unwrapped
, openldap
@ -35,7 +37,10 @@
, pkg-config
, postgresql
, readline
, rustPlatform
, sol2
, sqlite
, tomlplusplus
, unbound
, vimPlugins
, vimUtils
@ -558,6 +563,29 @@ with prev;
'';
});
toml = prev.toml.overrideAttrs (oa: {
patches = [ ./toml.patch ];
propagatedBuildInputs = oa.propagatedBuildInputs ++ [ magic-enum sol2 ];
postPatch = ''
substituteInPlace CMakeLists.txt --replace \
"TOML_PLUS_PLUS_SRC" \
"${tomlplusplus.src}"
'';
});
toml-edit = prev.toml-edit.overrideAttrs (oa: {
cargoDeps = rustPlatform.fetchCargoTarball {
src = oa.src;
hash = "sha256-pLAisfnSDoAToQO/kdKTdic6vEug7/WFNtgOfj0bRAE=";
};
propagatedBuildInputs = oa.propagatedBuildInputs ++ [ cargo rustPlatform.cargoSetupHook ];
});
vstruct = prev.vstruct.overrideAttrs (_: {
meta.broken = (luaOlder "5.1" || luaAtLeast "5.4");
});

View File

@ -0,0 +1,43 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ab3884c..9432df7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,26 +38,17 @@ include(FetchContent)
FetchContent_Declare(
${TOML++}
- GIT_REPOSITORY "https://github.com/marzer/tomlplusplus.git"
- GIT_SHALLOW ON
- GIT_SUBMODULES ""
- GIT_TAG "v3.3.0"
+ DOWNLOAD_COMMAND true
)
FetchContent_Declare(
${SOL2}
- GIT_REPOSITORY "https://github.com/ThePhD/sol2.git"
- GIT_SHALLOW ON
- GIT_SUBMODULES ""
- GIT_TAG "v3.3.0"
+ DOWNLOAD_COMMAND true
)
FetchContent_Declare(
${MAGIC_ENUM}
- GIT_REPOSITORY "https://github.com/Neargye/magic_enum.git"
- GIT_SHALLOW ON
- GIT_SUBMODULES ""
- GIT_TAG "v0.8.2"
+ DOWNLOAD_COMMAND true
)
FetchContent_GetProperties(${TOML++})
@@ -113,7 +104,7 @@ if(NOT LUA_INCLUDE_DIR OR (WIN32 AND NOT LUA_LIBRARIES))
find_package(Lua)
endif()
-include_directories(${LUA_INCLUDE_DIR} src src/include ${${TOML++}_SOURCE_DIR} ${${SOL2}_SOURCE_DIR}/include ${${MAGIC_ENUM}_SOURCE_DIR}/include)
+include_directories(${LUA_INCLUDE_DIR} src src/include TOML_PLUS_PLUS_SRC ${${SOL2}_SOURCE_DIR}/include ${${MAGIC_ENUM}_SOURCE_DIR}/include)
set(SOURCES
src/toml.cpp

View File

@ -18020,6 +18020,8 @@ with pkgs;
bundler-audit = callPackage ../tools/security/bundler-audit { };
sol2 = callPackage ../development/libraries/sol2 { };
solargraph = rubyPackages.solargraph;
rbenv = callPackage ../development/ruby-modules/rbenv { };