summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorxiota2024-03-04 05:33:40 +0000
committerxiota2024-03-04 06:15:57 +0000
commitad36fab8d23cbefeaec4d3dd6a9ea46bab1ac6a3 (patch)
tree727124528e776d65c4cc587d9710a4b2d13a6f8e
parent5d84ea65caeef7fc1020a8967745c82af22cea88 (diff)
downloadaur-gyroflow-git.tar.gz
1.5.4.r115
-rw-r--r--.SRCINFO30
-rw-r--r--.gitignore8
-rw-r--r--PKGBUILD157
-rw-r--r--gyroflow.desktop10
4 files changed, 119 insertions, 86 deletions
diff --git a/.SRCINFO b/.SRCINFO
index e9bfebf20741..d5b2d731fbd3 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,34 +1,28 @@
pkgbase = gyroflow-git
- pkgdesc = Video stabilization using gyroscope data (Git version)
- pkgver = 1.1.0.r50.gd85b2b3
+ pkgdesc = Video stabilization using gyroscope data
+ pkgver = 1.5.4.r115.ga161c78b
pkgrel = 1
- url = https://gyroflow.xyz/
+ url = https://github.com/gyroflow/gyroflow
arch = x86_64
- license = GPL3
+ license = GPL-3.0-or-later
makedepends = cargo
- makedepends = opencl-headers
- makedepends = git
makedepends = clang
+ makedepends = gendesk
+ makedepends = git
+ makedepends = opencl-headers
makedepends = p7zip
+ depends = ffmpeg
depends = libc++
- depends = qt6-base
- depends = qt6-quick3d
- depends = qt6-declarative
- depends = qt6-3d
- depends = pulseaudio
- depends = libxkbcommon
- depends = opencv
depends = ocl-icd
- depends = ffmpeg
+ depends = opencv
+ depends = qt6-declarative
optdepends = opencl-driver: OpenCL driver for GPU accelerated stabilization
optdepends = libva-mesa-driver: VAAPI video acceleration for NVIDIA and AMD GPU
optdepends = intel-media-driver: VAAPI video acceleration for Intel GPU
- provides = gyroflow
+ provides = gyroflow=1.5.4
conflicts = gyroflow
- conflicts = gyroflow-appimage
+ options = !lto
source = gyroflow::git+https://github.com/gyroflow/gyroflow.git
- source = gyroflow.desktop
sha256sums = SKIP
- sha256sums = 1ee4e5f8471ef60a209d9ae6e630b7ca066cda295be54e3e95630b25a259db00
pkgname = gyroflow-git
diff --git a/.gitignore b/.gitignore
index c82a7749f1c9..018a3de08144 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
-*.pkg.tar.*
-gyroflow/
-pkg/
-src/
+*
+!PKGBUILD
+!.SRCINFO
+!.gitignore
diff --git a/PKGBUILD b/PKGBUILD
index 3f8ba22eb3b4..6ed7d52edb0e 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,70 +1,119 @@
-# Maintainer: bjin <bjin@ctrl-d.org>
+# Maintainer:
+# Contributor: bjin <bjin@ctrl-d.org>
# Contributor: Alynx Zhou <alynx.zhou@gmail.com>
-_pkgname=gyroflow
-pkgname=${_pkgname}-git
-pkgver=1.1.0.r50.gd85b2b3
+## useful links
+# https://gyroflow.xyz
+# https://github.com/gyroflow/gyroflow
+
+_pkgname="gyroflow"
+pkgname="$_pkgname-git"
+pkgver=1.5.4.r115.ga161c78b
pkgrel=1
-pkgdesc="Video stabilization using gyroscope data (Git version)"
+pkgdesc="Video stabilization using gyroscope data"
+url="https://github.com/gyroflow/gyroflow"
+license=("GPL-3.0-or-later")
arch=("x86_64")
-url="https://gyroflow.xyz/"
-provides=("$_pkgname")
-conflicts=("$_pkgname" "${_pkgname}-appimage")
-license=("GPL3")
-depends=("libc++" "qt6-base" "qt6-quick3d" "qt6-declarative" "qt6-3d" "pulseaudio" "libxkbcommon" "opencv" "ocl-icd" "ffmpeg")
-makedepends=("cargo" "opencl-headers" "git" "clang" "p7zip")
-optdepends=("opencl-driver: OpenCL driver for GPU accelerated stabilization"
- "libva-mesa-driver: VAAPI video acceleration for NVIDIA and AMD GPU"
- "intel-media-driver: VAAPI video acceleration for Intel GPU")
-source=("$_pkgname::git+https://github.com/gyroflow/gyroflow.git"
- "$_pkgname.desktop")
-sha256sums=("SKIP"
- "1ee4e5f8471ef60a209d9ae6e630b7ca066cda295be54e3e95630b25a259db00")
+
+depends=(
+ 'ffmpeg'
+ 'libc++'
+ 'ocl-icd'
+ 'opencv'
+ 'qt6-declarative'
+)
+makedepends=(
+ 'cargo'
+ 'clang'
+ 'gendesk'
+ 'git'
+ 'opencl-headers'
+ 'p7zip'
+)
+optdepends=(
+ 'opencl-driver: OpenCL driver for GPU accelerated stabilization'
+ 'libva-mesa-driver: VAAPI video acceleration for NVIDIA and AMD GPU'
+ 'intel-media-driver: VAAPI video acceleration for Intel GPU'
+)
+
+provides=("$_pkgname=${pkgver%%.r*}")
+conflicts=("$_pkgname")
+
+options=(!lto)
+
+_pkgsrc="$_pkgname"
+source=("$_pkgsrc"::"git+$url.git")
+sha256sums=("SKIP")
pkgver() {
- cd "$_pkgname"
- git describe --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
+ cd "$_pkgsrc"
+ git describe --long --tags --abbrev=8 --exclude='*[a-zA-Z][a-zA-Z]*' \
+ | sed -E 's/^[^0-9]*//;s/([^-]*-g)/r\1/;s/-/./g'
}
prepare() {
- cd "${_pkgname}"
- cargo update
- cargo fetch --locked --target "${CARCH}-unknown-linux-gnu"
+ cat <<EOF > "$_pkgname.sh"
+#!/usr/bin/env sh
+export LD_LIBRARY_PATH="/opt/$_pkgname"
+exec /opt/$_pkgname/$_pkgname "\$@"
+EOF
+
+ local _gendesk_options=(
+ -q -f -n
+ --pkgname="$_pkgname"
+ --pkgdesc="$pkgdesc"
+ --name="Gyroflow"
+ --exec="$_pkgname %u"
+ --icon="$_pkgname"
+ --terminal=false
+ --categories="Graphics;Photography;AudioVideo"
+ --mimetypes="video/mp4;video/mpeg"
+ --startupnotify=true
+ )
+
+ gendesk "${_gendesk_options[@]}"
+
+ export RUSTUP_TOOLCHAIN=stable
+
+ cd "$_pkgsrc"
+ cargo fetch --locked --target "${CARCH}-unknown-linux-gnu"
}
build() {
- cd "${_pkgname}"
- # Currently Arch has both qt5 and qt6, and `/usr/bin/qmake` is qt5, this
- # package needs qt6.
- export QMAKE="/usr/bin/qmake6"
- # Use system libraries.
- export FFMPEG_DIR="/usr"
- export OPENCV_LINK_PATHS="/usr"
- # See <https://github.com/gyroflow/gyroflow/blob/master/__env-linux.sh>.
- # But I need to add `opencv_dnn` to build it.
- export OPENCV_LINK_LIBS="opencv_core,opencv_calib3d,opencv_features2d,opencv_imgproc,opencv_video,opencv_flann,opencv_dnn"
- export RUSTUP_TOOLCHAIN=stable
- export CARGO_TARGET_DIR=target
- cargo build --frozen --release --all-features
+ # Currently Arch has both qt5 and qt6, and `/usr/bin/qmake` is qt5, this
+ # package needs qt6.
+ export QMAKE="/usr/bin/qmake6"
+ # Use system libraries.
+ export FFMPEG_DIR="/usr"
+ export OPENCV_LINK_PATHS="/usr"
+ # See <https://github.com/gyroflow/gyroflow/blob/master/__env-linux.sh>.
+ # But I need to add `opencv_dnn` to build it.
+ export OPENCV_LINK_LIBS="opencv_core,opencv_calib3d,opencv_features2d,opencv_imgproc,opencv_video,opencv_flann,opencv_dnn"
+ export RUSTUP_TOOLCHAIN=stable
+ export CARGO_TARGET_DIR=target
+
+ cd "$_pkgsrc"
+ cargo build --frozen --release --all-features
}
package() {
- cd "${_pkgname}"
- # Gyroflow currently has no compiling options for custom resource path,
- # so I have to install it into `/opt` to put it together with camera
- # presets.
- install -Dm0755 "target/release/${_pkgname}" "${pkgdir}/opt/${_pkgname}/${_pkgname}"
- # I can't find any existing package for this file.
- install -Dm0755 "target/release/libmdk.so.0" "${pkgdir}/opt/${_pkgname}/libmdk.so.0"
- cp -a "resources/camera_presets" "${pkgdir}/opt/${_pkgname}"
-
- # Make camera presets directory writable. gyroflow will automatically
- # download and save new presets to this directory.
- find "${pkgdir}/opt/${_pkgname}/camera_presets" -type d -exec chmod 777 {} +
-
- install -Dm0644 "resources/icon.svg" "${pkgdir}/usr/share/pixmaps/${_pkgname}.svg"
- install -Dm0644 "${srcdir}/${_pkgname}.desktop" "${pkgdir}/usr/share/applications/${_pkgname}.desktop"
-
- mkdir -p "${pkgdir}/usr/bin"
- ln -s "/opt/${_pkgname}/${_pkgname}" "$pkgdir/usr/bin/${_pkgname}"
+ # program files
+ install -Dm755 "$_pkgsrc/target/release/$_pkgname" "$pkgdir/opt/$_pkgname/$_pkgname"
+ install -Dm755 "$_pkgsrc/target/release/libmdk.so.0" -t "$pkgdir/opt/$_pkgname/"
+
+ # camera presets
+ cp -a "$_pkgsrc/resources/camera_presets" "$pkgdir/opt/$_pkgname"
+
+ # script
+ install -Dm755 "$_pkgname.sh" "$pkgdir/usr/bin/$_pkgname"
+
+ # desktop file
+ install -Dm644 "$_pkgname.desktop" -t "$pkgdir/usr/share/applications/"
+
+ # icon
+ install -Dm644 "$_pkgsrc/resources/icon.svg" "$pkgdir/usr/share/pixmaps/$_pkgname.svg"
+
+ # Make camera presets directory writable.
+ # gyroflow downloads and saves new presets to this directory.
+ find "$pkgdir/opt/$_pkgname/camera_presets" -type d -exec chmod 777 {} +
}
diff --git a/gyroflow.desktop b/gyroflow.desktop
deleted file mode 100644
index a0c857affaf9..000000000000
--- a/gyroflow.desktop
+++ /dev/null
@@ -1,10 +0,0 @@
-[Desktop Entry]
-Type=application
-Name=Gyroflow
-Comment=Video stabilization using gyroscope data
-Exec=/usr/bin/gyroflow %U
-Icon=gyroflow
-StartupNotify=false
-Terminal=false
-Categories=Graphics;Photography;AudioVideo;
-MimeType=video/mp4;video/mpeg;