Merge pull request #7752 from puffnfresh/package/eventstore
Add EventStore package
This commit is contained in:
commit
442a271bc9
6
pkgs/development/libraries/v8/3.24.10.nix
Normal file
6
pkgs/development/libraries/v8/3.24.10.nix
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{ callPackage, ... } @ args:
|
||||||
|
|
||||||
|
callPackage ./generic.nix (args // {
|
||||||
|
version = "3.24.10";
|
||||||
|
sha256 = "1blz5h9syk93bb4x3shcai3s2jhh6ai4bpymr9rz0f1ysvg60x75";
|
||||||
|
})
|
@ -1,69 +1,6 @@
|
|||||||
{ stdenv, fetchurl, gyp, readline, python, which, icu }:
|
{ callPackage, ... } @ args:
|
||||||
|
|
||||||
assert readline != null;
|
callPackage ./generic.nix (args // {
|
||||||
|
|
||||||
let
|
|
||||||
arch = if stdenv.is64bit then "x64" else "ia32";
|
|
||||||
in
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "v8-${version}";
|
|
||||||
version = "3.30.33.16";
|
version = "3.30.33.16";
|
||||||
|
sha256 = "1azf1b36gqj4z5x0k9wq2dkp99zfyhwb0d6i2cl5fjm3k6js7l45";
|
||||||
src = fetchurl {
|
})
|
||||||
url = "https://commondatastorage.googleapis.com/chromium-browser-official/"
|
|
||||||
+ "${name}.tar.bz2";
|
|
||||||
sha256 = "1azf1b36gqj4z5x0k9wq2dkp99zfyhwb0d6i2cl5fjm3k6js7l45";
|
|
||||||
};
|
|
||||||
|
|
||||||
patchPhase = ''
|
|
||||||
sed -i 's,#!/usr/bin/env python,#!${python}/bin/python,' build/gyp_v8
|
|
||||||
'';
|
|
||||||
|
|
||||||
configurePhase = ''
|
|
||||||
PYTHONPATH="tools/generate_shim_headers:$PYTHONPATH" \
|
|
||||||
PYTHONPATH="$(toPythonPath ${gyp}):$PYTHONPATH" \
|
|
||||||
build/gyp_v8 \
|
|
||||||
-f make \
|
|
||||||
--generator-output="out" \
|
|
||||||
-Dflock_index=0 \
|
|
||||||
-Dv8_enable_i18n_support=1 \
|
|
||||||
-Duse_system_icu=1 \
|
|
||||||
-Dconsole=readline \
|
|
||||||
-Dcomponent=shared_library \
|
|
||||||
-Dv8_target_arch=${arch}
|
|
||||||
'';
|
|
||||||
|
|
||||||
nativeBuildInputs = [ which ];
|
|
||||||
buildInputs = [ readline python icu ];
|
|
||||||
|
|
||||||
buildFlags = [
|
|
||||||
"LINK=g++"
|
|
||||||
"-C out"
|
|
||||||
"builddir=$(CURDIR)/Release"
|
|
||||||
"BUILDTYPE=Release"
|
|
||||||
];
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
install -vD out/Release/d8 "$out/bin/d8"
|
|
||||||
${if stdenv.system == "x86_64-darwin" then ''
|
|
||||||
install -vD out/Release/lib.target/libv8.dylib "$out/lib/libv8.dylib"
|
|
||||||
'' else ''
|
|
||||||
install -vD out/Release/lib.target/libv8.so "$out/lib/libv8.so"
|
|
||||||
''}
|
|
||||||
cp -vr include "$out/"
|
|
||||||
'';
|
|
||||||
|
|
||||||
postFixup = if stdenv.isDarwin then ''
|
|
||||||
install_name_tool -change /usr/local/lib/libv8.dylib $out/lib/libv8.dylib -change /usr/lib/libgcc_s.1.dylib ${stdenv.cc.cc}/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/libgcc_s.1.dylib $out/lib/libv8.dylib
|
|
||||||
'' else null;
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
description = "Google's open source JavaScript engine";
|
|
||||||
platforms = with platforms; linux;
|
|
||||||
license = licenses.bsd3;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
73
pkgs/development/libraries/v8/generic.nix
Normal file
73
pkgs/development/libraries/v8/generic.nix
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
{ stdenv, fetchurl, gyp, readline, python, which, icu
|
||||||
|
, version
|
||||||
|
, sha256
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
|
||||||
|
assert readline != null;
|
||||||
|
|
||||||
|
let
|
||||||
|
arch = if stdenv.is64bit then "x64" else "ia32";
|
||||||
|
in
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "v8-${version}";
|
||||||
|
inherit version;
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://commondatastorage.googleapis.com/chromium-browser-official/"
|
||||||
|
+ "${name}.tar.bz2";
|
||||||
|
inherit sha256;
|
||||||
|
};
|
||||||
|
|
||||||
|
patchPhase = ''
|
||||||
|
sed -i 's,#!/usr/bin/env python,#!${python}/bin/python,' build/gyp_v8
|
||||||
|
'';
|
||||||
|
|
||||||
|
configurePhase = ''
|
||||||
|
PYTHONPATH="tools/generate_shim_headers:$PYTHONPATH" \
|
||||||
|
PYTHONPATH="$(toPythonPath ${gyp}):$PYTHONPATH" \
|
||||||
|
build/gyp_v8 \
|
||||||
|
-f make \
|
||||||
|
--generator-output="out" \
|
||||||
|
-Dflock_index=0 \
|
||||||
|
-Dv8_enable_i18n_support=1 \
|
||||||
|
-Duse_system_icu=1 \
|
||||||
|
-Dconsole=readline \
|
||||||
|
-Dcomponent=shared_library \
|
||||||
|
-Dv8_target_arch=${arch}
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [ which ];
|
||||||
|
buildInputs = [ readline python icu ];
|
||||||
|
|
||||||
|
buildFlags = [
|
||||||
|
"LINK=g++"
|
||||||
|
"-C out"
|
||||||
|
"builddir=$(CURDIR)/Release"
|
||||||
|
"BUILDTYPE=Release"
|
||||||
|
];
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
install -vD out/Release/d8 "$out/bin/d8"
|
||||||
|
${if stdenv.system == "x86_64-darwin" then ''
|
||||||
|
install -vD out/Release/lib.target/libv8.dylib "$out/lib/libv8.dylib"
|
||||||
|
'' else ''
|
||||||
|
install -vD out/Release/lib.target/libv8.so "$out/lib/libv8.so"
|
||||||
|
''}
|
||||||
|
cp -vr include "$out/"
|
||||||
|
'';
|
||||||
|
|
||||||
|
postFixup = if stdenv.isDarwin then ''
|
||||||
|
install_name_tool -change /usr/local/lib/libv8.dylib $out/lib/libv8.dylib -change /usr/lib/libgcc_s.1.dylib ${stdenv.cc.cc}/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/libgcc_s.1.dylib $out/lib/libv8.dylib
|
||||||
|
'' else null;
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Google's open source JavaScript engine";
|
||||||
|
platforms = with platforms; linux;
|
||||||
|
license = licenses.bsd3;
|
||||||
|
};
|
||||||
|
}
|
54
pkgs/servers/nosql/eventstore/default.nix
Normal file
54
pkgs/servers/nosql/eventstore/default.nix
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
{ stdenv, fetchgit, fetchpatch, git, mono, v8, icu }:
|
||||||
|
|
||||||
|
# There are some similarities with the pinta derivation. We should
|
||||||
|
# have a helper to make it easy to package these Mono apps.
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "EventStore-${version}";
|
||||||
|
version = "3.0.3";
|
||||||
|
src = fetchgit {
|
||||||
|
url = "https://github.com/EventStore/EventStore.git";
|
||||||
|
rev = "a1382252dd1ed0554ddb04015cdb2cbc1b0a65c1";
|
||||||
|
sha256 = "07ir6jlli2q1yvsnyw8r8dfril6h1wmfj98yf7a6k81585v2mc6g";
|
||||||
|
leaveDotGit = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# see: https://github.com/EventStore/EventStore/issues/461
|
||||||
|
(fetchpatch {
|
||||||
|
url = https://github.com/EventStore/EventStore/commit/9a0987f19935178df143a3cf876becaa1b11ffae.patch;
|
||||||
|
sha256 = "04qw0rb1pypa8dqvj94j2mwkc1y6b40zrpkn1d3zfci3k8cam79y";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
ln -s ${v8}/lib/libv8.so src/libs/libv8.so
|
||||||
|
ln -s ${icu}/lib/libicui18n.so src/libs/libicui18n.so
|
||||||
|
ln -s ${icu}/lib/libicuuc.so src/libs/libicuuc.so
|
||||||
|
|
||||||
|
./build.sh js1
|
||||||
|
./build.sh quick ${version}
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/{bin,lib/eventstore/clusternode}
|
||||||
|
cp -r bin/clusternode/* $out/lib/eventstore/clusternode/
|
||||||
|
cat > $out/bin/clusternode << EOF
|
||||||
|
#!/bin/sh
|
||||||
|
exec ${mono}/bin/mono $out/lib/eventstore/clusternode/EventStore.ClusterNode.exe "\$@"
|
||||||
|
EOF
|
||||||
|
chmod +x $out/bin/clusternode
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildInputs = [ git v8 mono ];
|
||||||
|
|
||||||
|
dontStrip = true;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = https://geteventstore.com/;
|
||||||
|
description = "Event sourcing database with processing logic in JavaScript.";
|
||||||
|
license = stdenv.lib.licenses.bsd3;
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ puffnfresh ];
|
||||||
|
platforms = with stdenv.lib.platforms; linux;
|
||||||
|
};
|
||||||
|
}
|
@ -7830,6 +7830,10 @@ let
|
|||||||
inherit (pythonPackages) gyp;
|
inherit (pythonPackages) gyp;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
v8_3_24_10 = callPackage ../development/libraries/v8/3.24.10.nix {
|
||||||
|
inherit (pythonPackages) gyp;
|
||||||
|
};
|
||||||
|
|
||||||
v8 = callPackage ../development/libraries/v8 {
|
v8 = callPackage ../development/libraries/v8 {
|
||||||
inherit (pythonPackages) gyp;
|
inherit (pythonPackages) gyp;
|
||||||
};
|
};
|
||||||
@ -8423,6 +8427,10 @@ let
|
|||||||
|
|
||||||
elasticmq = callPackage ../servers/elasticmq { };
|
elasticmq = callPackage ../servers/elasticmq { };
|
||||||
|
|
||||||
|
eventstore = callPackage ../servers/nosql/eventstore {
|
||||||
|
v8 = v8_3_24_10;
|
||||||
|
};
|
||||||
|
|
||||||
etcdctl = callPackage ../development/tools/etcdctl { };
|
etcdctl = callPackage ../development/tools/etcdctl { };
|
||||||
|
|
||||||
exim = callPackage ../servers/mail/exim { };
|
exim = callPackage ../servers/mail/exim { };
|
||||||
|
Loading…
x
Reference in New Issue
Block a user