From be288da0917ec9900d6b97198ac3e50f82cdbd7f Mon Sep 17 00:00:00 2001 From: George Rawlinson Date: Mon, 13 Sep 2021 07:11:21 +0000 Subject: [PATCH] upgpkg: drone Convert PKGBUILD to a split package that provides both versions of Drone (Enterprise & Community). --- drone/PKGBUILD | 64 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 51 insertions(+), 13 deletions(-) diff --git a/drone/PKGBUILD b/drone/PKGBUILD index 68b36ce..ad47f77 100644 --- a/drone/PKGBUILD +++ b/drone/PKGBUILD @@ -1,44 +1,52 @@ # Maintainer: George Rawlinson # Contributor: Khorne -pkgname=drone +pkgbase=drone +pkgname=( + 'drone' + 'drone-oss' +) pkgver=2.3.1 pkgrel=2 pkgdesc="Continuous Delivery platform built on container technology" arch=('x86_64') url="https://drone.io" -license=('custom:Drone-Non-Commercial') -# ref: https://discourse.drone.io/t/exec-runner-404-error-on-ping/7922 makedepends=('go' 'git') source=( - "$pkgname-$pkgver.tar.gz::https://github.com/drone/drone/archive/v$pkgver.tar.gz" + "$pkgbase-$pkgver.tar.gz::https://github.com/drone/drone/archive/v$pkgver.tar.gz" + 'https://patch-diff.githubusercontent.com/raw/drone/drone/pull/3141.patch' 'systemd.service' 'tmpfiles.conf' 'sysusers.conf' ) b2sums=('623b2d1ca3d68c9169b0f4bd35678e6a459d9db054338bb3a604cb050ad7b9eacdf997c169ea12ae0afbaa0af42621e86ada2a94f488584fb8c63406e2ce121d' + 'd529b69af0494753f9fe2e4dfcda36176d85fad1574943a575844ab81c0e5177f376174924051340af8975c98b771fa6ae0ff91a3826570f202c5ef01b5b9ba3' '3d3e2ad52fe1ec9f1c803540de5baa01ed0cda3b720551e6594223b5f0a836bc69448b30b6e1408d13e2451e6d25666c2bc7b188a7a1075afec4ef70a6f0b48c' '9c1bf8e4a382190f2d1bd560ef5c4a9fadad8c38dcd3cf3b79af42f6d0c16de533ba2d5f6cf676003e4ca6b745833e5e100baf4328111cf540ac5f43f67c6145' '18e5c4ea19348479dc3408bd2546f324f0908acc759c7c79c350006c6c5e6db02cd388a9aa9bd3d4f6b4b1f2efcf6aa7f7e67eac43f8d55566afe341b7ec142e') prepare() { - cd "$pkgname-$pkgver" + cd "$pkgbase-$pkgver" + + # apply patch that breaks OSS compilation + patch --strip=1 --input="$srcdir/3141.patch" # create directory for build output - mkdir build + mkdir build build-oss # download dependencies go mod vendor } build() { - cd "$pkgname-$pkgver" + cd "$pkgbase-$pkgver" # set Go flags export CGO_CPPFLAGS="${CPPFLAGS}" export CGO_CFLAGS="${CFLAGS}" export CGO_CXXFLAGS="${CXXFLAGS}" + # enterprise version go build -v \ -trimpath \ -buildmode=pie \ @@ -47,28 +55,58 @@ build() { -ldflags "-linkmode external -extldflags \"${LDFLAGS}\"" \ -o build \ ./cmd/... + + # community version + go build -v \ + -trimpath \ + -buildmode=pie \ + -mod=vendor \ + -modcacherw \ + -ldflags "-linkmode external -extldflags \"${LDFLAGS}\"" \ + -tags "oss nolimit" \ + -o build-oss \ + ./cmd/... } check() { - cd "$pkgname-$pkgver" + cd "$pkgbase-$pkgver" go test -v ./... } -package() { +package_drone() { + pkgdesc+=" (Enterprise Edition)" + license=('custom:Drone-Non-Commercial') + # ref: https://discourse.drone.io/t/exec-runner-404-error-on-ping/7922 + depends=('glibc' 'docker') + conflicts=('drone-oss') + # systemd integration install -vDm644 systemd.service "$pkgdir/usr/lib/systemd/system/$pkgname.service" install -vDm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/$pkgname.conf" install -vDm644 tmpfiles.conf "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf" - cd "$pkgname-$pkgver" + cd "$pkgbase-$pkgver" # binary install -vDm755 -t "$pkgdir/usr/bin" build/* - # documentation - install -vDm644 -t "$pkgdir/usr/share/doc/$pkgname" .github/readme.md *.md - # license install -vDm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE NOTICE } +package_drone-oss() { + pkgdesc+=" (Community Edition)" + license=('Apache') + depends=('glibc') + conflicts=('drone') + + # systemd integration + install -vDm644 systemd.service "$pkgdir/usr/lib/systemd/system/$pkgname.service" + install -vDm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/$pkgname.conf" + install -vDm644 tmpfiles.conf "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf" + + cd "$pkgbase-$pkgver" + + # binary + install -vDm755 -t "$pkgdir/usr/bin" build-oss/* +}