diff options
author | xiota | 2024-03-04 05:33:40 +0000 |
---|---|---|
committer | xiota | 2024-03-04 06:15:57 +0000 |
commit | ad36fab8d23cbefeaec4d3dd6a9ea46bab1ac6a3 (patch) | |
tree | 727124528e776d65c4cc587d9710a4b2d13a6f8e | |
parent | 5d84ea65caeef7fc1020a8967745c82af22cea88 (diff) | |
download | aur-gyroflow-git.tar.gz |
1.5.4.r115
-rw-r--r-- | .SRCINFO | 30 | ||||
-rw-r--r-- | .gitignore | 8 | ||||
-rw-r--r-- | PKGBUILD | 157 | ||||
-rw-r--r-- | gyroflow.desktop | 10 |
4 files changed, 119 insertions, 86 deletions
@@ -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 @@ -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; |