Files
Warlock-Studio-Universal/PKGBUILD
T
vlad.os 586160b1a0
Build and Release / Validate source (push) Failing after 25s
Build and Release / Build (linux) (push) Has been skipped
Build and Release / Create Release (push) Has been skipped
Build and Release / Build (windows) (push) Has been skipped
Add Gitea Actions CI/CD pipeline
- .gitea/workflows/release.yml — multi-platform build (linux native + windows cross via wine)
- requirements.txt — all pip dependencies with version pins
- PKGBUILD — Arch Linux build reference
- build-scripts/build-linux-portable.sh — Linux portable/AppImage builder
- build-scripts/build-windows.ps1 — Windows PyInstaller + Inno Setup builder
2026-06-27 03:26:18 +03:00

104 lines
3.0 KiB
Bash

# Maintainer: Warlock Studio <negroayub97@gmail.com>
# Contributor: Ivan Ayub
# Arch Linux PKGBUILD — builds Warlock Studio from source using PyInstaller
# =============================================================================
# This PKGBUILD is provided for reference / self-build. For AUR submission
# replace pkgver() with the actual release tag and uncomment source=() array.
# =============================================================================
pkgname=warlock-studio
pkgver=6.0
pkgrel=1
pkgdesc="AI-powered video upscaling, restoration, denoising and frame interpolation"
arch=('x86_64')
url="https://github.com/Ivan-Ayub97/Warlock-Studio"
license=('MIT')
depends=(
'python'
'python-pip'
'python-customtkinter'
'python-opencv'
'python-numpy'
'python-pillow'
'python-moviepy'
'python-natsort'
'python-packaging'
'python-psutil'
'python-requests'
'python-tkinterdnd2'
'tk'
'onnxruntime-opt' # or onnxruntime for CPU-only
'ffmpeg'
'libxkbcommon'
'libxcb'
'libgl'
)
makedepends=(
'python-build'
'python-installer'
'python-wheel'
'python-pyinstaller'
)
optdepends=(
'python-onnxruntime-opt: GPU-accelerated ONNX inference (CUDA)'
'python-onnxruntime-directml: DirectML backend for Windows (not applicable)'
)
conflicts=()
provides=("${pkgname}")
source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/v${pkgver}.tar.gz")
sha256sums=('SKIP')
validpgpkeys=()
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
# Install Python dependencies into temporary venv for PyInstaller
python -m venv --system-site-packages _buildenv
source _buildenv/bin/activate
pip install --no-input --no-cache-dir -r requirements.txt
pip install --no-input --no-cache-dir pyinstaller
# Build with PyInstaller
pyinstaller Warlock-Studio.spec --noconfirm
deactivate
rm -rf _buildenv
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
# Install into /opt/warlock-studio
install -dm755 "${pkgdir}/opt/warlock-studio"
cp -r dist/Warlock-Studio/* "${pkgdir}/opt/warlock-studio/"
# Desktop entry
install -dm755 "${pkgdir}/usr/share/applications"
cat > "${pkgdir}/usr/share/applications/warlock-studio.desktop" << EOF
[Desktop Entry]
Name=Warlock Studio
Comment=AI-powered video upscaling, restoration and frame interpolation
Exec=/opt/warlock-studio/Warlock-Studio
Icon=warlock-studio
Terminal=false
Type=Application
Categories=Graphics;Video;AudioVideo;
StartupWMClass=Warlock-Studio
EOF
# Icon
install -dm755 "${pkgdir}/usr/share/icons/hicolor/256x256/apps"
install -m644 logo.ico "${pkgdir}/usr/share/icons/hicolor/256x256/apps/warlock-studio.ico" 2>/dev/null || true
# Symlink to PATH
install -dm755 "${pkgdir}/usr/bin"
ln -sf "/opt/warlock-studio/Warlock-Studio" "${pkgdir}/usr/bin/warlock-studio"
# License
install -dm755 "${pkgdir}/usr/share/licenses/${pkgname}"
install -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/" 2>/dev/null || true
}
# vim:set ts=2 sw=2 et: