Merge branch 'master' into staging

Hydra: ?compare=1399476
This commit is contained in:
Vladimír Čunát
2017-10-07 10:16:36 +02:00
89 changed files with 2041 additions and 888 deletions

View File

@@ -10,7 +10,7 @@ let
version = release_version; # differentiating these is important for rc's
fetch = name: sha256: fetchurl {
url = "http://llvm.org/releases/${release_version}/${name}-${version}.src.tar.xz";
url = "https://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz";
inherit sha256;
};

View File

@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
buildInputs = [ which perl jdk openssl coreutils zlib ncurses
makeWrapper gcc binutils gnumake nodejs
] ++ (with ocamlPackages; [
ocaml findlib ocaml_ssl cryptokit camlzip ulex ocamlgraph camlp4
ocaml findlib ssl cryptokit camlzip ulex ocamlgraph camlp4
]);
NIX_LDFLAGS = stdenv.lib.optionalString (!stdenv.isDarwin) "-lgcc_s";

View File

@@ -1,9 +1,9 @@
{ stdenv, fetchurl, pkgconfig, flex, bison, libxslt
, glib, libiconv, libintlOrEmpty
{ stdenv, fetchurl, pkgconfig, flex, bison, libxslt, autoconf, graphviz
, glib, libiconv, libintlOrEmpty, libtool, expat
}:
let
generic = { major, minor, sha256 }:
generic = { major, minor, sha256, extraNativeBuildInputs ? [], extraBuildInputs ? [] }:
stdenv.mkDerivation rec {
name = "vala-${major}.${minor}";
@@ -12,9 +12,9 @@ let
inherit sha256;
};
nativeBuildInputs = [ pkgconfig flex bison libxslt ];
nativeBuildInputs = [ pkgconfig flex bison libxslt ] ++ extraNativeBuildInputs;
buildInputs = [ glib libiconv ] ++ libintlOrEmpty;
buildInputs = [ glib libiconv ] ++ libintlOrEmpty ++ extraBuildInputs;
meta = with stdenv.lib; {
description = "Compiler for GObject type system";
@@ -57,5 +57,13 @@ in rec {
sha256 = "16cjybjw100qps6jg0jdyjh8hndz8a876zmxpybnf30a8vygrk7m";
};
vala_0_38 = generic {
major = "0.38";
minor = "1";
sha256 = "112hl3lkcyakrk8c3qgw12gzn3nxjkvx7bn0jhl5f2m57d7k8d8h";
extraNativeBuildInputs = [ autoconf ] ++ stdenv.lib.optionals stdenv.isDarwin [ libtool expat ];
extraBuildInputs = [ graphviz ];
};
vala = vala_0_34;
}

View File

@@ -7,15 +7,15 @@ let param =
url = https://gforge.inria.fr/frs/download.php/file/35429/coquelicot-2.1.1.tar.gz;
sha256 = "1wxds73h26q03r2xiw8shplh97rsbim2i2s0r7af0fa490bp44km";
};
v2_1_2 = {
version = "2.1.2";
url = https://gforge.inria.fr/frs/download.php/file/36320/coquelicot-2.1.2.tar.gz;
sha256 = "09q9xbzyndx8i68hn3ir4pmzgqd1q33qpk3xghf2l849g8w3q5an";
v3_0_1 = {
version = "3.0.1";
url = "https://gforge.inria.fr/frs/download.php/file/37045/coquelicot-3.0.1.tar.gz";
sha256 = "0hsyhsy2lwqxxx2r8xgi5csmirss42lp9bkb9yy35mnya0w78c8r";
};
in {
"8.4" = v2_1_1;
"8.5" = v2_1_2;
"8.6" = v2_1_2;
"8.5" = v3_0_1;
"8.6" = v3_0_1;
}."${coq.coq-version}"; in
stdenv.mkDerivation {

View File

@@ -1,11 +1,23 @@
{ stdenv, fetchurl, which, coq, coquelicot, flocq, mathcomp }:
let param =
if stdenv.lib.versionAtLeast coq.coq-version "8.5"
then {
version = "3.3.0";
url = "https://gforge.inria.fr/frs/download.php/file/37077/interval-3.3.0.tar.gz";
sha256 = "08fdcf3hbwqphglvwprvqzgkg0qbimpyhnqsgv3gac4y1ap0f903";
} else {
version = "3.1.1";
url = "https://gforge.inria.fr/frs/download.php/file/36723/interval-3.1.1.tar.gz";
sha256 = "1sqsf075c7s98mwi291bhnrv5fgd7brrqrzx51747394hndlvfw3";
};
in
stdenv.mkDerivation {
name = "coq${coq.coq-version}-interval-3.1.1";
name = "coq${coq.coq-version}-interval-${param.version}";
src = fetchurl {
url = https://gforge.inria.fr/frs/download.php/file/36723/interval-3.1.1.tar.gz;
sha256 = "1sqsf075c7s98mwi291bhnrv5fgd7brrqrzx51747394hndlvfw3";
inherit (param) url sha256;
};
nativeBuildInputs = [ which ];

View File

@@ -98,7 +98,7 @@ self: super: {
name = "git-annex-${drv.version}-src";
url = "git://git-annex.branchable.com/";
rev = "refs/tags/" + drv.version;
sha256 = "03fa03n4zkpj5z3ma1ahvnxd85dni2aikqayqf838jvfl7bd5b9n";
sha256 = "0ky3avbda1avccalkh7ifjnll37cjjmdyypw9m1glsrzgzmr5lbr";
};
})).override {
dbus = if pkgs.stdenv.isLinux then self.dbus else null;

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,29 @@
{
mkDerivation, lib, fetchurl,
extra-cmake-modules,
qtbase, qttranslations, kcoreaddons, python2, sqlite, postgresql, libmysql
}:
mkDerivation rec {
pname = "kdb";
version = "3.0.2";
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://kde/stable/${pname}/src/${name}.tar.xz";
sha256 = "1n11xhqk3sf4a5nzvnrnj7bj21yqqqkm2d1xzfx3q82fkyah8s49";
};
nativeBuildInputs = [ extra-cmake-modules ];
buildInputs = [ qttranslations kcoreaddons python2 sqlite postgresql libmysql ];
propagatedBuildInputs = [ qtbase ];
meta = with lib; {
description = "A database connectivity and creation framework for various database vendors";
license = licenses.lgpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ zraexy ];
};
}

