From 84b51452c6e839431491ddca3e1806194dfe6f38 Mon Sep 17 00:00:00 2001 From: Kevin McConnell Date: Wed, 1 Apr 2026 15:03:38 +0100 Subject: [PATCH] Add once-bin to edge (#70) This package provides the ONCE tool (https://github.com/basecamp/once). ONCE is a tool for easy self-hosting of Docker-based web applications. --- build/packages/edge.packages | 1 + pkgbuilds/edge/once-bin/.SRCINFO | 23 +++++++++++++ pkgbuilds/edge/once-bin/.gitignore | 6 ++++ pkgbuilds/edge/once-bin/PKGBUILD | 32 +++++++++++++++++++ .../edge/once-bin/once-background.service | 13 ++++++++ pkgbuilds/edge/once-bin/once.install | 15 +++++++++ 6 files changed, 90 insertions(+) create mode 100644 pkgbuilds/edge/once-bin/.SRCINFO create mode 100644 pkgbuilds/edge/once-bin/.gitignore create mode 100644 pkgbuilds/edge/once-bin/PKGBUILD create mode 100644 pkgbuilds/edge/once-bin/once-background.service create mode 100644 pkgbuilds/edge/once-bin/once.install diff --git a/build/packages/edge.packages b/build/packages/edge.packages index 9891e63..95987b2 100644 --- a/build/packages/edge.packages +++ b/build/packages/edge.packages @@ -23,6 +23,7 @@ limine-mkinitcpio-hook limine-snapper-sync macbook12-spi-driver-dkms makima-bin +once-bin pinta python-terminaltexteffects ttf-ia-writer diff --git a/pkgbuilds/edge/once-bin/.SRCINFO b/pkgbuilds/edge/once-bin/.SRCINFO new file mode 100644 index 0000000..3fe6cfc --- /dev/null +++ b/pkgbuilds/edge/once-bin/.SRCINFO @@ -0,0 +1,23 @@ +pkgbase = once-bin + pkgdesc = CLI/TUI for installing and managing self-hosted web applications + pkgver = 0.1.6 + pkgrel = 1 + url = https://github.com/basecamp/once + install = once.install + arch = x86_64 + arch = aarch64 + license = MIT + depends = docker + provides = once + conflicts = once + options = !strip + source = MIT-LICENSE-0.1.6::https://raw.githubusercontent.com/basecamp/once/v0.1.6/MIT-LICENSE + source = once-background.service + sha256sums = fa0d1454375cbc7701bc13d916c3ae71e613b8ae718321641e678e09409393c4 + sha256sums = aa314fe79677eb5f120fcc3d4c42007a93ff7b1ef917382c0c1fdca5633ad46a + source_x86_64 = once-0.1.6-x86_64::https://github.com/basecamp/once/releases/download/v0.1.6/once-linux-amd64 + sha256sums_x86_64 = ca23426d7ebe374ba1051bde1e3e16593f9ef1722b528f1429eddd3d33ace0ba + source_aarch64 = once-0.1.6-aarch64::https://github.com/basecamp/once/releases/download/v0.1.6/once-linux-arm64 + sha256sums_aarch64 = 4d2c6b9c1da8f73593c5b8c3076599e36c3c27fa3b7e424ccb0b75fc8876ba4f + +pkgname = once-bin diff --git a/pkgbuilds/edge/once-bin/.gitignore b/pkgbuilds/edge/once-bin/.gitignore new file mode 100644 index 0000000..a46d4cd --- /dev/null +++ b/pkgbuilds/edge/once-bin/.gitignore @@ -0,0 +1,6 @@ +* +!.gitignore +!.SRCINFO +!PKGBUILD +!once-background.service +!once.install diff --git a/pkgbuilds/edge/once-bin/PKGBUILD b/pkgbuilds/edge/once-bin/PKGBUILD new file mode 100644 index 0000000..bb67208 --- /dev/null +++ b/pkgbuilds/edge/once-bin/PKGBUILD @@ -0,0 +1,32 @@ +# Maintainer: Kevin McConnell +pkgname=once-bin +pkgver=0.1.6 +pkgrel=1 +pkgdesc='CLI/TUI for installing and managing self-hosted web applications' +arch=('x86_64' 'aarch64') +url='https://github.com/basecamp/once' +license=('MIT') +depends=('docker') +provides=('once') +conflicts=('once') +install=once.install +options=('!strip') + +_arch_x86_64=amd64 +_arch_aarch64=arm64 + +source_x86_64=("once-${pkgver}-x86_64::${url}/releases/download/v${pkgver}/once-linux-${_arch_x86_64}") +source_aarch64=("once-${pkgver}-aarch64::${url}/releases/download/v${pkgver}/once-linux-${_arch_aarch64}") +source=("MIT-LICENSE-${pkgver}::https://raw.githubusercontent.com/basecamp/once/v${pkgver}/MIT-LICENSE" + "once-background.service") + +sha256sums=('fa0d1454375cbc7701bc13d916c3ae71e613b8ae718321641e678e09409393c4' + 'aa314fe79677eb5f120fcc3d4c42007a93ff7b1ef917382c0c1fdca5633ad46a') +sha256sums_x86_64=('ca23426d7ebe374ba1051bde1e3e16593f9ef1722b528f1429eddd3d33ace0ba') +sha256sums_aarch64=('4d2c6b9c1da8f73593c5b8c3076599e36c3c27fa3b7e424ccb0b75fc8876ba4f') + +package() { + install -Dm755 "once-${pkgver}-${CARCH}" "${pkgdir}/usr/bin/once" + install -Dm644 "MIT-LICENSE-${pkgver}" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" + install -Dm644 once-background.service "${pkgdir}/usr/lib/systemd/system/once-background.service" +} diff --git a/pkgbuilds/edge/once-bin/once-background.service b/pkgbuilds/edge/once-bin/once-background.service new file mode 100644 index 0000000..cd13414 --- /dev/null +++ b/pkgbuilds/edge/once-bin/once-background.service @@ -0,0 +1,13 @@ +[Unit] +Description=Once background tasks (once) +After=network.target docker.service + +[Service] +Type=simple +Environment=ONCE_NO_SELF_UPDATE=1 +ExecStart=/usr/bin/once background run --namespace once +Restart=always +RestartSec=5 + +[Install] +WantedBy=multi-user.target diff --git a/pkgbuilds/edge/once-bin/once.install b/pkgbuilds/edge/once-bin/once.install new file mode 100644 index 0000000..b3403ce --- /dev/null +++ b/pkgbuilds/edge/once-bin/once.install @@ -0,0 +1,15 @@ +post_install() { + echo ':: Enable the background service with: systemctl enable --now once-background.service' +} + +post_upgrade() { + if systemctl is-active --quiet once-background.service; then + systemctl restart once-background.service + fi +} + +pre_remove() { + if systemctl is-active --quiet once-background.service; then + systemctl disable --now once-background.service + fi +}