From 5c93a7780a5f9e47f534e7c726a65b72f4b9d2ce Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Sat, 16 Oct 2021 20:54:36 +0200 Subject: [PATCH 1/2] Revert "luarocks: 3.2.1 -> 3.7.0" This reverts commit eec90bc9d5d6866517ba851c2e798e70286080b4. See discussion in: https://github.com/NixOS/nixpkgs/pull/141718 https://github.com/NixOS/nixpkgs/pull/80528 --- .../tools/misc/luarocks/darwin-3.1.3.patch | 24 +++++++++++++++++++ .../tools/misc/luarocks/darwin-3.7.0.patch | 24 ------------------- .../tools/misc/luarocks/default.nix | 6 ++--- 3 files changed, 27 insertions(+), 27 deletions(-) create mode 100644 pkgs/development/tools/misc/luarocks/darwin-3.1.3.patch delete mode 100644 pkgs/development/tools/misc/luarocks/darwin-3.7.0.patch diff --git a/pkgs/development/tools/misc/luarocks/darwin-3.1.3.patch b/pkgs/development/tools/misc/luarocks/darwin-3.1.3.patch new file mode 100644 index 000000000000..8070af173aaf --- /dev/null +++ b/pkgs/development/tools/misc/luarocks/darwin-3.1.3.patch @@ -0,0 +1,24 @@ +diff --git a/src/luarocks/core/cfg.lua b/src/luarocks/core/cfg.lua +index c5af5a2..1949fdc 100644 +--- a/src/luarocks/core/cfg.lua ++++ b/src/luarocks/core/cfg.lua +@@ -425,7 +425,7 @@ local function make_defaults(lua_version, target_cpu, platforms, home) + defaults.external_lib_extension = "dylib" + defaults.arch = "macosx-"..target_cpu + defaults.variables.LIBFLAG = "-bundle -undefined dynamic_lookup -all_load" +- local version = util.popen_read("sw_vers -productVersion") ++ local version = os.getenv("MACOSX_DEPLOYMENT_TARGET") or "@darwinMinVersion@" + version = tonumber(version and version:match("^[^.]+%.([^.]+)")) or 3 + if version >= 10 then + version = 8 +@@ -434,8 +434,8 @@ local function make_defaults(lua_version, target_cpu, platforms, home) + else + defaults.gcc_rpath = false + end +- defaults.variables.CC = "env MACOSX_DEPLOYMENT_TARGET=10."..version.." gcc" +- defaults.variables.LD = "env MACOSX_DEPLOYMENT_TARGET=10."..version.." gcc" ++ defaults.variables.CC = "env MACOSX_DEPLOYMENT_TARGET=10."..version.." clang" ++ defaults.variables.LD = "env MACOSX_DEPLOYMENT_TARGET=10."..version.." clang" + defaults.web_browser = "open" + end + diff --git a/pkgs/development/tools/misc/luarocks/darwin-3.7.0.patch b/pkgs/development/tools/misc/luarocks/darwin-3.7.0.patch deleted file mode 100644 index 3252e6ae7b4f..000000000000 --- a/pkgs/development/tools/misc/luarocks/darwin-3.7.0.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/src/luarocks/core/cfg.lua b/src/luarocks/core/cfg.lua -index 535bd69..b017161 100644 ---- a/src/luarocks/core/cfg.lua -+++ b/src/luarocks/core/cfg.lua -@@ -436,7 +436,7 @@ local function make_defaults(lua_version, target_cpu, platforms, home) - defaults.external_lib_extension = "dylib" - defaults.arch = "macosx-"..target_cpu - defaults.variables.LIBFLAG = "-bundle -undefined dynamic_lookup -all_load" -- local version = util.popen_read("sw_vers -productVersion") -+ local version = os.getenv("MACOSX_DEPLOYMENT_TARGET") or "@darwinMinVersion@" - if not (version:match("^%d+%.%d+%.%d+$") or version:match("^%d+%.%d+$")) then - version = "10.3" - end -@@ -448,8 +448,8 @@ local function make_defaults(lua_version, target_cpu, platforms, home) - else - defaults.gcc_rpath = false - end -- defaults.variables.CC = "env MACOSX_DEPLOYMENT_TARGET="..tostring(version).." gcc" -- defaults.variables.LD = "env MACOSX_DEPLOYMENT_TARGET="..tostring(version).." gcc" -+ defaults.variables.CC = "env MACOSX_DEPLOYMENT_TARGET="..tostring(version).." clang" -+ defaults.variables.LD = "env MACOSX_DEPLOYMENT_TARGET="..tostring(version).." clang" - defaults.web_browser = "open" - end - diff --git a/pkgs/development/tools/misc/luarocks/default.nix b/pkgs/development/tools/misc/luarocks/default.nix index aa49af753b32..c2449de5dd28 100644 --- a/pkgs/development/tools/misc/luarocks/default.nix +++ b/pkgs/development/tools/misc/luarocks/default.nix @@ -10,16 +10,16 @@ stdenv.mkDerivation rec { pname = "luarocks"; - version = "3.7.0"; + version = "3.2.1"; src = fetchFromGitHub { owner = "luarocks"; repo = "luarocks"; rev = "v${version}"; - sha256 = "1sn2j7hv8nbdjqj1747glk9770zw8q5v8ivaxhvwbk3vl038ck9d"; + sha256 = "0viiafmb8binksda79ah828q1dfnb6jsqlk7vyndl2xvx9yfn4y2"; }; - patches = [ ./darwin-3.7.0.patch ]; + patches = [ ./darwin-3.1.3.patch ]; postPatch = lib.optionalString stdenv.targetPlatform.isDarwin '' substituteInPlace src/luarocks/core/cfg.lua --subst-var-by 'darwinMinVersion' '${stdenv.targetPlatform.darwinMinVersion}' From 397b6492832866fb4d4d7e4ea837376acc14512d Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Sat, 16 Oct 2021 20:57:36 +0200 Subject: [PATCH 2/2] luaPackages.luarocks-3_7: init so that the reverted update can be accessed if desired --- pkgs/development/tools/misc/luarocks/3.7.nix | 82 +++++++++++++++++++ .../tools/misc/luarocks/darwin-3.7.0.patch | 24 ++++++ pkgs/top-level/lua-packages.nix | 4 + 3 files changed, 110 insertions(+) create mode 100644 pkgs/development/tools/misc/luarocks/3.7.nix create mode 100644 pkgs/development/tools/misc/luarocks/darwin-3.7.0.patch diff --git a/pkgs/development/tools/misc/luarocks/3.7.nix b/pkgs/development/tools/misc/luarocks/3.7.nix new file mode 100644 index 000000000000..aa49af753b32 --- /dev/null +++ b/pkgs/development/tools/misc/luarocks/3.7.nix @@ -0,0 +1,82 @@ +{lib, stdenv, fetchFromGitHub +, curl, makeWrapper, which, unzip +, lua +# for 'luarocks pack' +, zip +# some packages need to be compiled with cmake +, cmake +, installShellFiles +}: + +stdenv.mkDerivation rec { + pname = "luarocks"; + version = "3.7.0"; + + src = fetchFromGitHub { + owner = "luarocks"; + repo = "luarocks"; + rev = "v${version}"; + sha256 = "1sn2j7hv8nbdjqj1747glk9770zw8q5v8ivaxhvwbk3vl038ck9d"; + }; + + patches = [ ./darwin-3.7.0.patch ]; + + postPatch = lib.optionalString stdenv.targetPlatform.isDarwin '' + substituteInPlace src/luarocks/core/cfg.lua --subst-var-by 'darwinMinVersion' '${stdenv.targetPlatform.darwinMinVersion}' + ''; + + preConfigure = '' + lua -e "" || { + luajit -e "" && { + export LUA_SUFFIX=jit + configureFlags="$configureFlags --lua-suffix=$LUA_SUFFIX" + } + } + lua_inc="$(echo "${lua}/include"/*/)" + if test -n "$lua_inc"; then + configureFlags="$configureFlags --with-lua-include=$lua_inc" + fi + ''; + + nativeBuildInputs = [ makeWrapper installShellFiles ]; + + buildInputs = [ lua curl which ]; + + postInstall = '' + sed -e "1s@.*@#! ${lua}/bin/lua$LUA_SUFFIX@" -i "$out"/bin/* + for i in "$out"/bin/*; do + test -L "$i" || { + wrapProgram "$i" \ + --suffix LUA_PATH ";" "$(echo "$out"/share/lua/*/)?.lua" \ + --suffix LUA_PATH ";" "$(echo "$out"/share/lua/*/)?/init.lua" \ + --suffix LUA_CPATH ";" "$(echo "$out"/lib/lua/*/)?.so" \ + --suffix LUA_CPATH ";" "$(echo "$out"/share/lua/*/)?/init.lua" + } + done + + installShellCompletion --cmd luarocks --bash <($out/bin/luarocks completion bash) + installShellCompletion --cmd luarocks --zsh <($out/bin/luarocks completion zsh) + ''; + + propagatedBuildInputs = [ zip unzip cmake ]; + + # unpack hook for src.rock and rockspec files + setupHook = ./setup-hook.sh; + + # cmake is just to compile packages with "cmake" buildType, not luarocks itself + dontUseCmakeConfigure = true; + + shellHook = '' + export PATH="src/bin:''${PATH:-}" + export LUA_PATH="src/?.lua;''${LUA_PATH:-}" + ''; + + meta = with lib; { + description = "A package manager for Lua"; + license = licenses.mit ; + maintainers = with maintainers; [raskin teto]; + platforms = platforms.linux ++ platforms.darwin; + downloadPage = "http://luarocks.org/releases/"; + updateWalker = true; + }; +} diff --git a/pkgs/development/tools/misc/luarocks/darwin-3.7.0.patch b/pkgs/development/tools/misc/luarocks/darwin-3.7.0.patch new file mode 100644 index 000000000000..3252e6ae7b4f --- /dev/null +++ b/pkgs/development/tools/misc/luarocks/darwin-3.7.0.patch @@ -0,0 +1,24 @@ +diff --git a/src/luarocks/core/cfg.lua b/src/luarocks/core/cfg.lua +index 535bd69..b017161 100644 +--- a/src/luarocks/core/cfg.lua ++++ b/src/luarocks/core/cfg.lua +@@ -436,7 +436,7 @@ local function make_defaults(lua_version, target_cpu, platforms, home) + defaults.external_lib_extension = "dylib" + defaults.arch = "macosx-"..target_cpu + defaults.variables.LIBFLAG = "-bundle -undefined dynamic_lookup -all_load" +- local version = util.popen_read("sw_vers -productVersion") ++ local version = os.getenv("MACOSX_DEPLOYMENT_TARGET") or "@darwinMinVersion@" + if not (version:match("^%d+%.%d+%.%d+$") or version:match("^%d+%.%d+$")) then + version = "10.3" + end +@@ -448,8 +448,8 @@ local function make_defaults(lua_version, target_cpu, platforms, home) + else + defaults.gcc_rpath = false + end +- defaults.variables.CC = "env MACOSX_DEPLOYMENT_TARGET="..tostring(version).." gcc" +- defaults.variables.LD = "env MACOSX_DEPLOYMENT_TARGET="..tostring(version).." gcc" ++ defaults.variables.CC = "env MACOSX_DEPLOYMENT_TARGET="..tostring(version).." clang" ++ defaults.variables.LD = "env MACOSX_DEPLOYMENT_TARGET="..tostring(version).." clang" + defaults.web_browser = "open" + end + diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix index e1387e42b785..efaf06d30a22 100644 --- a/pkgs/top-level/lua-packages.nix +++ b/pkgs/top-level/lua-packages.nix @@ -67,6 +67,10 @@ in inherit lua lib; }; + luarocks-3_7 = callPackage ../development/tools/misc/luarocks/3.7.nix { + inherit lua lib; + }; + # a fork of luarocks used to generate nix lua derivations from rockspecs luarocks-nix = callPackage ../development/tools/misc/luarocks/luarocks-nix.nix { };