commit 89a95b9b26af8d022c0ad58f78e9b5b208efc82e Author: Dominic Date: Mon Jan 22 15:41:38 2024 +0100 initial commit diff --git a/.gitea/workflows/alpine.sh b/.gitea/workflows/alpine.sh new file mode 100755 index 0000000..3c6e5c8 --- /dev/null +++ b/.gitea/workflows/alpine.sh @@ -0,0 +1,53 @@ +#!/bin/busybox ash +set -exuo pipefail + +# initialize abuild +apk update +apk add --no-cache alpine-sdk sudo util-linux +adduser -D user -h /home/user +addgroup user abuild +echo "root ALL=(ALL) ALL" >/etc/sudoers +echo "%abuild ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers +mkdir -p /var/cache/distfiles +chgrp abuild /var/cache/distfiles +chmod 775 /var/cache/distfiles +mkdir -p "/home/user/.abuild" +echo "/home/user/.abuild/user.rsa" | abuild-keygen -i -b 4096 +echo 'PACKAGER_PRIVKEY=/home/user/.abuild/user.rsa' >/home/user/.abuild/abuild.conf +chown -R "user:user" /home/user/ + +# make sure we own the relevant directory +mkdir packages +echo "REPODEST=$PWD/packages" >>/home/user/.abuild/abuild.conf +cat /home/user/.abuild/abuild.conf +chown -R user:user alpine packages + +# build the package +sudo -u user APKBUILD=alpine/APKBUILD abuild -r + +# upload new package +cd packages/forgejo-2174/x86_64/ +for file in $(find . -name '*.apk' -type f | sed -e 's,./,,'); do + # remove old package + curl \ + --fail \ + -H "Authorization: token $1" \ + -X DELETE \ + "https://msrd0.dev/api/packages/msrd0/alpine/3.19/forgejo-2174/$file" \ + || true + + # upload new package + curl \ + --fail \ + -H "Authorization: token $1" \ + -T "$file" \ + "https://msrd0.dev/api/packages/msrd0/alpine/3.19/forgejo-2174" +done + +# ensure that the install-if condition works as expected +apk add openrc +(cd /etc/apk/keys && curl -JO https://msrd0.dev/api/packages/msrd0/alpine/key) +echo "https://msrd0.dev/api/packages/msrd0/alpine/3.19/forgejo-2174" >>/etc/apk/repositories +apk add forgejo_2174 +[ -e /usr/bin/forgejo_2174 ] # from the installed package +[ -e /etc/init.d/forgejo_2174 ] # from the -openrc package installed because of the install-if condition diff --git a/.gitea/workflows/alpine.yml b/.gitea/workflows/alpine.yml new file mode 100644 index 0000000..689be7d --- /dev/null +++ b/.gitea/workflows/alpine.yml @@ -0,0 +1,14 @@ +name: Alpine +on: [push] + +jobs: + abuild: + runs-on: ubuntu-latest + name: abuild + steps: + - uses: actions/checkout@v4 + - name: Build Alpine package + uses: docker://alpine + with: + entrypoint: ash + args: -c './.gitea/workflows/alpine.sh ${{secrets.PACKAGE_TOKEN}}' diff --git a/alpine/APKBUILD b/alpine/APKBUILD new file mode 100644 index 0000000..0aa611e --- /dev/null +++ b/alpine/APKBUILD @@ -0,0 +1,26 @@ +# -*- mode: Shell-script; eval: (setq indent-tabs-mode 't); eval: (setq tab-width 4) -*- +# Maintainer: Dominic Meiser +pkgname=forgejo-2174 +pkgver=1.0 +pkgrel=0 +pkgdesc="Forgejo #2174 Reproduction" +url="https://msrd0.dev/msrd0/$pkgname" +arch="x86_64" +license="custom" + +# using x86_64 instead of noarch as a workaround of +# https://codeberg.org/forgejo/forgejo/issues/2173 +subpackages="$pkgname-openrc::x86_64" + +source="forgejo_2174 forgejo_2174.init" +builddir="$srcdir" + +package() { + install -D -m755 "$srcdir/forgejo_2174" "$pkgdir"/usr/bin + install -D -m755 "$srcdir/forgejo_2174.init" "$pkgdir"/etc/init.d/forgejo_2174 +} + +sha512sums=" +651c2a816510a18981bcd45077eb5acd6e58511d641949ddc690e326b81018d851eb7f1c88e2336eada2f216606ce2aa0569eb2d02d7c423c80705cc00acf838 forgejo_2174 +b1cba77139cdaf9e0cdd78de93becbb3891ec59646e8d2cb40620b230bd798d51e6d9c58e65b584812a6bb8eb2b9c9f89262a8700a39c62af8ec8ea09aee4e29 forgejo_2174.init +" diff --git a/alpine/forgejo_2174 b/alpine/forgejo_2174 new file mode 100755 index 0000000..b12f87b --- /dev/null +++ b/alpine/forgejo_2174 @@ -0,0 +1,3 @@ +#!/bin/sh + +echo "Hello World" diff --git a/alpine/forgejo_2174.init b/alpine/forgejo_2174.init new file mode 100755 index 0000000..06b7f20 --- /dev/null +++ b/alpine/forgejo_2174.init @@ -0,0 +1,7 @@ +#!/sbin/openrc-run + +command="/usr/bin/forgejo_2174" + +depend() { + need net +} diff --git a/alpine/src/forgejo-2174 b/alpine/src/forgejo-2174 new file mode 120000 index 0000000..77bc53e --- /dev/null +++ b/alpine/src/forgejo-2174 @@ -0,0 +1 @@ +/home/msrd0/git/forgejo-2174/alpine/forgejo-2174 \ No newline at end of file diff --git a/alpine/src/forgejo-2174.init b/alpine/src/forgejo-2174.init new file mode 120000 index 0000000..2f1041e --- /dev/null +++ b/alpine/src/forgejo-2174.init @@ -0,0 +1 @@ +/home/msrd0/git/forgejo-2174/alpine/forgejo-2174.init \ No newline at end of file