foundationdb: install python bindings

Signed-off-by: Austin Seipp <aseipp@pobox.com>

Changed files
+26 -4
nixos
modules
services
databases
pkgs
servers
foundationdb
top-level
-1
nixos/modules/services/databases/foundationdb.xml
···
individual <command>fdbserver</command> processes. Currently, all server
processes inherit all the global <command>fdbmonitor</command> settings.
</para></listitem>
-
<listitem><para>Python bindings are not currently installed.</para></listitem>
<listitem><para>Ruby bindings are not currently installed.</para></listitem>
<listitem><para>Go bindings are not currently installed.</para></listitem>
</itemizedlist>
+14 -3
pkgs/servers/foundationdb/default.nix
···
separateDebugInfo = true;
enableParallelBuilding = true;
-
makeFlags = [ "all" "fdb_java" ]
+
makeFlags = [ "all" "fdb_java" "fdb_python" ]
# Don't compile FDBLibTLS if we don't need it in 6.0 or later;
# it gets statically linked in
++ lib.optional (!lib.versionAtLeast version "6.0") [ "fdb_c" ]
···
installPhase = ''
mkdir -vp $out/{bin,libexec/plugins} $lib/{lib,share/java} $dev/include/foundationdb
+
mkdir -vp $python/lib/${python.libPrefix}/site-packages
-
cp -v ./lib/libfdb_c.so $lib/lib
'' + lib.optionalString (!lib.versionAtLeast version "6.0") ''
+
# we only copy the TLS library on < 6.0, since it's compiled-in otherwise
cp -v ./lib/libFDBLibTLS.so $out/libexec/plugins/FDBLibTLS.so
'' + ''
+
# C API
+
cp -v ./lib/libfdb_c.so $lib/lib
cp -v ./bindings/c/foundationdb/fdb_c.h $dev/include/foundationdb
cp -v ./bindings/c/foundationdb/fdb_c_options.g.h $dev/include/foundationdb
+
# java
cp -v ./bindings/java/foundationdb-client.jar $lib/share/java/fdb-java.jar
+
# python
+
rm -f ./bindings/python/fdb/*.pth # remove useless files
+
cp -R ./bindings/python/fdb $python/lib/${python.libPrefix}/site-packages/fdb
+
# symlink a copy of the shared object into place, so that impl.py can load it
+
ln -sv $lib/lib/libfdb_c.so $python/lib/${python.libPrefix}/site-packages/fdb/libfdb_c.so
+
+
# binaries
for x in fdbbackup fdbcli fdbserver fdbmonitor; do
cp -v "./bin/$x" $out/bin;
done
···
ln -sfv $out/bin/fdbbackup $out/libexec/backup_agent
'';
-
outputs = [ "out" "lib" "dev" ];
+
outputs = [ "out" "lib" "dev" "python" ];
meta = with stdenv.lib; {
description = "Open source, distributed, transactional key-value store";
+12
pkgs/top-level/python-packages.nix
···
})).python;
rfc7464 = callPackage ../development/python-modules/rfc7464 { };
+
+
foundationdb51 = (toPythonModule (pkgs.fdbPackages.override {
+
inherit python;
+
}).foundationdb51).python;
+
+
foundationdb52 = (toPythonModule (pkgs.fdbPackages.override {
+
inherit python;
+
}).foundationdb52).python;
+
+
foundationdb60 = (toPythonModule (pkgs.fdbPackages.override {
+
inherit python;
+
}).foundationdb60).python;
});
in fix' (extends overrides packages)