nixpkgs/pkgs/top-level/lua-packages.nix
Artturin 4a25775546 lua-packages: fix eval failure when cross-compiling
remove the inherit line did not work

fixes mpv for example

nix-repl> pkgsCross.aarch64-multiplatform.lua.withPackages (ps: with ps; [ luasocket ])
error: attribute 'runtimeShell' missing

       at /home/artturin/nixgits/my-nixpkgs/pkgs/top-level/all-packages.nix:849:17:

          848|       substitutions = {
          849|         shell = targetPackages.runtimeShell;
             |                 ^
          850|         passthru.tests = tests.makeWrapper;

       … while evaluating the attribute 'shell' of the derivation 'hook'

       at /home/artturin/nixgits/my-nixpkgs/pkgs/stdenv/generic/make-derivation.nix:270:7:

          269|     // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
          270|       name =
             |       ^
          271|         let

       … while evaluating 'optionalString'

       at /home/artturin/nixgits/my-nixpkgs/lib/strings.nix:203:5:

          202|     # String to return if condition is true
          203|     string: if cond then string else "";
             |     ^
          204|

       … from call site

       at /home/artturin/nixgits/my-nixpkgs/pkgs/build-support/trivial-builders.nix:536:12:

          535|         cp ${script} $out/nix-support/setup-hook
          536|       '' + lib.optionalString (deps != []) ''
             |            ^
          537|         printWords ${toString deps} > $out/nix-support/propagated-build-inputs

       … while evaluating the attribute 'buildCommand' of the derivation 'hook'

       at /home/artturin/nixgits/my-nixpkgs/pkgs/stdenv/generic/make-derivation.nix:270:7:

          269|     // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
          270|       name =
             |       ^
          271|         let

       … while evaluating anonymous lambda

       at /home/artturin/nixgits/my-nixpkgs/lib/lists.nix:646:25:

          645|    */
          646|   unique = foldl' (acc: e: if elem e acc then acc else acc ++ [ e ]) [];
             |                         ^
          647|

       … from call site

       at /home/artturin/nixgits/my-nixpkgs/pkgs/development/interpreters/lua-5/build-lua-package.nix:105:27:

          104|   # example externalDeps': [ { name = "CRYPTO"; dep = pkgs.openssl; } ]
          105|   externalDepsGenerated = lib.unique (lib.filter (drv: !drv ? luaModule) (
             |                           ^
          106|     luarocksDrv.nativeBuildInputs ++ luarocksDrv.propagatedBuildInputs ++ luarocksDrv.buildInputs)

       … while evaluating 'generateLuarocksConfig'

       at /home/artturin/nixgits/my-nixpkgs/pkgs/development/lua-modules/lib.nix:83:28:

           82|   */
           83|   generateLuarocksConfig = {
             |                            ^
           84|     externalDeps

       … from call site

       at /home/artturin/nixgits/my-nixpkgs/pkgs/development/interpreters/lua-5/build-lua-package.nix:85:23:

           84|   luarocks_content = let
           85|     generatedConfig = lua.pkgs.lib.generateLuarocksConfig {
             |                       ^
           86|       externalDeps = externalDeps ++ externalDepsGenerated;

       … while evaluating the attribute 'configurePhase' of the derivation 'lua5.2-luasocket-3.0.0-1-aarch64-unknown-linux-gnu'

       at /home/artturin/nixgits/my-nixpkgs/pkgs/stdenv/generic/make-derivation.nix:270:7:

          269|     // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
          270|       name =
             |       ^
          271|         let

       … while evaluating anonymous lambda

       at /home/artturin/nixgits/my-nixpkgs/lib/lists.nix:646:25:

          645|    */
          646|   unique = foldl' (acc: e: if elem e acc then acc else acc ++ [ e ]) [];
             |                         ^
          647|

       … from call site

       at /home/artturin/nixgits/my-nixpkgs/pkgs/development/lua-modules/lib.nix:5:6:

            4|     modules =  filter hasLuaModule drvs;
            5|   in unique ([lua] ++ modules ++ concatLists (catAttrs "requiredLuaModules" modules));
             |      ^
            6|   # Check whether a derivation provides a lua module.

       … while evaluating 'requiredLuaModules'

       at /home/artturin/nixgits/my-nixpkgs/pkgs/development/lua-modules/lib.nix:3:24:

            2| let
            3|   requiredLuaModules = drvs: with lib; let
             |                        ^
            4|     modules =  filter hasLuaModule drvs;

       … from call site

       at /home/artturin/nixgits/my-nixpkgs/pkgs/development/interpreters/lua-5/wrapper.nix:13:14:

           12|   env = let
           13|     paths =  requiredLuaModules (extraLibs ++ [ lua ] );
             |              ^
           14|   in buildEnv {

       … while evaluating the attribute 'passAsFile'

       at /home/artturin/nixgits/my-nixpkgs/pkgs/build-support/buildenv/default.nix:77:5:

           76|     # XXX: The size is somewhat arbitrary
           77|     passAsFile = if builtins.stringLength pkgs >= 128*1024 then [ "pkgs" ] else [ ];
             |     ^
           78|   }

       … while evaluating the attribute 'passAsFile' of the derivation 'lua-aarch64-unknown-linux-gnu-5.2.4-env'

       at /home/artturin/nixgits/my-nixpkgs/pkgs/stdenv/generic/make-derivation.nix:270:7:

          269|     // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
          270|       name =
             |       ^
          271|         let
2022-07-14 22:08:55 +03:00

137 lines
4.1 KiB
Nix

/* This file defines the composition for Lua packages. It has
been factored out of all-packages.nix because there are many of
them. Also, because most Nix expressions for Lua packages are
trivial, most are actually defined here. I.e. there's no function
for each package in a separate file: the call to the function would
be almost as must code as the function itself. */
{ fetchurl, stdenv, lua, unzip, pkg-config
, pcre, oniguruma, gnulib, tre, glibc, sqlite, openssl, expat
, autoreconfHook, gnum4
, postgresql, cyrus_sasl
, fetchFromGitHub, which, writeText
, pkgs
, lib
}@args:
let
packages = ( self:
let
callPackage = pkgs.newScope self;
buildLuaApplication = args: buildLuarocksPackage ({namePrefix="";} // args );
buildLuarocksPackage = lib.makeOverridable(callPackage ../development/interpreters/lua-5/build-lua-package.nix {
inherit lua;
inherit (pkgs) lib;
inherit (luaLib) toLuaModule;
});
luaLib = import ../development/lua-modules/lib.nix {
inherit (pkgs) lib;
inherit pkgs lua;
};
#define build lua package function
buildLuaPackage = callPackage ../development/lua-modules/generic {
inherit writeText;
};
getPath = drv: pathListForVersion:
lib.concatMapStringsSep ";" (path: "${drv}/${path}") pathListForVersion;
in
{
# helper functions for dealing with LUA_PATH and LUA_CPATH
lib = luaLib;
getLuaPath = drv: getPath drv luaLib.luaPathList;
getLuaCPath = drv: getPath drv luaLib.luaCPathList;
inherit (callPackage ../development/interpreters/lua-5/hooks { inherit (args) lib;})
luarocksMoveDataFolder luarocksCheckHook lua-setup-hook;
inherit lua callPackage;
inherit buildLuaPackage buildLuarocksPackage buildLuaApplication;
inherit (luaLib) luaOlder luaAtLeast isLua51 isLua52 isLua53 isLuaJIT
requiredLuaModules toLuaModule hasLuaModule;
# wraps programs in $out/bin with valid LUA_PATH/LUA_CPATH
wrapLua = callPackage ../development/interpreters/lua-5/wrap-lua.nix {
inherit lua lib;
inherit (pkgs.buildPackages) makeSetupHook makeWrapper;
};
luarocks = callPackage ../development/tools/misc/luarocks/default.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 { };
luxio = buildLuaPackage {
pname = "luxio";
version = "13";
src = fetchurl {
url = "https://git.gitano.org.uk/luxio.git/snapshot/luxio-luxio-13.tar.bz2";
sha256 = "1hvwslc25q7k82rxk461zr1a2041nxg7sn3sw3w0y5jxf0giz2pz";
};
nativeBuildInputs = [ which pkg-config ];
postPatch = ''
patchShebangs .
'';
preBuild = ''
makeFlagsArray=(
INST_LIBDIR="$out/lib/lua/${lua.luaversion}"
INST_LUADIR="$out/share/lua/${lua.luaversion}"
LUA_BINDIR="$out/bin"
INSTALL=install
);
'';
meta = with lib; {
broken = stdenv.isDarwin;
description = "Lightweight UNIX I/O and POSIX binding for Lua";
homepage = "https://www.gitano.org.uk/luxio/";
license = licenses.mit;
maintainers = with maintainers; [ richardipsum ];
platforms = platforms.unix;
};
};
vicious = luaLib.toLuaModule( stdenv.mkDerivation rec {
pname = "vicious";
version = "2.5.1";
src = fetchFromGitHub {
owner = "vicious-widgets";
repo = "vicious";
rev = "v${version}";
sha256 = "sha256-geu/g/dFAVxtY1BuJYpZoVtFS/oL66NFnqiLAnJELtI=";
};
buildInputs = [ lua ];
installPhase = ''
mkdir -p $out/lib/lua/${lua.luaversion}/
cp -r . $out/lib/lua/${lua.luaversion}/vicious/
printf "package.path = '$out/lib/lua/${lua.luaversion}/?/init.lua;' .. package.path\nreturn require((...) .. '.init')\n" > $out/lib/lua/${lua.luaversion}/vicious.lua
'';
meta = with lib; {
description = "A modular widget library for the awesome window manager";
homepage = "https://vicious.rtfd.io";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ makefu mic92 McSinyx ];
platforms = platforms.linux;
};
});
});
in packages