summaryrefslogtreecommitdiff
path: root/PKGBUILD
blob: 8bf9573c4f6af6d0850307a50b9af936cb81ad24 (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
121
122
123
124
125
126
127
128
# Maintainer: jc_gargma <jc_gargma@iserlohn-fortress.net>
# Maintainer (Arch): David Runge <dvzrv@archlinux.org>
# Contributor (Arch): Felix Yan <felixonmars@archlinux.org>
# Contributor (Arch): Techlive Zheng <techlivezheng at gmail dot com>
# Contributor (Arch): peace4all <markspost at rocketmail dot com>

# # I maintain this because:
# Artix version has a sysuser name I do not like
# Artix version has less than preferred default lists
# Artix version has 1.x migration notice
# Artix version uses censored list names
# Artix version requires network to build

pkgname=dnscrypt-proxy
pkgver=2.1.5
pkgrel=1
_patchver=66ffcf524b55b4f06cfaf4e37c8b8c6dcc10d0df
pkgdesc="A flexible DNS proxy, with support for encrypted DNS protocols"
arch=('x86_64')
url="https://github.com/DNSCrypt/dnscrypt-proxy"
license=('ISC')
depends=('glibc')
makedepends=('git' 'go')
optdepends=('python-urllib3: for generate-domains-blacklist')
backup=("etc/${pkgname}/${pkgname}.toml"
        "etc/${pkgname}/blacklist.txt"
        "etc/${pkgname}/captive-portals.txt"
        "etc/${pkgname}/cloaking-rules.txt"
        "etc/${pkgname}/forwarding-rules.txt"
        "etc/${pkgname}/ip-blacklist.txt"
        "etc/${pkgname}/ip-whitelist.txt"
        "etc/${pkgname}/whitelist.txt"
)
# NOTE: disabled until gcc is fixed to produce reproducible bytecode for go
options=(!lto)
source=("git+https://github.com/dnscrypt/${pkgname}#tag=${pkgver}?signed"
        "${pkgname}.sysusers"
        "${pkgname}.tmpfiles"
        "${pkgname}-${pkgver}-configuration.patch::https://github.com/dvzrv/dnscrypt-proxy/commit/${_patchver}.patch"
        'uncensor.patch'
        'blacklist.txt'
        'cloaking-rules.txt'
        'ip-blacklist.txt'
        'whitelist.txt')
b2sums=('SKIP'
        '96acec13d773b80835ed936d8fe585d1843c67a2e70082b9f05e27fd989ace68083d74eec6088a99ca95c19b0f1c52d625197b6ece25c3e8ddac37d7e3d55b5e'
        '58920d0366de701e03e32bca188b2842e94e0d641eee264e21124338a648b5da7901ff8fde69e85a5945ccf931380796108b1234128c1ea8956c757e706d9147'
        'ef48e0e6428e75c6f17c8e16d3eca12d3edd2175d254f42acfb7a915a0d3639071afc37acd7692b0bb7bcc9eb60a4acee6edb67302be37bd8a7b2351f26e3151'
        '1216f617d5ec3f5f375f961a00d3db8665a1e1e386afddf182c52168b6845989b6d9c093c136a3a55421b95e67f9aadf7033a3e1a4e53e9805b2b86102ec2333'
        'b691146f2746844bdb79f0c67c565bbce23b978dcb613b9d1ca1d8f62efbbf7d02b3cc442ec0de298cc5f6292823442187dd7efc26b73ff1002edbe9c5f2b8a1'
        'c3b2381b1ee3ca77818eec49a564c6f907c178a3ec76f6bbb5bcfa6707b6f6a9f2a7e44be4c8be9db5984de1558bb006efa6e263d48d4d0303abd721e22d63a1'
        'c79c1962c253439052ce8cbdaeeebde4c0f5ff01d93dafef8774a1526ad23c59ab603b14ec1ef56d52f88fd0007c60ad7a54b813b3d0a92b325c00a3d28dcd1f'
        'f51984895e1aea7622d9bceb18dfbf88eeba4b215270afc00981526a0a54fc172097ba3333b389b033c8b5c93167f25d0734b3d9bd39efd442432ad5ea47d7e8')
validpgpkeys=('54A2B8892CC3D6A597B92B6C210627AABA709FE1') # Frank Denis (Jedi/Sector One) <pgp@pureftpd.org

prepare() {
  cd "${pkgname}"
  patch -Np1 -i "../${pkgname}-${pkgver}-configuration.patch"
  patch -Np1 -i "../uncensor.patch"

  # create empty ip-blacklist.txt
  touch "${pkgname}/ip-blacklist.txt"

  # symlink upstream's vendor to src
  ln -sfv vendor src
  ln -sfv vendor ${pkgname}/src
  ln -sfv vendor ${pkgname}/vendor
  rm -v go.mod
}

build() {
  cd "$pkgname"

  # set GOPATH
  export GO111MODULE=off
  export GOPATH=$(pwd)
  #go mod init

  cd "$pkgname"

  export CGO_CPPFLAGS="${CPPFLAGS}"
  export CGO_CFLAGS="${CFLAGS}"
  export CGO_CXXFLAGS="${CXXFLAGS}"
  export CGO_LDFLAGS="${LDFLAGS}"
  export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw"
  #export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"

  go build -mod=vendor
}

package() {
  cd "${pkgname}"
  # executable
  install -vDm 755 "${pkgname}/${pkgname}" -t "${pkgdir}/usr/bin/"
  # configuration files
  install -vDm 644 "${pkgname}/example-${pkgname}.toml" \
    "${pkgdir}/etc/${pkgname}/${pkgname}.toml"
  install -vDm 644 "${pkgname}/example-blocked-names.txt" \
    "${pkgdir}/etc/${pkgname}/blacklist.txt"
  install -vDm 644 "${pkgname}/example-blocked-ips.txt" \
    "${pkgdir}/etc/${pkgname}/ip-blacklist.txt"
  install -vDm 644 "${pkgname}/example-captive-portals.txt" \
    "${pkgdir}/etc/${pkgname}/captive-portals.txt"
  install -vDm 644 "${pkgname}/example-cloaking-rules.txt" \
    "${pkgdir}/etc/${pkgname}/cloaking-rules.txt"
  install -vDm 644 "${pkgname}/example-forwarding-rules.txt" \
    "${pkgdir}/etc/${pkgname}/forwarding-rules.txt"
  install -vDm 644 "${pkgname}/example-allowed-ips.txt" \
    "${pkgdir}/etc/${pkgname}/ip-whitelist.txt"
  install -vDm 644 "${pkgname}/example-allowed-names.txt" \
    "${pkgdir}/etc/${pkgname}/whitelist.txt"
  # utils
  install -vDm 644 utils/generate-domains-blocklist/*.{conf,txt} \
    -t "${pkgdir}/usr/share/${pkgname}/utils/generate-domains-blacklist"
  install -vDm 755 utils/generate-domains-blocklist/generate-domains-blocklist.py \
    "${pkgdir}/usr/bin/generate-domains-blacklist"
  # sysusers.d
  install -vDm 644 "${srcdir}/${pkgname}.sysusers" \
    "$pkgdir/usr/lib/sysusers.d/${pkgname}.conf"
  # tmpfiles.d
  install -vDm 644 "${srcdir}/${pkgname}.tmpfiles" \
    "$pkgdir/usr/lib/tmpfiles.d/${pkgname}.conf"
  # license
  install -vDm 644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
  # docs
  install -vDm 644 {ChangeLog,README.md} \
    -t "${pkgdir}/usr/share/doc/${pkgname}"
}