summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorcarlwgeorge2017-05-18 11:23:42 -0500
committercarlwgeorge2017-05-18 11:54:57 -0500
commit97c40162b0e3ffc7f76a942a0a4cc74255224061 (patch)
tree9d734ed7782f77309f7ee830d5a65d4c46ccfa4d
parent49fb7df51ea7d9869f87ce5473e6ae1bcaa870b9 (diff)
downloadaur-97c40162b0e3ffc7f76a942a0a4cc74255224061.tar.gz
0.10.2-2
* Remove conflicts. It is the responsiblity of alternate packages (-git, -bin, etc.) to conflict with the main package. The main package doesn't need to also conflict with them. * Build from GitHub tarball, not git clone. * Build using `go build` directly, not build.bash. * Run as the existing http user. * Store tls things in /var/lib/caddy (created by a tmpfiles config). * Create CADDYPATH with systemd tmpfiles, not in caddy.install. * Run appropriate systemctl commands in caddy.install. * Enable dns provider extensions. * Include a default example page (index.html and svg image). * Include a default Caddyfile.
-rw-r--r--.SRCINFO28
-rw-r--r--.gitignore12
-rw-r--r--Caddyfile4
-rw-r--r--PKGBUILD61
-rw-r--r--caddy.install18
-rw-r--r--caddy.service23
-rw-r--r--caddy.tmpfiles1
-rw-r--r--enable-dnsproviders.patch25
-rw-r--r--index.html23
9 files changed, 155 insertions, 40 deletions
diff --git a/.SRCINFO b/.SRCINFO
index d55d4ccef864..72e71933a1c3 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,9 @@
+# Generated by mksrcinfo v8
+# Thu May 18 16:54:06 UTC 2017
pkgbase = caddy
- pkgdesc = A configurable, general-purpose HTTP/2 web server for any platform
+ pkgdesc = HTTP/2 web server with automatic HTTPS
pkgver = 0.10.2
- pkgrel = 1
+ pkgrel = 2
url = https://caddyserver.com
install = caddy.install
arch = i686
@@ -11,13 +13,21 @@ pkgbase = caddy
license = Apache
makedepends = go>=1.8.1
makedepends = git
- conflicts = caddy-all-features
- conflicts = caddy-git
- conflicts = caddy-full-bin
- source = git+https://github.com/mholt/caddy#tag=v0.10.2
- source = systemd-unit-file.patch
- md5sums = SKIP
- md5sums = 07575b06cc76cf5e0287d6c28f05eb05
+ backup = etc/caddy/Caddyfile
+ source = https://github.com/mholt/caddy/archive/v0.10.2/caddy-0.10.2.tar.gz
+ source = https://caddyserver.com/resources/images/brand/caddy-at-your-service-white.svg
+ source = index.html
+ source = caddy.service
+ source = caddy.tmpfiles
+ source = Caddyfile
+ source = enable-dnsproviders.patch
+ sha256sums = f7040977df1570274a98f1d58581f8efe63b346822312719913f7c8dbcf59184
+ sha256sums = e679dd79fd92dc351fc190c7af529c73e3896986aaa6b7c0ae01e561398d6b85
+ sha256sums = 6db7aec45e95bbbf770ce4d120a60d8e4992d2262a8ebf668521179279aa5ae7
+ sha256sums = c1d4d1f295177f0963583b7ad29e04afdf9f39f9e916be6135868a327fb37ef4
+ sha256sums = bd4d912d083be176727882ccc1bbe577a27cc160db09238e5edc05ba458aebce
+ sha256sums = 4e30255be85d3b4f138860f61264aea3960d8873955d3a96eb8e39f1baf9aa65
+ sha256sums = 158c9a0f4327384c244846badc5295eab2a4cf16c354a3669fc0cce1c34e4a91
pkgname = caddy
diff --git a/.gitignore b/.gitignore
index 9b8b451e90e1..5e10a13ad4e3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,12 @@
-*.pkg.*
+# sources
*.tar.gz
+*.svg
+
+# build logs
+*-build.log
+*-namcap.log
+*-package*.log
+*-prepare.log
+
+# packages
+*.pkg.tar.xz
diff --git a/Caddyfile b/Caddyfile
new file mode 100644
index 000000000000..10de8e20e6c0
--- /dev/null
+++ b/Caddyfile
@@ -0,0 +1,4 @@
+*:80 {
+ gzip
+ root /usr/share/caddy
+}
diff --git a/PKGBUILD b/PKGBUILD
index 24a0127aebab..7e214f544132 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,40 +1,53 @@
+_provider=github
+_tld=com
+_project=mholt
+_repo=caddy
+_import="$_provider.$_tld/$_project/$_repo"
+
pkgname=caddy
pkgver=0.10.2
-pkgrel=1
-pkgdesc='A configurable, general-purpose HTTP/2 web server for any platform'
+pkgrel=2
+pkgdesc='HTTP/2 web server with automatic HTTPS'
arch=('i686' 'x86_64' 'armv7h' 'aarch64')
url='https://caddyserver.com'
license=('Apache')
+backup=('etc/caddy/Caddyfile')
install='caddy.install'
makedepends=('go>=1.8.1' 'git')
-conflicts=('caddy-all-features' 'caddy-git' 'caddy-full-bin')
-
-gopkgname='github.com/mholt/caddy'
-source=("git+https://github.com/mholt/caddy#tag=v$pkgver"
- "systemd-unit-file.patch")
-md5sums=('SKIP'
- '07575b06cc76cf5e0287d6c28f05eb05')
+source=("https://$_import/archive/v$pkgver/$_repo-$pkgver.tar.gz"
+ 'https://caddyserver.com/resources/images/brand/caddy-at-your-service-white.svg'
+ 'index.html'
+ 'caddy.service'
+ 'caddy.tmpfiles'
+ 'Caddyfile'
+ 'enable-dnsproviders.patch')
+sha256sums=('f7040977df1570274a98f1d58581f8efe63b346822312719913f7c8dbcf59184'
+ 'e679dd79fd92dc351fc190c7af529c73e3896986aaa6b7c0ae01e561398d6b85'
+ '6db7aec45e95bbbf770ce4d120a60d8e4992d2262a8ebf668521179279aa5ae7'
+ 'c1d4d1f295177f0963583b7ad29e04afdf9f39f9e916be6135868a327fb37ef4'
+ 'bd4d912d083be176727882ccc1bbe577a27cc160db09238e5edc05ba458aebce'
+ '4e30255be85d3b4f138860f61264aea3960d8873955d3a96eb8e39f1baf9aa65'
+ '158c9a0f4327384c244846badc5295eab2a4cf16c354a3669fc0cce1c34e4a91')
prepare() {
- cd $srcdir
- patch -Np1 < systemd-unit-file.patch
- export GOPATH="$srcdir/build"
- rm -rf "$GOPATH/src/$gopkgname"
- mkdir -p "$GOPATH/src/$gopkgname"
- mv -Tv "$srcdir/caddy" "$GOPATH/src/$gopkgname"
- echo 'download dependencies'
- go get -d $gopkgname/...
+ cd $_repo-$pkgver
+ patch -p1 < ../enable-dnsproviders.patch
+ mkdir -p src/$_provider.$_tld/$_project
+ ln -s ../../.. src/$_import
}
build() {
- export GOPATH="$srcdir/build"
- cd $srcdir/build/src/$gopkgname/caddy
- echo 'compile'
- bash build.bash
+ cd $_repo-$pkgver
+ export GOPATH=$(pwd)
+ go get -v -d ./src/$_import/...
+ go build -v -o ../caddy -ldflags "-X $_import/caddy/caddymain.gitTag=v$pkgver" $_import/caddy
}
package() {
- builddir="$srcdir/build/src/github.com/mholt/caddy"
- install -Dm755 "$builddir/caddy/caddy" "${pkgdir}/usr/bin/caddy"
- install -Dm644 "$builddir/dist/init/linux-systemd/caddy.service" "${pkgdir}/usr/lib/systemd/system/caddy.service"
+ install --verbose -D --mode 0755 caddy "$pkgdir/usr/bin/caddy"
+ install --verbose -D --mode 0644 caddy.service "$pkgdir/usr/lib/systemd/system/caddy.service"
+ install --verbose -D --mode 0644 caddy.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/caddy.conf"
+ install --verbose -D --mode 0644 Caddyfile "$pkgdir/etc/caddy/Caddyfile"
+ install --verbose -D --mode 0644 index.html "$pkgdir/usr/share/caddy/index.html"
+ install --verbose -D --mode 0644 caddy-at-your-service-white.svg "$pkgdir/usr/share/caddy/caddy-at-your-service-white.svg"
}
diff --git a/caddy.install b/caddy.install
index 94fd46d64239..d6fc74974b93 100644
--- a/caddy.install
+++ b/caddy.install
@@ -1,11 +1,17 @@
post_install() {
- getent passwd www-data || useradd --system -s /usr/bin/nologin -d / -U www-data
-
- mkdir -p /etc/ssl/caddy
- chmod 770 /etc/ssl/caddy
- chown www-data:www-data /etc/ssl/caddy
+ systemctl --quiet daemon-reload
+ systemctl --quiet preset caddy.service
}
post_upgrade() {
- post_install
+ systemctl --quiet daemon-reload
+ systemctl --quiet try-restart caddy.service
+}
+
+pre_remove() {
+ systemctl --quiet --no-reload disable --now caddy.service
+}
+
+post_remove() {
+ systemctl --quiet daemon-reload
}
diff --git a/caddy.service b/caddy.service
new file mode 100644
index 000000000000..cb67b1e9880e
--- /dev/null
+++ b/caddy.service
@@ -0,0 +1,23 @@
+[Unit]
+Description=Caddy HTTP/2 web server
+Documentation=https://caddyserver.com/docs
+After=network.target
+
+[Service]
+User=http
+Group=http
+Environment=CADDYPATH=/var/lib/caddy
+EnvironmentFile=-/etc/caddy/Envfile
+ExecStart=/usr/bin/caddy -log stdout -agree -conf /etc/caddy/Caddyfile -root /tmp
+ExecReload=/usr/bin/kill -USR1 $MAINPID
+LimitNOFILE=1048576
+LimitNPROC=64
+PrivateTmp=true
+PrivateDevices=true
+ProtectHome=true
+ProtectSystem=strict
+ReadWriteDirectories=/var/lib/caddy
+AmbientCapabilities=CAP_NET_BIND_SERVICE
+
+[Install]
+WantedBy=multi-user.target
diff --git a/caddy.tmpfiles b/caddy.tmpfiles
new file mode 100644
index 000000000000..4c84d6d86d6e
--- /dev/null
+++ b/caddy.tmpfiles
@@ -0,0 +1 @@
+d /var/lib/caddy 0750 http http
diff --git a/enable-dnsproviders.patch b/enable-dnsproviders.patch
new file mode 100644
index 000000000000..8b97eb92ed96
--- /dev/null
+++ b/enable-dnsproviders.patch
@@ -0,0 +1,25 @@
+diff -Naurp a/caddy/caddymain/run.go b/caddy/caddymain/run.go
+--- a/caddy/caddymain/run.go 2017-05-02 13:02:28.000000000 -0500
++++ b/caddy/caddymain/run.go 2017-05-15 20:56:53.736272531 -0500
+@@ -21,6 +21,21 @@ import (
+
+ "github.com/mholt/caddy/caddytls"
+ // This is where other plugins get plugged in (imported)
++ _ "github.com/caddyserver/dnsproviders/cloudflare"
++ _ "github.com/caddyserver/dnsproviders/digitalocean"
++ _ "github.com/caddyserver/dnsproviders/dnsimple"
++ _ "github.com/caddyserver/dnsproviders/dnspod"
++ _ "github.com/caddyserver/dnsproviders/dyn"
++ _ "github.com/caddyserver/dnsproviders/exoscale"
++ _ "github.com/caddyserver/dnsproviders/gandi"
++ _ "github.com/caddyserver/dnsproviders/googlecloud"
++ _ "github.com/caddyserver/dnsproviders/linode"
++ _ "github.com/caddyserver/dnsproviders/namecheap"
++ _ "github.com/caddyserver/dnsproviders/ovh"
++ _ "github.com/caddyserver/dnsproviders/rackspace"
++ _ "github.com/caddyserver/dnsproviders/rfc2136"
++ _ "github.com/caddyserver/dnsproviders/route53"
++ _ "github.com/caddyserver/dnsproviders/vultr"
+ )
+
+ func init() {
diff --git a/index.html b/index.html
new file mode 100644
index 000000000000..e11cda6cf81f
--- /dev/null
+++ b/index.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Caddy at your service</title>
+ <style>
+ body {
+ background: #333;
+ }
+ a {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin-right: -50%;
+ transform: translate(-50%, -50%);
+ }
+ </style>
+ </head>
+ <body>
+ <a href="https://caddyserver.com/docs">
+ <img src="caddy-at-your-service-white.svg" width="500">
+ </a>
+ </body>
+</html>