View File

@@ -0,0 +1,29 @@
{
mkDerivation, lib, fetchurl,
extra-cmake-modules,
qtbase, kconfig, kcoreaddons, kwidgetsaddons, kguiaddons
}:
mkDerivation rec {
pname = "kproperty";
version = "3.0.2";
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://kde/stable/${pname}/src/${name}.tar.xz";
sha256 = "1hzkvdap7dzpnxlp4rfg5f24fhqjpqm2hlvv88gj4c0scbp73ynm";
};
nativeBuildInputs = [ extra-cmake-modules ];
buildInputs = [ kconfig kcoreaddons kwidgetsaddons kguiaddons ];
propagatedBuildInputs = [ qtbase ];
meta = with lib; {
description = "A property editing framework with editor widget similar to what is known from Qt Designer";
license = licenses.lgpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ zraexy ];
};
}

View File

@@ -0,0 +1,27 @@
{
mkDerivation, lib, fetchurl,
extra-cmake-modules,
qtbase, qtdeclarative, qtwebkit, kconfig, kcoreaddons, kwidgetsaddons, kguiaddons, kproperty, marble, python2
}:
mkDerivation rec {
pname = "kreport";
version = "3.0.2";
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://kde/stable/${pname}/src/${name}.tar.xz";
sha256 = "1zd3vhf26cyp8xrq11awm9pmhnk88ppyc0riyr0gxj8y703ahkp0";
};
nativeBuildInputs = [ extra-cmake-modules ];
buildInputs = [ qtdeclarative qtwebkit kconfig kcoreaddons kwidgetsaddons kguiaddons kproperty marble python2 ];
meta = with lib; {
description = "A framework for creation and generation of reports in multiple formats";
license = licenses.lgpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ zraexy ];
};
}

View File

@@ -5,7 +5,7 @@ diff -Naur libx86-1.1+ds1.orig/Makefile libx86-1.1+ds1/Makefile
ifeq ($(BACKEND),x86emu)
OBJECTS += thunk.o x86emu/decode.o x86emu/debug.o x86emu/fpu.o \
x86emu/ops.o x86emu/ops2.o x86emu/prim_ops.o x86emu/sys.o
+ CFLAGS += -DX86EMU
+ CFLAGS += -DX86EMU -fno-delete-null-pointer-checks
else
OBJECTS += lrmi.o
endif

View File

@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
'';
homepage = http://www.twolame.org/;
license = with licenses; [ lgpl2Plus ];
platforms = with platforms; [ unix ];
platforms = with platforms; unix;
maintainers = with maintainers; [ AndersonTorres ];
};
}

View File

@@ -0,0 +1,36 @@
{stdenv, fetchurl, ocaml, findlib, easy-format}:
let
pname = "biniou";
version = "1.0.9";
webpage = "http://mjambon.com/${pname}.html";
in
assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "3.11";
stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "http://mjambon.com/releases/${pname}/${name}.tar.gz";
sha256 = "14j3hrhbjqxbizr1pr8fcig9dmfzhbjjwzwyc99fcsdic67w8izb";
};
buildInputs = [ ocaml findlib easy-format ];
createFindlibDestdir = true;
makeFlags = "PREFIX=$(out)";
preBuild = ''
mkdir $out/bin
'';
meta = with stdenv.lib; {
description = "A binary data format designed for speed, safety, ease of use and backward compatibility as protocols evolve";
homepage = "${webpage}";
license = licenses.bsd3;
maintainers = [ maintainers.vbgl ];
platforms = ocaml.meta.platforms or [];
};
}

View File

@@ -1,36 +1,26 @@
{stdenv, fetchurl, ocaml, findlib, easy-format}:
let
pname = "biniou";
version = "1.0.9";
webpage = "http://mjambon.com/${pname}.html";
in
assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "3.11";
{ stdenv, fetchFromGitHub, ocaml, findlib, jbuilder, easy-format }:
stdenv.mkDerivation rec {
version = "1.2.0";
name = "ocaml${ocaml.version}-biniou-${version}";
src = fetchFromGitHub {
owner = "mjambon";
repo = "biniou";
rev = "v${version}";
sha256 = "0mjpgwyfq2b2izjw0flmlpvdjgqpq8shs89hxj1np2r50csr8dcb";
};
name = "${pname}-${version}";
buildInputs = [ ocaml findlib jbuilder ];
src = fetchurl {
url = "http://mjambon.com/releases/${pname}/${name}.tar.gz";
sha256 = "14j3hrhbjqxbizr1pr8fcig9dmfzhbjjwzwyc99fcsdic67w8izb";
};
propagatedBuildInputs = [ easy-format ];
buildInputs = [ ocaml findlib easy-format ];
inherit (jbuilder) installPhase;
createFindlibDestdir = true;
makeFlags = "PREFIX=$(out)";
preBuild = ''
mkdir $out/bin
'';
meta = with stdenv.lib; {
description = "A binary data format designed for speed, safety, ease of use and backward compatibility as protocols evolve";
homepage = "${webpage}";
license = licenses.bsd3;
maintainers = [ maintainers.vbgl ];
platforms = ocaml.meta.platforms or [];
};
meta = {
inherit (src.meta) homepage;
inherit (ocaml.meta) platforms;
description = "Binary data format designed for speed, safety, ease of use and backward compatibility as protocols evolve";
maintainers = [ stdenv.lib.maintainers.vbgl ];
license = stdenv.lib.licenses.bsd3;
};
}

View File

