Merge branch 'master' into octave-gl2ps

This commit is contained in:
Michael Raskin
2019-12-08 18:09:08 +00:00
committed by GitHub
5508 changed files with 158268 additions and 125394 deletions
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "clojure";
version = "1.10.1.469";
version = "1.10.1.489";
src = fetchurl {
url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz";
sha256 = "0hpb6rixmgllss69vl9zlpb41svm4mx4xmfbq1q7y12jsxckzgpq";
sha256 = "12ks7adh5cx99l5vydppkqknk5nvv9vsj2k0afcwwxd897m794kz";
};
buildInputs = [ makeWrapper ];
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
checkTarget = "test";
meta = with stdenv.lib; {
homepage = http://www.eff-lang.org;
homepage = https://www.eff-lang.org;
description = "A functional programming language based on algebraic effects and their handlers";
longDescription = ''
Eff is a functional language with handlers of not only exceptions,
+4 -2
View File
@@ -1,7 +1,9 @@
{ mkDerivation }:
# How to obtain `sha256`:
# nix-prefetch-url --unpack https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz
mkDerivation {
version = "1.9.1";
sha256 = "106s2a3dykc5iwfrd5icqd737yfzaz1dw4x5v1j5z2fvf46h96dx";
version = "1.9.4";
sha256 = "1l4318g35y4h0vi2w07ayc3jizw1xc3s7hdb47w6j3iw33y06g6b";
minimumOTPVersion = "20";
}
+4 -2
View File
@@ -1,8 +1,10 @@
{ mkDerivation }:
# How to obtain `sha256`:
# nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
mkDerivation {
version = "22.0.4";
sha256 = "1aqkhd6nwdn4xp5yz02zbymd4x8ij8fjw9ji8kh860n1a513k9ai";
version = "22.1.7";
sha256 = "18aqy2s8nqd82v4lzzxknrwjva8mv1y2hvai9cakz5nkyd3vwq62";
prePatch = ''
substituteInPlace make/configure.in --replace '`sw_vers -productVersion`' "''${MACOSX_DEPLOYMENT_TARGET:-10.12}"
@@ -2,7 +2,7 @@
, libxml2, libxslt, ncurses, openssl, perl, autoconf
, openjdk ? null # javacSupport
, unixODBC ? null # odbcSupport
, libGLU_combined ? null, wxGTK ? null, wxmac ? null, xorg ? null # wxSupport
, libGL ? null, libGLU ? null, wxGTK ? null, wxmac ? null, xorg ? null # wxSupport
, withSystemd ? stdenv.isLinux, systemd # systemd support in epmd
}:
@@ -18,7 +18,7 @@
, enableKernelPoll ? true
, javacSupport ? false, javacPackages ? [ openjdk ]
, odbcSupport ? false, odbcPackages ? [ unixODBC ]
, wxSupport ? true, wxPackages ? [ libGLU_combined wxGTK xorg.libX11 ]
, wxSupport ? true, wxPackages ? [ libGL libGLU wxGTK xorg.libX11 ]
, preUnpack ? "", postUnpack ? ""
, patches ? [], patchPhase ? "", prePatch ? "", postPatch ? ""
, configureFlags ? [], configurePhase ? "", preConfigure ? "", postConfigure ? ""
@@ -32,7 +32,7 @@
assert wxSupport -> (if stdenv.isDarwin
then wxmac != null
else libGLU_combined != null && wxGTK != null && xorg != null);
else libGL != null && libGLU != null && wxGTK != null && xorg != null);
assert odbcSupport -> unixODBC != null;
assert javacSupport -> openjdk != null;
@@ -1,12 +1,12 @@
addGuileLibPath () {
if test -d "$1/share/guile/site/2.0"
then
export GUILE_LOAD_PATH="${GUILE_LOAD_PATH}${GUILE_LOAD_PATH:+:}$1/share/guile/site/2.0"
export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site/2.0"
export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site/2.0"
export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site/2.0"
elif test -d "$1/share/guile/site"
then
export GUILE_LOAD_PATH="${GUILE_LOAD_PATH}${GUILE_LOAD_PATH:+:}$1/share/guile/site"
export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site"
export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site"
export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site"
fi
}
@@ -1,12 +1,12 @@
addGuileLibPath () {
if test -d "$1/share/guile/site/2.2"
then
export GUILE_LOAD_PATH="${GUILE_LOAD_PATH}${GUILE_LOAD_PATH:+:}$1/share/guile/site/2.2"
export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site/2.2"
export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site/2.2"
export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site/2.2"
elif test -d "$1/share/guile/site"
then
export GUILE_LOAD_PATH="${GUILE_LOAD_PATH}${GUILE_LOAD_PATH:+:}$1/share/guile/site"
export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site"
export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site"
export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site"
fi
}
@@ -1,7 +1,7 @@
addGuileLibPath () {
if test -d "$1/share/guile/site"
then
export GUILE_LOAD_PATH="${GUILE_LOAD_PATH}${GUILE_LOAD_PATH:+:}$1/share/guile/site"
export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site"
fi
}
+4 -4
View File
@@ -1,15 +1,15 @@
{ stdenv, fetchurl, pythonPackages }:
{ stdenv, fetchurl, python2Packages }:
pythonPackages.buildPythonApplication rec {
python2Packages.buildPythonApplication rec {
pname = "hy";
version = "0.17.0";
src = pythonPackages.fetchPypi {
src = python2Packages.fetchPypi {
inherit pname version;
sha256 = "1gdbqsirsdxj320wnp7my5awzs1kfs6m4fqmkzbd1zd47qzj0zfi";
};
propagatedBuildInputs = with pythonPackages; [
propagatedBuildInputs = with python2Packages; [
appdirs
astor
clint
+3 -3
View File
@@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub, cmake, zlib, sqlite, gmp, libffi, cairo,
ncurses, freetype, libGLU_combined, libpng, libtiff, libjpeg, readline, libsndfile,
ncurses, freetype, libGLU, libGL, libpng, libtiff, libjpeg, readline, libsndfile,
libxml2, freeglut, libsamplerate, pcre, libevent, libedit, yajl,
python3, openssl, glfw, pkgconfig, libpthreadstubs, libXdmcp, libmemcached
}:
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
buildInputs = [
zlib sqlite gmp libffi cairo ncurses freetype
libGLU_combined libpng libtiff libjpeg readline libsndfile libxml2
libGLU libGL libpng libtiff libjpeg readline libsndfile libxml2
freeglut libsamplerate pcre libevent libedit yajl
pkgconfig glfw openssl libpthreadstubs libXdmcp
libmemcached python3
@@ -44,7 +44,7 @@ stdenv.mkDerivation {
maintainers = with maintainers; [
raskin
z77z
maggesi
vrthra
];
platforms = [ "x86_64-linux" ];
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "janet";
version = "1.3.1";
version = "1.5.1";
src = fetchFromGitHub {
owner = "janet-lang";
repo = pname;
rev = "v${version}";
sha256 = "160wd3436cl50wkvqpaf6mbb69qlzzammcg5yb07wx9yw31g399p";
sha256 = "13b4haaanlgi8qpwwvf59zf7qsw8p0zdqv7xdxjjyid5yww7jmm2";
};
nativeBuildInputs = [ meson ninja ];
@@ -5,35 +5,53 @@ let
in stdenv.mkDerivation rec {
pname = "jimtcl";
version = "0.78";
version = "0.79";
src = fetchFromGitHub {
owner = "msteveb";
repo = "jimtcl";
rev = version;
sha256 = "1nrjxjfh69i35ig8sxdlal4ydd3cl0x68c05s6svnf1y2i1bl23j";
sha256 = "1k88hz0v3bi19xdvlp0i9nsx38imzwpjh632w7326zwbv2wldf0h";
};
buildInputs = [
sqlite readline asciidoc SDL SDL_gfx
nativeBuildInputs = [
asciidoc
];
NIX_CFLAGS_COMPILE = makeSDLFlags [ SDL SDL_gfx ];
buildInputs = [
sqlite readline SDL SDL_gfx
];
configureFlags = [
"--shared"
"--with-ext=oo"
"--with-ext=tree"
"--with-ext=binary"
"--with-ext=sqlite3"
"--with-ext=readline"
"--with-ext=sdl"
"--with-ext=json"
"--enable-utf8"
"--ipv6"
];
NIX_CFLAGS_COMPILE = makeSDLFlags [ SDL SDL_gfx ];
enableParallelBuilding = true;
doCheck = true;
preCheck = ''
# test exec2-3.2 fails depending on platform or sandboxing (?)
rm tests/exec2.test
'';
postInstall = ''
ln -sr $out/lib/libjim.so.${version} $out/lib/libjim.so
'';
meta = {
description = "An open source small-footprint implementation of the Tcl programming language";
homepage = http://jim.tcl.tk/;
homepage = "http://jim.tcl.tk/";
license = stdenv.lib.licenses.bsd2;
platforms = stdenv.lib.platforms.all;
maintainers = with stdenv.lib.maintainers; [ dbohdan vrthra ];
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "joker";
version = "0.12.7";
version = "0.12.9";
src = fetchFromGitHub {
rev = "v${version}";
owner = "candid82";
repo = "joker";
sha256 = "0panmhrg1i158xbvqvq3s3217smbj7ynwlaiks18pmss36xx9dk4";
sha256 = "19n2pzs045mflyzgq3cpa4w2fbd0f77j5k6c4yc3gk0mcwgdxhs2";
};
modSha256 = "0i16vf7n1xfz5kp9w3fvyc9y9wgz4h396glgpdaznpxjr12rb43j";
@@ -6,11 +6,11 @@ rubyVersion = callPackage ../ruby/ruby-version.nix {} "2" "3" "3" "";
jruby = stdenv.mkDerivation rec {
pname = "jruby";
version = "9.2.8.0";
version = "9.2.9.0";
src = fetchurl {
url = "https://s3.amazonaws.com/jruby.org/downloads/${version}/jruby-bin-${version}.tar.gz";
sha256 = "1fy717xy8csc89dnz3a8j96arq1s1vs8nakkkpcaqm1z1648didp";
sha256 = "04grdf57c1dgragm17yyjk69ak8mwiwfc1vjzskzcaag3fwgplyf";
};
buildInputs = [ makeWrapper ];
+2 -2
View File
@@ -1,4 +1,4 @@
{ stdenv, fetchFromBitbucket, pkgconfig, SDL2, libGLU_combined, openal, luajit,
{ stdenv, fetchFromBitbucket, pkgconfig, SDL2, libGLU, libGL, openal, luajit,
libdevil, freetype, physfs, libmodplug, mpg123, libvorbis, libogg,
libtheora, which, autoconf, automake, libtool
}:
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
SDL2 libGLU_combined openal luajit libdevil freetype physfs libmodplug mpg123
SDL2 libGLU libGL openal luajit libdevil freetype physfs libmodplug mpg123
libvorbis libogg libtheora autoconf which libtool automake
];
+2 -2
View File
@@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig
, SDL, libGLU_combined, openal, lua
, SDL, libGLU, libGL, openal, lua
, libdevil, freetype, physfs
, libmodplug, mpg123, libvorbis, libogg
, libmng
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
SDL libGLU_combined openal lua
SDL libGLU libGL openal lua
libdevil freetype physfs libmodplug mpg123 libvorbis libogg libmng
];
+2 -2
View File
@@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig
, SDL, libGLU_combined, openal, lua
, SDL, libGLU, libGL, openal, lua
, libdevil, freetype, physfs
, libmodplug, mpg123, libvorbis, libogg
}:
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
SDL libGLU_combined openal lua
SDL libGLU libGL openal lua
libdevil freetype physfs libmodplug mpg123 libvorbis libogg
];
+2 -2
View File
@@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig
, SDL2, libGLU_combined, openal, luajit
, SDL2, libGLU, libGL, openal, luajit
, libdevil, freetype, physfs
, libmodplug, mpg123, libvorbis, libogg
}:
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
SDL2 libGLU_combined openal luajit
SDL2 libGLU libGL openal luajit
libdevil freetype physfs libmodplug mpg123 libvorbis libogg
];
+4 -4
View File
@@ -1,11 +1,11 @@
{ stdenv, fetchFromBitbucket, pkgconfig, SDL2, libGLU_combined, openal, luajit,
{ stdenv, fetchFromBitbucket, pkgconfig, SDL2, libGLU, libGL, openal, luajit,
libdevil, freetype, physfs, libmodplug, mpg123, libvorbis, libogg,
libtheora, which, autoconf, automake, libtool
}:
let
pname = "love";
version = "11.2";
version = "11.3";
in
stdenv.mkDerivation {
@@ -14,12 +14,12 @@ stdenv.mkDerivation {
owner = "rude";
repo = "love";
rev = version;
sha256 = "0q1lsgc1621czrg49nmabq6am9sgxa9syxrwzlksqqr4dyzw4nmf";
sha256 = "18gfp65ngb8k8g7hgbw2bhrwk2i7m56m21d39pk4484q9z8p4vm7";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
SDL2 libGLU_combined openal luajit libdevil freetype physfs libmodplug mpg123
SDL2 libGLU libGL openal luajit libdevil freetype physfs libmodplug mpg123
libvorbis libogg libtheora autoconf which libtool automake
];
@@ -0,0 +1,22 @@
--- a/src/lapi.c
+++ b/src/lapi.c
@@ -1285,14 +1285,14 @@ LUA_API void *lua_upvalueid (lua_State *
LUA_API void lua_upvaluejoin (lua_State *L, int fidx1, int n1,
int fidx2, int n2) {
- LClosure *f1;
- UpVal **up1 = getupvalref(L, fidx1, n1, &f1);
+ UpVal **up1 = getupvalref(L, fidx1, n1, NULL); /* the last parameter not needed */
UpVal **up2 = getupvalref(L, fidx2, n2, NULL);
+ if (*up1 == *up2) return; /* Already joined */
+ (*up2)->refcount++;
+ if (upisopen(*up2)) (*up2)->u.open.touched = 1;
+ luaC_upvalbarrier(L, *up2);
luaC_upvdeccount(L, *up1);
*up1 = *up2;
- (*up1)->refcount++;
- if (upisopen(*up1)) (*up1)->u.open.touched = 1;
- luaC_upvalbarrier(L, *up1);
}
@@ -161,7 +161,7 @@ builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps"] // {
# enabled only for src.rock
setSourceRoot= let
name_only=(builtins.parseDrvName name).name;
name_only= lib.getName name;
in
lib.optionalString (knownRockspec == null) ''
# format is rockspec_basename/source_basename
@@ -1,5 +1,5 @@
# similar to interpreters/python/default.nix
{ stdenv, lib, callPackage, fetchurl }:
{ stdenv, lib, callPackage, fetchurl, fetchpatch }:
let
dsoPatch51 = fetchurl {
url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/lua-arch.patch?h=packages/lua51";
@@ -18,7 +18,10 @@ in rec {
lua5_3 = callPackage ./interpreter.nix {
sourceVersion = { major = "5"; minor = "3"; patch = "5"; };
hash = "0c2eed3f960446e1a3e4b9a1ca2f3ff893b6ce41942cf54d5dd59ab4b3b058ac";
patches = lib.optionals stdenv.isDarwin [ ./5.2.darwin.patch ] ;
patches =
lib.optionals stdenv.isDarwin [ ./5.2.darwin.patch ] ++ [
./CVE-2019-6706.patch
];
postConfigure = lib.optionalString (!stdenv.isDarwin) ''
cat ${./lua-5.3-dso.make} >> src/Makefile
sed -e 's/ALL_T *= */& $(LUA_SO)/' -i src/Makefile
@@ -49,7 +52,7 @@ in rec {
sourceVersion = { major = "5"; minor = "1"; patch = "5"; };
hash = "2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333";
patches = (if stdenv.isDarwin then [ ./5.1.darwin.patch ] else [ dsoPatch51 ])
++ [ ./5.1.0004-Fix-stack-overflow-in-vararg-functions.patch ];
++ [ ./CVE-2014-5461.patch ];
};
luajit_2_0 = import ../luajit/2.0.nix {
@@ -20,7 +20,7 @@ addToLuaSearchPathWithCustomDelimiter() {
if [[ ! -d "$topDir" ]]; then return; fi
# export only if we haven't already got this dir in the search path
if [[ ${!varName} == *"$absPattern"* ]]; then return; fi
if [[ ${!varName-} == *"$absPattern"* ]]; then return; fi
export "${varName}=${!varName:+${!varName};}${absPattern}"
}
@@ -11,7 +11,7 @@
let
env = let
paths = requiredLuaModules (extraLibs ++ [ lua ] );
in buildEnv {
in (buildEnv {
name = "${lua.name}-env";
inherit paths;
@@ -20,12 +20,6 @@ let
# we create wrapper for the binaries in the different packages
postBuild = ''
. "${makeWrapper}/nix-support/setup-hook"
# get access to lua functions
. ${lua}/nix-support/setup-hook
if [ -L "$out/bin" ]; then
unlink "$out/bin"
fi
@@ -68,5 +62,8 @@ let
'';
};
};
};
}).overrideAttrs (_: {
# Add extra deps needed for postBuild hook.
nativeBuildInputs = [ makeWrapper lua ];
});
in env
+3 -2
View File
@@ -4,7 +4,8 @@ callPackage ./default.nix {
version = "2.0.5";
isStable = true;
sha256 = "0yg9q4q6v028bgh85317ykc9whgxgysp76qzaqgq55y6jy11yjw7";
extraMeta = {
platforms = lib.filter (p: p != "aarch64-linux") lib.meta.platforms;
extraMeta = { # this isn't precise but it at least stops the useless Hydra build
platforms = with lib; filter (p: p != "aarch64-linux")
(platforms.linux ++ platforms.darwin);
};
}
@@ -62,12 +62,12 @@ stdenv.mkDerivation rec {
interpreter = "${self}/bin/lua";
};
meta = with stdenv.lib; extraMeta // {
meta = with stdenv.lib; {
description = "High-performance JIT compiler for Lua 5.1";
homepage = http://luajit.org;
license = licenses.mit;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ thoughtpolice smironov vcunat andir ];
};
} // extraMeta;
}
@@ -1,4 +1,4 @@
{stdenv, fetchurl, libX11, xorgproto, indent, readline, gsl, freeglut, libGLU_combined, SDL
{stdenv, fetchurl, libX11, xorgproto, indent, readline, gsl, freeglut, libGLU, libGL, SDL
, blas, libbfd, intltool, gettext, zlib, libSM}:
stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
};
buildInputs = [
libX11 libSM xorgproto indent readline gsl freeglut libGLU_combined SDL blas libbfd
libX11 libSM xorgproto indent readline gsl freeglut libGLU libGL SDL blas libbfd
intltool gettext zlib
];
@@ -2,21 +2,23 @@
stdenv.mkDerivation {
pname = "metamath";
version = "0.172";
version = "0.178";
buildInputs = [ autoreconfHook ];
# This points to my own repository because there is no official repository
# for metamath; there's a download location but it gets updated in place with
# no permanent link. See discussion at
# https://groups.google.com/forum/#!topic/metamath/N4WEWQQVUfY
src = fetchFromGitHub {
owner = "Taneb";
repo = "metamath";
rev = "43141cd17638f8efb409dc5d46e7de6a6c39ec42";
sha256 = "07c7df0zl0wsb0pvdgkwikpr8kz7fi3mshxzk61vkamyp68djjb5";
owner = "metamath";
repo = "metamath-exe";
rev = "4f59d60aeb03f92aea3cc7ecf5a2c0fcf08900a5";
sha256 = "0nrl4nzp6rm2sn365xyjf3g5l5fl58kca7rq08lqyz5gla0wgfcf";
};
# the files necessary to build the DATA target are not in this distribution
# luckily, they're not really needed so we don't build it.
makeFlags = [ "DATA=" ];
installTargets = "install-exec";
meta = with stdenv.lib; {
description = "Interpreter for the metamath proof language";
longDescription = ''
@@ -1,5 +1,5 @@
{ stdenv, fetchurl, gfortran, readline, ncurses, perl, flex, texinfo, qhull
, libsndfile, portaudio, libX11, graphicsmagick, pcre, pkgconfig, libGLU_combined, fltk
, libsndfile, portaudio, libX11, graphicsmagick, pcre, pkgconfig, libGL, libGLU, fltk
, fftw, fftwSinglePrec, zlib, curl, qrupdate, openblas, arpack, libwebp, gl2ps
, qt ? null, qscintilla ? null, ghostscript ? null, llvm ? null, hdf5 ? null,glpk ? null
, suitesparse ? null, gnuplot ? null, jdk ? null, python ? null, overridePlatforms ? null
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
++ (stdenv.lib.optional (jdk != null) jdk)
++ (stdenv.lib.optional (gnuplot != null) gnuplot)
++ (stdenv.lib.optional (python != null) python)
++ (stdenv.lib.optionals (!stdenv.isDarwin) [ libGLU_combined libX11 ])
++ (stdenv.lib.optionals (!stdenv.isDarwin) [ libGL libGLU libX11 ])
;
# makeinfo is required by Octave at runtime to display help
+23 -15
View File
@@ -1,5 +1,5 @@
{ config, lib, stdenv, fetchurl, pkgs, buildPackages, callPackage
, enableThreading ? stdenv ? glibc, makeWrapper
, enableThreading ? stdenv ? glibc, coreutils, makeWrapper
}:
with lib;
@@ -35,7 +35,7 @@ let
# TODO: Add a "dev" output containing the header files.
outputs = [ "out" "man" "devdoc" ] ++
stdenv.lib.optional crossCompiling "dev";
optional crossCompiling "dev";
setOutputFlags = false;
disallowedReferences = [ stdenv.cc ];
@@ -57,12 +57,20 @@ let
++ optionals stdenv.isDarwin [ ./cpp-precomp.patch ./sw_vers.patch ]
++ optional crossCompiling ./MakeMaker-cross.patch;
postPatch = ''
pwd="$(type -P pwd)"
# This is not done for native builds because pwd may need to come from
# bootstrap tools when building bootstrap perl.
postPatch = (if crossCompiling then ''
substituteInPlace dist/PathTools/Cwd.pm \
--replace "/bin/pwd" "$pwd"
'' + stdenv.lib.optionalString crossCompiling ''
--replace "/bin/pwd" '${coreutils}/bin/pwd'
substituteInPlace cnf/configure_tool.sh --replace "cc -E -P" "cc -E"
'' else ''
substituteInPlace dist/PathTools/Cwd.pm \
--replace "/bin/pwd" "$(type -P pwd)"
'') +
# Perl's build system uses the src variable, and its value may end up in
# the output in some cases (when cross-compiling)
''
unset src
'';
# Build a thread-safe Perl with a dynamic libperls.o. We need the
@@ -85,7 +93,7 @@ let
++ optional stdenv.isSunOS "-Dcc=gcc"
++ optional enableThreading "-Dusethreads";
configureScript = stdenv.lib.optionalString (!crossCompiling) "${stdenv.shell} ./Configure";
configureScript = optionalString (!crossCompiling) "${stdenv.shell} ./Configure";
dontAddPrefix = !crossCompiling;
@@ -140,7 +148,7 @@ let
}" /no-such-path \
--replace "${stdenv.cc}" /no-such-path \
--replace "$man" /no-such-path
'' + stdenv.lib.optionalString crossCompiling
'' + optionalString crossCompiling
''
mkdir -p $dev/lib/perl5/cross_perl/${version}
for dir in cnf/{stub,cpan}; do
@@ -172,12 +180,12 @@ let
platforms = platforms.all;
priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl`
};
} // stdenv.lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec {
crossVersion = "980998f7d11baf97284426ca91f84681d49a08f5"; # Jul 20, 2019
} // optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec {
crossVersion = "ba90816ef2c24dc06fd6cd2c854abcfa1aae00a3"; # Nov 22, 2019
perl-cross-src = fetchurl {
url = "https://github.com/arsv/perl-cross/archive/${crossVersion}.tar.gz";
sha256 = "1hg3k2rhjs5gclrm05z87nvlh4j9pg7mkm9998h9gy6mzk8224q5";
sha256 = "19jq5fz6l64s0v6j64n5mkk5v2srpyfn9sc09hwbpkp9n74q82j4";
};
depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ];
@@ -205,15 +213,15 @@ in {
perl530 = common {
perl = pkgs.perl530;
buildPerl = buildPackages.perl530;
version = "5.30.0";
sha256 = "1wkmz6xn3fswpqhz29akiklcxclnlykhp96a8bqcz36rak3i64l5";
version = "5.30.1";
sha256 = "0r7r8a7pkgxp3w5lza559ahxczw6hzpwvhkpc4c99vpi3xbjagdz";
};
# the latest Devel version
perldevel = common {
perl = pkgs.perldevel;
buildPerl = buildPackages.perldevel;
version = "5.31.2";
sha256 = "00bdh9lmjb0m7dhk8mj7kab7cg2zn9zgw82y4hgkwydzg6d1jis0";
version = "5.31.6";
sha256 = "08n3c8xm1brxpckqy8i1xgjrpl4afrhcva9bhxswr938n675x71k";
};
}
+23 -10
View File
@@ -4,7 +4,7 @@
, openssl, pcre, pcre2, sqlite, config, libjpeg, libpng, freetype
, libxslt, libmcrypt, bzip2, icu, openldap, cyrus_sasl, libmhash, unixODBC
, uwimap, pam, gmp, apacheHttpd, libiconv, systemd, libsodium, html-tidy, libargon2
, libzip, valgrind
, libzip, valgrind, oniguruma
}:
with lib;
@@ -78,6 +78,7 @@ let
buildInputs = [ ]
++ optional (versionOlder version "7.3") pcre
++ optional (versionAtLeast version "7.3") pcre2
++ optional (versionAtLeast version "7.4") oniguruma
++ optional withSystemd systemd
++ optionals imapSupport [ uwimap openssl pam ]
++ optionals curlSupport [ curl openssl ]
@@ -114,7 +115,8 @@ let
"--with-config-file-scan-dir=/etc/php.d"
]
++ optional (versionOlder version "7.3") "--with-pcre-regex=${pcre.dev} PCRE_LIBDIR=${pcre}"
++ optional (versionAtLeast version "7.3") "--with-pcre-regex=${pcre2.dev} PCRE_LIBDIR=${pcre2}"
++ optional (versions.majorMinor version == "7.3") "--with-pcre-regex=${pcre2.dev} PCRE_LIBDIR=${pcre2}"
++ optional (versionAtLeast version "7.4") "--with-external-pcre=${pcre2.dev} PCRE_LIBDIR=${pcre2}"
++ optional stdenv.isDarwin "--with-iconv=${libiconv}"
++ optional withSystemd "--with-fpm-systemd"
++ optionals imapSupport [
@@ -133,10 +135,11 @@ let
++ optional mhashSupport "--with-mhash"
++ optional curlSupport "--with-curl=${curl.dev}"
++ optional zlibSupport "--with-zlib=${zlib.dev}"
++ optional libxml2Support "--with-libxml-dir=${libxml2.dev}"
++ optional (libxml2Support && (versionOlder version "7.4")) "--with-libxml-dir=${libxml2.dev}"
++ optional (!libxml2Support) [
"--disable-dom"
"--disable-libxml"
(if (versionOlder version "7.4") then "--disable-libxml" else "--without-libxml")
"--disable-simplexml"
"--disable-xml"
"--disable-xmlreader"
@@ -156,7 +159,12 @@ let
++ optional ( pdo_mysqlSupport || mysqliSupport ) "--with-mysql-sock=/run/mysqld/mysqld.sock"
++ optional bcmathSupport "--enable-bcmath"
# FIXME: Our own gd package doesn't work, see https://bugs.php.net/bug.php?id=60108.
++ optionals gdSupport [
++ optionals (gdSupport && versionAtLeast version "7.4") [
"--enable-gd"
"--with-jpeg=${libjpeg.dev}"
"--with-freetype=${freetype.dev}"
"--enable-gd-jis-conv"
] ++ optionals (gdSupport && versionOlder version "7.4") [
"--with-gd"
"--with-freetype-dir=${freetype.dev}"
"--with-png-dir=${libpng.dev}"
@@ -173,7 +181,7 @@ let
++ optional xslSupport "--with-xsl=${libxslt.dev}"
++ optional mcryptSupport "--with-mcrypt=${libmcrypt'}"
++ optional bz2Support "--with-bz2=${bzip2.dev}"
++ optional zipSupport "--enable-zip"
++ optional (zipSupport && (versionOlder version "7.4")) "--enable-zip"
++ optional ftpSupport "--enable-ftp"
++ optional fpmSupport "--enable-fpm"
++ optional ztsSupport "--enable-maintainer-zts"
@@ -181,7 +189,7 @@ let
++ optional sodiumSupport "--with-sodium=${libsodium.dev}"
++ optional tidySupport "--with-tidy=${html-tidy}"
++ optional argon2Support "--with-password-argon2=${libargon2}"
++ optional libzipSupport "--with-libzip=${libzip.dev}"
++ optional (libzipSupport && (versionOlder version "7.4")) "--with-libzip=${libzip.dev}"
++ optional phpdbgSupport "--enable-phpdbg"
++ optional (!phpdbgSupport) "--disable-phpdbg"
++ optional (!cgiSupport) "--disable-cgi"
@@ -254,18 +262,23 @@ let
in {
php72 = generic {
version = "7.2.23";
sha256 = "03a3snx8wdn2pwfy8qdk035da9g3qdnpgqvpz4qfgmr97mjg6ym1";
version = "7.2.25";
sha256 = "17kb7b3wpdmdhnlv23qc0vax0lp2gr1v7dxwdgs8g78gxnqkdcvw";
# https://bugs.php.net/bug.php?id=76826
extraPatches = optional stdenv.isDarwin ./php72-darwin-isfinite.patch;
};
php73 = generic {
version = "7.3.10";
sha256 = "0j2lqiw8miv9aqg55z2dvfg3mwm5vyqx6ggmfbw013zvq1qxhvah";
version = "7.3.12";
sha256 = "0fccmnrwwyy5zvhj8wbyqqlyqr7pr5v4pfiqriw0ahciz4lv05yk";
# https://bugs.php.net/bug.php?id=76826
extraPatches = optional stdenv.isDarwin ./php73-darwin-isfinite.patch;
};
php74 = generic {
version = "7.4.0";
sha256 = "1h01bahvcm9kgm5jqhm2j9k9d4q4rpfkkpqk00c47rirdblnn85z";
};
}
@@ -79,12 +79,6 @@ let
sha256 = "0l9rw6r5r90iybdkp3hhl2pf0h0s1izc68h5d3ywrm92pq32wz57";
})
(fetchpatch {
url = "https://github.com/python/cpython/commit/979daae300916adb399ab5b51410b6ebd0888f13.patch";
name = "CVE-2018-20852.patch";
sha256 = "0p838ycssd6abxzby69rhngjqqm59cmlp07910mpjx7lmsz049pb";
})
# Fix race-condition during pyc creation. Has a slight backwards
# incompatible effect: pyc symlinks will now be overridden
# (https://bugs.python.org/issue17222). Included in python >= 3.4,
@@ -93,8 +93,8 @@
_osx_support.customize_compiler(_config_vars)
_config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
- (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
- get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
- (cc, cxx, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
- get_config_vars('CC', 'CXX', 'CFLAGS',
- 'CCSHARED', 'LDSHARED', 'SO', 'AR',
- 'ARFLAGS')
+ (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
@@ -120,8 +120,7 @@
ldshared = ldshared + ' ' + os.environ['LDFLAGS']
+ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
if 'CFLAGS' in os.environ:
- cflags = opt + ' ' + os.environ['CFLAGS']
+ cflags = os.environ['CFLAGS']
cflags = cflags + ' ' + os.environ['CFLAGS']
ldshared = ldshared + ' ' + os.environ['CFLAGS']
+ if 'CXXFLAGS' in os.environ:
+ cxxflags = os.environ['CXXFLAGS']
@@ -0,0 +1,100 @@
From 597e73f2a4b2f0b508127931b36d5540d6941823 Mon Sep 17 00:00:00 2001
From: Frederik Rietdijk <fridh@fridh.nl>
Date: Mon, 28 Aug 2017 09:24:06 +0200
Subject: [PATCH] Don't use ldconfig
---
Lib/ctypes/util.py | 70 ++----------------------------------------------------
1 file changed, 2 insertions(+), 68 deletions(-)
diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py
index 5e8b31a854..7b45ce6c15 100644
--- a/Lib/ctypes/util.py
+++ b/Lib/ctypes/util.py
@@ -94,46 +94,7 @@ elif os.name == "posix":
import re, tempfile
def _findLib_gcc(name):
- # Run GCC's linker with the -t (aka --trace) option and examine the
- # library name it prints out. The GCC command will fail because we
- # haven't supplied a proper program with main(), but that does not
- # matter.
- expr = os.fsencode(r'[^\(\)\s]*lib%s\.[^\(\)\s]*' % re.escape(name))
-
- c_compiler = shutil.which('gcc')
- if not c_compiler:
- c_compiler = shutil.which('cc')
- if not c_compiler:
- # No C compiler available, give up
- return None
-
- temp = tempfile.NamedTemporaryFile()
- try:
- args = [c_compiler, '-Wl,-t', '-o', temp.name, '-l' + name]
-
- env = dict(os.environ)
- env['LC_ALL'] = 'C'
- env['LANG'] = 'C'
- try:
- proc = subprocess.Popen(args,
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT,
- env=env)
- except OSError: # E.g. bad executable
- return None
- with proc:
- trace = proc.stdout.read()
- finally:
- try:
- temp.close()
- except FileNotFoundError:
- # Raised if the file was already removed, which is the normal
- # behaviour of GCC if linking fails
- pass
- res = re.search(expr, trace)
- if not res:
- return None
- return os.fsdecode(res.group(0))
+ return None
if sys.platform == "sunos5":
@@ -255,34 +216,7 @@ elif os.name == "posix":
else:
def _findSoname_ldconfig(name):
- import struct
- if struct.calcsize('l') == 4:
- machine = os.uname().machine + '-32'
- else:
- machine = os.uname().machine + '-64'
- mach_map = {
- 'x86_64-64': 'libc6,x86-64',
- 'ppc64-64': 'libc6,64bit',
- 'sparc64-64': 'libc6,64bit',
- 's390x-64': 'libc6,64bit',
- 'ia64-64': 'libc6,IA-64',
- }
- abi_type = mach_map.get(machine, 'libc6')
-
- # XXX assuming GLIBC's ldconfig (with option -p)
- regex = r'\s+(lib%s\.[^\s]+)\s+\(%s'
- regex = os.fsencode(regex % (re.escape(name), abi_type))
- try:
- with subprocess.Popen(['/sbin/ldconfig', '-p'],
- stdin=subprocess.DEVNULL,
- stderr=subprocess.DEVNULL,
- stdout=subprocess.PIPE,
- env={'LC_ALL': 'C', 'LANG': 'C'}) as p:
- res = re.search(regex, p.stdout.read())
- if res:
- return os.fsdecode(res.group(1))
- except OSError:
- pass
+ return None
def _findLib_ld(name):
# See issue #9998 for why this is needed
--
2.15.0
@@ -17,6 +17,7 @@
# For the Python package set
, packageOverrides ? (self: super: {})
, buildPackages
, pythonForBuild ? buildPackages.${"python${sourceVersion.major}${sourceVersion.minor}"}
, sourceVersion
, sha256
, passthruFun
@@ -63,7 +64,7 @@ let
hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
pythonForBuild = buildPackages.${"python${sourceVersion.major}${sourceVersion.minor}"};
inherit pythonForBuild;
pythonForBuildInterpreter = if stdenv.hostPlatform == stdenv.buildPlatform then
"$out/bin/python"
@@ -100,7 +101,7 @@ in with passthru; stdenv.mkDerivation {
] ++ optionals isPy35 [
# Backports support for LD_LIBRARY_PATH from 3.6
./3.5/ld_library_path.patch
] ++ optionals isPy37 [
] ++ optionals (isPy37 || isPy38) [
# Fix darwin build https://bugs.python.org/issue34027
(fetchpatch {
url = https://bugs.python.org/file47666/darwin-libutil.patch;
@@ -114,7 +115,7 @@ in with passthru; stdenv.mkDerivation {
(
if isPy35 then
./3.5/python-3.x-distutils-C++.patch
else if isPy37 then
else if isPy37 || isPy38 then
./3.7/python-3.x-distutils-C++.patch
else
fetchpatch {
@@ -28,6 +28,8 @@ with pkgs;
isPy35 = pythonVersion == "3.5";
isPy36 = pythonVersion == "3.6";
isPy37 = pythonVersion == "3.7";
isPy38 = pythonVersion == "3.8";
isPy39 = pythonVersion == "3.9";
isPy2 = lib.strings.substring 0 1 pythonVersion == "2";
isPy3 = lib.strings.substring 0 1 pythonVersion == "3";
isPy3k = isPy3;
@@ -51,10 +53,10 @@ in {
sourceVersion = {
major = "2";
minor = "7";
patch = "16";
patch = "17";
suffix = "";
};
sha256 = "1mqfcqp5y8r0bfyr7ppl74n0lig45p9mc4b8adlcpvj74rhfy8pj";
sha256 = "0hds28cg226m8j8sr394nm9yc4gxhvlv109w0avsf2mxrlrz0hsd";
inherit (darwin) CF configd;
inherit passthruFun;
};
@@ -64,10 +66,10 @@ in {
sourceVersion = {
major = "3";
minor = "5";
patch = "7";
patch = "9";
suffix = "";
};
sha256 = "1p67pnp2ca5przx2s45r8m55dcn6f5hsm0l4s1zp7mglkf4r4n18";
sha256 = "0jdh9pvx6m6lfz2liwvvhn7vks7qrysqgwn517fkpxb77b33fjn2";
inherit (darwin) CF configd;
inherit passthruFun;
};
@@ -90,10 +92,10 @@ in {
sourceVersion = {
major = "3";
minor = "7";
patch = "4";
patch = "5";
suffix = "";
};
sha256 = "0gxiv5617zd7dnqm5k9r4q2188lk327nf9jznwq9j6b8p0s92ygv";
sha256 = "154xc6dxww21qkmphg66pfks8987a17cl3vqq5g4hv1xkzm7cnp8";
inherit (darwin) CF configd;
inherit passthruFun;
};
@@ -104,26 +106,30 @@ in {
major = "3";
minor = "8";
patch = "0";
suffix = "b3";
suffix = "";
};
sha256 = "03wq85pkpr9j56k3zg6whahc5park1pzshbakl7y50lzrkpq2ynd";
sha256 = "110d0did9rxn7rg85kf2fwli5hqq44xv2d8bi7d92m7v2d728mmk";
inherit (darwin) CF configd;
inherit passthruFun;
};
python39 = callPackage ./cpython {
self = python39;
sourceVersion = {
major = "3";
minor = "9";
patch = "0";
suffix = "a1";
};
sha256 = "02b337kvzb6ncqab21xnayh562zpz6bqzjmh35iy9l48zgpkvf1n";
inherit (darwin) CF configd;
inherit passthruFun;
};
# Minimal versions of Python (built without optional dependencies)
python3Minimal = (callPackage ./cpython {
python3Minimal = (python37.override {
self = python3Minimal;
sourceVersion = {
major = "3";
minor = "7";
patch = "4";
suffix = "";
};
sha256 = "0gxiv5617zd7dnqm5k9r4q2188lk327nf9jznwq9j6b8p0s92ygv";
inherit (darwin) CF configd;
inherit passthruFun;
pythonForBuild = pkgs.buildPackages.python3Minimal;
# strip down that python version as much as possible
openssl = null;
readline = null;
@@ -199,4 +205,9 @@ in {
ncurses = ncurses5;
};
graalpython37 = callPackage ./graalpython/default.nix {
self = pythonInterpreters.graalpython37;
inherit passthruFun;
};
})
@@ -0,0 +1,21 @@
{ pkgs
, lib
, graalvm8
, passthruFun
, packageOverrides ? (self: super: {})
, self
}:
let
passthru = passthruFun {
inherit self packageOverrides;
implementation = "graal";
sourceVersion = graalvm8.version;
pythonVersion = "3.7";
libPrefix = "graalvm";
sitePackages = "jre/languages/python/lib-python/3/site-packages";
executable = "graalpython";
hasDistutilsCxxPatch = false;
pythonForBuild = pkgs.buildPackages.pythonInterpreters.graalpython37;
};
in lib.extendDerivation true passthru graalvm8
@@ -9,7 +9,7 @@ flitBuildPhase () {
echo "Finished executing flitBuildPhase"
}
if [ -z "$dontUseFlitBuild" ] && [ -z "$buildPhase" ]; then
if [ -z "${dontUseFlitBuild-}" ] && [ -z "${buildPhase-}" ]; then
echo "Using flitBuildPhase"
buildPhase=flitBuildPhase
fi
@@ -31,12 +31,12 @@ pipShellHook() {
echo "Finished executing pipShellHook"
}
if [ -z "$dontUsePipBuild" ] && [ -z "$buildPhase" ]; then
if [ -z "${dontUsePipBuild-}" ] && [ -z "${buildPhase-}" ]; then
echo "Using pipBuildPhase"
buildPhase=pipBuildPhase
fi
if [ -z "$shellHook" ]; then
if [ -z "${shellHook-}" ]; then
echo "Using pipShellHook"
shellHook=pipShellHook
fi
@@ -18,7 +18,7 @@ pipInstallPhase() {
echo "Finished executing pipInstallPhase"
}
if [ -z "$dontUsePipInstall" ] && [ -z "$installPhase" ]; then
if [ -z "${dontUsePipInstall-}" ] && [ -z "${installPhase-}" ]; then
echo "Using pipInstallPhase"
installPhase=pipInstallPhase
fi
@@ -43,7 +43,7 @@ function pytestCheckPhase() {
echo "Finished executing pytestCheckPhase"
}
if [ -z "$dontUsePytestCheck" ] && [ -z "$installCheckPhase" ]; then
if [ -z "${dontUsePytestCheck-}" ] && [ -z "${installCheckPhase-}" ]; then
echo "Using pytestCheckPhase"
preDistPhases+=" pytestCheckPhase"
fi
@@ -5,6 +5,6 @@ pythonCatchConflictsPhase() {
@pythonInterpreter@ @catchConflicts@
}
if [ -z "$dontUsePythonCatchConflicts" ]; then
if [ -z "${dontUsePythonCatchConflicts-}" ]; then
preDistPhases+=" pythonCatchConflictsPhase"
fi
@@ -10,7 +10,7 @@ pythonImportsCheckPhase () {
fi
}
if [ -z "$dontUsePythonImportsCheck" ]; then
if [ -z "${dontUsePythonImportsCheck-}" ]; then
echo "Using pythonImportsCheckPhase"
preDistPhases+=" pythonImportsCheckPhase"
fi
@@ -12,6 +12,6 @@ pythonRemoveBinBytecodePhase () {
fi
}
if [ -z "$dontUsePythonRemoveBinBytecode" ]; then
if [ -z "${dontUsePythonRemoveBinBytecode-}" ]; then
preDistPhases+=" pythonRemoveBinBytecodePhase"
fi
@@ -17,7 +17,7 @@ setuptoolsBuildPhase() {
eval "@pythonInterpreter@ nix_run_setup $args bdist_wheel"
runHook postBuild
echo "Finished executing setuptoolsInstallPhase"
echo "Finished executing setuptoolsBuildPhase"
}
setuptoolsShellHook() {
@@ -27,21 +27,21 @@ setuptoolsShellHook() {
if test -e setup.py; then
tmp_path=$(mktemp -d)
export PATH="$tmp_path/bin:$PATH"
export PYTHONPATH="@pythonSitePackages@:$PYTHONPATH"
export PYTHONPATH="$tmp_path/@pythonSitePackages@:$PYTHONPATH"
mkdir -p "$tmp_path/@pythonSitePackages@"
eval "@pythonInterpreter@ -m pip -e . --prefix $tmp_path >&2"
eval "@pythonInterpreter@ -m pip install -e . --prefix $tmp_path >&2"
fi
runHook postShellHook
echo "Finished executing setuptoolsShellHook"
}
if [ -z "$dontUseSetuptoolsBuild" ] && [ -z "$buildPhase" ]; then
if [ -z "${dontUseSetuptoolsBuild-}" ] && [ -z "${buildPhase-}" ]; then
echo "Using setuptoolsBuildPhase"
buildPhase=setuptoolsBuildPhase
fi
if [ -z "$dontUseSetuptoolsShellHook" ] && [ -z "$shellHook" ]; then
if [ -z "${dontUseSetuptoolsShellHook-}" ] && [ -z "${shellHook-}" ]; then
echo "Using setuptoolsShellHook"
shellHook=setuptoolsShellHook
fi
@@ -12,7 +12,7 @@ setuptoolsCheckPhase() {
echo "Finished executing setuptoolsCheckPhase"
}
if [ -z "$dontUseSetuptoolsCheck" ] && [ -z "$installCheckPhase" ]; then
if [ -z "${dontUseSetuptoolsCheck-}" ] && [ -z "${installCheckPhase-}" ]; then
echo "Using setuptoolsCheckPhase"
preDistPhases+=" setuptoolsCheckPhase"
fi
@@ -12,7 +12,7 @@ wheelUnpackPhase(){
echo "Finished executing wheelUnpackPhase"
}
if [ -z "$dontUseWheelUnpack" ] && [ -z "$unpackPhase" ]; then
if [ -z "${dontUseWheelUnpack-}" ] && [ -z "${unpackPhase-}" ]; then
echo "Using wheelUnpackPhase"
unpackPhase=wheelUnpackPhase
fi
@@ -0,0 +1,83 @@
{ lib, pkgs }:
let
# Create a derivation that links all desired manylinux libraries
createManyLinuxPackage = name: libs: let
drvs = lib.unique (lib.attrValues libs);
names = lib.attrNames libs;
in pkgs.runCommand name {
buildInputs = drvs;
} ''
mkdir -p $out/lib
num_found=0
IFS=:
export DESIRED_LIBRARIES=${lib.concatStringsSep ":" names}
export LIBRARY_PATH=${lib.makeLibraryPath drvs}
for desired in $DESIRED_LIBRARIES; do
for path in $LIBRARY_PATH; do
if [ -e $path/$desired ]; then
echo "FOUND $path/$desired"
ln -s $path/$desired $out/lib/$desired
num_found=$((num_found+1))
break
fi
done
done
num_desired=${toString (lib.length names)}
echo "Found $num_found of $num_desired libraries"
if [ "$num_found" -ne "$num_desired" ]; then
echo "Error: not all desired libraries were found"
exit 1
fi
'';
# https://www.python.org/dev/peps/pep-0599/
manylinux2014Libs = with pkgs; {
"libgcc_s.so.1" = glibc;
"libstdc++.so.6" = stdenv.cc.cc;
"libm.so.6" = glibc;
"libdl.so.2" = glibc;
"librt.so.1" = glibc;
"libc.so.6" = glibc;
"libnsl.so.1" = glibc;
"libutil.so.1" = glibc;
"libpthread.so.0" = glibc;
"libresolv.so.2" = glibc;
"libX11.so.6" = xorg.libX11;
"libXext.so.6" = xorg.libXext;
"libXrender.so.1" = xorg.libXrender;
"libICE.so.6" = xorg.libICE;
"libSM.so.6" = xorg.libSM;
"libGL.so.1" = libGL;
"libgobject-2.0.so.0" = glib;
"libgthread-2.0.so.0" = glib;
"libglib-2.0.so.0" = glib;
};
# https://www.python.org/dev/peps/pep-0571/
manylinux2010Libs = manylinux2014Libs;
# https://www.python.org/dev/peps/pep-0513/
manylinux1Libs = manylinux2010Libs // (with pkgs; {
"libpanelw.so.5" = ncurses5;
"libncursesw.so.5" = ncurses5;
"libcrypt.so.1" = glibc;
});
in {
# List of libraries that are needed for manylinux compatibility.
# When using a wheel that is manylinux1 compatible, just extend
# the `buildInputs` with one of these `manylinux` lists.
# Additionally, add `autoPatchelfHook` to `nativeBuildInputs`.
manylinux1 = lib.unique (lib.attrValues manylinux1Libs);
manylinux2010 = lib.unique (lib.attrValues manylinux2010Libs);
manylinux2014 = lib.unique (lib.attrValues manylinux2014Libs);
# These are symlink trees to the relevant libs and are typically not needed
# These exist so as to quickly test whether all required libraries are provided
# by the mapped packages.
manylinux1Package = createManyLinuxPackage "manylinux1" manylinux1Libs;
manylinux2010Package = createManyLinuxPackage "manylinux2010" manylinux2010Libs;
manylinux2014Package = createManyLinuxPackage "manylinux2014" manylinux2014Libs;
}
@@ -6,9 +6,9 @@ You can pass in multiple files or paths.
You'll likely want to use
``
$ ./update-python-libraries ../../pkgs/development/python-modules/*
$ ./update-python-libraries ../../pkgs/development/python-modules/**/default.nix
``
to update all libraries in that folder.
to update all non-pinned libraries in that folder.
"""
import argparse
@@ -116,11 +116,45 @@ SEMVER = {
}
def _determine_latest_version(current_version, target, versions):
"""Determine latest version, given `target`.
"""
current_version = Version(current_version)
def _parse_versions(versions):
for v in versions:
try:
yield Version(v)
except InvalidVersion:
pass
versions = _parse_versions(versions)
index = SEMVER[target]
ceiling = list(current_version[0:index])
if len(ceiling) == 0:
ceiling = None
else:
ceiling[-1]+=1
ceiling = Version(".".join(map(str, ceiling)))
# We do not want prereleases
versions = SpecifierSet(prereleases=PRERELEASES).filter(versions)
if ceiling is not None:
versions = SpecifierSet(f"<{ceiling}").filter(versions)
return (max(sorted(versions))).raw_version
def _get_latest_version_pypi(package, extension, current_version, target):
"""Get latest version and hash from PyPI."""
url = "{}/{}/json".format(INDEX, package)
json = _fetch_page(url)
version = json['info']['version']
versions = json['releases'].keys()
version = _determine_latest_version(current_version, target, versions)
try:
releases = json['releases'][version]
@@ -132,7 +166,6 @@ def _get_latest_version_pypi(package, extension, current_version, target):
sha256 = release['digests']['sha256']
break
else:
logging.error("Release not found for extension: {}".format(extension))
sha256 = None
return version, sha256
@@ -194,6 +227,10 @@ def _determine_extension(text, fetcher):
src_format = 'setuptools'
elif src_format == 'flit':
raise ValueError("Don't know how to update a Flit package.")
elif src_format == 'other':
raise ValueError("Don't know how to update a format='other' package.")
elif src_format == 'pyproject':
raise ValueError("Don't know how to update a pyproject package.")
extension = FORMATS[src_format]
elif fetcher == 'fetchurl':
@@ -326,4 +363,4 @@ def main():
if __name__ == '__main__':
main()
main()
@@ -0,0 +1,42 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
pname = "quickjs";
version = "2019-10-27";
src = fetchurl {
url = "https://bellard.org/${pname}/${pname}-${version}.tar.xz";
sha256 = "0xm16ja3c0k80jy0xkx0f40r44v2lgx2si4dnaw2w7c5nx7cmkai";
};
makeFlags = [ "prefix=${placeholder ''out''}" ];
enableParallelBuilding = true;
doInstallCheck = true;
installCheckPhase = ''
PATH="$out/bin:$PATH"
# Programs exit with code 1 when testing help, so grep for a string
set +o pipefail
qjs --help 2>&1 | grep "QuickJS version"
qjsbn --help 2>&1 | grep "QuickJS version"
qjscalc --help 2>&1 | grep "QuickJS version"
set -o pipefail
temp=$(mktemp).js
echo "console.log('Output from compiled program');" > "$temp"
set -o verbose
out=$(mktemp) && qjsc "$temp" -o "$out" && "$out" | grep -q "Output from compiled program"
out=$(mktemp) && qjsbnc "$temp" -o "$out" && "$out" | grep -q "Output from compiled program"
out=$(mktemp) && qjsc -flto "$temp" -o "$out" && "$out" | grep -q "Output from compiled program"
out=$(mktemp) && qjsbnc -flto "$temp" -o "$out" && "$out" | grep -q "Output from compiled program"
'';
meta = with stdenv.lib; {
description = "A small and embeddable Javascript engine";
homepage = "https://bellard.org/quickjs/";
maintainers = with maintainers; [ stesie ivan ];
platforms = platforms.linux;
license = licenses.mit;
};
}
@@ -46,7 +46,7 @@ in
stdenv.mkDerivation rec {
pname = "racket";
version = "7.3"; # always change at once with ./minimal.nix
version = "7.5"; # always change at once with ./minimal.nix
src = (stdenv.lib.makeOverridable ({ name, sha256 }:
fetchurl {
@@ -54,8 +54,8 @@ stdenv.mkDerivation rec {
inherit sha256;
}
)) {
inherit ;name = "${pname}-${version}";
sha256 = "0h6072njhb87rkz4arijvahxgjzn8r14s4wns0ijvxm89bg136yl";
name = "${pname}-${version}";
sha256 = "0b74v0pqkx57x2gk0m4sp94jaf6bi1mci4ix9vx4sh2442sbds1j";
};
FONTCONFIG_FILE = fontsConf;
@@ -103,7 +103,7 @@ stdenv.mkDerivation rec {
GUIs and charts.
'';
homepage = http://racket-lang.org/;
license = licenses.lgpl3;
license = with licenses; [ asl20 /* or */ mit ];
maintainers = with maintainers; [ kkallio henrytill vrthra ];
platforms = [ "x86_64-darwin" "x86_64-linux" ];
broken = stdenv.isDarwin; # No support yet for setting FFI lookup path
@@ -5,7 +5,7 @@ racket.overrideAttrs (oldAttrs: rec {
name = "racket-minimal-${oldAttrs.version}";
src = oldAttrs.src.override {
inherit name;
sha256 = "1byvg1vy8hn1j64d5gjiwzfbghdp7lhja9xwz9x8iicwfldkjybj";
sha256 = "0478f0phkjch10ncsl8lm8a1m8qvgchrkgzpcaxyhmg2clyjgn8r";
};
meta = oldAttrs.meta // {
@@ -1,13 +1,13 @@
{ stdenv, fetchurl, pythonPackages, pkgconfig, SDL2
, libpng, ffmpeg, freetype, glew, libGLU_combined, fribidi, zlib
{ stdenv, fetchurl, python2Packages, pkgconfig, SDL2
, libpng, ffmpeg, freetype, glew, libGL, libGLU, fribidi, zlib
, glib
}:
with pythonPackages;
with python2Packages;
stdenv.mkDerivation rec {
pname = "renpy";
version = "7.3.2";
version = "7.3.5";
meta = with stdenv.lib; {
description = "Ren'Py Visual Novel Engine";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://www.renpy.org/dl/${version}/renpy-${version}-source.tar.bz2";
sha256 = "1i7s9s8invsm5bavw2jlk965pb5h5vgwyk1nhw0z1d22spmj4a4m";
sha256 = "1anr5cfbvbsbik4v4rvrkdkciwhg700k4lydfbs4n85raimz9mw4";
};
patches = [
@@ -32,13 +32,13 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
python cython wrapPython tkinter
SDL2 libpng ffmpeg freetype glew libGLU_combined fribidi zlib pygame_sdl2 glib
SDL2 libpng ffmpeg freetype glew libGLU libGL fribidi zlib pygame_sdl2 glib
];
pythonPath = [ pygame_sdl2 tkinter ];
RENPY_DEPS_INSTALL = stdenv.lib.concatStringsSep "::" (map (path: path) [
SDL2 SDL2.dev libpng ffmpeg ffmpeg.out freetype glew.dev glew.out libGLU_combined fribidi zlib
SDL2 SDL2.dev libpng ffmpeg ffmpeg.out freetype glew.dev glew.out libGLU libGL fribidi zlib
]);
buildPhase = ''
@@ -1,82 +0,0 @@
{ stdenv, fetchurl, fetchpatch, autoconf213, pkgconfig, perl, zip, which, readline, icu, zlib, nspr, buildPackages }:
let
version = "52.9.0";
in stdenv.mkDerivation {
pname = "spidermonkey";
inherit version;
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
sha256 = "1mlx34fgh1kaqamrkl5isf0npch3mm6s4lz3jsjb7hakiijhj7f0";
};
outputs = [ "out" "dev" ];
setOutputFlags = false; # Configure script only understands --includedir
buildInputs = [ readline icu zlib nspr ];
nativeBuildInputs = [ autoconf213 pkgconfig perl which buildPackages.python2 zip ];
# Apparently this package fails to build correctly with modern compilers, which at least
# on ARMv6 causes polkit testsuite to break with an assertion failure in spidermonkey.
# These flags were stolen from:
# https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/js52
NIX_CFLAGS_COMPILE = "-fno-delete-null-pointer-checks -fno-strict-aliasing -fno-tree-vrp";
patches = [
# needed to build gnome3.gjs
(fetchpatch {
name = "mozjs52-disable-mozglue.patch";
url = https://git.archlinux.org/svntogit/packages.git/plain/trunk/mozjs52-disable-mozglue.patch?h=packages/js52&id=4279d2e18d9a44f6375f584911f63d13de7704be;
sha256 = "18wkss0agdyff107p5lfflk72qiz350xqw2yqc353alkx4fsfpz0";
})
];
configurePlatforms = [ ];
preConfigure = ''
export CXXFLAGS="-fpermissive"
export LIBXUL_DIST=$out
export PYTHON="${buildPackages.python2.interpreter}"
configureFlagsArray+=("--includedir=$dev/include")
cd js/src
autoconf
'';
configureFlags = [
"--with-nspr-prefix=${nspr}"
"--with-system-zlib"
"--with-system-icu"
"--with-intl-api"
"--enable-readline"
"--enable-shared-js"
] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "--disable-jemalloc"
++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"--host=${stdenv.buildPlatform.config}"
"--target=${stdenv.hostPlatform.config}"
];
makeFlags = [
"HOST_CC=${buildPackages.stdenv.cc}/bin/cc"
];
depsBuildBuild = [ buildPackages.stdenv.cc ];
enableParallelBuilding = true;
postInstall = ''
moveToOutput bin/js52-config "$dev"
# Nuke a static lib.
rm $out/lib/libjs_static.ajs
'';
meta = with stdenv.lib; {
description = "Mozilla's JavaScript engine written in C/C++";
homepage = https://developer.mozilla.org/en/SpiderMonkey;
license = licenses.gpl2; # TODO: MPL/GPL/LGPL tri-license.
maintainers = [ maintainers.abbradar ];
platforms = platforms.linux;
};
}
@@ -4,23 +4,28 @@
with stdenv.lib;
let
version = "60.4.0";
version = "60.9.0";
in stdenv.mkDerivation {
pname = "spidermonkey";
inherit version;
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
sha256 = "11gzxd82grc3kg1ha4yni6ag6b97n46qycvv6x15s91ziia5hli0";
sha256 = "0gy5x2rnnbkqmjd9sq93s3q5na9nkba68xwpizild7k6qn63qicz";
};
outputs = [ "out" "dev" ];
setOutputFlags = false; # Configure script only understands --includedir
buildInputs = [ readline zlib icu ];
nativeBuildInputs = [ autoconf213 pkgconfig perl which python2 zip ];
patches = [
# Fixed in 62.0
# https://bugzilla.mozilla.org/show_bug.cgi?id=1415202
(fetchpatch {
url = https://bug1415202.bmoattachments.org/attachment.cgi?id=8926363;
sha256 = "082ryrvqa3lvs67v3sq9kf2jshf4qp1fpi195wffc40jdrl8fnin";
url = "https://src.fedoraproject.org/rpms/mozjs60/raw/a1b605c73f382db25977cb2d4d70a3ba2ff85b92/f/Always-use-the-equivalent-year-to-determine-the-time-zone.patch";
sha256 = "12i225qbzlyfj2disms50zrr5jy8zgn2cc4rgsg58sfgf1bn7150";
})
];
@@ -61,7 +66,9 @@ in stdenv.mkDerivation {
# Remove unnecessary static lib
preFixup = ''
moveToOutput bin/js60-config "$dev"
rm $out/lib/libjs_static.ajs
ln -s $out/bin/js60 $out/bin/js
'';
enableParallelBuilding = true;
File diff suppressed because it is too large Load Diff
@@ -1,24 +1,24 @@
{ rustPlatform, fetchFromGitHub, lib, python, cmake, llvmPackages, clang }:
{ rustPlatform, fetchFromGitHub, lib, python, cmake, llvmPackages, clang, stdenv, darwin }:
rustPlatform.buildRustPackage {
pname = "wasmtime";
version = "20190521";
version = "20191111";
src = fetchFromGitHub {
owner = "CraneStation";
owner = "bytecodealliance";
repo = "wasmtime";
rev = "e530a582afe6a2b5735fd7cdf5e2e88391e58669";
sha256 = "13lqf9dp1cnw7ms7hcgirmlfkr0v7nrn3p5g7yacfasrqgnwsyl8";
rev = "0006a2af954eba74c79885cb1fe8cdeb68f531c1";
sha256 = "0lf3pdkjxcrjmjic7xxyjl5dka3arxi809sp9hm4hih5p2fhf2gw";
fetchSubmodules = true;
};
cargoSha256 = "1jbpq09czm295316gdv3y0pfapqs0ynj3qbarwlnrv7valq5ak13";
cargoSha256 = "0mnwaipa2az3vpgbz4m9siz6bfyhmzwz174k678cv158m7mxx12f";
cargoPatches = [ ./cargo-lock.patch ];
nativeBuildInputs = [ python cmake clang ];
buildInputs = [ llvmPackages.libclang ];
buildInputs = [ llvmPackages.libclang ] ++
lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
meta = with lib; {