# Maintainer: Christian Rebischke <Chris.Rebischke@archlinux.org>
# Maintainer: kpcyrd <kpcyrd[at]archlinux[dot]org>
# Contributor: Timothy Redaelli <timothy.redaelli@gmail.com>
# Contributor: shahid <helllamer@gmail.com>
# Contributor: James Harvey

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - build aarch64 with crc+crypto

pkgbase=bitcoin
pkgname=('bitcoin-daemon' 'bitcoin-qt' 'bitcoin-tx')
pkgver=26.0
pkgrel=1
arch=('x86_64')
url="https://bitcoin.org/en/wallets/desktop/linux/bitcoincore/"
makedepends=(
  boost
  db5.3
  libevent
  libminiupnpc.so
  libsqlite3.so
  libzmq.so
  qrencode
  qt5-base
  qt5-tools
)
license=('MIT')
source=("$pkgbase-$pkgver.tar.gz::https://bitcoincore.org/bin/bitcoin-core-$pkgver/bitcoin-$pkgver.tar.gz"
        "$pkgbase-$pkgver.SHA256SUMS::https://bitcoincore.org/bin/bitcoin-core-$pkgver/SHA256SUMS"
        "$pkgbase-$pkgver.SHA256SUMS.asc::https://bitcoincore.org/bin/bitcoin-core-$pkgver/SHA256SUMS.asc"
        "bitcoin.sysusers"
        "bitcoin.tmpfiles"
        "bitcoin-qt.desktop"
        "bitcoin-qt.appdata.xml")
sha256sums=('ab1d99276e28db62d1d9f3901e85ac358d7f1ebcb942d348a9c4e46f0fcdc0a1'
            '63487c308a6655f939efd700bfca8e0285fa2f869283aaa7192bdd4b8799a747'
            'SKIP'
            '7a77112fb094b9b2e6dd873e24c9a6bacb1f1c453d811a024f271f4b78f2a704'
            'ba83570b4671b18c230f23d8d93cd8faa73179a546655448c14d1644d9b49f35'
            'a020897651c03690eae3411fe401100fd1a2ffaa799247165eb71124609b7959'
            '71b125555451e9bc60b54a6658d886bad63bd18c58b5d6e3bd8977b82a70da7a')
b2sums=('f59b98e656dcfe6213ad79ce1aa510015cae08b9b3bc5f1d9693e563ce74115a2365497645d2daecbb4bdf2fc5fc985881c3ad66d886d248f960d1900a1f020d'
        'af45c01bfc300cef6b1fb2d30a9384150dc36ee519cd1a4b6dc7be0de82e1b6d288adb7ef6c41de8cb02a83806a0750c784e279ea40c63b0b496d7aa8308be9c'
        'SKIP'
        '25166f5726b43c531b7ba5f58aaf1c0242d26b96d2057da156024a8f9fc53702ea9ef0c67290cf8d302b9fb473cb16435dc2fe4489ebc5d0eae516635fd81c0e'
        '45d4703b78476cb1c5748f62863914e5397858c835e43cee2f4895608dbabf383993b840bb3ec2d4d2c64ca02152881ad4b495b28f94451f706687b83e99d2af'
        'f14315183b5ac6b6a9f3e4ff269be37eeb6a4529bb4c9d0cd3e1d54e3ec8052f87ba1e6591080a0d1c78daf7af40cb2ecbd11d9702e217b9c1e50d5011a8e048'
        '236a841446b905f4cf154184109451300b984694ace96bee3ec75872563313279f9c543daaceed2dd712bf56115deee538b862aa73f15dee5447d235299389c7')
validpgpkeys=(71A3B16735405025D447E8F274810B012346C9A6
              28E72909F1717FE9607754F8A7BEB2621678D37D
              79D00BAC68B56D422F945A8F8E3A8F3247DBCBBF
              C388F6961FB972A95678E327F62711DBDCA8AE56
              152812300785C96444D3334D17565732E08E5E41)
changelog=Changelog

prepare() {
  sha256sum -c --ignore-missing "$pkgbase-$pkgver.SHA256SUMS"
  cd "$pkgbase-$pkgver"
  autoreconf -fi
}

build() {
  cd $pkgbase-$pkgver
  [[ $CARCH == "aarch64" ]] && CFLAGS=`echo $CFLAGS | sed -e 's/-march=armv8-a/-march=armv8-a+crc+crypto/'` && CXXFLAGS="$CFLAGS"
  #remove _FORTIFY_SOURCE from CXXFLAGS to prevent a duplicate definition warning as configure adds _FORTIFY_SOURCE itself
  CXXFLAGS=${CXXFLAGS/-Wp,-D_FORTIFY_SOURCE=?/}
  ./configure --prefix=/usr --with-gui=qt5 --with-incompatible-bdb BDB_LIBS="-ldb_cxx-5.3" BDB_CFLAGS="-I/usr/include/db5.3"
  make
}

