From 5c523716aa48309d5fc13e61d668612bbc05346b Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Tue, 9 Oct 2018 15:54:15 -0700 Subject: [PATCH] Ship native programs --- ci/docker-solana/build.sh | 1 + net/net.sh | 1 + scripts/install-native-programs.sh | 29 +++++++++++++++++++++++++++++ snap/snapcraft.yaml | 3 +++ 4 files changed, 34 insertions(+) create mode 100755 scripts/install-native-programs.sh diff --git a/ci/docker-solana/build.sh b/ci/docker-solana/build.sh index 568841e0f8..274dbc2da2 100755 --- a/ci/docker-solana/build.sh +++ b/ci/docker-solana/build.sh @@ -20,6 +20,7 @@ rm -rf usr/ ../docker-run.sh solanalabs/rust:1.29.1 \ cargo install --path . --root ci/docker-solana/usr cp -f entrypoint.sh usr/bin/solana-entrypoint.sh +../../scripts/install-native-programs.sh usr/bin/ docker build -t solanalabs/solana:$CHANNEL . diff --git a/net/net.sh b/net/net.sh index 1499f00873..e3f7cc5b69 100755 --- a/net/net.sh +++ b/net/net.sh @@ -110,6 +110,7 @@ build() { set -x rm -rf farf $MAYBE_DOCKER cargo install --features="$cargoFeatures" --root farf + ./scripts/install-native-programs.sh farf/ ) echo "Build took $SECONDS seconds" } diff --git a/scripts/install-native-programs.sh b/scripts/install-native-programs.sh new file mode 100755 index 0000000000..7bb26e841b --- /dev/null +++ b/scripts/install-native-programs.sh @@ -0,0 +1,29 @@ +#!/bin/bash -e +# +# Installs native programs as |cargo install| doesn't know about them +# + +here=$(dirname "$0") +SOLANA_ROOT="$(cd "$here"/..; pwd)" + +installDir=$1 +variant=${2:-release} + +if [[ -z $installDir ]]; then + echo Install directory not specified + exit 1 +fi + +if [[ ! -d $installDir ]]; then + echo "Not a directory: $installDir" + exit 1 +fi + +for dir in "$SOLANA_ROOT"/programs/native/*; do + for program in "$SOLANA_ROOT/target/$variant/deps/lib$(basename "$dir")".{so,dylib,dll}; do + if [[ -f $program ]]; then + cp -v "$program" "$installDir" + fi + done +done + diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 21cf982708..a8295ddb61 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -117,6 +117,9 @@ parts: # Build/install all other programs cargo install --root $SNAPCRAFT_PART_INSTALL --bins + # TODO: install native programs when they are ready for public use + #./scripts/install-native-programs.sh $SNAPCRAFT_PART_INSTALL/bin/ + # Install multinode-demo/ mkdir -p $SNAPCRAFT_PART_INSTALL/multinode-demo/ cp -av multinode-demo/* $SNAPCRAFT_PART_INSTALL/multinode-demo/