From ab8dc94111a666f607c61efe5e0a2b26e87c15fe Mon Sep 17 00:00:00 2001 From: Dominic Date: Mon, 22 Jan 2024 15:41:38 +0100 Subject: [PATCH] initial commit --- .gitea/workflows/alpine.sh | 51 ++++++++++++++++++++++++++++++++++++ .gitea/workflows/alpine.yml | 14 ++++++++++ alpine/APKBUILD | 21 +++++++++++++++ alpine/forgejo_2174 | 3 +++ alpine/forgejo_2174.init | 7 +++++ alpine/src/forgejo-2174 | 1 + alpine/src/forgejo-2174.init | 1 + 7 files changed, 98 insertions(+) create mode 100644 .gitea/workflows/alpine.sh create mode 100644 .gitea/workflows/alpine.yml create mode 100644 alpine/APKBUILD create mode 100755 alpine/forgejo_2174 create mode 100755 alpine/forgejo_2174.init create mode 120000 alpine/src/forgejo-2174 create mode 120000 alpine/src/forgejo-2174.init diff --git a/.gitea/workflows/alpine.sh b/.gitea/workflows/alpine.sh new file mode 100644 index 0000000..44a5cfa --- /dev/null +++ b/.gitea/workflows/alpine.sh @@ -0,0 +1,51 @@ +#!/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 +mkdir /home/user/packages +echo 'REPODEST="/home/user/packages-arm"' >.abuild/abuild.conf +echo 'PACKAGER_PRIVKEY="/home/user/.abuild/user.rsa\"' >>.abuild/abuild.conf +chown -R "user:user" /home/user/ + +# make sure we own the relevant directory +sudo 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 ${{secrets.PACKAGE_TOKEN}}" \ + -X DELETE \ + "https://msrd0.dev/api/packages/msrd0/alpine/3.19/forgejo-2174/$file" \ + || true + + # upload new package + curl \ + --fail \ + -H "Authorization: token ${{secrets.PACKAGE_TOKEN}}" \ + -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 +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..5dbbe77 --- /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 diff --git a/alpine/APKBUILD b/alpine/APKBUILD new file mode 100644 index 0000000..f6a826f --- /dev/null +++ b/alpine/APKBUILD @@ -0,0 +1,21 @@ +# -*- 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="MateKiosk NFC Backend" +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 +} 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