solana/snap/snapcraft.yaml

112 lines
2.7 KiB
YAML

name: solana
version: git
summary: Blockchain, Rebuilt for Scale
description: |
710,000 tx/s with off-the-shelf hardware and no sharding.
Scales with Moore's Law.
grade: devel
# TODO: solana-perf-fullnode does not yet run with 'strict' confinement due to the
# CUDA dependency, so use 'devmode' confinement for now
confinement: devmode
hooks:
configure:
plugs: [network]
apps:
drone:
command: solana-drone
plugs:
- network
- network-bind
fullnode:
command: solana-fullnode
plugs:
- network
- network-bind
- home
fullnode-config:
command: solana-fullnode-config
plugs:
- network
- network-bind
- home
genesis:
command: solana-genesis
keygen:
command: solana-keygen
plugs:
- home
ledger-tool:
command: solana-ledger-tool
plugs:
- home
bench-tps:
command: solana-bench-tps
plugs:
- network
- network-bind
- home
wallet:
command: solana-wallet
plugs:
- network
- home
daemon-fullnode:
daemon: simple
command: scripts/snap-config-to-env.sh $SNAP/multinode-demo/fullnode.sh
plugs:
- network
- network-bind
daemon-bootstrap-leader:
daemon: simple
command: scripts/snap-config-to-env.sh $SNAP/multinode-demo/bootstrap-leader.sh
plugs:
- network
- network-bind
daemon-drone:
daemon: simple
command: scripts/snap-config-to-env.sh $SNAP/multinode-demo/drone.sh
plugs:
- network
- network-bind
daemon-oom-monitor:
daemon: simple
command: scripts/snap-config-to-env.sh $SNAP/scripts/oom-monitor.sh
plugs:
- network
daemon-net-stats:
daemon: simple
command: scripts/snap-config-to-env.sh $SNAP/scripts/net-stats.sh
plugs:
- network
parts:
solana:
plugin: nil
prime:
- bin
- multinode-demo
- scripts
override-build: |
# Build/install all programs
scripts/cargo-install-all.sh $SNAPCRAFT_PART_INSTALL
# Install multinode-demo/
mkdir -p $SNAPCRAFT_PART_INSTALL/multinode-demo/
cp -av multinode-demo/* $SNAPCRAFT_PART_INSTALL/multinode-demo/
# Install scripts/
mkdir -p $SNAPCRAFT_PART_INSTALL/scripts/
cp -av scripts/* $SNAPCRAFT_PART_INSTALL/scripts/
# TODO: build curl,dig,rsync/multilog from source instead of sneaking it
# in from the host system...
set -x
mkdir -p $SNAPCRAFT_PART_INSTALL/bin
cp -av /usr/bin/curl $SNAPCRAFT_PART_INSTALL/bin/
cp -av /usr/bin/dig $SNAPCRAFT_PART_INSTALL/bin/
cp -av /usr/bin/multilog $SNAPCRAFT_PART_INSTALL/bin/
cp -av /usr/bin/rsync $SNAPCRAFT_PART_INSTALL/bin/