···
1
-
{ stdenv, fetchurl, zip, unzip, jzmq, jdk, lib, python, logsDir ? "", confFile ? "", extraLibraryPaths ? [], extraJars ? [] }:
1
+
{ stdenv, lib, fetchurl, zip, unzip, makeWrapper
3
+
, logsDir ? "", confFile ? "", extraLibraryPaths ? [], extraJars ? [] }:
3
-
stdenv.mkDerivation {
4
-
name = "storm-0.8.2";
5
+
stdenv.mkDerivation rec {
6
+
name = "apache-storm-" + version;
6
-
url = https://dl.dropbox.com/u/133901206/storm-0.8.2.zip;
7
-
sha256 = "8761aea0b54e5bab4a68b259bbe6b5b2f8226204488b5559eba57a0c458b2bbc";
10
+
"mirror://apache/storm/${name}/${name}.tar.gz";
11
+
sha256 = "1gr00s0fhf8ci0faf3x5dinkiw9mlnc1x1vqki8cfszvij6w0x0m";
buildInputs = [ zip unzip jzmq ];
16
-
mv bin/storm $out/bin/
19
-
# Fix shebang header for python scripts
20
-
sed -i -e "s|#!/usr/bin/.*python|#!${python}/bin/python|" $out/bin/storm;
17
+
mkdir -p $out/share/${name}
19
+
mv examples $out/share/${name}/.
26
-
${if logsDir != "" then ''ln -s ${logsDir} logs'' else ""}
21
+
rm -f lib/jzmq* || exit 1
23
+
mv external extlib* $out/lib/.
25
+
mv log4j2 $out/conf/.
28
-
# Extract, delete from zip; and optionally append to defaults.yaml
29
-
unzip storm-*.jar defaults.yaml;
30
-
zip -d storm-*.jar defaults.yaml;
31
-
echo 'java.library.path: "${jzmq}/lib:${lib.concatStringsSep ":" extraLibraryPaths}"' >> defaults.yaml;
29
+
# Fix python reference
31
+
-e '19iPYTHON=${python}/bin/python' \
32
+
-e 's|#!/usr/bin/.*python|#!${python}/bin/python|' \
35
+
-e 's|#!/usr/bin/.*python|#!${python}/bin/python|' \
36
+
-e "s|STORM_CONF_DIR = .*|STORM_CONF_DIR = os.getenv('STORM_CONF_DIR','$out/conf')|" \
37
+
-e 's|STORM_LOG4J2_CONF_DIR =.*|STORM_LOG4J2_CONF_DIR = os.path.join(STORM_CONF_DIR, "log4j2")|' \
39
+
# Default jdk location
40
+
sed -i -e 's|#.*export JAVA_HOME=.*|export JAVA_HOME="${jdk.home}"|' \
41
+
$out/conf/storm-env.sh
42
+
unzip $out/lib/storm-core-${version}.jar defaults.yaml;
43
+
zip -d $out/lib/storm-core-${version}.jar defaults.yaml;
45
+
-e 's|java.library.path: .*|java.library.path: "${jzmq}/lib:${lib.concatStringsSep ":" extraLibraryPaths}"|' \
46
+
-e 's|storm.log4j2.conf.dir: .*|storm.log4j2.conf.dir: "conf/log4j2"|' \
${if confFile != "" then ''cat ${confFile} >> defaults.yaml'' else ""}
33
-
mv defaults.yaml conf;
49
+
mv defaults.yaml $out/conf;
# Link to jzmq jar and extra jars
ln -s ${jzmq}/share/java/*.jar;
${lib.concatMapStrings (jar: "ln -s ${jar};\n") extraJars}
44
-
homepage = "http://storm-project.net";
59
+
meta = with stdenv.lib; {
60
+
homepage = "http://storm.apache.org";
description = "Distributed realtime computation system";
46
-
license = stdenv.lib.licenses.epl10;
47
-
maintainers = [ lib.maintainers.vizanto ];
62
+
license = licenses.asl20;
63
+
maintainers = with maintainers; [ edwtjo vizanto ];