diff options
author | Casey Marshall <casey.marshall@canonical.com> | 2016-09-01 14:23:36 -0500 |
---|---|---|
committer | Casey Marshall <casey.marshall@canonical.com> | 2016-09-11 11:17:12 -0500 |
commit | 0a56d83d3d8d6369b350ec2810752b683a4a1a3e (patch) | |
tree | 2e1fd4f97a40e437c531b54dcce39f0724d3c310 | |
parent | Merge pull request #1041 (diff) | |
download | monero-0a56d83d3d8d6369b350ec2810752b683a4a1a3e.tar.xz |
Add snap packaging.
This adds [snap](https://snapcraft.io) packaging to the project. See the
link for more information on snaps. Snap packages install on all Linux
distributions. On Ubuntu, snap confinement with apparmor and seccomp
provide an additional layer of security.
This snap sets up monerod as a systemd service, which should start
immediately on install. To access the wallet CLI, simply run `monero`
(/snap/bin/monero). I think it's a really quick & easy way to get
started with monero.
I've made some opinionated decisions in the packaging just to kick this
off, but I'm happy to iterate on this stuff.
-rwxr-xr-x | contrib/snap/daemon.bash | 11 | ||||
-rwxr-xr-x | contrib/snap/log.bash | 3 | ||||
-rwxr-xr-x | contrib/snap/wallet.bash | 6 | ||||
-rw-r--r-- | snapcraft.yaml | 62 | ||||
-rw-r--r-- | src/daemon/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/simplewallet/CMakeLists.txt | 3 |
6 files changed, 85 insertions, 1 deletions
diff --git a/contrib/snap/daemon.bash b/contrib/snap/daemon.bash new file mode 100755 index 000000000..dfbf5e3f6 --- /dev/null +++ b/contrib/snap/daemon.bash @@ -0,0 +1,11 @@ +#!/bin/bash -e + +export HOME=${SNAP_DATA} +cd ${SNAP_DATA} + +ARGS= +if [ -e "${SNAP_DATA}/etc/monerod.conf" ]; then + ARGS="--config-file ${SNAP_DATA}/etc/monerod.conf" +fi + +exec ${SNAP}/bin/monerod --detach $ARGS diff --git a/contrib/snap/log.bash b/contrib/snap/log.bash new file mode 100755 index 000000000..c81efeb2c --- /dev/null +++ b/contrib/snap/log.bash @@ -0,0 +1,3 @@ +#!/bin/bash -e + +exec tail -c +0 -F ${SNAP_DATA}/.bitmonero/bitmonero.log diff --git a/contrib/snap/wallet.bash b/contrib/snap/wallet.bash new file mode 100755 index 000000000..04aa6c525 --- /dev/null +++ b/contrib/snap/wallet.bash @@ -0,0 +1,6 @@ +#!/bin/bash -e + +export HOME=${SNAP_USER_DATA} +cd ${SNAP_USER_DATA} + +exec ${SNAP}/usr/bin/rlwrap ${SNAP}/bin/monero-wallet-cli "$@" diff --git a/snapcraft.yaml b/snapcraft.yaml new file mode 100644 index 000000000..89004f62d --- /dev/null +++ b/snapcraft.yaml @@ -0,0 +1,62 @@ +name: monero +version: 0 # TODO: change this to release version in CI builds +summary: "Monero: the secure, private, untraceable cryptocurrency https://getmonero.org" +description: | + Monero is a private, secure, untraceable, decentralised digital currency. + You are your bank, you control your funds, and nobody can trace your transfers + unless you allow them to do so. +grade: devel +confinement: strict + +apps: + d: + daemon: forking + command: daemon.bash + plugs: + - network + - network-bind + + log: + command: log.bash + + monero: + command: wallet.bash + plugs: + - network + +parts: + wrapper: + plugin: dump + source: . + stage-packages: + - rlwrap + organize: + contrib/snap/daemon.bash: daemon.bash + contrib/snap/log.bash: log.bash + contrib/snap/wallet.bash: wallet.bash + snap: + - daemon.bash + - log.bash + - wallet.bash + - usr/bin/rlwrap + + cmake-build: + plugin: cmake + source: . + build-packages: + - gcc + - cmake + - pkg-config + - libunbound-dev + - libevent-dev + - libboost-all-dev + - libdb-dev + - libunwind-dev + - libminiupnpc-dev + - libldns-dev + - libexpat1-dev + - bison + - doxygen + - graphviz + snap: + - bin diff --git a/src/daemon/CMakeLists.txt b/src/daemon/CMakeLists.txt index 511efcb36..a8c93aa0f 100644 --- a/src/daemon/CMakeLists.txt +++ b/src/daemon/CMakeLists.txt @@ -106,3 +106,4 @@ add_dependencies(daemon version) set_property(TARGET daemon PROPERTY OUTPUT_NAME "monerod") +install(TARGETS daemon DESTINATION bin) diff --git a/src/simplewallet/CMakeLists.txt b/src/simplewallet/CMakeLists.txt index 97852c3dc..572819899 100644 --- a/src/simplewallet/CMakeLists.txt +++ b/src/simplewallet/CMakeLists.txt @@ -59,4 +59,5 @@ add_dependencies(simplewallet version) set_property(TARGET simplewallet PROPERTY - OUTPUT_NAME "monero-wallet-cli")
\ No newline at end of file + OUTPUT_NAME "monero-wallet-cli") +install(TARGETS simplewallet DESTINATION bin) |