diff options
author | Ivan Shapovalov | 2023-12-23 02:40:25 +0100 |
---|---|---|
committer | Ivan Shapovalov | 2023-12-23 08:40:27 +0300 |
commit | 3b329bfdb5ae70b90e29109b7ff43c8440cb9431 (patch) | |
tree | 032d1666f46c3a1b7cc55a0fa39bc2afcf98be5f /PKGBUILD | |
parent | 9d4f3cc1f9f82eb71aa1e5e5bf19758aee250ef3 (diff) | |
download | aur-3b329bfdb5ae70b90e29109b7ff43c8440cb9431.tar.gz |
Rewrite and patch build system, update to 1.29.0+k3s1
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 93 |
1 files changed, 67 insertions, 26 deletions
@@ -1,26 +1,51 @@ # Maintainer: Ivan Shapovalov <intelfx@intelfx.name> pkgname=k3s-git -pkgver=1.28.4+k3s2+r8+g231cb6ed20 -pkgrel=2 +pkgver=1.29.0+k3s1+r0+g3190a5faa2 +pkgrel=1 pkgdesc='Lightweight Kubernetes' arch=(x86_64) url='https://k3s.io' license=(Apache) -makedepends=(git go podman) +makedepends=( + git go podman + # these are (some of) the tools that are installed into the "builder" + # docker container during the officially blessed build path + # curl jq yq zstd pigz +) provides=(k3s) conflicts=(k3s) backup=( etc/systemd/system/k3s.service.env + etc/systemd/system/k3s-agent.service.env + etc/rancher/k3s/config.yaml ) source=( "git+https://github.com/k3s-io/k3s" 'k3s.service.env' + 'k3s-agent.service.env' + 'config.yaml' + '0000-Fix-issue-8293.-Remove-useless-log-init-code.patch' + '0001-Dockerfile.dapper-set-HOME-properly.patch' + '0002-main-apply-go-fmt-to-pkg-data-zz_generated_bindata.g.patch' + '0003-.dockerignore-do-not-ignore-parts-of-GITDIR.patch' + '0004-Dockerfile.dapper-sanitize-DAPPER_OUTPUT.patch' + '0005-Dockerfile.dapper-sanitize-cache-configuration.patch' + '0006-.service-update-systemd-service-files.patch' + '0007-scripts-moar-compression-drop-pigz-and-raw-tar.patch' ) -sha256sums=( - 'SKIP' - '667199fa6b811dde3aef3e626e2695a566ad64c9a03d19d0c94a1f104a7612d0' -) +sha256sums=('SKIP' + '94b0dd21fa4f075d4db7f6efe7a775de476b278de72f99773ee3de0bb54e7f68' + '2f6964aed46deb38095801e124a6603f3a29e6886815d52c59c02883f7a37925' + '6f0500a656ed78c0bb689c12264dbcd79f579edc3b9e17d512be742c1b2c43a4' + 'fe667d538cf94bf8f9a62d9812a03bf423204f452aa11f0f2addf0dbe1b95866' + '9307c9dbec1bdd73a1a3186668e0f5d5c9900474f53a842a133feba62c92b0ac' + '350438be7abe98eeee60f23e9aa566eba38df5422597ab4e7184cc7a12309ebb' + '659ee5e6a7c7df532418032e7b115ab7804fd60593e497814cc553504545af3c' + '6e00974e4ec3ee5999da87c7d1e43fed5b64e84ce6eec3a43ed971f24c5cb820' + '616063a668d510f163aa684e78fcf89d1b8cc8e1524acdc170608bfbf0e80e47' + 'bb721e8850eb736ad9aad4f0a8ef20dac0e06d7731731c3541264f138be28b74' + 'f448303dbbefef2645b8c2146d595643c0143c7300eab12a459b85a3b18b3d91') pkgver() { cd k3s @@ -30,17 +55,12 @@ pkgver() { prepare() { cd k3s - # fix #8293 - git fetch origin refs/pull/9064/head - git cherry-pick --no-edit FETCH_HEAD - - # moar compression - sed -i -r 's|(zstd .*)-[0-9]+|\1 --ultra -22|' \ - scripts/package-cli \ - scripts/package-airgap \ - - sed -i -r 's|/usr/local/bin/k3s|/usr/bin/k3s|' \ - *.service + # fix #8293, #9089, sanitize buildsystem, moar compression + for p in "${source[@]}"; do + if [[ $p == *.patch ]]; then + git apply -3 "$srcdir/$p" + fi + done } build() { @@ -76,17 +96,31 @@ EOF # 4. Run podman-system-service to create a dockerd-compatible control socket # and point every broken tool in existence towards it. - export DOCKER_HOST="unix:///tmp/docker.sock" - podman --log-level=info system service --time 0 "$DOCKER_HOST" & + export DOCKER_HOST="unix://$PWD/docker.sock" + podman system service --time 0 "$DOCKER_HOST" >&2 & podman_pid="$!" - # 5. Hopefully run the build inside of this Rube-Goldbergian contraption. + # 5. Set $DAPPER_CACHE_HOME to hopefully persist (some) caches + # FIXME: point this to $HOME after we make sure this works + export DAPPER_CACHE_HOME="$BUILDDIR/dapper-cache" + # dapper/podman won't create those subdirs for us + mkdir -pv "$DAPPER_CACHE_HOME"/{cache,go/pkg} + + # 6. create a build script with only the steps we want + cat <<"EOF" | install -m755 /dev/stdin k3s/scripts/archpkg +#!/bin/bash -ex + +scripts/download +scripts/build +scripts/package-cli +#REPO=... IMAGE_NAME=... scripts/package-image +scripts/package-airgap +EOF + + # 7. Hopefully run the build inside of this Rube-Goldbergian contraption. cd k3s - mkdir -p build/data - make download - make generate - make build - make package + #scripts/archpkg + make archpkg kill "$podman_pid" wait "$podman_pid" @@ -101,16 +135,23 @@ package() { install -Dm644 \ k3s.service \ + k3s-agent.service \ -t "$pkgdir/usr/lib/systemd/system" install -Dm644 \ k3s-rootless.service \ + k3s-agent-rootless.service \ -t "$pkgdir/usr/lib/systemd/user" install -Dm600 \ "$srcdir/k3s.service.env" \ + "$srcdir/k3s-agent.service.env" \ -t "$pkgdir/etc/systemd/system" + install -Dm600 \ + "$srcdir/config.yaml" \ + -t "$pkgdir/etc/rancher/k3s" + # air-gapped images install -Dm644 \ dist/artifacts/k3s-airgap-images-amd64.tar.zst \ |