From 6a5823c00883e6bef4a0a911b520c872cd6633e3 Mon Sep 17 00:00:00 2001 From: itmodulo Date: Sat, 27 Jan 2024 16:47:19 +0100 Subject: [PATCH] First try --- .gitea/workflows/release_arm64v8.yml | 41 ++++++++++++++++++++++++++++ README.md | 34 +++++++++++++++++++++-- srcpkgs/supersonic-desktop/APKBUILD | 32 ++++++++++++++++++++++ 3 files changed, 105 insertions(+), 2 deletions(-) create mode 100644 .gitea/workflows/release_arm64v8.yml create mode 100644 srcpkgs/supersonic-desktop/APKBUILD diff --git a/.gitea/workflows/release_arm64v8.yml b/.gitea/workflows/release_arm64v8.yml new file mode 100644 index 0000000..ac678b7 --- /dev/null +++ b/.gitea/workflows/release_arm64v8.yml @@ -0,0 +1,41 @@ +name: 'Release Alpine apk for ARM64v8' + +on: + push: + branches: + - release + +jobs: + compilation-amd64: + runs-on: arm64v8_alpine-latest + steps: + - name: Update environment + shell: sh + run: apk -U upgrade + - name: Install needed tools + shell: sh + run: apk add bash git wget curl nodejs sshfs alpine-sdk abuild + - name: Checkout + uses: actions/checkout@v3 + - name: Compile in sequence and upload + run: | + echo "user_allow_other" >> /etc/fuse.conf + adduser runner -u 1001 -D -s /bin/bash -G wheel + addgroup runner abuild + chmod 660 /etc/sudoers + echo "%wheel ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers + chmod 440 /etc/sudoers + mkdir -p /var/cache/distfiles + chmod a+w /var/cache/distfiles + su - runner -c 'mkdir ~/.abuild' + echo "${{ secrets.REPO_PRIVKEY }}" > /home/runner/.abuild/"${{ secrets.REPO_PRIVKEY_FILENAME }}" && chown runner:runner /home/runner/.abuild/"${{ secrets.REPO_PRIVKEY_FILENAME }}" + mv srcpkgs /home/runner && chown -R runner:runner /home/runner/srcpkgs + su - runner -c 'cd srcpkgs; for i in $(ls ./ ); do cd $i && abuild -r; done' + su - runner -c 'mkdir hole' + echo "${{ secrets.REPO_LOGIN }}" > /home/runner/id_ecdsa && chown runner:runner /home/runner/id_ecdsa && chmod 600 /home/runner/id_ecdsa + su - runner -c 'sshfs -p "${{ secrets.LOGIN_PORT }}" -o StrictHostKeyChecking=accept-new -o default_permissions,allow_other -o IdentityFile=/home/runner/id_ecdsa "${{ secrets.SERVER_LOGIN_AND_ADDRESS }}":"${{ secrets.SERVER_REPO_PATH }}" /home/runner/hole' + su - runner -c 'ls -lah /home/runner/hole/latest-stable/main/aarch64/' + su - runner -c 'rm -rf hole/latest-stable/main/aarch64/*' + su - runner -c 'cp packages/srcpkgs/aarch64/*.apk hole/latest-stable/main/aarch64/' + su - runner -c 'apk index -vU -o hole/latest-stable/main/aarch64/APKINDEX.tar.gz *.apk' + su - runner -c 'abuild-sign -k /home/runner/.abuild/"${{ secrets.REPO_PRIVKEY_FILENAME }}" hole/latest-stable/main/aarch64/APKINDEX.tar.gz' \ No newline at end of file diff --git a/README.md b/README.md index 59f3a1e..a1fcb19 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,33 @@ -# linux_alpine +# Public custom Alpine Linux repo +Template files and build system (public logs available) for https://static.itmodulo.eu/dl/repo/alpine -Template files and build system (public logs available) for https://static.itmodulo.eu/dl/repo/alpine \ No newline at end of file +# Disclaimer +1. Don't use this repo if you don't know what you are doing. It may break your great Alpine Linux experience +2. If you want to upstream, go ahead but don't engage me -> You maintain. Although You are allowed reference as working example without restrictions. +3. Builds here will be only **musl-aarch64** for now, altough I may consider other variants _if you donate me every month_ +4. Maintained in mind with postmarketOS and Alpine latest-stable +5. I may rename/remove package without prior notification. + +# Why +## To maintain own repo +Official repo is good quality however: +- It simply lacks some packages I need. +- I don't use flatpak for personal reason (mostly size of packages and sdks based mostly on ubuntu I don't really like) +- Instead flatpaks I would use AppImages that are not so easy to update in large quantity and don't work on Alpine as linked against glibc + +## To use repo actions for builds +- It's easy to maintain +- Public build logs are more trustworthy (for potential other users) +- Clear and simple repo structure + +# Builds +- Built on docker with actions on this repo +- Signed with private key +- Triggered on push to release branch +- Release branch always compile +- New packages tested on other branches + +# LICENSE +Actions workflow file and template files are licensed under BSD-3-Clause-no-military + +This should not impact the original source code licenses diff --git a/srcpkgs/supersonic-desktop/APKBUILD b/srcpkgs/supersonic-desktop/APKBUILD new file mode 100644 index 0000000..a040a98 --- /dev/null +++ b/srcpkgs/supersonic-desktop/APKBUILD @@ -0,0 +1,32 @@ +# Contributor: ITmodulo +# Maintainer: ITmodulo +pkgname=supersonic-desktop +pkgver=0.8.2 +pkgrel=0 +pkgdesc="Full-featured, mpv-based music player for Subsonic and Jellyfin servers" +url="https://github.com/dweymouth/supersonic" +license="GPL-3.0-or-later" +arch="aarch64" +makedepends="go gcc g++ mpv-dev libayatana-appindicator-dev libsecret-dev glib-dev libx11-dev" +depends="libayatana-appindicator libsecret" +source="$pkgname-$pkgver.tar.gz::https://github.com/dweymouth/supersonic/archive/refs/tags/v$pkgver.tar.gz" + +build() { + cd "supersonic-$pkgver" + go build -ldflags="-s -w" -o bin/$pkgname +} + +check() { + go test ./... +} + +package() { + cd "src/supersonic-$pkgver" + install -Dm755 bin/$pkgname "$pkgdir"/usr/bin/$pkgname + install -Dm644 res/appicon.png "$pkgdir"/usr/share/pixmaps/supersonic-desktop.png + install -Dm644 res/supersonic-desktop.desktop "$pkgdir"/usr/share/applications/supersonic-desktop.desktop +} + +sha512sums=" +72d1913905c0ba9ce048225efb4ce86e0af62b8243b485889c568d039ee219f2029399b1f73b2d40ea9cd62d3b91155a7c7e090bba40c651e7dbaf56c384c53f supersonic-desktop-0.8.2.tar.gz +"