protected List installNativeDependencies()

in software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/storm/StormSshDriver.java [215:264]


    protected List<String> installNativeDependencies() {
        String zeromqUrl = format("http://download.zeromq.org/zeromq-%s.tar.gz", getZeromqVersion());
        String targz = format("zeromq-%s.tar.gz", getZeromqVersion());
        String jzmq = "https://github.com/nathanmarz/jzmq.git";

        ImmutableList.Builder<String> commands = ImmutableList.<String>builder();
        if (getLocation().getOsDetails().isMac()) {
            commands.add("export PATH=$PATH:/usr/local/bin")
                   .add("export JAVA_HOME=$(/usr/libexec/java_home)")
                   .add("cd " + getInstallDir())
                   .add(BashCommands.installPackage(ImmutableMap.of("brew", "automake"), "make"))
                   .add(BashCommands.installPackage(ImmutableMap.of("brew", "libtool"), "libtool"))
                   .add(BashCommands.installPackage(ImmutableMap.of("brew", "pkg-config"), "pkg-config"))
                   .add(BashCommands.installPackage(ImmutableMap.of("brew", "zeromq"), "zeromq"))
                   .add("git clone https://github.com/asmaier/jzmq")
                   .add("cd jzmq")
                   .add("./autogen.sh")
                   .add("./configure")
                   .add("make")
                   .add((BashCommands.sudo("make install")))
                   .add("cd " + getInstallDir());
        } else {
            commands.add("export JAVA_HOME=$(dirname $(readlink -m `which java`))/../../ || export JAVA_HOME=/usr/lib/jvm/java")
                   .add("cd " + getInstallDir())
                   .add(BashCommands.commandToDownloadUrlAs(zeromqUrl, targz))
                   .add("tar xzf " + targz)
                   .add(format("cd zeromq-%s", getZeromqVersion()))
                   .add("./configure")
                   .add("make")
                   .add((BashCommands.sudo("make install")))
                   // install jzmq
                   .add("cd " + getInstallDir())
                   .add("git clone " + jzmq)
                   .add("cd jzmq")
                   .add("./autogen.sh")
                   .add("./configure")
                           
                   // hack needed on ubuntu 12.04; ignore if it fails
                   // see https://github.com/zeromq/jzmq/issues/114
                   .add(BashCommands.ok(
                       "pushd src ; touch classdist_noinst.stamp ; CLASSPATH=.:./.:$CLASSPATH "
                       + "javac -d . org/zeromq/ZMQ.java org/zeromq/App.java org/zeromq/ZMQForwarder.java org/zeromq/EmbeddedLibraryTools.java org/zeromq/ZMQQueue.java org/zeromq/ZMQStreamer.java org/zeromq/ZMQException.java"))
                   .add(BashCommands.ok("popd"))

                   .add("make")
                   .add((BashCommands.sudo("make install")))
                   .add("cd " + getInstallDir());
        }
        return commands.build();
    }