summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: e910344427d2f5818ecf42426fbec1e8ea60c670 (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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# Maintainer:   Maximilian Weiss <$(echo "bWF4QG1heHdlaXNzLmlv" | base64 -d)>
# Contributor:  Jeremy Rand <$(echo "YmlvbGl6YXJkODlAZ21haWwuY29tCg==" | base64 -d)>
# Contributor:  Daniel Kraft <$(echo "ZEBkb21vYi5ldQo=" | base64 -d)>
# Contributor:  The Namecoin Core Developers
# Contributor:  The Bitcoin Core Developers


pkgname=namecoin-core-wallet
pkgver=v26.0
pkgrel=1


# Epoch is always set to the most recent PKGBUILD update time.
# This allows for a forced downgrade without messing up versioning.
epoch=1702521580


# Release commit for 26.0
_commit=60f58ecb12402d79e6db47605ce2ec44c7052fdc


pkgdesc='This package provides the Namecoin Core GUI client, CLI daemon, and daemon user service.'

arch=('i686' 'x86_64')
url='https://namecoin.org/'
license=('MIT')
depends=('desktop-file-utils' 'openssl' 'db4.8' 'boost' 'boost-libs' 'libevent'
         'qt5-base' 'qt5-tools' 'qrencode' 'miniupnpc' 'protobuf' 'zeromq')
makedepends=('git' 'gzip' 'patch' 'make' 'coreutils')
provides=('namecoin-core-wallet' 'namecoin-cli' 'namecoin-daemon'
          'namecoin-qt' 'namecoin-tx')
conflicts=('namecoin-core-wallet' 'namecoin-cli' 'namecoin-daemon'
           'namecoin-qt' 'namecoin-tx')
source=('git+https://github.com/namecoin/namecoin-core'
        'namecoin.desktop'
        'namecoin1500x1500.png'
        'namecoind.service'
        'namecoind@.service')

sha256sums=('SKIP'
            '0226f5a570bbbde63f332d43d9d712287b316c726280f2ae9e21b1b365b3f0dc'
            'f1e0593b872e18e0aebbf399bb5d77be255cb0aa160964c0528698a33f89ba04'
            '0a8cb03f33a895ccaed63fb9d946db69bee7188b7a9f41bc92879167c2718dcf'
            '216bf1642feb5c37cc82a0801faf0717308f98e5aed86d75dac8fafd150a4b68')


prepare() {
    mkdir -p "$srcdir/tmp"
    cd "$srcdir/namecoin-core/"
    git checkout "$_commit"
}


build() {

    cd "$srcdir/namecoin-core/"
    ./autogen.sh

    # I have not tested the static build process on 32 bit machines yet,
    # so I'm leaving i686 with the normal dynamic build.
    if [ "$CARCH" == i686 ]; then
        ./configure --prefix=/usr --enable-upnp-default --enable-hardening \
                    --with-gui=qt5 --disable-tests \
                    --enable-ecmult-static-precomputation

        make DESTDIR="$srcdir/tmp"
        make DESTDIR="$srcdir/tmp" install


    # This should produce a static build that doesn't brick every time Arch
    # rolls out updates to the system libraries.
    elif [ "$CARCH" == x86_64 ]; then
        ./configure --prefix="${srcdir}/namecoin-core/depends/x86_64-pc-linux-gnu" \
                    --enable-glibc-back-compat \
                    --enable-reduce-exports \
                    --enable-upnp-default \
                    --enable-hardening \
                    --with-gui=qt5 \
                    --disable-tests \
                    --enable-ecmult-static-precomputation \
                    LDFLAGS="-static-libstdc++"

        make DESTDIR="$srcdir/tmp" STATIC=all
        make DESTDIR="$srcdir/tmp" STATIC=all install
    fi
}

package() {
    if [ "$CARCH" == i686 ]; then
        PREFIXDIR="/usr"
    elif [ "$CARCH" == x86_64 ]; then
        PREFIXDIR="${srcdir}/namecoin-core/depends/x86_64-pc-linux-gnu"
    fi
    install -Dm644 "$srcdir/namecoin.desktop"      "$pkgdir/usr/share/applications/namecoin.desktop"
    install -Dm644 "$srcdir/namecoin1500x1500.png" "$pkgdir/usr/share/pixmaps/namecoin1500x1500.png"
    install -Dm644 "$srcdir/namecoind@.service"    "$pkgdir/usr/lib/systemd/system/namecoind@.service"
    install -Dm644 "$srcdir/namecoind.service"     "$pkgdir/usr/lib/systemd/user/namecoind.service"
    install -Dm644 "$srcdir/namecoin-core/COPYING" "$pkgdir/usr/share/licenses/namecoin/COPYING"
    install -Dm755 "$srcdir/tmp/${PREFIXDIR}/bin/bench_namecoin" "$pkgdir/usr/bin/bench_namecoin"
    install -Dm755 "$srcdir/tmp/${PREFIXDIR}/bin/namecoin-qt"    "$pkgdir/usr/bin/namecoin-qt"
    install -Dm755 "$srcdir/tmp/${PREFIXDIR}/bin/namecoind"      "$pkgdir/usr/bin/namecoind"
    install -Dm755 "$srcdir/tmp/${PREFIXDIR}/bin/namecoin-cli"   "$pkgdir/usr/bin/namecoin-cli"
    install -Dm755 "$srcdir/tmp/${PREFIXDIR}/bin/namecoin-tx"    "$pkgdir/usr/bin/namecoin-tx"
    install -Dm644 "$srcdir/tmp/${PREFIXDIR}/include/namecoinconsensus.h"       "$pkgdir/usr/include/namecoinconsensus.h"
    install -Dm644 "$srcdir/tmp/${PREFIXDIR}/share/man/man1/namecoin-cli.1"     "$pkgdir/usr/share/man/man1/namecoin-cli.1"
    install -Dm644 "$srcdir/tmp/${PREFIXDIR}/share/man/man1/namecoind.1"        "$pkgdir/usr/share/man/man1/namecoind.1"
    install -Dm644 "$srcdir/tmp/${PREFIXDIR}/share/man/man1/namecoin-qt.1"      "$pkgdir/usr/share/man/man1/namecoin-qt.1"
    install -Dm644 "$srcdir/tmp/${PREFIXDIR}/share/man/man1/namecoin-tx.1"      "$pkgdir/usr/share/man/man1/namecoin-tx.1"
    install -Dm644 "$srcdir/tmp/${PREFIXDIR}/share/man/man1/namecoin-wallet.1"  "$pkgdir/usr/share/man/man1/namecoin-wallet.1"
    gzip "$pkgdir/usr/share/man/man1/namecoin-cli.1"
    gzip "$pkgdir/usr/share/man/man1/namecoind.1"
    gzip "$pkgdir/usr/share/man/man1/namecoin-qt.1"
    gzip "$pkgdir/usr/share/man/man1/namecoin-tx.1"
    gzip "$pkgdir/usr/share/man/man1/namecoin-wallet.1"
    install -Dm755 "$srcdir/tmp/${PREFIXDIR}/lib/libnamecoinconsensus.so.0.0.0" "$pkgdir/usr/lib/libnamecoinconsensus.so.0.0.0"
    cd "$pkgdir/usr/lib/"
    ln -s "libnamecoinconsensus.so.0.0.0" "libnamecoinconsensus.so.0"
    ln -s "libnamecoinconsensus.so.0.0.0" "libnamecoinconsensus.so"
}