Files
oak-editor/tooling/package/PKGBUILD
T
Mike-Solar aba7298ab3 app: package the UI icons and resolve assets at runtime
- the packager resources only carried assets/i18n, so installed builds
  showed blank toolbar glyphs: add assets/icons to the Windows/macOS
  packages and install it to /usr/share/oak/icons in the deb/rpm/pkg
  scripts;
- icon_path resolved through the compile-time CARGO_MANIFEST_DIR (the CI
  checkout path), which never exists on a user machine: search the
  runtime layouts instead — dev checkout, next to the executable,
  Contents/Resources, usr/lib/oak-editor (cargo-packager's deb/AppImage
  layout) and /usr/share/oak — mirroring the i18n pack search, which
  gains the same usr/lib/oak-editor candidate so the AppImage finds its
  language packs too.

Verified: oak-app 556 tests pass; the deb and rpm now carry
/usr/share/oak/icons/{dark,light}/*.png.
2026-09-24 19:44:21 +08:00

52 lines
2.4 KiB
Bash

# Oak Video Editor - Non-Linear Video Editor
# Copyright (C) 2026 Oak Team
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Arch package build. The release binaries are built by the caller
# (tooling/package/build-pkg.sh) before makepkg runs; depends lists the
# base-OS packages the binaries link (FFmpeg is statically linked; OCIO is
# static when built from the vendored source, and build-pkg.sh appends
# 'opencolorio' when the binaries link the system OCIO dynamically).
pkgname=oak-editor
pkgver=@VERSION@
pkgrel=1
pkgdesc="Oak Video Editor — a free, open-source non-linear video editor"
arch=('x86_64')
url="https://github.com/OakVideoEditorCommunity/oak"
license=('GPL-3.0-or-later')
depends=('glibc' 'gcc-libs' 'alsa-lib' 'libpipewire' 'libx11' 'libxcb'
'libxkbcommon' 'libxkbcommon-x11' 'libglvnd' 'vulkan-icd-loader'
'fontconfig' 'freetype2')
package() {
install -Dm755 "$OAK_BIN/oak-editor" "$pkgdir/usr/bin/oak-editor"
install -Dm755 "$OAK_BIN/oak-cli" "$pkgdir/usr/bin/oak-cli"
install -Dm755 "$OAK_BIN/oak-worker" "$pkgdir/usr/bin/oak-worker"
install -Dm644 "$OAK_ROOT/packaging/oak.desktop" "$pkgdir/usr/share/applications/oak.desktop"
install -Dm644 "$OAK_ROOT/icons/icon.png" "$pkgdir/usr/share/icons/hicolor/512x512/apps/oak.png"
install -Dm644 "$OAK_ROOT/Oak_Icon.svg" "$pkgdir/usr/share/icons/hicolor/scalable/apps/oak.svg"
for f in "$OAK_ROOT"/assets/i18n/*.yaml; do
install -Dm644 "$f" "$pkgdir/usr/share/oak/i18n/$(basename "$f")"
done
# The theme-aware UI glyphs (resolved at runtime from
# /usr/share/oak/icons; see crates/oak-app/src/oakui/icons.rs).
for d in "$OAK_ROOT"/assets/icons/*/; do
fam=$(basename "$d")
for f in "$d"*.png; do
install -Dm644 "$f" "$pkgdir/usr/share/oak/icons/$fam/$(basename "$f")"
done
done
}