summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 218d2eb40dd8147d1bb03f56d29d2f37541fd188 (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: Thomas J Faughnan Jr <thomas@faughnan.net>
# Contributor: Levente Polyak <anthraxx[at]archlinux[dot]org>
# Contributor: Christian Rebischke <chris.rebischke@archlinux.org>
# Contributor: Carl Smedstad <carsme@archlinux.org>
# Contributor: Wei Congrui < crvv.mail at gmail dot com >
# Contributor: Carl George < arch at cgtx dot us >
# Contributor: Eric Engeström <eric at engestrom dot ch>
# Contributor: Andreas Linz <klingt.net at gmail dot com>
# Contributor: Akshay S Dinesh <asdofindia at gmail dot com>

pkgname=caddy-he
_pkgname=caddy
pkgver=2.11.2
pkgrel=2
pkgdesc='Fast web server with automatic HTTPS (with Hurricane Electric DNS module)'
conflicts=(caddy)
arch=(x86_64)
url='https://github.com/caddyserver/caddy'
license=(Apache-2.0)
depends=(
  glibc
  mailcap
)
makedepends=(
  git
  go
)
backup=(etc/caddy/Caddyfile)
options=(!lto)
source=(
  "git+https://github.com/caddyserver/caddy.git#tag=v${pkgver}"
  "caddy-dist::git+https://github.com/caddyserver/dist.git#tag=v${pkgver}"
  caddy.service
  caddy-api.service
  caddy.tmpfiles
  caddy.sysusers
  Caddyfile
  use-data-dir-for-autosave.patch
  "$_pkgname-disable-executable-altering-commands.patch::https://src.fedoraproject.org/rpms/caddy/raw/rawhide/f/0001-Disable-commands-that-can-alter-the-binary.patch"
  import-he-module.patch
)
sha512sums=('05965d0ac5ac3eb9e9de5b1c3c95ca30ee982cae806fffc099463b5634f2eb5f52f6ae020a28c53da6556fa3a2b599dce0d0da5b00ee49a685c432f9a2e57f6a'
            'fe9a2badd9d385aed0f5e625d99eaf4fa67862e076c4fd7b28a26984aaaae7310887759d3a4a97a128fffb7dc4b266717d902b234e19643b0c2d818849d165e3'
            'e6cdf5f81af01d0a6290ef9503d0bd90244684a6305e5638f079c234b2bc6454688daea3ea9d1b6a6f00eeba0375e9c4372e64c5cb49b5d1206384d2a7201273'
            '6c9d5dce22f1f0f4e222d4adeccd93c486b3be2ac221a7f8a58933b22ce91fe3da8ad38e6db7212846e4ab6336ebc058df16215a43636b965dfed469b3aaa2f6'
            '55ee8d3f8b14f9adddc7a1026addcea4f85b4bae4cd512fd4da2a5e8adaae4b6fd0f486d2e3847f75518f4710a897b4fca84e48ee15700b968bad762125c4742'
            'b24ff0fc8df05ac92ba6860ce1b9975ecce48492b08c1b03545e7b20d2956f130cdee215fc78c751f9ab4869008e2b9bf7f861311fe16c8f5a85a42e347337c6'
            '4be1ed23e6600d8072c7f4fabd2bd926708502a55d84ae4f62aff9885c7b8e45ad0554503d0fc796338577adfca9e467c468a82ba56ffd69e4ec2778d69bc198'
            '563d6b45e91fc584fb5a27caaa382f59c140cb0a1b28b8d8faced4f7c7cad86d8671eb6ac10056f41518a842c8f606130d7e0c71df2b731d5eb0b4c868ea5d41'
            '42384fa3314e367c4d7ac3e07af66cf7000f68b6d6354183c5ee1579bd46ea6a29edfa84f9cdf5084d99d74af50ea5b14e3979d38ff806232756991bcac2e8db'
            '418d3da739d562de50eafa769729924a4537598a472374299783493b5c62435fc8c7a18ecaf5257d6b28e9781a9324608bae11870e3fbbe1c760a5c635fec42f')
validpgpkeys=(
  29D0817A67156E4F25DC24782A349DD577D586A5 # Matthew Holt <mholt@users.noreply.github.com>
)

prepare() {
  # welcome page
  sed 's|/var/www/html|/srv/http|g' -i caddy-dist/welcome/index.html

  cd ${_pkgname}
  # do not write in /etc
  patch -Np1 < ../use-data-dir-for-autosave.patch
  # disable commands that bypass the package manager
  patch -Np1 < ../$_pkgname-disable-executable-altering-commands.patch
  # use Hurricane Electric module
  patch -Np1 < "${srcdir}/import-he-module.patch"
  go mod tidy

  GOFLAGS="-mod=readonly" go mod vendor -v
}

build() {
  cd ${_pkgname}
  export CGO_LDFLAGS=${LDFLAGS}
  export CGO_CPPFLAGS=${CPPFLAGS}
  export CGO_CFLAGS=${CFLAGS}
  export CGO_CXXFLAGS=${CXXFLAGS}
  export GOFLAGS="-buildmode=pie -mod=vendor -modcacherw -buildvcs=false"
  export GOPATH="$srcdir"

  local ld_flags=" \
    -X github.com/caddyserver/caddy/v2.CustomVersion=v${pkgver} \
    -compressdwarf=false \
    -linkmode=external \
  "
  go build -v -ldflags "$ld_flags" -o build/caddy ./cmd/caddy

  for i in zsh bash fish; do
    ./build/caddy completion $i > caddy.$i
  done
}

check() {
  cd ${_pkgname}
  go test -short ./...
  version=$(./build/caddy version)
  echo "Caddy version: ${version}"
  if [[ $version != v$pkgver ]]; then
    exit 1
  fi
}

package() {
  install -vDm 644 -t "${pkgdir}/usr/share/caddy" caddy-dist/welcome/index.html

  install -vDm 644 -t "${pkgdir}/usr/lib/systemd/system" caddy.service caddy-api.service
  install -vDm 644 caddy.tmpfiles "${pkgdir}/usr/lib/tmpfiles.d/caddy.conf"
  install -vDm 644 caddy.sysusers "${pkgdir}/usr/lib/sysusers.d/caddy.conf"

  install -vDm 644 -t "${pkgdir}/etc/caddy" Caddyfile
  install -vd "${pkgdir}/etc/caddy/conf.d"

  install -vDm 644 caddy/caddy.zsh "${pkgdir}/usr/share/zsh/site-functions/_caddy"
  install -vDm 644 caddy/caddy.bash "${pkgdir}/usr/share/bash-completion/completions/caddy"
  install -vDm 644 caddy/caddy.fish "${pkgdir}/usr/share/fish/vendor_completions.d/caddy.fish"

  install -vDm 755 -t "${pkgdir}/usr/bin" ${_pkgname}/build/caddy
}

# vim: ts=2 sw=2 et: