Merge branch 'master' into staging

This commit is contained in:
Vladimír Čunát
2016-07-26 20:52:54 +02:00
873 changed files with 16408 additions and 1013057 deletions

View File

@@ -1,19 +1,23 @@
{ stdenv, fetchurl, pkgconfig, gettext, gtk3, intltool, glib
{ stdenv, fetchFromGitHub, pkgconfig, gettext, gtk3, intltool, glib
, gtk_doc, autoconf, automake, libtool, libarchive, libyaml
, gobjectIntrospection, sqlite, libsoup, gcab, attr, acl, docbook_xsl
, libuuid, json_glib
}:
stdenv.mkDerivation rec {
name = "appstream-glib-0.3.6";
name = "appstream-glib-0.5.11";
src = fetchurl {
url = "https://github.com/hughsie/appstream-glib/archive/appstream_glib_0_3_6.tar.gz";
sha256 = "1zdxg9dk9vxw2cs04cswd138di3dysz0hxk4918750hh19s3859c";
src = fetchFromGitHub {
owner = "hughsie";
repo = "appstream-glib";
rev = stdenv.lib.replaceStrings ["." "-"] ["_" "_"] name;
sha256 = "1rvfncm9z29h70pd718j73cd263g6yyxkxrg7zfzy0gj6wwzvhkh";
};
buildInputs = [ glib libtool pkgconfig gtk_doc gettext intltool sqlite libsoup
gcab attr acl docbook_xsl
libarchive libyaml gtk3 autoconf automake gobjectIntrospection ];
nativeBuildInputs = [ autoconf automake libtool pkgconfig intltool ];
buildInputs = [ glib gtk_doc gettext sqlite libsoup
gcab attr acl docbook_xsl libuuid json_glib
libarchive libyaml gtk3 gobjectIntrospection ];
configureScript = "./autogen.sh";
@@ -22,7 +26,6 @@ stdenv.mkDerivation rec {
homepage = https://github.com/hughsie/appstream-glib;
license = licenses.lgpl21Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ lethalman ];
maintainers = with maintainers; [ lethalman matthewbauer ];
};
}

View File

@@ -1,23 +1,26 @@
{stdenv, fetchurl, cmake, pkgconfig, atlas, blas, openblas}:
{ stdenv, fetchurl, cmake, openblasCompat, superlu, hdf5 }:
stdenv.mkDerivation rec {
version = "7.200.1b";
version = "7.200.2";
name = "armadillo-${version}";
src = fetchurl {
url = "http://sourceforge.net/projects/arma/files/armadillo-${version}.tar.xz";
sha256 = "00s8xrywc4aipipq1zpd6q9gzqmsiv8cwd25zvb1csrpninmidvc";
url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
sha256 = "1yvx75caks477jqwx5gspi6946jialddk00wdvg6dnh5wdi2xasm";
};
unpackCmd = [ "tar -xf ${src}" ];
nativeBuildInputs = [ cmake atlas blas openblas ];
buildInputs = [ cmake openblasCompat superlu hdf5 ];
cmakeFlags = [ "-DDETECT_HDF5=ON" ];
patches = [ ./use-unix-config-on-OS-X.patch
./use-OpenBLAS-as-LAPACK.patch ];
meta = with stdenv.lib; {
description = "C++ linear algebra library";
homepage = "http://arma.sourceforge.net" ;
homepage = http://arma.sourceforge.net;
license = licenses.mpl20;
platforms = stdenv.lib.platforms.linux ;
maintainers = [ stdenv.lib.maintainers.juliendehos ];
platforms = platforms.unix;
maintainers = [ maintainers.juliendehos ];
};
}

View File

@@ -0,0 +1,14 @@
diff --git a/cmake_aux/Modules/ARMA_FindLAPACK.cmake b/cmake_aux/Modules/ARMA_FindLAPACK.cmake
index 5395afb..a203c93 100644
--- a/cmake_aux/Modules/ARMA_FindLAPACK.cmake
+++ b/cmake_aux/Modules/ARMA_FindLAPACK.cmake
@@ -5,7 +5,7 @@
# also defined, but not for general use are
# LAPACK_LIBRARY, where to find the LAPACK library.
-SET(LAPACK_NAMES ${LAPACK_NAMES} lapack)
+SET(LAPACK_NAMES ${LAPACK_NAMES} openblas)
FIND_LIBRARY(LAPACK_LIBRARY
NAMES ${LAPACK_NAMES}
PATHS /usr/lib64/atlas /usr/lib/atlas /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib

View File

@@ -0,0 +1,11 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -84,7 +84,7 @@ message(STATUS "DETECT_HDF5 = ${DETECT_HDF5}" )
##
## Find LAPACK and BLAS libraries, or their optimised versions
##
-
+set(APPLE false)
if(APPLE)
set(ARMA_OS macos)

View File

@@ -1,6 +1,7 @@
{ stdenv, composableDerivation, fetchurl, pkgconfig, xlibsWrapper, inputproto, libXi
, freeglut, mesa, libjpeg, zlib, libXinerama, libXft, libpng
, cfg ? {}
, darwin, libtiff, freetype
}:
let inherit (composableDerivation) edf; in
@@ -21,7 +22,10 @@ composableDerivation.composableDerivation {} {
'';
nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [ xlibsWrapper inputproto libXi freeglut ];
propagatedBuildInputs = [ inputproto ]
++ (if stdenv.isDarwin
then (with darwin.apple_sdk.frameworks; [Cocoa AGL GLUT freetype libtiff])
else [ xlibsWrapper libXi freeglut ]);
enableParallelBuilding = true;
@@ -55,9 +59,8 @@ composableDerivation.composableDerivation {} {
meta = {
description = "A C++ cross-platform lightweight GUI library";
homepage = http://www.fltk.org;
platforms = stdenv.lib.platforms.linux;
platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
license = stdenv.lib.licenses.gpl2;
};
}

View File

@@ -12,13 +12,16 @@
stdenv.mkDerivation rec {
name = "gd-${version}";
version = "2.2.2";
version = "2.2.3";
src = fetchurl {
url = "https://github.com/libgd/libgd/releases/download/${name}/libgd-${version}.tar.xz";
sha256 = "1311g5mva2xlzqv3rjqjc4jjkn5lzls4skvr395h633zw1n7b7s8";
sha256 = "0g3xz8jpz1pl2zzmssglrpa9nxiaa7rmcmvgpbrjz8k9cyynqsvl";
};
# -pthread gets passed to clang, causing warnings
configureFlags = stdenv.lib.optional stdenv.isDarwin "--enable-werror=no";
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ zlib fontconfig freetype ];
propagatedBuildInputs = [ libpng libjpeg libwebp libtiff libXpm ];

View File

@@ -1,4 +1,4 @@
{ stdenv, fetchurl, cmake }:
{ stdenv, fetchurl, cmake, vtk }:
stdenv.mkDerivation rec {
version = "2.4.6";
@@ -19,10 +19,11 @@ stdenv.mkDerivation rec {
cmakeFlags = ''
-DGDCM_BUILD_APPLICATIONS=ON
-DGDCM_BUILD_SHARED_LIBS=ON
-DGDCM_USE_VTK=ON
'';
enableParallelBuilding = true;
buildInputs = [ cmake ];
buildInputs = [ cmake vtk ];
propagatedBuildInputs = [ ];
meta = {

View File

@@ -36,8 +36,9 @@ stdenv.mkDerivation {
# Build of the Guile bindings is not parallel-safe. See
# <http://git.savannah.gnu.org/cgit/gnutls.git/commit/?id=330995a920037b6030ec0282b51dde3f8b493cad>
# for the actual fix.
enableParallelBuilding = !guileBindings;
# for the actual fix. Also an apparent race in the generation of
# systemkey-args.h.
enableParallelBuilding = false;
buildInputs = [ lzo lzip nettle libtasn1 libidn p11_kit zlib gmp autogen ]
++ lib.optional doCheck nettools

View File

@@ -4,14 +4,14 @@
}:
stdenv.mkDerivation rec {
name = "gst-python-1.8.1";
name = "gst-python-1.8.2";
src = fetchurl {
urls = [
"${meta.homepage}/src/gst-python/${name}.tar.xz"
"mirror://gentoo/distfiles/${name}.tar.xz"
];
sha256 = "160ah5rpy4n8p1mhbf545rcv7rbq0i17xl7q5hmivf4w5yvvz8vn";
sha256 = "15sdfa6lq5pswvi09vk51cs30yf8wr2rlm9myhb4q0c2jhiial2g";
};
patches = [ ./different-path-with-pygobject.patch ];

View File

@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "gtkspell-${version}";
version = "3.0.7";
version = "3.0.8";
src = fetchurl {
url = "mirror://sourceforge/gtkspell/gtkspell3-${version}.tar.gz";
sha256 = "1hiwzajf18v9ik4nai3s7frps4ccn9s20nggad1c4k2mwb9ydwhk";
sha256 = "1zrz5pz4ryvcssk898liynmy2wyxgj95ak7mp2jv7x62yzihq6h1";
};
buildInputs = [ aspell pkgconfig gtk3 enchant intltool ];

View File

@@ -4,7 +4,7 @@
}:
let
version = "3.0.3";
version = "3.0.4";
in
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "mirror://sourceforge/project/gtkspell/gtkspellmm/" +
"${name}.tar.gz";
sha256 = "f9dcc0991621c08e7a972f33487afd6b37491468f0b654f50c741a7e6d810624";
sha256 = "0x6zx928dl62f0c0x6b2s32i06lvn18wx7crrgs1j9yjgkim4k4k";
};
propagatedBuildInputs = [

View File

@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ glib gssdp libsoup libxml2 libuuid ];
postInstall = ''
ln -sv ${libsoup.dev}/include/*/libsoup $out/include
ln -sv ${libsoup.dev}/include/libsoup-2*/libsoup $out/include
ln -sv ${libxml2.dev}/include/*/libxml $out/include
ln -sv ${gssdp}/include/*/libgssdp $out/include
'';

View File

@@ -38,6 +38,10 @@ stdenv.mkDerivation {
rm "$out"/lib/libharfbuzz.* "$dev/lib/pkgconfig/harfbuzz.pc"
ln -s {'${harfbuzz.out}',"$out"}/lib/libharfbuzz.la
ln -s {'${harfbuzz.dev}',"$dev"}/lib/pkgconfig/harfbuzz.pc
${optionalString stdenv.isDarwin ''
ln -s {'${harfbuzz.out}',"$out"}/lib/libharfbuzz.dylib
ln -s {'${harfbuzz.out}',"$out"}/lib/libharfbuzz.0.dylib
''}
'';
meta = with stdenv.lib; {

View File

@@ -1,13 +0,0 @@
set -e
source $stdenv/setup
tar zxvf $src
$jdk/bin/javac java_cup/*.java
$jdk/bin/javac java_cup/runtime/*.java
mkdir -p $out/java_cup/runtime
cp java_cup/*.class $out/java_cup
cp java_cup/runtime/*.class $out/java_cup/runtime/

View File

@@ -1,13 +1,38 @@
{stdenv, fetchurl, jdk} :
{ stdenv, fetchurl, jdk, ant } :
stdenv.mkDerivation {
name = "java-cup-10k";
builder = ./builder.sh;
stdenv.mkDerivation rec {
name = "java-cup-${version}";
version = "11b-20160615";
src = fetchurl {
url = http://www.cs.princeton.edu/~appel/modern/java/CUP/java_cup_v10k.tar.gz;
md5 = "8b11edfec13c590ea443d0f0ae0da479";
url = "http://www2.cs.tum.edu/projects/cup/releases/java-cup-src-${version}.tar.gz";
sha256 = "1ymz3plngxclh7x3xr31537rvvak7lwyd0qkmnl1mkj5drh77rz0";
};
inherit jdk;
sourceRoot = ".";
nativeBuildInputs = [ jdk ant ];
patches = [ ./javacup-0.11b_beta20160615-build-xml-git.patch ];
buildPhase = "ant";
installPhase = ''
mkdir -p $out/{bin,share/{java,java-cup}}
cp dist/java-cup-11b.jar $out/share/java-cup/
cp dist/java-cup-11b-runtime.jar $out/share/java/
cat > $out/bin/javacup <<EOF
#! $shell
exec ${jdk.jre}/bin/java -jar $out/share/java-cup/java-cup-11b.jar "\$@"
EOF
chmod a+x $out/bin/javacup
'';
meta = {
homepage = http://www2.cs.tum.edu/projects/cup/;
description = "LALR parser generator for Java";
license = stdenv.lib.licenses.mit;
platforms = stdenv.lib.platforms.all;
maintainers = [ stdenv.lib.maintainers.romildo ];
};
}

View File

@@ -0,0 +1,38 @@
--- javacup/build.xml.orig 2016-06-15 07:10:15.000000000 -0300
+++ javacup/build.xml 2016-07-17 08:46:46.632722844 -0300
@@ -21,26 +21,6 @@
<mkdir dir="${dist}" />
<loadfile property="cupversion" srcFile="version.txt" failonerror="false" />
<property name="cupversion" value="custombuild" unless:set="cupversion"/>
- <exec executable="git" outputproperty="gitversion">
- <arg value="log"/>
- <arg value="-1"/>
- <arg value="--format=%h"/>
- </exec>
- <exec executable="git" outputproperty="changed">
- <arg value="status"/>
- <arg value="--porcelain"/>
- <redirector>
- <outputfilterchain>
- <linecontainsregexp>
- <regexp pattern='^M.*'/>
- </linecontainsregexp>
- <tokenfilter>
- <replaceregex pattern=".*" replace="modifications based on "/>
- </tokenfilter>
- </outputfilterchain>
- </redirector>
- </exec>
- <property name="svnversion">${changed}${gitversion}</property>
</target>
<property environment="env" />
@@ -79,7 +59,7 @@
<copy todir="${java}"><fileset dir="${src}"></fileset></copy>
<replace file="${java}/java_cup/version.java"
token="+ version_str"
- value='+ "v0.11b ${cupversion} (GIT ${svnversion})"'>
+ value='+ "v0.11b ${cupversion}"'>
</replace>
<javac srcdir="${java}" destdir="${classes}" verbose="off" listfiles="off" debug="on" source="1.8" target="1.8">
<classpath refid="libraries"/>

View File

@@ -0,0 +1,48 @@
{ stdenv, fetchFromGitHub, cmake, python }:
stdenv.mkDerivation rec {
name = "jsoncpp-${version}";
version = "1.6.5";
src = fetchFromGitHub {
owner = "open-source-parsers";
repo = "jsoncpp";
rev = version;
sha256 = "08y54n4v3q18ik8iv8zyziava3x130ilzf1l3qli3vjwf6l42fm0";
};
/* During darwin bootstrap, we have a cp that doesn't understand the
* --reflink=auto flag, which is used in the default unpackPhase for dirs
*/
unpackPhase = ''
cp -a ${src} ${src.name}
chmod -R +w ${src.name}
export sourceRoot=${src.name}
'';
# Hack to be able to run the test, broken because we use
# CMAKE_SKIP_BUILD_RPATH to avoid cmake resetting rpath on install
preBuild = ''
export LD_LIBRARY_PATH="`pwd`/src/lib_json:$LD_LIBRARY_PATH"
'';
nativeBuildInputs = [ cmake python ];
CXXFLAGS = "-Wno-shift-negative-value";
cmakeFlags = [
"-DJSONCPP_LIB_BUILD_SHARED=ON"
"-DJSONCPP_LIB_BUILD_STATIC=OFF"
"-DJSONCPP_WITH_CMAKE_PACKAGE=ON"
];
meta = {
inherit version;
homepage = https://github.com/open-source-parsers/jsoncpp;
description = "A simple API to manipulate JSON data in C++";
maintainers = with stdenv.lib.maintainers; [ ttuegel page ];
platforms = stdenv.lib.platforms.all;
license = stdenv.lib.licenses.mit;
branch = "1.6";
};
}

View File

@@ -1,48 +1,34 @@
{ stdenv, fetchFromGitHub, cmake, python }:
{ stdenv
, fetchgit
, cmake
, python
}:
stdenv.mkDerivation rec {
name = "jsoncpp-${version}";
version = "1.6.5";
version = "1.7.2";
src = fetchFromGitHub {
owner = "open-source-parsers";
repo = "jsoncpp";
rev = version;
sha256 = "08y54n4v3q18ik8iv8zyziava3x130ilzf1l3qli3vjwf6l42fm0";
src = fetchgit {
url = https://github.com/open-source-parsers/jsoncpp.git;
sha256 = "04w4cfmvyv52rpqhc370ln8rhlsrr515778bixhgafqbp3p4x34k";
rev = "c8054483f82afc3b4db7efe4e5dc034721649ec8";
};
/* During darwin bootstrap, we have a cp that doesn't understand the
* --reflink=auto flag, which is used in the default unpackPhase for dirs
*/
unpackPhase = ''
cp -a ${src} ${src.name}
chmod -R +w ${src.name}
export sourceRoot=${src.name}
'';
configurePhase = ''
mkdir -p Build
pushd Build
# Hack to be able to run the test, broken because we use
# CMAKE_SKIP_BUILD_RPATH to avoid cmake resetting rpath on install
preBuild = ''
export LD_LIBRARY_PATH="`pwd`/src/lib_json:$LD_LIBRARY_PATH"
'';
mkdir -p $out
cmake .. -DCMAKE_INSTALL_PREFIX=$out \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release
'';
nativeBuildInputs = [ cmake python ];
buildInputs = [ cmake python ];
CXXFLAGS = "-Wno-shift-negative-value";
cmakeFlags = [
"-DJSONCPP_LIB_BUILD_SHARED=ON"
"-DJSONCPP_LIB_BUILD_STATIC=OFF"
"-DJSONCPP_WITH_CMAKE_PACKAGE=ON"
];
meta = {
inherit version;
meta = with stdenv.lib; {
homepage = https://github.com/open-source-parsers/jsoncpp;
description = "A simple API to manipulate JSON data in C++";
maintainers = with stdenv.lib.maintainers; [ ttuegel page ];
platforms = stdenv.lib.platforms.all;
license = stdenv.lib.licenses.mit;
branch = "1.6";
description = "A C++ library for interacting with JSON.";
license = licenses.mit;
platforms = platforms.linux;
};
}

View File

@@ -3,6 +3,7 @@
, documentationSupport ? false, doxygen ? null, graphviz ? null # Documentation
, eventGUISupport ? false, cairo ? null, glib ? null, gtk3 ? null # GUI event viewer support
, testsSupport ? false, check ? null, valgrind ? null
, autoconf, automake
}:
assert documentationSupport -> doxygen != null && graphviz != null;
@@ -32,13 +33,16 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ libevdev mtdev libwacom ]
buildInputs = [ libevdev mtdev libwacom autoconf automake ]
++ optionals eventGUISupport [ cairo glib gtk3 ]
++ optionals documentationSupport [ doxygen graphviz ]
++ optionals testsSupport [ check valgrind ];
propagatedBuildInputs = [ udev ];
patches = [ ./udev-absolute-path.patch ];
patchFlags = [ "-p0" ];
meta = {
description = "Handles input devices in Wayland compositors and provides a generic X.Org input driver";
homepage = http://www.freedesktop.org/wiki/Software/libinput;

View File

@@ -0,0 +1,12 @@
--- configure.ac 2016-05-27 14:00:25.248388226 +0200
+++ configure.ac 2016-05-27 14:01:28.228943416 +0200
@@ -214,7 +214,8 @@ AM_CONDITIONAL(BUILD_DOCS, [test "x$buil
# Used by the udev rules so we can use callouts during testing without
# installing everything first. Default is the empty string so the installed
# rule will use udev's default path. Override is in udev/Makefile.am
-AC_SUBST(UDEV_TEST_PATH, "")
+UDEV_TEST_PATH="${UDEV_DIR}/"
+AC_SUBST(UDEV_TEST_PATH)
AC_PATH_PROG(SED, [sed])
AC_CONFIG_FILES([Makefile

View File

@@ -1,24 +1,23 @@
{ stdenv, fetchhg, txt2tags }:
{ stdenv, fetchurl, unzip, txt2tags }:
stdenv.mkDerivation rec {
rev = "148";
version = "hg-2012-12-02";
name = "libixp-${version}";
src = fetchhg {
url = https://code.google.com/p/libixp/;
sha256 = "1nbnh2ff18fsrs28mx4bfgncq1d1nw5dd6iwhwvv5x2g9w7q5vvj";
inherit rev;
src = fetchurl {
url = https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/libixp/source-archive.zip;
sha256 = "0kcdvdcrkw6q39v563ncis6d7ini64xbgn5fd3b4aa95fp9sj3is";
};
configurePhase = ''
sed -i -e "s|^PREFIX.*=.*$|PREFIX = $out|" config.mk
'';
buildInputs = [ txt2tags ];
buildInputs = [ unzip txt2tags ];
meta = {
homepage = https://code.google.com/p/libixp/;
homepage = https://code.google.com/archive/p/libixp/;
description = "Portable, simple C-language 9P client and server libary";
maintainers = with stdenv.lib.maintainers; [ kovirobi ];
license = stdenv.lib.licenses.mit;

View File

@@ -0,0 +1,36 @@
{ stdenv, fetchurl, static ? true }:
with stdenv.lib;
stdenv.mkDerivation rec {
name = "libjpeg-drop-9b";
srcs = [
(fetchurl {
url = http://www.ijg.org/files/jpegsrc.v9b.tar.gz;
sha256 = "0lnhpahgdwlrkd41lx6cr90r199f8mc6ydlh7jznj5klvacd63r4";
})
(fetchurl {
url = http://jpegclub.org/droppatch.v9b.tar.gz;
sha256 = "022bnvpird7w5pwbfqpq7j7pwja5kp6x9k3sdypcy3g2nwwy2wwk";
})
];
postUnpack = ''
rm jpegtran
mv jpegtran.c jpeg-9b/jpegtran.c
mv transupp.c jpeg-9b/transupp.c
mv transupp.h jpeg-9b/transupp.h
'';
configureFlags = []
++ optional static [ "--enable-static" "--disable-shared" ];
outputs = [ "dev" "out" "man" "bin" ];
meta = {
homepage = http://jpegclub.org/jpegtran/;
description = "Experimental lossless crop 'n' drop (cut & paste) patches for libjpeg";
license = stdenv.lib.licenses.free;
};
}

View File

@@ -0,0 +1,30 @@
{ stdenv, fetchurl, cmake, curl }:
let
basename = "libjson-rpc-cpp";
version = "0.2.1";
in
stdenv.mkDerivation {
name = "${basename}-${version}";
src = fetchurl {
url = "https://github.com/cinemast/${basename}/archive/${version}.tar.gz";
sha256 = "1pc9nn4968qkda8vr4f9dijn2fcldm8i0ymwmql29h4cl5ghdnpw";
};
buildInputs = [ cmake curl ];
NIX_LDFLAGS = "-lpthread";
enableParallelBuilding = true;
doCheck = true;
checkPhase = "LD_LIBRARY_PATH=out/ ctest";
meta = {
description = "C++ framework for json-rpc (json remote procedure call)";
homepage = https://github.com/cinemast/libjson-rpc-cpp;
license = stdenv.lib.licenses.mit;
platforms = stdenv.lib.platforms.linux;
};
}

View File

@@ -1,30 +1,69 @@
{ stdenv, fetchurl, cmake, curl }:
{ stdenv
, fetchgit
, cmake
, jsoncpp
, argtable
, curl
, libmicrohttpd
, doxygen
, catch
}:
stdenv.mkDerivation rec {
name = "libjson-rpc-cpp-${version}";
version = "0.6.0";
let
basename = "libjson-rpc-cpp";
version = "0.2.1";
in
stdenv.mkDerivation {
name = "${basename}-${version}";
src = fetchurl {
url = "https://github.com/cinemast/${basename}/archive/${version}.tar.gz";
sha256 = "1pc9nn4968qkda8vr4f9dijn2fcldm8i0ymwmql29h4cl5ghdnpw";
src = fetchgit {
url = https://github.com/cinemast/libjson-rpc-cpp.git;
sha256 = "00fxxisg89zgg1wq047n8r8ws48jx35x3s6bbym4kg7dkxv9vv9f";
rev = "c6e3d7195060774bf95afc6df9c9588922076d3e";
};
buildInputs = [ cmake curl ];
patchPhase = ''
for f in cmake/FindArgtable.cmake \
src/stubgenerator/stubgenerator.cpp \
src/stubgenerator/stubgeneratorfactory.cpp
do
sed -i -re 's/argtable2/argtable3/g' $f
done
NIX_LDFLAGS = "-lpthread";
enableParallelBuilding = true;
doCheck = true;
sed -i -re 's#MATCHES "jsoncpp"#MATCHES ".*/jsoncpp/json$"#g' cmake/FindJsoncpp.cmake
'';
checkPhase = "LD_LIBRARY_PATH=out/ ctest";
configurePhase = ''
mkdir -p Build/Install
pushd Build
meta = {
cmake .. -DCMAKE_INSTALL_PREFIX=$(pwd)/Install \
-DCMAKE_BUILD_TYPE=Release
'';
installPhase = ''
mkdir -p $out
function fixRunPath {
p=$(patchelf --print-rpath $1)
q="$p:${stdenv.lib.makeLibraryPath [ stdenv.cc.cc jsoncpp argtable libmicrohttpd curl ]}:$out/lib"
patchelf --set-rpath $q $1
}
make install
sed -i -re "s#-([LI]).*/Build/Install(.*)#-\1$out\2#g" Install/lib/pkgconfig/*.pc
for f in Install/lib/*.so* $(find Install/bin -executable -type f); do
fixRunPath $f
done
cp -r Install/* $out
'';
dontStrip = true;
buildInputs = [ cmake jsoncpp argtable curl libmicrohttpd doxygen catch ];
meta = with stdenv.lib; {
description = "C++ framework for json-rpc (json remote procedure call)";
homepage = https://github.com/cinemast/libjson-rpc-cpp;
license = stdenv.lib.licenses.mit;
platforms = stdenv.lib.platforms.linux;
license = licenses.mit;
platforms = platforms.linux;
};
}

View File

@@ -1,11 +1,11 @@
{ stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, zlib }:
stdenv.mkDerivation rec {
version = "0.7.86";
version = "0.7.87";
name = "libmediainfo-${version}";
src = fetchurl {
url = "http://mediaarea.net/download/source/libmediainfo/${version}/libmediainfo_${version}.tar.xz";
sha256 = "14m7cgd93mglc9a4x28pb4yc6nfxhqk7vfryca83vpn80la1lxy0";
sha256 = "1gvjvc809mrhpcqr62cihhc6jnwml197xjbgydnzvsghih8dq8s9";
};
nativeBuildInputs = [ autoreconfHook pkgconfig ];

View File

@@ -1,12 +1,12 @@
{ callPackage, fetchFromGitHub, ... } @ args:
callPackage ./generic.nix (args // rec {
version = "1.1.0";
version = "2.0.0";
src = fetchFromGitHub {
owner = "msgpack";
repo = "msgpack-c";
rev = "cpp-${version}";
sha256 = "1hnpnin6gjiilbzfd75871kamfn9grrf53qpbs061sflvz56fddq";
sha256 = "189m44pwpcpf7g4yhzfla4djqyp2kl54wxmwfaj94gwgj5s370i7";
};
})

View File

@@ -1,33 +1,41 @@
{ stdenv, fetchurl, glib, libxml2, pkgconfig
, gnomeSupport ? false, libgnome_keyring, sqlite, glib_networking, gobjectIntrospection
, gnomeSupport ? true, libgnome_keyring, sqlite, glib_networking, gobjectIntrospection
, valaSupport ? true, vala
, libintlOrEmpty
, intltool, python }:
let
majorVersion = "2.52";
version = "${majorVersion}.2";
majorVersion = "2.54";
version = "${majorVersion}.1";
in
stdenv.mkDerivation {
name = "libsoup-${version}";
src = fetchurl {
url = "mirror://gnome/sources/libsoup/${majorVersion}/libsoup-${version}.tar.xz";
sha256 = "1p4k40y2gikr6m8p3hm0vswdzj2pj133dckipd2jk5bxbj5n4mfv";
sha256 = "0cyn5pq4xl1gb8413h2p4d5wrn558dc054zhwmk4swrl40ijrd27";
};
patchPhase = ''
prePatch = ''
patchShebangs libsoup/
'' + stdenv.lib.optionalString valaSupport
''
substituteInPlace libsoup/Makefile.in --replace "\$(DESTDIR)\$(vapidir)" "\$(DESTDIR)\$(girdir)/../vala/vapi"
'';
outputs = [ "dev" "out" ];
buildInputs = libintlOrEmpty ++ [ intltool python sqlite ];
buildInputs = libintlOrEmpty ++ [ intltool python sqlite ]
++ stdenv.lib.optionals valaSupport [ vala ];
nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [ glib libxml2 gobjectIntrospection ]
++ stdenv.lib.optionals gnomeSupport [ libgnome_keyring ];
passthru.propagatedUserEnvPackages = [ glib_networking.out ];
# glib_networking is a runtime dependency, not a compile-time dependency
configureFlags = "--disable-tls-check --enable-vala=no" + stdenv.lib.optionalString (!gnomeSupport) " --without-gnome";
configureFlags = "--disable-tls-check"
+ stdenv.lib.optionalString (!valaSupport) " --enable-vala=no"
+ stdenv.lib.optionalString (valaSupport) " --enable-vala=yes"
+ stdenv.lib.optionalString (!gnomeSupport) " --without-gnome";
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-lintl";

View File

@@ -4,7 +4,7 @@ stdenv.mkDerivation {
name = "libtomcrypt-1.17";
src = fetchurl {
url = "http://libtom.org/files/crypt-1.17.tar.bz2";
url = "https://github.com/libtom/libtomcrypt/releases/download/1.17/crypt-1.17.tar.bz2";
sha256 = "e33b47d77a495091c8703175a25c8228aff043140b2554c08a3c3cd71f79d116";
};

View File

@@ -1,11 +1,11 @@
{stdenv, fetchurl, libtool}:
stdenv.mkDerivation {
name = "libtommath-0.39";
name = "libtommath-1.0";
src = fetchurl {
url = http://math.libtomcrypt.com/files/ltm-0.39.tar.bz2;
sha256 = "1kjx8rrw62nanzc5qp8fj6r3ybhw8ca60ahkyb70f10aiij49zs2";
url = https://github.com/libtom/libtommath/releases/download/v1.0/ltm-1.0.tar.xz;
sha256 = "0v5mpd8zqjfs2hr900w1mxifz23xylyjdqyx1i1wl7q9xvwpsflr";
};
buildInputs = [libtool];

View File

@@ -0,0 +1,38 @@
{ stdenv, fetchgit, cmake, pkgconfig, gtk3 }:
let
shortName = "libui";
version = "3.1a";
in
stdenv.mkDerivation rec {
name = "${shortName}-${version}";
src = fetchgit {
url = "https://github.com/andlabs/libui.git";
rev = "6ebdc96b93273c3cedf81159e7843025caa83058";
sha256 = "1lpbfa298c61aarlzgp7vghrmxg1274pzxh1j9isv8x758gk6mfn";
};
buildInputs = [ cmake pkgconfig gtk3 ];
installPhase = ''
mkdir -p $out/{include,lib}
mkdir -p $out/lib/pkgconfig
mv ./out/${shortName}.so.0 $out/lib/
ln -s $out/lib/${shortName}.so.0 $out/lib/${shortName}.so
cp $src/ui.h $out/include
cp $src/ui_unix.h $out/include
cp ${./libui.pc} $out/lib/pkgconfig/${shortName}.pc
substituteInPlace $out/lib/pkgconfig/${shortName}.pc \
--subst-var-by out $out \
--subst-var-by version "${version}"
'';
meta = {
homepage = https://github.com/andlabs/libui;
description = "Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.";
platforms = stdenv.lib.platforms.linux;
};
}

View File

@@ -0,0 +1,11 @@
prefix=@out@
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${exec_prefix}/include
Name: libui
Description: Simple and portable (but not inflexible) GUI library
Version: @version@
Libs: -L${libdir} -lui
Cflags: -I${includedir}

View File

@@ -1,15 +1,14 @@
{ lib, stdenv, fetchurl, pkgconfig
, abiVersion
, mouseSupport ? false
, unicode ? true
, gpm
}:
let
inherit (stdenv) isDarwin;
abiVersion = if isDarwin then "5" else "6";
version = if isDarwin then "5.9" else "6.0";
sha256 = if isDarwin
version = if abiVersion == "5" then "5.9" else "6.0";
sha256 = if abiVersion == "5"
then "0fsn7xis81za62afan0vvm38bvgzg5wfmv1m86flqcj0nj7jjilh"
else "0q3jck7lna77z5r42f13c4xglc7azd19pxfrjrpgp2yf615w4lgm";
in
@@ -21,7 +20,7 @@ stdenv.mkDerivation rec {
inherit sha256;
};
patches = [ ./clang.patch ];
patches = [ ./clang.patch ] ++ lib.optional (abiVersion == "5" && stdenv.cc.isGNU) ./gcc-5.patch;
outputs = [ "dev" "out" "man" ];
setOutputFlags = false; # some aren't supported

View File

@@ -0,0 +1,46 @@
https://bugs.gentoo.org/545114
extracted from the upstream change (which had many unrelated commits in one)
From 97bb4678dc03e753290b39bbff30ba2825df9517 Mon Sep 17 00:00:00 2001
From: "Thomas E. Dickey" <dickey@invisible-island.net>
Date: Sun, 7 Dec 2014 03:10:09 +0000
Subject: [PATCH] ncurses 5.9 - patch 20141206
+ modify MKlib_gen.sh to work around change in development version of
gcc introduced here:
https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html
https://gcc.gnu.org/ml/gcc-patches/2014-07/msg00236.html
(reports by Marcus Shawcroft, Maohui Lei).
diff --git a/ncurses/base/MKlib_gen.sh b/ncurses/base/MKlib_gen.sh
index d8cc3c9..b91398c 100755
--- a/ncurses/base/MKlib_gen.sh
+++ b/ncurses/base/MKlib_gen.sh
@@ -474,11 +474,22 @@ sed -n -f $ED1 \
-e 's/gen_$//' \
-e 's/ / /g' >>$TMP
+cat >$ED1 <<EOF
+s/ / /g
+s/^ //
+s/ $//
+s/P_NCURSES_BOOL/NCURSES_BOOL/g
+EOF
+
+# A patch discussed here:
+# https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html
+# introduces spurious #line markers. Work around that by ignoring the system's
+# attempt to define "bool" and using our own symbol here.
+sed -e 's/bool/P_NCURSES_BOOL/g' $TMP > $ED2
+cat $ED2 >$TMP
+
$preprocessor $TMP 2>/dev/null \
-| sed \
- -e 's/ / /g' \
- -e 's/^ //' \
- -e 's/_Bool/NCURSES_BOOL/g' \
+| sed -f $ED1 \
| $AWK -f $AW2 \
| sed -f $ED3 \
| sed \

View File

@@ -1,6 +1,5 @@
{ stdenv
, fetchurl
, zlib
, hdf5
, m4
, curl # for DAP
@@ -16,7 +15,7 @@ in stdenv.mkDerivation rec {
sha256 = "06ds8zm4qvjlqvv4qb637cqr0xgvbhnghrddisad5vj81s5kvpmx";
};
buildInputs = [ hdf5 zlib m4 curl mpi];
buildInputs = [ hdf5 m4 curl mpi];
passthru = {
mpiSupport = mpiSupport;

View File

@@ -26,7 +26,8 @@ in stdenv.mkDerivation rec {
# https://www.open-mpi.org/community/lists/users/2015/11/28030.php
patches = [ ./nbc_copy.patch ];
buildInputs = [ gfortran libibverbs ];
buildInputs = [ gfortran ]
++ optional (stdenv.isLinux || stdenv.isFreeBSD) libibverbs;
nativeBuildInputs = [ perl ];
@@ -46,5 +47,6 @@ in stdenv.mkDerivation rec {
description = "Open source MPI-2 implementation";
longDescription = "The Open MPI Project is an open source MPI-2 implementation that is developed and maintained by a consortium of academic, research, and industry partners. Open MPI is therefore able to combine the expertise, technologies, and resources from all across the High Performance Computing community in order to build the best MPI library available. Open MPI offers advantages for system and software vendors, application developers and computer science researchers.";
maintainers = [ stdenv.lib.maintainers.mornfall ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,29 @@
{ cairo, fetchzip, glib, gnome3, gobjectIntrospection, pkgconfig, stdenv }:
stdenv.mkDerivation rec {
name = "osm-gps-map-${version}";
version = "1.1.0";
src = fetchzip {
url = "https://github.com/nzjrs/osm-gps-map/releases/download/${version}/osm-gps-map-${version}.tar.gz";
sha256 = "0fal3mqcf3yypir4f7njz0dm5wr7lqwpimjx28wz9imh48cqx9n9";
};
outputs = [ "dev" "out" "doc" ];
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
cairo glib gobjectIntrospection
] ++ (with gnome3; [
gnome_common gtk libsoup
]);
meta = with stdenv.lib; {
description = "Gtk+ widget for displaying OpenStreetMap tiles";
homepage = https://nzjrs.github.io/osm-gps-map;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ hrdinka ];
platforms = platforms.linux;
};
}

View File

@@ -28,7 +28,9 @@ stdenv.mkDerivation {
buildFlags = [ "lib" "solib" ];
installTargets = "install";
installTargets = if stdenv.isDarwin
then ["install-staticlib" "install-shlib"]
else "install";
buildInputs = [ gfortran openblas ];
}

View File

@@ -25,7 +25,7 @@ stdenv.mkDerivation {
setupHook = ./setup-hook.sh;
src = fetchurl {
url = ftp://ftp.trolltech.com/qt/source/qt-x11-free-3.3.8.tar.bz2;
url = http://download.qt.io/archive/qt/3/qt-x11-free-3.3.8.tar.bz2;
sha256 = "0jd4g3bwkgk2s4flbmgisyihm7cam964gzb3pawjlkhas01zghz8";
};
@@ -39,14 +39,14 @@ stdenv.mkDerivation {
-I${xextproto}/include
${if openglSupport then "-dlopen-opengl
-L${mesa}/lib -I${mesa}/include
-L${libXmu}/lib -I${libXmu}/include" else ""}
-L${libXmu.out}/lib -I${libXmu.dev}/include" else ""}
${if threadSupport then "-thread" else "-no-thread"}
${if xrenderSupport then "-xrender -L${libXrender}/lib -I${libXrender}/include" else "-no-xrender"}
${if xrenderSupport then "-xrender -L${libXrender.out}/lib -I${libXrender.dev}/include" else "-no-xrender"}
${if xrandrSupport then "-xrandr
-L${libXrandr}/lib -I${libXrandr}/include
-L${libXrandr.out}/lib -I${libXrandr.dev}/include
-I${randrproto}/include" else "-no-xrandr"}
${if xineramaSupport then "-xinerama -L${libXinerama}/lib -I${libXinerama}/include" else "-no-xinerama"}
${if cursorSupport then "-L${libXcursor}/lib -I${libXcursor}/include" else ""}
${if xineramaSupport then "-xinerama -L${libXinerama.out}/lib -I${libXinerama.dev}/include" else "-no-xinerama"}
${if cursorSupport then "-L${libXcursor.out}/lib -I${libXcursor.dev}/include" else ""}
${if mysqlSupport then "-qt-sql-mysql -L${mysql.lib}/lib/mysql -I${mysql.lib}/include/mysql" else ""}
${if xftSupport then "-xft
-L${libXft.out}/lib -I${libXft.dev}/include

View File

@@ -49,6 +49,8 @@ let
outputs = args.outputs or [ "dev" "out" ];
setOutputFlags = args.setOutputFlags or false;
setupHook = ./setup-hook.sh;
enableParallelBuilding = args.enableParallelBuilding or true;
meta = self.qtbase.meta // (args.meta or {});

View File

@@ -2,11 +2,11 @@ wrapQtProgram() {
local prog="$1"
shift
wrapProgram "$prog" \
--prefix QT_PLUGIN_PATH : "$QT_PLUGIN_PATH" \
--prefix QML_IMPORT_PATH : "$QML_IMPORT_PATH" \
--prefix QML2_IMPORT_PATH : "$QML2_IMPORT_PATH" \
--prefix XDG_CONFIG_DIRS : "$NIX_WRAP_XDG_CONFIG_DIRS" \
--prefix XDG_DATA_DIRS : "$NIX_WRAP_XDG_DATA_DIRS" \
--set QT_PLUGIN_PATH "$QT_PLUGIN_PATH" \
--set QML_IMPORT_PATH "$QML_IMPORT_PATH" \
--set QML2_IMPORT_PATH "$QML2_IMPORT_PATH" \
--prefix XDG_DATA_DIRS : "$RUNTIME_XDG_DATA_DIRS" \
--prefix XDG_CONFIG_DIRS : "$RUNTIME_XDG_CONFIG_DIRS" \
"$@"
}
@@ -16,11 +16,11 @@ makeQtWrapper() {
shift
shift
makeWrapper "$old" "$new" \
--prefix QT_PLUGIN_PATH : "$QT_PLUGIN_PATH" \
--prefix QML_IMPORT_PATH : "$QML_IMPORT_PATH" \
--prefix QML2_IMPORT_PATH : "$QML2_IMPORT_PATH" \
--prefix XDG_CONFIG_DIRS : "$NIX_WRAP_XDG_CONFIG_DIRS" \
--prefix XDG_DATA_DIRS : "$NIX_WRAP_XDG_DATA_DIRS" \
--set QT_PLUGIN_PATH "$QT_PLUGIN_PATH" \
--set QML_IMPORT_PATH "$QML_IMPORT_PATH" \
--set QML2_IMPORT_PATH "$QML2_IMPORT_PATH" \
--prefix XDG_DATA_DIRS : "$RUNTIME_XDG_DATA_DIRS" \
--prefix XDG_CONFIG_DIRS : "$RUNTIME_XDG_CONFIG_DIRS" \
"$@"
}
@@ -29,10 +29,8 @@ _makeQtWrapperSetup() {
export QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}${!outputLib}/lib/qt5/plugins"
export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}${!outputLib}/lib/qt5/imports"
export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}${!outputLib}/lib/qt5/qml"
export XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS${XDG_CONFIG_DIRS:+:}${!outputLib}/etc/xdg"
export XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}${!outputLib}/share"
export NIX_WRAP_XDG_CONFIG_DIRS="$NIX_WRAP_XDG_CONFIG_DIRS${NIX_WRAP_XDG_CONFIG_DIRS:+:}${!outputLib}/etc/xdg"
export NIX_WRAP_XDG_DATA_DIRS="$NIX_WRAP_XDG_DATA_DIRS${NIX_WRAP_XDG_DATA_DIRS:+:}${!outputLib}/share"
export RUNTIME_XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}${!outputBin}/share"
export RUNTIME_XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS${XDG_CONFIG_DIRS:+:}${!outputBin}/etc/xdg"
}
prePhases+=(_makeQtWrapperSetup)

View File

@@ -1,50 +1,16 @@
if [[ -z "$QMAKE" ]]; then
qmakeConfigurePhase() {
runHook preConfigure
_qtLinkDependencyDir() {
@lndir@/bin/lndir -silent "$1/$2" "$qtOut/$2"
if [ -n "$NIX_QT_SUBMODULE" ]; then
find "$1/$2" -printf "$2/%P\n" >> "$out/nix-support/qt-inputs"
fi
qmake PREFIX=$out $qmakeFlags
runHook postConfigure
}
_qtLinkModule() {
if [ -d "$1/mkspecs" ]; then
# $1 is a Qt module
_qtLinkDependencyDir "$1" mkspecs
if [ -z "$dontUseQmakeConfigure" -a -z "$configurePhase" ]; then
configurePhase=qmakeConfigurePhase
fi
for dir in bin include lib share; do
if [ -d "$1/$dir" ]; then
_qtLinkDependencyDir "$1" "$dir"
fi
done
fi
}
_qtRmModules() {
cat "$out/nix-support/qt-inputs" | while read file; do
if [ -h "$out/$file" ]; then
rm "$out/$file"
fi
done
cat "$out/nix-support/qt-inputs" | while read file; do
if [ -d "$out/$file" ]; then
rmdir --ignore-fail-on-non-empty -p "$out/$file"
fi
done
rm "$out/nix-support/qt-inputs"
}
_qtRmQmake() {
rm "$qtOut/bin/qmake" "$qtOut/bin/qt.conf"
}
_qtSetQmakePath() {
export PATH="$qtOut/bin${PATH:+:}$PATH"
}
_qtMultioutModuleDevs() {
_qtModuleMultioutDevsPre() {
# We cannot simply set these paths in configureFlags because libQtCore retains
# references to the paths it was built with.
moveToOutput "bin" "${!outputDev}"
@@ -53,12 +19,14 @@ _qtMultioutModuleDevs() {
# The destination directory must exist or moveToOutput will do nothing
mkdir -p "${!outputDev}/share"
moveToOutput "share/doc" "${!outputDev}"
}
_qtModuleMultioutDevsPost() {
# Move libtool archives and qmake project files to $dev/lib
if [ "z${!outputLib}" != "z${!outputDev}" ]; then
pushd "${!outputLib}"
if [ -d "lib" ]; then
find lib \( -name '*.a' -o -name '*.la' -o -name '*.prl' -print0 \) | \
find lib \( -name '*.a' -o -name '*.la' -o -name '*.prl' \) -print0 | \
while read -r -d $'\0' file; do
mkdir -p "${!outputDev}/$(dirname "$file")"
mv "${!outputLib}/$file" "${!outputDev}/$file"
@@ -68,53 +36,7 @@ _qtMultioutModuleDevs() {
fi
}
_qtRmQtOut() {
rm -fr "$qtOut"
}
qmakeConfigurePhase() {
runHook preConfigure
qmake PREFIX=$out $qmakeFlags
runHook postConfigure
}
qtOut=""
if [[ -z "$NIX_QT_SUBMODULE" ]]; then
qtOut=`mktemp -d`
else
qtOut=$out
fi
mkdir -p "$qtOut/bin" "$qtOut/mkspecs" "$qtOut/include" "$qtOut/nix-support" "$qtOut/lib" "$qtOut/share"
cp "@qt_dev@/bin/qmake" "$qtOut/bin"
cat >"$qtOut/bin/qt.conf" <<EOF
[Paths]
Prefix = $qtOut
Plugins = lib/qt5/plugins
Imports = lib/qt5/imports
Qml2Imports = lib/qt5/qml
Documentation = share/doc/qt5
EOF
export QMAKE="$qtOut/bin/qmake"
envHooks+=(_qtLinkModule)
# Set PATH to find qmake first in a preConfigure hook
# It must run after all the envHooks!
postHooks+=(_qtSetQmakePath)
if [ -z "$dontUseQmakeConfigure" -a -z "$configurePhase" ]; then
configurePhase=qmakeConfigurePhase
fi
if [ -n "$NIX_QT_SUBMODULE" ]; then
postInstallHooks+=(_qtRmQmake _qtRmModules)
preFixupHooks+=(_qtMultioutModuleDevs)
else
postInstallHooks+=(_qtRmQtOut)
fi
preFixupHooks+=(_qtModuleMultioutDevsPre)
postFixupHooks+=(_qtModuleMultioutDevsPost)
fi

View File

@@ -276,6 +276,7 @@ stdenv.mkDerivation {
fixQtModuleCMakeConfig "Xml"
'';
inherit lndir;
setupHook = ./setup-hook.sh;
enableParallelBuilding = true;

View File

@@ -24,11 +24,10 @@ propagateOnce() {
addToSearchPathOnceWithCustomDelimiter ' ' "$@"
}
_qtPropagateRuntimeDependencies() {
_qtPropagate() {
for dir in "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports"; do
if [ -d "$1/$dir" ]; then
propagateOnce propagatedBuildInputs "$1"
propagateOnce propagatedUserEnvPkgs "$1"
break
fi
done
@@ -37,7 +36,23 @@ _qtPropagateRuntimeDependencies() {
addToSearchPathOnce QML2_IMPORT_PATH "$1/lib/qt5/qml"
}
envHooks+=(_qtPropagateRuntimeDependencies)
crossEnvHooks+=(_qtPropagate)
_qtPropagateNative() {
for dir in "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports"; do
if [ -d "$1/$dir" ]; then
propagateOnce propagatedNativeBuildInputs "$1"
break
fi
done
if [ -z "$crossConfig" ]; then
addToSearchPathOnce QT_PLUGIN_PATH "$1/lib/qt5/plugins"
addToSearchPathOnce QML_IMPORT_PATH "$1/lib/qt5/imports"
addToSearchPathOnce QML2_IMPORT_PATH "$1/lib/qt5/qml"
fi
}
envHooks+=(_qtPropagateNative)
_qtMultioutDevs() {
# This is necessary whether the package is a Qt module or not
@@ -50,3 +65,107 @@ if [[ -z "$NIX_QT_PIC" ]]; then
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE${NIX_CFLAGS_COMPILE:+ }-fPIC"
export NIX_QT_PIC=1
fi
_qtSetCMakePrefix() {
export CMAKE_PREFIX_PATH="$NIX_QT5_TMP${CMAKE_PREFIX_PATH:+:}${CMAKE_PREFIX_PATH}"
}
_qtRmTmp() {
if [ -z "$NIX_QT_SUBMODULE" ]; then
rm -fr "$NIX_QT5_TMP"
else
cat "$NIX_QT5_TMP/nix-support/qt-inputs" | while read file; do
if [ ! -d "$NIX_QT5_TMP/$file" ]; then
rm -f "$NIX_QT5_TMP/$file"
fi
done
cat "$NIX_QT5_TMP/nix-support/qt-inputs" | while read dir; do
if [ -d "$NIX_QT5_TMP/$dir" ]; then
rmdir --ignore-fail-on-non-empty -p "$NIX_QT5_TMP/$dir"
fi
done
rm "$NIX_QT5_TMP/nix-support/qt-inputs"
fi
}
_qtSetQmakePath() {
export PATH="$NIX_QT5_TMP/bin${PATH:+:}$PATH"
}
if [ -z "$NIX_QT5_TMP" ]; then
if [ -z "$NIX_QT_SUBMODULE" ]; then
NIX_QT5_TMP=$(mktemp -d)
else
NIX_QT5_TMP=$out
fi
postInstallHooks+=(_qtRmTmp)
mkdir -p "$NIX_QT5_TMP/nix-support"
for subdir in bin include lib mkspecs share; do
mkdir "$NIX_QT5_TMP/$subdir"
echo "$subdir/" >> "$NIX_QT5_TMP/nix-support/qt-inputs"
done
postHooks+=(_qtSetCMakePrefix)
cp "@dev@/bin/qmake" "$NIX_QT5_TMP/bin"
echo "bin/qmake" >> "$NIX_QT5_TMP/nix-support/qt-inputs"
cat >"$NIX_QT5_TMP/bin/qt.conf" <<EOF
[Paths]
Prefix = $NIX_QT5_TMP
Plugins = lib/qt5/plugins
Imports = lib/qt5/imports
Qml2Imports = lib/qt5/qml
Documentation = share/doc/qt5
EOF
echo "bin/qt.conf" >> "$NIX_QT5_TMP/nix-support/qt-inputs"
export QMAKE="$NIX_QT5_TMP/bin/qmake"
# Set PATH to find qmake first in a preConfigure hook
# It must run after all the envHooks!
preConfigureHooks+=(_qtSetQmakePath)
fi
qt5LinkModuleDir() {
if [ -d "$1/$2" ]; then
@lndir@/bin/lndir -silent "$1/$2" "$NIX_QT5_TMP/$2"
find "$1/$2" -printf "$2/%P\n" >> "$NIX_QT5_TMP/nix-support/qt-inputs"
fi
}
NIX_QT5_MODULES="${NIX_QT5_MODULES}${NIX_QT5_MODULES:+:}@out@"
NIX_QT5_MODULES_DEV="${NIX_QT5_MODULES_DEV}${NIX_QT5_MODULES_DEV:+:}@dev@"
_qtLinkAllModules() {
IFS=: read -a modules <<< $NIX_QT5_MODULES
for module in ${modules[@]}; do
qt5LinkModuleDir "$module" "lib"
done
IFS=: read -a modules <<< $NIX_QT5_MODULES_DEV
for module in ${modules[@]}; do
qt5LinkModuleDir "$module" "bin"
qt5LinkModuleDir "$module" "include"
qt5LinkModuleDir "$module" "lib"
qt5LinkModuleDir "$module" "mkspecs"
qt5LinkModuleDir "$module" "share"
done
}
preConfigureHooks+=(_qtLinkAllModules)
_qtFixCMakePaths() {
find "${!outputLib}" -name "*.cmake" | while read file; do
substituteInPlace "$file" \
--subst-var-by NIX_OUT "${!outputLib}" \
--subst-var-by NIX_DEV "${!outputDev}"
done
}
if [ -n "$NIX_QT_SUBMODULE" ]; then
postInstallHooks+=(_qtFixCMakePaths)
fi

View File

@@ -4,7 +4,6 @@ qtSubmodule {
name = "qtlocation";
qtInputs = [ qtbase qtmultimedia ];
postFixup = ''
fixQtModuleCMakeConfig "Location"
fixQtModuleCMakeConfig "Positioning"
'';
}

View File

@@ -0,0 +1,2 @@
NIX_QT5_MODULES="${NIX_QT5_MODULES}${NIX_QT5_MODULES:+:}@out@"
NIX_QT5_MODULES_DEV="${NIX_QT5_MODULES_DEV}${NIX_QT5_MODULES_DEV:+:}@dev@"

View File

@@ -2,11 +2,11 @@ wrapQtProgram() {
local prog="$1"
shift
wrapProgram "$prog" \
--prefix QT_PLUGIN_PATH : "$QT_PLUGIN_PATH" \
--prefix QML_IMPORT_PATH : "$QML_IMPORT_PATH" \
--prefix QML2_IMPORT_PATH : "$QML2_IMPORT_PATH" \
--prefix XDG_CONFIG_DIRS : "$NIX_WRAP_XDG_CONFIG_DIRS" \
--prefix XDG_DATA_DIRS : "$NIX_WRAP_XDG_DATA_DIRS" \
--set QT_PLUGIN_PATH "$QT_PLUGIN_PATH" \
--set QML_IMPORT_PATH "$QML_IMPORT_PATH" \
--set QML2_IMPORT_PATH "$QML2_IMPORT_PATH" \
--prefix XDG_DATA_DIRS : "$RUNTIME_XDG_DATA_DIRS" \
--prefix XDG_CONFIG_DIRS : "$RUNTIME_XDG_CONFIG_DIRS" \
"$@"
}
@@ -16,11 +16,11 @@ makeQtWrapper() {
shift
shift
makeWrapper "$old" "$new" \
--prefix QT_PLUGIN_PATH : "$QT_PLUGIN_PATH" \
--prefix QML_IMPORT_PATH : "$QML_IMPORT_PATH" \
--prefix QML2_IMPORT_PATH : "$QML2_IMPORT_PATH" \
--prefix XDG_CONFIG_DIRS : "$NIX_WRAP_XDG_CONFIG_DIRS" \
--prefix XDG_DATA_DIRS : "$NIX_WRAP_XDG_DATA_DIRS" \
--set QT_PLUGIN_PATH "$QT_PLUGIN_PATH" \
--set QML_IMPORT_PATH "$QML_IMPORT_PATH" \
--set QML2_IMPORT_PATH "$QML2_IMPORT_PATH" \
--prefix XDG_DATA_DIRS : "$RUNTIME_XDG_DATA_DIRS" \
--prefix XDG_CONFIG_DIRS : "$RUNTIME_XDG_CONFIG_DIRS" \
"$@"
}
@@ -29,10 +29,8 @@ _makeQtWrapperSetup() {
export QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}${!outputLib}/lib/qt5/plugins"
export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}${!outputLib}/lib/qt5/imports"
export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}${!outputLib}/lib/qt5/qml"
export XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS${XDG_CONFIG_DIRS:+:}${!outputLib}/etc/xdg"
export XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}${!outputLib}/share"
export NIX_WRAP_XDG_CONFIG_DIRS="$NIX_WRAP_XDG_CONFIG_DIRS${NIX_WRAP_XDG_CONFIG_DIRS:+:}${!outputLib}/etc/xdg"
export NIX_WRAP_XDG_DATA_DIRS="$NIX_WRAP_XDG_DATA_DIRS${NIX_WRAP_XDG_DATA_DIRS:+:}${!outputLib}/share"
export RUNTIME_XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}${!outputBin}/share"
export RUNTIME_XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS${XDG_CONFIG_DIRS:+:}${!outputBin}/etc/xdg"
}
prePhases+=(_makeQtWrapperSetup)

View File

@@ -28,7 +28,6 @@ _qtPropagate() {
for dir in "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports"; do
if [ -d "$1/$dir" ]; then
propagateOnce propagatedBuildInputs "$1"
propagateOnce propagatedUserEnvPkgs "$1"
break
fi
done
@@ -43,9 +42,6 @@ _qtPropagateNative() {
for dir in "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports"; do
if [ -d "$1/$dir" ]; then
propagateOnce propagatedNativeBuildInputs "$1"
if [ -z "$crossConfig" ]; then
propagateOnce propagatedUserEnvPkgs "$1"
fi
break
fi
done

View File

@@ -0,0 +1,7 @@
--- a/TESTING/MATGEN/CMakeLists.txt
+++ b/TESTING/MATGEN/CMakeLists.txt
@@ -97,3 +97,4 @@ if(enable_complex16)
endif()
add_library(matgen ${sources})
+target_link_libraries(matgen superlu)

View File

@@ -0,0 +1,36 @@
{ stdenv, fetchurl, cmake,
gfortran, openblasCompat}:
stdenv.mkDerivation rec {
version = "5.2.1";
name = "superlu-${version}";
src = fetchurl {
url = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_${version}.tar.gz";
sha256 = "0qzlb7cd608q62kyppd0a8c65l03vrwqql6gsm465rky23b6dyr8";
};
buildInputs = [ cmake gfortran ];
propagatedBuildInputs = [ openblasCompat ];
cmakeFlags = [
"-DBUILD_SHARED_LIBS=true"
"-DUSE_XSDK_DEFAULTS=true"
];
patches = [
./find-openblas-library.patch
./add-superlu-lib-as-dependency-for-the-unit-tests.patch
];
doCheck = true;
checkTarget = "test";
meta = {
homepage = http://crd-legacy.lbl.gov/~xiaoye/SuperLU/;
license = http://crd-legacy.lbl.gov/~xiaoye/SuperLU/License.txt;
description = "A library for the solution of large, sparse, nonsymmetric systems of linear equations";
platforms = stdenv.lib.platforms.unix;
};
}

View File

@@ -0,0 +1,11 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -75,6 +75,8 @@ set(CMAKE_C_FLAGS_RELEASE "-O3" CACHE STRING "")
######################################################################
#
#--------------------- BLAS ---------------------
+find_package(OpenBLAS)
+set(TPL_BLAS_LIBRARIES ${OpenBLAS_LIBRARIES})
if(NOT enable_blaslib)
if (TPL_BLAS_LIBRARIES)
set(BLAS_FOUND TRUE)

View File

@@ -1,14 +1,19 @@
{ stdenv, fetchurl, cmake, libX11, freetype, libjpeg, openal, libsndfile
, glew, libXrandr, libXrender, udev
{ stdenv, fetchurl, cmake, libX11, freetype, libjpeg, openal, flac, libvorbis
, glew, libXrandr, libXrender, udev, xcbutilimage
}:
let
version = "2.3";
in
stdenv.mkDerivation rec {
name = "sfml-2.2";
name = "sfml-${version}";
src = fetchurl {
url = "https://github.com/LaurentGomila/SFML/archive/2.2.tar.gz";
sha256 = "1xbpzkqwgbsjdda7n3c2z5m16bhppz1z9rbhmhb8r1im7s95hd2l";
url = "https://github.com/LaurentGomila/SFML/archive/${version}.tar.gz";
sha256 = "12588hfs0pfsv20x3zhq0gdmxv9m7g27i5lfz88303kpglp9yzn2";
};
buildInputs = [ cmake libX11 freetype libjpeg openal libsndfile glew
libXrandr libXrender udev
buildInputs = [ cmake libX11 freetype libjpeg openal flac libvorbis glew
libXrandr libXrender udev xcbutilimage
];
meta = with stdenv.lib; {
homepage = http://www.sfml-dev.org/;

View File

@@ -0,0 +1,27 @@
{ stdenv, fetchurl, tcl }:
stdenv.mkDerivation rec {
name = "tclx-${version}.${patch}";
version = "8.4";
patch = "1";
src = fetchurl {
url = "mirror://sourceforge/tclx/tclx${version}.${patch}.tar.bz2";
sha256 = "1v2qwzzidz0is58fd1p7wfdbscxm3ip2wlbqkj5jdhf6drh1zd59";
};
passthru = {
libPrefix = ""; # Using tclx${version} did not work
};
buildInputs = [ tcl ];
configureFlags = [ "--with-tcl=${tcl}/lib" "--exec-prefix=\${prefix}" ];
meta = {
homepage = http://tclx.sourceforge.net/;
description = "Tcl extensions";
license = stdenv.lib.licenses.tcltk;
maintainers = with stdenv.lib.maintainers; [ kovirobi ];
};
}

View File

@@ -17,9 +17,11 @@ stdenv.mkDerivation {
"--with-tcl=${tcl}/lib"
];
buildInputs = [ pkgconfig tcl libXft ]
buildInputs = [ pkgconfig ]
++ stdenv.lib.optional stdenv.isDarwin fontconfig;
propagatedBuildInputs = [ tcl libXft ];
NIX_CFLAGS_LINK = if stdenv.isDarwin then "-lfontconfig" else null;
inherit tcl;

View File

@@ -0,0 +1,26 @@
{stdenv, fetchFromGitHub, cmake}:
with stdenv.lib;
stdenv.mkDerivation rec {
name = "unittest-cpp-${version}";
version = "1.6.1";
src = fetchFromGitHub {
owner = "unittest-cpp";
repo = "unittest-cpp";
rev = "v${version}";
sha256 = "1sva2bm90z4vmwwvp0af82f7p4sdq5j2jjqzhs2ppihdkggn62d1";
};
buildInputs = [cmake];
doCheck = false;
meta = {
homepage = "https://github.com/unittest-cpp/unittest-cpp";
description = "Lightweight unit testing framework for C++";
license = licenses.mit;
maintainers = [maintainers.tohl];
};
}

View File

@@ -0,0 +1,6 @@
{ callPackage, ... } @ args:
callPackage ./generic.nix (args // {
version = "3.30.33.16";
sha256 = "1azf1b36gqj4z5x0k9wq2dkp99zfyhwb0d6i2cl5fjm3k6js7l45";
})

View File

@@ -83,6 +83,7 @@ stdenv.mkDerivation rec {
sed -i 's,#!/usr/bin/env python,#!${python}/bin/python,' build/gyp_v8
sed -i 's,/bin/echo,${coreutils}/bin/echo,' build/standalone.gypi
sed -i '/CR_CLANG_REVISION/ d' build/standalone.gypi
sed -i 's/-Wno-format-pedantic//g' build/standalone.gypi
'';
configurePhase = ''
@@ -104,6 +105,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ which ];
buildInputs = [ readline python icu patchelf ];
NIX_CFLAGS_COMPILE = "-Wno-error=strict-overflow";
buildFlags = [
"LINK=g++"
"-C out"
@@ -135,7 +138,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Google's open source JavaScript engine";
maintainers = with maintainers; [ cstrahan ];
maintainers = with maintainers; [ cstrahan proglodyte ];
platforms = platforms.linux;
license = licenses.bsd3;
};

View File

@@ -1,6 +1,192 @@
{ callPackage, ... } @ args:
{ stdenv, lib, fetchgit, fetchFromGitHub, gyp, readline, python, which, icu
, patchelf, coreutils
, doCheck ? false
}:
callPackage ./generic.nix (args // {
version = "3.30.33.16";
sha256 = "1azf1b36gqj4z5x0k9wq2dkp99zfyhwb0d6i2cl5fjm3k6js7l45";
})
assert readline != null;
let
arch = if stdenv.isArm
then if stdenv.is64bit
then"arm64"
else "arm"
else if stdenv.is64bit
then"x64"
else "ia32";
git_url = "https://chromium.googlesource.com";
clangFlag = if stdenv.isDarwin then "1" else "0";
deps = {
"build" = fetchgit {
url = "${git_url}/chromium/src/build.git";
rev = "2c67d4d74b6b3673228fab191918500a582ef3b0";
sha256 = "0jc7hci5yh792pw0ahjfxrk5xzllnlrv9llmwlgcgn2x8x6bn34q";
};
"tools/gyp" = fetchgit {
url = "${git_url}/external/gyp.git";
rev = "e7079f0e0e14108ab0dba58728ff219637458563";
sha256 = "0yd1ds13z0r9d2sb67f9i1gjn1zgzwyfv96qqqp6pn5pcfbialg6";
};
"third_party/icu" = fetchgit {
url = "${git_url}/chromium/deps/icu.git";
rev = "b5ecbb29a26532f72ef482569b223d5a51fd50bf";
sha256 = "0ld47wdnk8grcba221z67l3pnphv9zwifk4y44f5b946w3iwmpns";
};
"buildtools" = fetchgit {
url = "${git_url}/chromium/buildtools.git";
rev = "60f7f9a8b421ebf9a46041dfa2ff11c0fe59c582";
sha256 = "0i10bw7yhslklqwcx5krs3k05sicb73cpwd0mkaz96yxsvmkvjq0";
};
"base/trace_event/common" = fetchgit {
url = "${git_url}/chromium/src/base/trace_event/common.git";
rev = "315bf1e2d45be7d53346c31cfcc37424a32c30c8";
sha256 = "1pp2ygvp20j6g4868hrmiw0j704kdvsi9d9wx2gbk7w79rc36695";
};
"platform/inspector_protocol" = fetchgit {
url = "${git_url}/chromium/src/third_party/WebKit/Source/platform/inspector_protocol.git";
rev = "f49542089820a34a9a6e33264e09b73779407512";
sha256 = "1lwpass3p4rpp2kjmxxxpkqyv4lznxhf4i0yy7mmrd7jkpc7kn8k";
};
"tools/mb" = fetchgit {
url = "${git_url}/chromium/src/tools/mb.git";
rev = "0c4dc43c454f26936ddf3074ab8e9a41e3dc03a3";
sha256 = "0f96qphbmwn1pprv0a6xf68p01s1jzx2sz6pmadqbrs1dgh1xwnk";
};
"tools/swarming_client" = fetchgit {
url = "${git_url}/external/swarming.client.git";
rev = "7f63a272f7d9785ce41b6d10bb3106c49a968e57";
sha256 = "1pmb8bq4qifjf2dzz8c4jdwhlvwgrl9ycjaalcyh1sbh4lx3yvv2";
};
"testing/gtest" = fetchgit {
url = "${git_url}/external/github.com/google/googletest.git";
rev = "6f8a66431cb592dad629028a50b3dd418a408c87";
sha256 = "0bdba2lr6pg15bla9600zg0r0vm4lnrx0wqz84p376wfdxra24vw";
};
"testing/gmock" = fetchgit {
url = "${git_url}/external/googlemock.git";
rev = "0421b6f358139f02e102c9c332ce19a33faf75be";
sha256 = "1xiky4v98maxs8fg1avcd56y0alv3hw8qyrlpd899zgzbq2k10pp";
};
"test/benchmarks/data" = fetchgit {
url = "${git_url}/v8/deps/third_party/benchmarks.git";
rev = "05d7188267b4560491ff9155c5ee13e207ecd65f";
sha256 = "0ad2ay14bn67d61ks4dmzadfnhkj9bw28r4yjdjjyzck7qbnzchl";
};
"test/mozilla/data" = fetchgit {
url = "${git_url}/v8/deps/third_party/mozilla-tests.git";
rev = "f6c578a10ea707b1a8ab0b88943fe5115ce2b9be";
sha256 = "0rfdan76yfawqxbwwb35aa57b723j3z9fx5a2w16nls02yk2kqyn";
};
"test/simdjs/data" = fetchgit {
url = "${git_url}/external/github.com/tc39/ecmascript_simd.git";
rev = "baf493985cb9ea7cdbd0d68704860a8156de9556";
sha256 = "178r0k40a58c1187gfzqz2i6as34l8cliy1g1x870wyy0qcvlq2q";
};
"test/test262/data" = fetchgit {
url = "${git_url}/external/github.com/tc39/test262.git";
rev = "88bc7fe7586f161201c5f14f55c9c489f82b1b67";
sha256 = "0gc7fmaqrgwb6rl02jnrm3synpwzzg0dfqy3zm386r1qcisl93xs";
};
"test/test262/harness" = fetchgit {
url = "${git_url}/external/github.com/test262-utils/test262-harness-py.git";
rev = "cbd968f54f7a95c6556d53ba852292a4c49d11d8";
sha256 = "094c3600a4wh1m3fvvlivn290kik1pzzvwabq77lk8bh4jkkv7ki";
};
"tools/clang" = fetchgit {
url = "${git_url}/chromium/src/tools/clang.git";
rev = "496622ab4aaa5be7e5a9b80617013cb02f45dc87";
sha256 = "1gkhk2bzpxwzkirzcqfixxpprbr8mn6rk00krm25daarm3smydmf";
};
};
in
stdenv.mkDerivation rec {
name = "v8-${version}";
version = "5.4.232";
inherit doCheck;
src = fetchFromGitHub {
owner = "v8";
repo = "v8";
rev = version;
sha256 = "1nqxbkz75m8xrjih0sj3f3iqvif4192vxdaxzy8r787rihjwg9nx";
};
postUnpack = ''
${lib.concatStringsSep "\n" (
lib.mapAttrsToList (n: v: ''
mkdir -p $sourceRoot/${n}
cp -r ${v}/* $sourceRoot/${n}
'') deps)}
'';
# Patch based off of:
# https://github.com/cowboyd/libv8/tree/v5.1.281.67.0/patches
patches = lib.optional (!doCheck) ./libv8-5.4.232.patch;
postPatch = ''
sed -i 's,#!/usr/bin/env python,#!${python}/bin/python,' gypfiles/gyp_v8
sed -i 's,/bin/echo,${coreutils}/bin/echo,' gypfiles/standalone.gypi
sed -i '/CR_CLANG_REVISION/ d' gypfiles/standalone.gypi
sed -i 's/-Wno-format-pedantic//g' gypfiles/standalone.gypi
'';
configurePhase = ''
PYTHONPATH="tools/generate_shim_headers:$PYTHONPATH" \
PYTHONPATH="$(toPythonPath ${gyp}):$PYTHONPATH" \
gypfiles/gyp_v8 \
-f make \
--generator-output="out" \
-Dflock_index=0 \
-Dclang=${clangFlag} \
-Dv8_enable_i18n_support=1 \
-Duse_system_icu=1 \
-Dcomponent=shared_library \
-Dconsole=readline \
-Dv8_target_arch=${arch} \
-Dv8_use_external_startup_data=0
'';
nativeBuildInputs = [ which ];
buildInputs = [ readline python icu patchelf ];
NIX_CFLAGS_COMPILE = "-Wno-error=strict-overflow";
buildFlags = [
"LINK=g++"
"-C out"
"builddir=$(CURDIR)/Release"
"BUILDTYPE=Release"
];
enableParallelBuilding = true;
# the `libv8_libplatform` target is _only_ built as a static library,
# and is expected to be statically linked in when needed.
# see the following link for further commentary:
# https://github.com/cowboyd/therubyracer/issues/391
installPhase = ''
install -vD out/Release/d8 "$out/bin/d8"
install -vD out/Release/mksnapshot "$out/bin/mksnapshot"
${if stdenv.isDarwin then ''
install -vD out/Release/lib.target/libv8.dylib "$out/lib/libv8.dylib"
install_name_tool -change /usr/local/lib/libv8.dylib $out/lib/libv8.dylib -change /usr/lib/libgcc_s.1.dylib ${stdenv.cc.cc.lib}/lib/libgcc_s.1.dylib $out/bin/d8
install_name_tool -id $out/lib/libv8.dylib -change /usr/lib/libgcc_s.1.dylib ${stdenv.cc.cc.lib}/lib/libgcc_s.1.dylib $out/lib/libv8.dylib
'' else ''
install -vD out/Release/lib.target/libv8.so "$out/lib/libv8.so"
''}
mkdir -p "$out/include"
cp -vr include/*.h "$out/include"
cp -vr include/libplatform "$out/include"
cp -v out/Release/*.a "$out/lib"
'';
meta = with lib; {
description = "Google's open source JavaScript engine";
maintainers = with maintainers; [ cstrahan proglodyte ];
platforms = platforms.linux;
license = licenses.bsd3;
};
}

View File

@@ -0,0 +1,97 @@
From c9f42d1314c6026efcfcc01824f4e2fdfd05ebcf Mon Sep 17 00:00:00 2001
From: Ben Sklaroff <bsklaroff@gmail.com>
Date: Sat, 23 Jul 2016 18:16:55 -0400
Subject: [PATCH] libv8-5.4.232
---
Makefile | 5 +----
gypfiles/all.gyp | 32 --------------------------------
gypfiles/standalone.gypi | 5 ++++-
3 files changed, 5 insertions(+), 37 deletions(-)
diff --git a/Makefile b/Makefile
index 5ea5c58..d1b2d73 100644
--- a/Makefile
+++ b/Makefile
@@ -261,11 +261,8 @@ GYPFILES = third_party/icu/icu.gypi third_party/icu/icu.gyp \
gypfiles/shim_headers.gypi gypfiles/features.gypi \
gypfiles/standalone.gypi \
gypfiles/toolchain.gypi gypfiles/all.gyp gypfiles/mac/asan.gyp \
- test/cctest/cctest.gyp test/fuzzer/fuzzer.gyp \
- test/unittests/unittests.gyp src/v8.gyp \
- tools/parser-shell.gyp testing/gmock.gyp testing/gtest.gyp \
buildtools/third_party/libc++abi/libc++abi.gyp \
- buildtools/third_party/libc++/libc++.gyp samples/samples.gyp \
+ buildtools/third_party/libc++/libc++.gyp \
src/third_party/vtune/v8vtune.gyp src/d8.gyp
# If vtunejit=on, the v8vtune.gyp will be appended.
diff --git a/gypfiles/all.gyp b/gypfiles/all.gyp
index ff1bea4..96820a0 100644
--- a/gypfiles/all.gyp
+++ b/gypfiles/all.gyp
@@ -16,38 +16,6 @@
'../tools/parser-shell.gyp:parser-shell',
],
}],
- # These items don't compile for Android on Mac.
- ['host_os!="mac" or OS!="android"', {
- 'dependencies': [
- '../samples/samples.gyp:*',
- '../test/cctest/cctest.gyp:*',
- '../test/fuzzer/fuzzer.gyp:*',
- '../test/unittests/unittests.gyp:*',
- ],
- }],
- ['test_isolation_mode != "noop"', {
- 'dependencies': [
- '../test/bot_default.gyp:*',
- '../test/benchmarks/benchmarks.gyp:*',
- '../test/default.gyp:*',
- '../test/ignition.gyp:*',
- '../test/intl/intl.gyp:*',
- '../test/message/message.gyp:*',
- '../test/mjsunit/mjsunit.gyp:*',
- '../test/mozilla/mozilla.gyp:*',
- '../test/optimize_for_size.gyp:*',
- '../test/perf.gyp:*',
- '../test/preparser/preparser.gyp:*',
- '../test/simdjs/simdjs.gyp:*',
- '../test/test262/test262.gyp:*',
- '../test/webkit/webkit.gyp:*',
- '../tools/check-static-initializers.gyp:*',
- '../tools/gcmole/run_gcmole.gyp:*',
- '../tools/jsfunfuzz/jsfunfuzz.gyp:*',
- '../tools/run-deopt-fuzzer.gyp:*',
- '../tools/run-valgrind.gyp:*',
- ],
- }],
]
}
]
diff --git a/gypfiles/standalone.gypi b/gypfiles/standalone.gypi
index 89f06a0..a43976d 100644
--- a/gypfiles/standalone.gypi
+++ b/gypfiles/standalone.gypi
@@ -506,6 +506,9 @@
}], # fastbuild!=0
],
'target_conditions': [
+ ['_type=="static_library"', {
+ 'standalone_static_library': 1,
+ }],
['v8_code == 0', {
'defines!': [
'DEBUG',
@@ -770,7 +773,7 @@
[ 'visibility=="hidden" and v8_enable_backtrace==0', {
'cflags': [ '-fvisibility=hidden' ],
}],
- [ 'component=="shared_library"', {
+ [ 'component=="shared_library" or component=="static_library" and (v8_target_arch=="x64" or v8_target_arch=="arm64" or v8_target_arch=="arm")', {
'cflags': [ '-fPIC', ],
}],
[ 'clang==0 and coverage==1', {
--
2.9.0

View File

@@ -15,7 +15,7 @@ assert stdenv.isDarwin -> !enableCredentialStorage;
with stdenv.lib;
stdenv.mkDerivation rec {
name = "webkitgtk-${version}";
version = "2.4.9";
version = "2.4.11";
meta = with stdenv.lib; {
description = "Web content rendering engine, GTK+ port";
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "http://webkitgtk.org/releases/${name}.tar.xz";
sha256 = "0r651ar3p0f8zwl7764kyimxk5hy88cwy116pv8cl5l8hbkjkpxg";
sha256 = "1xsvnvyvlywwyf6m9ainpsg87jkxjmd37q6zgz9cxb7v3c2ym2jq";
};
CC = "cc";
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
configureFlags = with stdenv.lib; [
"--disable-geolocation"
"--disable-jit"
(optionalString enableIntrospection "--enable-introspection")
] ++ optional withGtk2 [
"--with-gtk=2.0"