586160b1a0
- .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
104 lines
3.0 KiB
Bash
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:
|