9bb3fccb5b
continuation of #109595 pkgconfig was aliased in 2018, however, it remained in all-packages.nix due to its wide usage. This cleans up the remaining references to pkgs.pkgsconfig and moves the entry to aliases.nix. python3Packages.pkgconfig remained unchanged because it's the canonical name of the upstream package on pypi.
350 lines
10 KiB
Nix
350 lines
10 KiB
Nix
{ pkgs, ... }:
|
|
self: super:
|
|
with super;
|
|
{
|
|
##########################################3
|
|
#### manual fixes for generated packages
|
|
##########################################3
|
|
bit32 = super.bit32.override({
|
|
# Small patch in order to no longer redefine a Lua 5.2 function that Luajit
|
|
# 2.1 also provides, see https://github.com/LuaJIT/LuaJIT/issues/325 for
|
|
# more
|
|
patches = [
|
|
./bit32.patch
|
|
];
|
|
});
|
|
|
|
busted = super.busted.override({
|
|
postConfigure = ''
|
|
substituteInPlace ''${rockspecFilename} \
|
|
--replace "'lua_cliargs = 3.0-1'," "'lua_cliargs >= 3.0-1',"
|
|
'';
|
|
postInstall = ''
|
|
install -D completions/zsh/_busted $out/share/zsh/site-functions/_busted
|
|
install -D completions/bash/busted.bash $out/share/bash-completion/completions/busted
|
|
'';
|
|
});
|
|
|
|
cqueues = super.cqueues.override(rec {
|
|
# Parse out a version number without the Lua version inserted
|
|
version = with pkgs.lib; let
|
|
version' = super.cqueues.version;
|
|
rel = splitVersion version';
|
|
date = head rel;
|
|
rev = last (splitString "-" (last rel));
|
|
in "${date}-${rev}";
|
|
nativeBuildInputs = [
|
|
pkgs.gnum4
|
|
];
|
|
externalDeps = [
|
|
{ name = "CRYPTO"; dep = pkgs.openssl; }
|
|
{ name = "OPENSSL"; dep = pkgs.openssl; }
|
|
];
|
|
disabled = luaOlder "5.1" || luaAtLeast "5.4";
|
|
# Upstream rockspec is pointlessly broken into separate rockspecs, per Lua
|
|
# version, which doesn't work well for us, so modify it
|
|
postConfigure = let inherit (super.cqueues) pname; in ''
|
|
# 'all' target auto-detects correct Lua version, which is fine for us as
|
|
# we only have the right one available :)
|
|
sed -Ei ''${rockspecFilename} \
|
|
-e 's|lua == 5.[[:digit:]]|lua >= 5.1, <= 5.3|' \
|
|
-e 's|build_target = "[^"]+"|build_target = "all"|' \
|
|
-e 's|version = "[^"]+"|version = "${version}"|'
|
|
specDir=$(dirname ''${rockspecFilename})
|
|
cp ''${rockspecFilename} "$specDir/${pname}-${version}.rockspec"
|
|
rockspecFilename="$specDir/${pname}-${version}.rockspec"
|
|
'';
|
|
});
|
|
|
|
cyrussasl = super.cyrussasl.override({
|
|
externalDeps = [
|
|
{ name = "LIBSASL"; dep = pkgs.cyrus_sasl; }
|
|
];
|
|
});
|
|
|
|
http = super.http.override({
|
|
patches = [
|
|
(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" ];
|
|
*/
|
|
});
|
|
|
|
ldbus = super.ldbus.override({
|
|
extraVariables = {
|
|
DBUS_DIR="${pkgs.dbus.lib}";
|
|
DBUS_ARCH_INCDIR="${pkgs.dbus.lib}/lib/dbus-1.0/include";
|
|
DBUS_INCDIR="${pkgs.dbus.dev}/include/dbus-1.0";
|
|
};
|
|
buildInputs = with pkgs; [
|
|
dbus
|
|
];
|
|
});
|
|
|
|
ljsyscall = super.ljsyscall.override(rec {
|
|
version = "unstable-20180515";
|
|
# package hasn't seen any release for a long time
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "justincormack";
|
|
repo = "ljsyscall";
|
|
rev = "e587f8c55aad3955dddab3a4fa6c1968037b5c6e";
|
|
sha256 = "06v52agqyziwnbp2my3r7liv245ddmb217zmyqakh0ldjdsr8lz4";
|
|
};
|
|
knownRockspec = "rockspec/ljsyscall-scm-1.rockspec";
|
|
# actually library works fine with lua 5.2
|
|
preConfigure = ''
|
|
sed -i 's/lua == 5.1/lua >= 5.1, < 5.3/' ${knownRockspec}
|
|
'';
|
|
disabled = luaOlder "5.1" || luaAtLeast "5.3";
|
|
|
|
propagatedBuildInputs = with pkgs.lib; optional (!isLuaJIT) luaffi;
|
|
});
|
|
|
|
lgi = super.lgi.override({
|
|
nativeBuildInputs = [
|
|
pkgs.pkg-config
|
|
];
|
|
buildInputs = [
|
|
pkgs.glib
|
|
pkgs.gobject-introspection
|
|
];
|
|
patches = [
|
|
(pkgs.fetchpatch {
|
|
name = "lgi-find-cairo-through-typelib.patch";
|
|
url = "https://github.com/psychon/lgi/commit/46a163d9925e7877faf8a4f73996a20d7cf9202a.patch";
|
|
sha256 = "0gfvvbri9kyzhvq3bvdbj2l6mwvlz040dk4mrd5m9gz79f7w109c";
|
|
})
|
|
];
|
|
});
|
|
|
|
lrexlib-gnu = super.lrexlib-gnu.override({
|
|
buildInputs = [
|
|
pkgs.gnulib
|
|
];
|
|
});
|
|
|
|
lrexlib-pcre = super.lrexlib-pcre.override({
|
|
externalDeps = [
|
|
{ name = "PCRE"; dep = pkgs.pcre; }
|
|
];
|
|
});
|
|
|
|
lrexlib-posix = super.lrexlib-posix.override({
|
|
buildInputs = [
|
|
pkgs.glibc.dev
|
|
];
|
|
});
|
|
|
|
ltermbox = super.ltermbox.override( {
|
|
disabled = !isLua51 || isLuaJIT;
|
|
});
|
|
|
|
lua-iconv = super.lua-iconv.override({
|
|
buildInputs = [
|
|
pkgs.libiconv
|
|
];
|
|
});
|
|
|
|
lua-lsp = super.lua-lsp.override({
|
|
# until Alloyed/lua-lsp#28
|
|
postConfigure = ''
|
|
substituteInPlace ''${rockspecFilename} \
|
|
--replace '"lpeglabel ~> 1.5",' '"lpeglabel >= 1.5",'
|
|
'';
|
|
});
|
|
|
|
lua-zlib = super.lua-zlib.override({
|
|
buildInputs = [
|
|
pkgs.zlib.dev
|
|
];
|
|
disabled = luaOlder "5.1" || luaAtLeast "5.4";
|
|
});
|
|
|
|
luadbi-mysql = super.luadbi-mysql.override({
|
|
extraVariables = {
|
|
# Can't just be /include and /lib, unfortunately needs the trailing 'mysql'
|
|
MYSQL_INCDIR="${pkgs.libmysqlclient.dev}/include/mysql";
|
|
MYSQL_LIBDIR="${pkgs.libmysqlclient}/lib/mysql";
|
|
};
|
|
buildInputs = [
|
|
pkgs.mysql.client
|
|
pkgs.libmysqlclient
|
|
];
|
|
});
|
|
|
|
luadbi-postgresql = super.luadbi-postgresql.override({
|
|
buildInputs = [
|
|
pkgs.postgresql
|
|
];
|
|
});
|
|
|
|
luadbi-sqlite3 = super.luadbi-sqlite3.override({
|
|
externalDeps = [
|
|
{ name = "SQLITE"; dep = pkgs.sqlite; }
|
|
];
|
|
});
|
|
|
|
luaevent = super.luaevent.override({
|
|
propagatedBuildInputs = [
|
|
luasocket
|
|
];
|
|
externalDeps = [
|
|
{ name = "EVENT"; dep = pkgs.libevent; }
|
|
];
|
|
disabled = luaOlder "5.1" || luaAtLeast "5.4";
|
|
});
|
|
|
|
luaexpat = super.luaexpat.override({
|
|
externalDeps = [
|
|
{ name = "EXPAT"; dep = pkgs.expat; }
|
|
];
|
|
patches = [
|
|
./luaexpat.patch
|
|
];
|
|
});
|
|
|
|
# TODO Somehow automatically amend buildInputs for things that need luaffi
|
|
# but are in luajitPackages?
|
|
luaffi = super.luaffi.override({
|
|
# The packaged .src.rock version is pretty old, and doesn't work with Lua 5.3
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "facebook"; repo = "luaffifb";
|
|
rev = "532c757e51c86f546a85730b71c9fef15ffa633d";
|
|
sha256 = "1nwx6sh56zfq99rcs7sph0296jf6a9z72mxknn0ysw9fd7m1r8ig";
|
|
};
|
|
knownRockspec = with super.luaffi; "${pname}-${version}.rockspec";
|
|
disabled = luaOlder "5.1" || luaAtLeast "5.4" || isLuaJIT;
|
|
});
|
|
|
|
luaossl = super.luaossl.override({
|
|
externalDeps = [
|
|
{ name = "CRYPTO"; dep = pkgs.openssl; }
|
|
{ name = "OPENSSL"; dep = pkgs.openssl; }
|
|
];
|
|
});
|
|
|
|
luasec = super.luasec.override({
|
|
externalDeps = [
|
|
{ name = "OPENSSL"; dep = pkgs.openssl; }
|
|
];
|
|
});
|
|
|
|
luasql-sqlite3 = super.luasql-sqlite3.override({
|
|
externalDeps = [
|
|
{ name = "SQLITE"; dep = pkgs.sqlite; }
|
|
];
|
|
});
|
|
|
|
luasystem = super.luasystem.override({
|
|
buildInputs = pkgs.lib.optionals pkgs.stdenv.isLinux [
|
|
pkgs.glibc
|
|
];
|
|
});
|
|
|
|
luazip = super.luazip.override({
|
|
buildInputs = [
|
|
pkgs.zziplib
|
|
];
|
|
});
|
|
|
|
lua-yajl = super.lua-yajl.override({
|
|
buildInputs = [
|
|
pkgs.yajl
|
|
];
|
|
});
|
|
|
|
luuid = super.luuid.override(old: {
|
|
externalDeps = [
|
|
{ name = "LIBUUID"; dep = pkgs.libuuid; }
|
|
];
|
|
meta = old.meta // {
|
|
platforms = pkgs.lib.platforms.linux;
|
|
};
|
|
# Trivial patch to make it work in both 5.1 and 5.2. Basically just the
|
|
# tiny diff between the two upstream versions placed behind an #if.
|
|
# Upstreams:
|
|
# 5.1: http://webserver2.tecgraf.puc-rio.br/~lhf/ftp/lua/5.1/luuid.tar.gz
|
|
# 5.2: http://webserver2.tecgraf.puc-rio.br/~lhf/ftp/lua/5.2/luuid.tar.gz
|
|
patchFlags = [ "-p2" ];
|
|
patches = [
|
|
./luuid.patch
|
|
];
|
|
postConfigure = let inherit (super.luuid) version pname; in ''
|
|
sed -Ei ''${rockspecFilename} -e 's|lua >= 5.2|lua >= 5.1,|'
|
|
'';
|
|
disabled = luaOlder "5.1" || (luaAtLeast "5.4");
|
|
});
|
|
|
|
luv = super.luv.override({
|
|
# Use system libuv instead of building local and statically linking
|
|
# This is a hacky way to specify -DWITH_SHARED_LIBUV=ON which
|
|
# is not possible with luarocks and the current luv rockspec
|
|
# While at it, remove bundled libuv source entirely to be sure.
|
|
# We may wish to drop bundled lua submodules too...
|
|
preBuild = ''
|
|
sed -i 's,\(option(WITH_SHARED_LIBUV.*\)OFF,\1ON,' CMakeLists.txt
|
|
rm -rf deps/libuv
|
|
'';
|
|
|
|
buildInputs = [ pkgs.libuv ];
|
|
|
|
passthru = {
|
|
libluv = self.luv.override ({
|
|
preBuild = self.luv.preBuild + ''
|
|
sed -i 's,\(option(BUILD_MODULE.*\)ON,\1OFF,' CMakeLists.txt
|
|
sed -i 's,\(option(BUILD_SHARED_LIBS.*\)OFF,\1ON,' CMakeLists.txt
|
|
sed -i 's,${"\${INSTALL_INC_DIR}"},${placeholder "out"}/include/luv,' CMakeLists.txt
|
|
'';
|
|
|
|
nativeBuildInputs = [ pkgs.fixDarwinDylibNames ];
|
|
|
|
# Fixup linking libluv.dylib, for some reason it's not linked against lua correctly.
|
|
NIX_LDFLAGS = pkgs.lib.optionalString pkgs.stdenv.isDarwin
|
|
(if isLuaJIT then "-lluajit-${lua.luaversion}" else "-llua");
|
|
});
|
|
};
|
|
});
|
|
|
|
lyaml = super.lyaml.override({
|
|
buildInputs = [
|
|
pkgs.libyaml
|
|
];
|
|
});
|
|
|
|
mpack = super.mpack.override({
|
|
buildInputs = [ pkgs.libmpack ];
|
|
# the rockspec doesn't use the makefile so you may need to export more flags
|
|
USE_SYSTEM_LUA = "yes";
|
|
USE_SYSTEM_MPACK = "yes";
|
|
});
|
|
|
|
rapidjson = super.rapidjson.override({
|
|
preBuild = ''
|
|
sed -i '/set(CMAKE_CXX_FLAGS/d' CMakeLists.txt
|
|
sed -i '/set(CMAKE_C_FLAGS/d' CMakeLists.txt
|
|
'';
|
|
});
|
|
|
|
readline = (super.readline.override ({
|
|
unpackCmd = ''
|
|
unzip "$curSrc"
|
|
tar xf *.tar.gz
|
|
'';
|
|
propagatedBuildInputs = super.readline.propagatedBuildInputs ++ [ pkgs.readline ];
|
|
extraVariables = rec {
|
|
READLINE_INCDIR = "${pkgs.readline.dev}/include";
|
|
HISTORY_INCDIR = READLINE_INCDIR;
|
|
};
|
|
})).overrideAttrs (old: {
|
|
# Without this, source root is wrongly set to ./readline-2.6/doc
|
|
setSourceRoot = ''
|
|
sourceRoot=./readline-2.6
|
|
'';
|
|
});
|
|
}
|