feat(docker): add Dockerfile for Arch Linux package build and CI workflow for automated packaging
This commit is contained in:
34
packaging/arch/.SRCINFO
Normal file
34
packaging/arch/.SRCINFO
Normal file
@@ -0,0 +1,34 @@
|
||||
pkgbase = reticulum-meshchatx-git
|
||||
pkgdesc = A simple mesh network communications app powered by the Reticulum Network Stack
|
||||
pkgver = 4.0.0.r627.g4976722
|
||||
pkgrel = 1
|
||||
url = https://git.quad4.io/RNS-Things/MeshChatX
|
||||
arch = x86_64
|
||||
arch = aarch64
|
||||
license = MIT
|
||||
makedepends = git
|
||||
makedepends = nodejs
|
||||
makedepends = pnpm
|
||||
makedepends = python
|
||||
makedepends = python-poetry
|
||||
depends = opus
|
||||
depends = opusfile
|
||||
depends = portaudio
|
||||
depends = espeak-ng
|
||||
depends = nss
|
||||
depends = atk
|
||||
depends = at-spi2-core
|
||||
depends = libxcomposite
|
||||
depends = libxrandr
|
||||
depends = libxdamage
|
||||
depends = mesa
|
||||
depends = alsa-lib
|
||||
depends = libx11
|
||||
provides = reticulum-meshchatx
|
||||
conflicts = reticulum-meshchatx
|
||||
source = reticulum-meshchatx::git+https://git.quad4.io/RNS-Things/MeshChatX.git
|
||||
source = reticulum-meshchatx.desktop
|
||||
sha256sums = SKIP
|
||||
sha256sums = 366182e198df672bb51893f7cf7f339079bf80319c24c107216c1b96d33fd267
|
||||
|
||||
pkgname = reticulum-meshchatx-git
|
||||
57
packaging/arch/PKGBUILD
Normal file
57
packaging/arch/PKGBUILD
Normal file
@@ -0,0 +1,57 @@
|
||||
# Maintainer: Ivan <ivan@quad4.io>
|
||||
pkgname=reticulum-meshchatx-git
|
||||
_pkgname=reticulum-meshchatx
|
||||
pkgver=3.3.2.r90.g978d917
|
||||
pkgrel=1
|
||||
pkgdesc="A simple mesh network communications app powered by the Reticulum Network Stack"
|
||||
arch=('x86_64' 'aarch64')
|
||||
url="https://git.quad4.io/RNS-Things/MeshChatX"
|
||||
license=('MIT')
|
||||
depends=('opus' 'opusfile' 'portaudio' 'espeak-ng' 'nss' 'atk' 'at-spi2-core' 'libxcomposite' 'libxrandr' 'libxdamage' 'mesa' 'alsa-lib' 'libx11')
|
||||
makedepends=('git' 'nodejs' 'pnpm' 'python' 'python-poetry')
|
||||
provides=("$_pkgname")
|
||||
conflicts=("$_pkgname")
|
||||
source=("$_pkgname::git+https://git.quad4.io/RNS-Things/MeshChatX.git"
|
||||
"reticulum-meshchatx.desktop")
|
||||
sha256sums=('SKIP'
|
||||
'366182e198df672bb51893f7cf7f339079bf80319c24c107216c1b96d33fd267')
|
||||
|
||||
pkgver() {
|
||||
cd "$_pkgname"
|
||||
git describe --long --tags 2>/dev/null | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' || \
|
||||
printf "4.0.0.r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
||||
}
|
||||
|
||||
prepare() {
|
||||
cd "$_pkgname"
|
||||
export PNPM_HOME="$srcdir/.pnpm-home"
|
||||
export POETRY_CACHE_DIR="$srcdir/.poetry-cache"
|
||||
export POETRY_VIRTUALENVS_IN_PROJECT=true
|
||||
|
||||
pnpm install
|
||||
poetry install
|
||||
}
|
||||
|
||||
build() {
|
||||
cd "$_pkgname"
|
||||
export PNPM_HOME="$srcdir/.pnpm-home"
|
||||
export POETRY_CACHE_DIR="$srcdir/.poetry-cache"
|
||||
export POETRY_VIRTUALENVS_IN_PROJECT=true
|
||||
|
||||
pnpm run build
|
||||
pnpm exec electron-builder --linux --dir
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "$_pkgname"
|
||||
|
||||
install -d "$pkgdir/usr/lib/$_pkgname"
|
||||
cp -a dist/linux-unpacked/* "$pkgdir/usr/lib/$_pkgname/"
|
||||
|
||||
install -d "$pkgdir/usr/bin"
|
||||
ln -s "/usr/lib/$_pkgname/reticulum-meshchatx" "$pkgdir/usr/bin/$_pkgname"
|
||||
|
||||
install -Dm644 "$srcdir/reticulum-meshchatx.desktop" "$pkgdir/usr/share/applications/reticulum-meshchatx.desktop"
|
||||
install -Dm644 logo/logo.png "$pkgdir/usr/share/icons/hicolor/512x512/apps/reticulum-meshchatx.png"
|
||||
}
|
||||
|
||||
9
packaging/arch/reticulum-meshchatx.desktop
Normal file
9
packaging/arch/reticulum-meshchatx.desktop
Normal file
@@ -0,0 +1,9 @@
|
||||
[Desktop Entry]
|
||||
Name=Reticulum MeshChatX
|
||||
Comment=A simple mesh network communications app powered by the Reticulum Network Stack
|
||||
Exec=reticulum-meshchatx
|
||||
Icon=reticulum-meshchatx
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Network;
|
||||
|
||||
Reference in New Issue
Block a user