From bf3dea4164ed45848b23a680cb68bfcb747b080c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Wed, 1 May 2019 09:41:10 +0200 Subject: [PATCH 1/5] lua*Packages.luuid: don't clear generated meta --- pkgs/development/lua-modules/overrides.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix index 0cf0c70faa10..43b7b877ece5 100644 --- a/pkgs/development/lua-modules/overrides.nix +++ b/pkgs/development/lua-modules/overrides.nix @@ -56,7 +56,7 @@ with super; ''; }); - luuid = super.luuid.override({ + luuid = super.luuid.override(oa: { buildInputs = [ pkgs.libuuid ]; extraConfig = '' variables = { @@ -64,7 +64,7 @@ with super; LIBUUID_LIBDIR="${pkgs.lib.getLib pkgs.libuuid}/lib"; } ''; - meta = { + meta = oa.meta // { platforms = pkgs.lib.platforms.linux; }; }); From 6108e63a01f4ec126161def3334d31ec000338ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Wed, 1 May 2019 09:43:59 +0200 Subject: [PATCH 2/5] lua*Packages.binaryheap: init at 0.4-1 (generated) The generator wanted to do various changes in other packages as well, but I didn't commit those. --- maintainers/scripts/luarocks-packages.csv | 1 + .../lua-modules/generated-packages.nix | 20 +++++++++++++++++++ pkgs/development/lua-modules/overrides.nix | 8 +++++++- 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/maintainers/scripts/luarocks-packages.csv b/maintainers/scripts/luarocks-packages.csv index c51c663a5413..284660934f62 100644 --- a/maintainers/scripts/luarocks-packages.csv +++ b/maintainers/scripts/luarocks-packages.csv @@ -2,6 +2,7 @@ ansicolors, argparse, basexx, +binaryheap, dkjson fifo inspect diff --git a/pkgs/development/lua-modules/generated-packages.nix b/pkgs/development/lua-modules/generated-packages.nix index c8fc051f7a97..10e249f6a93f 100644 --- a/pkgs/development/lua-modules/generated-packages.nix +++ b/pkgs/development/lua-modules/generated-packages.nix @@ -70,6 +70,26 @@ basexx = buildLuarocksPackage { }; }; }; +binaryheap = buildLuarocksPackage { + pname = "binaryheap"; + version = "0.4-1"; + + src = fetchurl { + url = https://luarocks.org/binaryheap-0.4-1.src.rock; + sha256 = "11rd8r3bpinfla2965jgjdv1hilqdc1q6g1qla5978d7vzg19kpc"; + }; + disabled = ( luaOlder "5.1"); + propagatedBuildInputs = [ lua ]; + buildType = "builtin"; + + meta = { + homepage = "https://github.com/Tieske/binaryheap.lua"; + description="Binary heap implementation in pure Lua"; + license = { + fullName = "MIT/X11"; + }; + }; +}; dkjson = buildLuarocksPackage { pname = "dkjson"; version = "2.5-2"; diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix index 43b7b877ece5..50310a39f741 100644 --- a/pkgs/development/lua-modules/overrides.nix +++ b/pkgs/development/lua-modules/overrides.nix @@ -75,4 +75,10 @@ with super; 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 ]; + }; + }); +} From 10237c8584abba54df0f2765d250cad551e26882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Wed, 1 May 2019 10:57:13 +0200 Subject: [PATCH 3/5] lua*Packages.compat53: improve paths Test case that should execute without an error: echo "require('compat53')" | env NIX_PATH=nixpkgs=$(pwd) \ nix-shell --pure -p lua -p lua.pkgs.compat53 --run lua --- pkgs/top-level/lua-packages.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix index b51af519f938..0b7ba9dfd611 100644 --- a/pkgs/top-level/lua-packages.nix +++ b/pkgs/top-level/lua-packages.nix @@ -151,10 +151,11 @@ with self; { cc lutf8lib.c $CFLAGS -o utf8.so ''; - # There's no need to separate *.lua and *.so, I guess? TODO: conventions? + # The hook in ../development/lua-modules/generic/default.nix + # is strict about share vs. lib for _PATH and _CPATH. installPhase = '' - install -Dt "$out/lib/lua/${lua.luaversion}/compat53" \ - compat53/*.lua *.so + install -Dt "$out/share/lua/${lua.luaversion}/compat53" compat53/*.lua + install -Dt "$out/lib/lua/${lua.luaversion}/compat53" *.so ''; meta = with stdenv.lib; { From 90f816174597f4220652ff1b4cc10271978a49c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Wed, 1 May 2019 11:08:08 +0200 Subject: [PATCH 4/5] lua*Packages.luasec: improve paths Test case that should execute without an error: echo "require('ssl.https')" | env NIX_PATH=nixpkgs=$(pwd) \ nix-shell --pure -p lua -p lua.pkgs.luasec --run lua --- pkgs/top-level/lua-packages.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix index 0b7ba9dfd611..83ff1d22e5ec 100644 --- a/pkgs/top-level/lua-packages.nix +++ b/pkgs/top-level/lua-packages.nix @@ -420,12 +420,13 @@ with self; { sha256 = "0wv8l7f7na7kw5xn8mjik2wpxbizl7zvvp5s7fcwvz9kl5jdpk5b"; }; + propagatedBuildInputs = [ luasocket ]; buildInputs = [ openssl ]; preBuild = '' makeFlagsArray=( ${platformString} - LUAPATH="$out/lib/lua/${lua.luaversion}" + LUAPATH="$out/share/lua/${lua.luaversion}" LUACPATH="$out/lib/lua/${lua.luaversion}" INC_PATH="-I${lua}/include" LIB_PATH="-L$out/lib"); From 110fb944f11f6ee2c9bee661fc125abd68c26db8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Wed, 1 May 2019 11:19:49 +0200 Subject: [PATCH 5/5] lua*Packages.http: 0.3 -> 0.4 (and generate) One bugfix patch is included - merged upstream but not released yet. knot-resolver wrapper would need to add binaryheap explicitly, so it's migrated to the automatic LUA path discovery instead. --- maintainers/scripts/luarocks-packages.csv | 1 + .../lua-modules/generated-packages.nix | 20 ++++++++++++ pkgs/development/lua-modules/overrides.nix | 17 ++++++++++ pkgs/servers/dns/knot-resolver/default.nix | 24 +++++++------- pkgs/top-level/lua-packages.nix | 32 ------------------- 5 files changed, 49 insertions(+), 45 deletions(-) diff --git a/maintainers/scripts/luarocks-packages.csv b/maintainers/scripts/luarocks-packages.csv index 284660934f62..fd9ba0edc02b 100644 --- a/maintainers/scripts/luarocks-packages.csv +++ b/maintainers/scripts/luarocks-packages.csv @@ -5,6 +5,7 @@ basexx, binaryheap, dkjson fifo +http inspect lgi lpeg_patterns diff --git a/pkgs/development/lua-modules/generated-packages.nix b/pkgs/development/lua-modules/generated-packages.nix index 10e249f6a93f..77646b8c3147 100644 --- a/pkgs/development/lua-modules/generated-packages.nix +++ b/pkgs/development/lua-modules/generated-packages.nix @@ -130,6 +130,26 @@ fifo = buildLuarocksPackage { }; }; }; +http = buildLuarocksPackage { + pname = "http"; + version = "0.3-0"; + + src = fetchurl { + url = https://luarocks.org/http-0.3-0.src.rock; + sha256 = "0vvl687bh3cvjjwbyp9cphqqccm3slv4g7y3h03scp3vpq9q4ccq"; + }; + disabled = ( luaOlder "5.1"); + propagatedBuildInputs = [ lua compat53 bit32 cqueues luaossl basexx lpeg lpeg_patterns binaryheap fifo ]; + buildType = "builtin"; + + meta = { + homepage = "https://github.com/daurnimator/lua-http"; + description="HTTP library for Lua"; + license = { + fullName = "MIT"; + }; + }; +}; inspect = buildLuarocksPackage { pname = "inspect"; version = "3.1.1-0"; diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix index 50310a39f741..c88f5f9f57ca 100644 --- a/pkgs/development/lua-modules/overrides.nix +++ b/pkgs/development/lua-modules/overrides.nix @@ -81,4 +81,21 @@ with super; maintainers = with pkgs.lib.maintainers; oa.meta.maintainers ++ [ vcunat ]; }; }); + + http = super.http.overrideAttrs(oa: { + patches = oa.patches or [] ++ [ + (pkgs.fetchpatch { + name = "invalid-state-progression.patch"; + url = "https://github.com/daurnimator/lua-http/commit/cb7b59474a.diff"; + sha256 = "1vmx039n3nqfx50faqhs3wgiw28ws416rhw6vh6srmh9i826dac7"; + }) + ]; + /* TODO: separate docs derivation? (pandoc is heavy) + nativeBuildInputs = [ pandoc ]; + makeFlags = [ "-C doc" "lua-http.html" "lua-http.3" ]; + */ + meta = oa.meta // { + maintainers = with pkgs.lib.maintainers; oa.meta.maintainers ++ [ vcunat ]; + }; + }); } diff --git a/pkgs/servers/dns/knot-resolver/default.nix b/pkgs/servers/dns/knot-resolver/default.nix index 3882db1124a5..15f6be1fa595 100644 --- a/pkgs/servers/dns/knot-resolver/default.nix +++ b/pkgs/servers/dns/knot-resolver/default.nix @@ -75,26 +75,24 @@ unwrapped = stdenv.mkDerivation rec { }; }; -wrapped-full = with luajitPackages; let - luaPkgs = [ - luasec luasocket # trust anchor bootstrap, prefill module - lfs # prefill module - # Almost all is for the 'http' module: - http cqueues fifo lpeg lpeg_patterns luaossl compat53 basexx - ]; - in runCommand unwrapped.name +wrapped-full = runCommand unwrapped.name { nativeBuildInputs = [ makeWrapper ]; + buildInputs = with luajitPackages; [ + luasec luasocket # trust anchor bootstrap, prefill module + lfs # prefill module + http # for http module; brings lots of deps; some are useful elsewhere + ]; preferLocalBuild = true; allowSubstitutes = false; } '' - mkdir -p "$out/sbin" "$out/share" - makeWrapper '${unwrapped}/sbin/kresd' "$out"/sbin/kresd \ - --set LUA_PATH '${concatStringsSep ";" (map getLuaPath luaPkgs)}' \ - --set LUA_CPATH '${concatStringsSep ";" (map getLuaCPath luaPkgs)}' + mkdir -p "$out"/{bin,share} + makeWrapper '${unwrapped}/bin/kresd' "$out"/bin/kresd \ + --set LUA_PATH "$LUA_PATH" \ + --set LUA_CPATH "$LUA_CPATH" ln -sr '${unwrapped}/share/man' "$out"/share/ - ln -sr "$out"/{sbin,bin} + ln -sr "$out"/{bin,sbin} ''; in result diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix index 83ff1d22e5ec..c26f031a0893 100644 --- a/pkgs/top-level/lua-packages.nix +++ b/pkgs/top-level/lua-packages.nix @@ -193,38 +193,6 @@ with self; { }; }; - http = buildLuaPackage rec { - version = "0.2"; - name = "http-${version}"; - - src = fetchFromGitHub { - owner = "daurnimator"; - repo = "lua-http"; - rev = "v${version}"; - sha256 = "0a8vsj49alaf1fkhv51n5mgpjq8izfff3shcjs8xk7p2bc46vd7i"; - }; - - /* TODO: separate docs derivation? (pandoc is heavy) - nativeBuildInputs = [ pandoc ]; - makeFlags = [ "-C doc" "lua-http.html" "lua-http.3" ]; - */ - - buildPhase = ":"; - installPhase = '' - install -Dt "$out/lib/lua/${lua.luaversion}/http" \ - http/*.lua - install -Dt "$out/lib/lua/${lua.luaversion}/http/compat" \ - http/compat/*.lua - ''; - - meta = with stdenv.lib; { - description = "HTTP library for lua"; - homepage = "https://daurnimator.github.io/lua-http/${version}/"; - license = licenses.mit; - maintainers = with maintainers; [ vcunat ]; - }; - }; - luacyrussasl = buildLuaPackage rec { version = "1.1.0"; name = "lua-cyrussasl-${version}";