@@ -1,6 +1,6 @@
{ stdenv, fetchurl, which, ocsigen_server, ocsigen_deriving, ocaml,
js_of_ocaml, react, lwt, calendar, cryptokit, tyxml,
ipaddr, ocamlnet, ocaml_ssl, ocaml_pcre, ocaml_optcomp,
ipaddr, ocamlnet, ssl, ocaml_pcre, ocaml_optcomp,
reactivedata, opam, ppx_tools, ppx_deriving, findlib
, ocamlbuild
}:
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec
propagatedBuildInputs = [ lwt reactivedata tyxml ipaddr ocsigen_server ppx_deriving
ocsigen_deriving js_of_ocaml
calendar cryptokit ocamlnet react ocaml_ssl ocaml_pcre ];
calendar cryptokit ocamlnet react ssl ocaml_pcre ];
installPhase = "opam-installer -i --prefix=$out --libdir=$OCAMLFIND_DESTDIR";

View File

@@ -1,5 +1,5 @@
{ stdenv, buildOcaml, fetchzip, which, cryptopp, ocaml, findlib, ocamlbuild, camlp4
, react, ocaml_ssl, libev, pkgconfig, ncurses, ocaml_oasis, glib
, react, ssl, libev, pkgconfig, ncurses, ocaml_oasis, glib
, ppx_tools, result, cppo
, ppxSupport ? stdenv.lib.versionAtLeast ocaml.version "4.02"
, version ? if stdenv.lib.versionAtLeast ocaml.version "4.02" then "2.7.1" else "2.6.0"
@@ -31,7 +31,7 @@ buildOcaml rec {
++ stdenv.lib.optional ppxSupport ppx_tools;
propagatedBuildInputs = [ result ]
++ optionals [ react ocaml_ssl ]
++ optionals [ react ssl ]
++ [ libev ];
configureScript = "ocaml setup.ml -configure";

View File

@@ -1,4 +1,4 @@
{stdenv, fetchurl, ocaml, findlib, which, react, ocaml_ssl,
{ stdenv, fetchurl, ocaml, findlib, which, react, ssl,
lwt, ocamlnet, ocaml_pcre, cryptokit, tyxml, ipaddr, zlib,
libev, openssl, ocaml_sqlite3, tree, uutf, makeWrapper, camlp4
, camlzip, pgocaml
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
sha256 = "1v44qv2ixd7i1qinyhlzzqiffawsdl7xhhh6ysd7lf93kh46d5sy";
};
buildInputs = [ocaml which findlib react ocaml_ssl lwt
buildInputs = [ocaml which findlib react ssl lwt
ocamlnet ocaml_pcre cryptokit tyxml ipaddr zlib libev openssl
ocaml_sqlite3 tree uutf makeWrapper camlp4 pgocaml camlzip ];
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
''
rm -rf $out/var/run
wrapProgram $out/bin/ocsigenserver \
--prefix CAML_LD_LIBRARY_PATH : "${mkpath ocaml_ssl "ssl"}:${mkpath lwt "lwt"}:${mkpath ocamlnet "netsys"}:${mkpath ocamlnet "netstring"}:${mkpath ocaml_pcre "pcre"}:${mkpath cryptokit "cryptokit"}:${mkpath ocaml_sqlite3 "sqlite3"}"
--prefix CAML_LD_LIBRARY_PATH : "${mkpath ssl "ssl"}:${mkpath lwt "lwt"}:${mkpath ocamlnet "netsys"}:${mkpath ocamlnet "netstring"}:${mkpath ocaml_pcre "pcre"}:${mkpath cryptokit "cryptokit"}:${mkpath ocaml_sqlite3 "sqlite3"}"
'';
dontPatchShebangs = true;

View File

@@ -2,13 +2,23 @@
assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "3.12";
let param =
if stdenv.lib.versionAtLeast ocaml.version "4.02"
then {
version = "20171003";
sha256 = "06zwsskri8kaqjdszj9360nf36zvwh886xwf033aija8c9k4w6cx";
} else {
version = "20140424";
sha256 = "0sc9q89dnyarcg24czyhr6ams0ylqvia3745s6rfwd2nldpygsdk";
}; in
stdenv.mkDerivation {
name = "ocaml-pprint-20140424";
name = "ocaml${ocaml.version}-pprint-${param.version}";
src = fetchurl {
url = http://gallium.inria.fr/~fpottier/pprint/pprint-20140424.tar.gz;
sha256 = "0sc9q89dnyarcg24czyhr6ams0ylqvia3745s6rfwd2nldpygsdk";
url = "http://gallium.inria.fr/~fpottier/pprint/pprint-${param.version}.tar.gz";
inherit (param) sha256;
};
buildInputs = [ ocaml findlib ocamlbuild ];

View File

@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "ocaml${ocaml.version}-ssl-${version}";
version = "0.5.3";
version = "0.5.4";
src = fetchzip {
url = "https://github.com/savonet/ocaml-ssl/releases/download/0.5.3/ocaml-ssl-${version}.tar.gz";
sha256 = "0h2k19zpdvq1gqwrmmgkibw4j48l71vv6ajzxs0wi71y80c1vhwm";
url = "https://github.com/savonet/ocaml-ssl/releases/download/${version}/ocaml-ssl-${version}.tar.gz";
sha256 = "01sy3f94b463ff7dmkfsv67jh8g8h20wh7npjwqilniif7lgf4l3";
};
buildInputs = [which ocaml findlib];

View File

@@ -0,0 +1,56 @@
{lib, fetchurl, python, buildPythonPackage, isPyPy, gfortran, nose, numpy}:
buildPythonPackage rec {
pname = "scipy";
version = "0.17.1";
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://pypi/s/scipy/scipy-${version}.tar.gz";
sha256 = "1b1qpfz2j2rvmlplsjbnznnxnqr9ckbmis506110ii1w07wd4k4w";
};
buildInputs = [ gfortran nose numpy.blas ];
propagatedBuildInputs = [ numpy ];
# Remove tests because of broken wrapper
prePatch = ''
rm scipy/linalg/tests/test_lapack.py
'';
preConfigure = ''
sed -i '0,/from numpy.distutils.core/s//import setuptools;from numpy.distutils.core/' setup.py
export NPY_NUM_BUILD_JOBS=$NIX_BUILD_CORES
'';
preBuild = ''
echo "Creating site.cfg file..."
cat << EOF > site.cfg
[openblas]
include_dirs = ${numpy.blas}/include
library_dirs = ${numpy.blas}/lib
EOF
'';
enableParallelBuilding = true;
checkPhase = ''
runHook preCheck
pushd dist
${python.interpreter} -c 'import scipy; scipy.test("fast", verbose=10)'
popd
runHook postCheck
'';
passthru = {
blas = numpy.blas;
};
setupPyBuildFlags = [ "--fcompiler='gnu95'" ];
meta = {
description = "SciPy (pronounced 'Sigh Pie') is open-source software for mathematics, science, and engineering. ";
homepage = http://www.scipy.org/;
maintainers = with lib.maintainers; [ fridh ];
};
}

View File

@@ -1,22 +1,31 @@
{ stdenv, binutils, fetchgit }:
{ stdenv, binutils, cmake, fetchFromGitHub }:
stdenv.mkDerivation rec {
version = "2016.12.28";
version = "2017-10-05";
name = "bloaty-${version}";
src = fetchgit {
url = "https://github.com/google/bloaty.git";
rev = "2234386bcee7297dfa1b6d8a5d20f95ea4ed9bb0";
sha256 = "0cfsjgbp9r16d6qi8v4k609bbhjff4vhdiapfkhr34z1cik1md4l";
src = fetchFromGitHub {
owner = "google";
repo = "bloaty";
rev = "e47b21b01ceecf001e1965e9da249d48d86a1749";
sha256 = "1il3z49hi0b07agjwr5fg1wzysfxsamfv1snvlp33vrlyl1m7cbm";
fetchSubmodules = true;
};
nativeBuildInputs = [ cmake ];
enableParallelBuilding = true;
configurePhase = ''
sed -i 's,c++filt,${binutils}/bin/c++filt,' src/bloaty.cc
preConfigure = ''
substituteInPlace src/bloaty.cc \
--replace "c++filt" \
"${stdenv.lib.getBin binutils}/bin/c++filt"
'';
doCheck = true;
checkPhase = "ctest";
installPhase = ''
install -Dm755 {.,$out/bin}/bloaty
'';

View File

@@ -2,7 +2,7 @@
stdenv.mkDerivation rec {
version = "0.6.0";
version = "0.6.1";
meta = with stdenv.lib; {
homepage = "https://github.com/bazelbuild/bazel/";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
sha256 = "13jr00jb34ibpqvy1qzzmswc7zfcy82ks7w36iwzh7jlm4l3grd0";
sha256 = "19rb1lh6v2gi8xlxhdmhydp16i1bgmvb510i053rfy0jlmh1znns";
};
sourceRoot = ".";

View File

@@ -0,0 +1,27 @@
{ stdenv, buildGoPackage, fetchFromGitHub }:
buildGoPackage rec {
name = "dep-${version}";
version = "0.3.1";
rev = "v${version}";
goPackagePath = "github.com/golang/dep";
subPackages = [ "cmd/dep" ];
src = fetchFromGitHub {
inherit rev;
owner = "golang";
repo = "dep";
sha256 = "0dsiaqfrp7ihhx10qapkl6zm3dw3rwdgcr9rkvmq8zprcp7njz90";
};
buildFlagsArray = ("-ldflags=-s -w -X main.commitHash=${rev} -X main.version=${version}");
meta = with stdenv.lib; {
homepage = https://github.com/golang/dep;
description = "Go dependency management tool";
license = licenses.bsd3;
platforms = platforms.linux;
maintainers = [ maintainers.carlsverre ];
};
}

View File

@@ -85,6 +85,22 @@ in stdenv.mkDerivation rec {
ln -s ${openssl.bin}/bin/c_rehash opt/vagrant/embedded/bin
ln -s ${openssl.bin}/bin/openssl opt/vagrant/embedded/bin
# libiconv: iconv
rm opt/vagrant/embedded/bin/iconv
ln -s ${libiconv}/bin/iconv opt/vagrant/embedded/bin
# libxml: xml2-config, xmlcatalog, xmllint
rm opt/vagrant/embedded/bin/{xml2-config,xmlcatalog,xmllint}
ln -s ${libxml2.dev}/bin/xml2-config opt/vagrant/embedded/bin
ln -s ${libxml2.bin}/bin/xmlcatalog opt/vagrant/embedded/bin
ln -s ${libxml2.bin}/bin/xmllint opt/vagrant/embedded/bin
# libxslt: xslt-config, xsltproc
rm opt/vagrant/embedded/bin/{xslt-config,xsltproc}
ln -s ${libxslt.dev}/bin/xslt-config opt/vagrant/embedded/bin
ln -s ${libxslt.bin}/bin/xsltproc opt/vagrant/embedded/bin
'' + (stdenv.lib.optionalString (! stdenv.isDarwin) ''
# ruby: erb, gem, irb, rake, rdoc, ri, ruby
rm opt/vagrant/embedded/bin/{erb,gem,irb,rake,rdoc,ri,ruby}
ln -s ${ruby}/bin/erb opt/vagrant/embedded/bin
@@ -101,24 +117,10 @@ in stdenv.mkDerivation rec {
ln -s $lib opt/vagrant/embedded/lib/''${lib##*/}
done
# libiconv: iconv
rm opt/vagrant/embedded/bin/iconv
ln -s ${libiconv}/bin/iconv opt/vagrant/embedded/bin
# libxml: xml2-config, xmlcatalog, xmllint
rm opt/vagrant/embedded/bin/{xml2-config,xmlcatalog,xmllint}
ln -s ${libxml2.dev}/bin/xml2-config opt/vagrant/embedded/bin
ln -s ${libxml2.bin}/bin/xmlcatalog opt/vagrant/embedded/bin
ln -s ${libxml2.bin}/bin/xmllint opt/vagrant/embedded/bin
# libxslt: xslt-config, xsltproc
rm opt/vagrant/embedded/bin/{xslt-config,xsltproc}
ln -s ${libxslt.dev}/bin/xslt-config opt/vagrant/embedded/bin
ln -s ${libxslt.bin}/bin/xsltproc opt/vagrant/embedded/bin
# libffi
ln -s ${libffi}/lib/libffi.so.6 opt/vagrant/embedded/lib/libffi.so.6
'') + ''
mkdir -p "$out"
cp -r opt "$out"
cp -r usr/bin "$out"