package_bitcoin-qt() {
  pkgdesc="Bitcoin is a peer-to-peer network based digital currency - Qt"
  depends=(
    db5.3
    hicolor-icon-theme
    libevent
    libminiupnpc.so
    libsqlite3.so
    libzmq.so
    qrencode
    qt5-base
  )

  cd $pkgbase-$pkgver
  install -Dm755 src/qt/bitcoin-qt "$pkgdir"/usr/bin/bitcoin-qt
  install -Dm644 contrib/completions/fish/bitcoin-qt.fish \
    -t "$pkgdir/usr/share/fish/vendor_completions.d/"
  install -Dm644 doc/man/bitcoin-qt.1 \
    "$pkgdir"/usr/share/man/man1/bitcoin-qt.1
  install -Dm644 ../bitcoin-qt.desktop \
    "$pkgdir"/usr/share/applications/bitcoin-qt.desktop
  install -Dm644 ../bitcoin-qt.appdata.xml \
    "$pkgdir"/usr/share/metainfo/bitcoin-qt.appdata.xml
  install -Dm644 src/qt/res/src/bitcoin.svg \
    "$pkgdir"/usr/share/icons/hicolor/scalable/apps/bitcoin-qt.svg

  for i in 16 32 64 128 256; do
    install -Dm644 share/pixmaps/bitcoin${i}.png \
      "$pkgdir"/usr/share/icons/hicolor/${i}x${i}/apps/bitcoin-qt.png
  done

  install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}

package_bitcoin-daemon() {
  pkgdesc="Bitcoin is a peer-to-peer network based digital currency - daemon"
  depends=(
    db5.3
    libevent
    libminiupnpc.so
    libsqlite3.so
    libzmq.so
  )
  backup=('etc/bitcoin/bitcoin.conf')
  provides=('bitcoin-cli')
  replaces=('bitcoin-cli')

  cd $pkgbase-$pkgver
  install -Dm755 -t "$pkgdir/usr/bin" \
    src/bitcoind \
    src/bitcoin-cli

  install -Dm644 contrib/completions/bash/bitcoind.bash \
    "$pkgdir/usr/share/bash-completion/completions/bitcoind"
  install -Dm644 contrib/completions/bash/bitcoin-cli.bash \
    "$pkgdir/usr/share/bash-completion/completions/bitcoin-cli"

  install -Dm644 -t "$pkgdir/usr/share/fish/vendor_completions.d/" \
    contrib/completions/fish/bitcoind.fish \
    contrib/completions/fish/bitcoin-cli.fish

  install -Dm644 -t "$pkgdir"/usr/share/man/man1/ \
    doc/man/bitcoind.1 \
    doc/man/bitcoin-cli.1

  install -Dm644 contrib/init/bitcoind.service \
    "$pkgdir/usr/lib/systemd/system/bitcoind.service"
  install -Dm644 "$srcdir/bitcoin.sysusers" \
    "$pkgdir/usr/lib/sysusers.d/bitcoin.conf"
  install -Dm644 "$srcdir/bitcoin.tmpfiles" \
    "$pkgdir/usr/lib/tmpfiles.d/bitcoin.conf"
  install -Dm644 share/examples/bitcoin.conf \
    "$pkgdir/etc/bitcoin/bitcoin.conf"

  install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}

package_bitcoin-tx() {
  pkgdesc="Bitcoin is a peer-to-peer network based digital currency - commandline tools"
  depends=(
    db5.3
    libsqlite3.so
  )

  cd $pkgbase-$pkgver
  for tool in bitcoin-tx bitcoin-util bitcoin-wallet; do
    install -Dm755 "src/$tool" -t "$pkgdir/usr/bin"
    if [ -f "contrib/completions/bash/$tool.bash" ]; then
      install -Dm644 "contrib/completions/bash/$tool.bash" \
        "$pkgdir/usr/share/bash-completion/completions/$tool"
    fi
    install -Dm644 contrib/completions/fish/$tool.fish \
      -t "$pkgdir/usr/share/fish/vendor_completions.d/"
    install -Dm644 "doc/man/$tool.1" \
      "$pkgdir/usr/share/man/man1/$tool.1"
  done

  install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}

# vim:set ts=2 sw=2 et: