summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 1f60c0a4407c6a43fafe2c2f441242840c023d5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# Maintainer: anonimal <anonimal at getmonero dot org>
# Contributor: redfish <redfish at galactica dot pw>
# Contributor: Onishin <onishin at onishin dot org>

pkgbase="monero"
pkgname=('monero' 'libmonero-wallet')
pkgver=0.15.0.1
pkgrel=1
pkgdesc="Monero: the secure, private, untraceable currency - release version (includes daemon, wallet and miner)"
license=('custom:Cryptonote')
arch=('x86_64' 'i686' 'armv7h' 'aarch64')
url="https://getmonero.org/"
depends=('boost-libs' 'libunwind' 'openssl' 'readline' 'zeromq' 'pcsclite' 'hidapi')
makedepends=('git' 'cmake' 'boost' 'gtest' 'qt5-tools')
provides=('monero' 'libmonero-wallet')
conflicts=('bitmonero-git' 'libmonero-wallet-git')

source=(
    "${pkgname}"::"git+https://github.com/monero-project/monero#tag=v${pkgver}"
    "monero.sysusers"
    "monero.tmpfiles")

sha256sums+=(
    'SKIP'
    '57f4c4c54c7a27f2de874c00034995ce14811aca81dd3f30317ae5066c84bb0d'
    '88e80a3bbda159a22e034461e03ab8f0c1108cfb0a7475a2c94de47730493d7f')

_monero="${pkgbase}"
_build="build"

prepare()
{
  git -C "${pkgname}" submodule update --init --recursive --force
}

build() {
  cd "${srcdir}/${_monero}"
  CMAKE_FLAGS+=" -DCMAKE_BUILD_TYPE=Release "
  CMAKE_FLAGS+=" -DCMAKE_INSTALL_PREFIX=/usr "
  CMAKE_FLAGS+=" -DBUILD_GUI_DEPS=ON "
  #CMAKE_FLAGS+=" -DCMAKE_LINKER=/usr/bin/ld.gold " # #974 ld segfault on ARM, re-implement if needed
  mkdir -p $_build && cd $_build
  cmake $CMAKE_FLAGS ../
  make
}

# Disable running of tests. Tests should not be needed outside of the development environment.
# Cherry-picking tests that aren't "too long" also defeats the purpose of running tests.
#check() {
#  cd "${srcdir}/${_monero}/${_build}"
#
#  # Temporarily disable some a tests:
#  #  * coretests takes too long (~25000s)
#  #  * libwallet_api_tests fail (Issue #895)
#  #  * unit_tests were run separately above
#  #  * hash-variant2-int-sqrt takes too long
#  CTEST_ARGS+="-E 'core_tests|libwallet_api_tests|unit_tests|hash-variant2-int-sqrt'"
#  echo ">>> NOTE: some tests excluded: $CTEST_ARGS"
#
#  make ARGS="$CTEST_ARGS" test
#}

package_monero() {
  backup=('etc/monerod.conf')

  # Uncomment for a debug build
  # options=(!strip debug)
  install -Dm644 "${srcdir}/${_monero}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"

  install -Dm644 "${srcdir}/${_monero}/utils/conf/monerod.conf" "${pkgdir}/etc/monerod.conf"
  install -Dm644 "${srcdir}/${_monero}/utils/systemd/monerod.service" "${pkgdir}/usr/lib/systemd/system/monerod.service"
  install -Dm644 "${srcdir}/monero.sysusers" "${pkgdir}/usr/lib/sysusers.d/monero.conf"
  install -Dm644 "${srcdir}/monero.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/monero.conf"

  install -Dm755 "${srcdir}/${_monero}/build/bin/monero-blockchain-ancestry" "${pkgdir}/usr/bin/monero-blockchain-ancestry"
  install -Dm755 "${srcdir}/${_monero}/build/bin/monero-blockchain-depth" "${pkgdir}/usr/bin/monero-blockchain-depth"
  install -Dm755 "${srcdir}/${_monero}/build/bin/monero-blockchain-export" "${pkgdir}/usr/bin/monero-blockchain-export"
  install -Dm755 "${srcdir}/${_monero}/build/bin/monero-blockchain-import" "${pkgdir}/usr/bin/monero-blockchain-import"
  install -Dm755 "${srcdir}/${_monero}/build/bin/monero-blockchain-mark-spent-outputs" "${pkgdir}/usr/bin/monero-blockchain-mark-spent-outputs"
  install -Dm755 "${srcdir}/${_monero}/build/bin/monero-blockchain-prune" "${pkgdir}/usr/bin/monero-blockchain-prune"
  install -Dm755 "${srcdir}/${_monero}/build/bin/monero-blockchain-prune-known-spent-data" "${pkgdir}/usr/bin/monero-blockchain-prune-known-spent-data"
  install -Dm755 "${srcdir}/${_monero}/build/bin/monero-blockchain-stats" "${pkgdir}/usr/bin/monero-blockchain-stats"
  install -Dm755 "${srcdir}/${_monero}/build/bin/monero-blockchain-usage" "${pkgdir}/usr/bin/monero-blockchain-usage"
  install -Dm755 "${srcdir}/${_monero}/build/bin/monero-gen-ssl-cert" "${pkgdir}/usr/bin/monero-gen-ssl-cert"
  install -Dm755 "${srcdir}/${_monero}/build/bin/monero-gen-trusted-multisig" "${pkgdir}/usr/bin/monero-gen-trusted-multisig"
  install -Dm755 "${srcdir}/${_monero}/build/bin/monero-wallet-cli" "${pkgdir}/usr/bin/monero-wallet-cli"
  install -Dm755 "${srcdir}/${_monero}/build/bin/monero-wallet-rpc" "${pkgdir}/usr/bin/monero-wallet-rpc"
  install -Dm755 "${srcdir}/${_monero}/build/bin/monerod" "${pkgdir}/usr/bin/monerod"
}

package_libmonero-wallet() {
  # NOTE: this is crucial, otherwise stripping breaks the .a archive:
  # monero-core (GUI) fails to link against it (it can't find symbols
  # that are clearly in the library).
  options=(!strip)

  _stage_dir=stagedir

  cd "${srcdir}/${_monero}/${_build}"

  mkdir -p $_stage_dir
  make DESTDIR=$_stage_dir install

  cd $_stage_dir
  find usr/{include,lib} -type f -exec install -D -m 755 {} ${pkgdir}/{} \;
}