From 20e915328b93fc4bce70a592644f6b194ba2b31c Mon Sep 17 00:00:00 2001 From: Bryan Joshua Pedini Date: Thu, 9 Apr 2026 15:51:02 +0200 Subject: [PATCH] first commit --- .SRCINFO | 22 ++++---- .gitignore | 4 ++ LICENSE | 21 +++++++ PKGBUILD | 62 +++++++++++++-------- README.md | 2 + open-video-downloader.desktop | 13 +++++ open-video-downloader.png | Bin 0 -> 38465 bytes push.sh | 101 ++++++++++++++++++++++++++++++++++ 8 files changed, 191 insertions(+), 34 deletions(-) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 open-video-downloader.desktop create mode 100644 open-video-downloader.png create mode 100755 push.sh diff --git a/.SRCINFO b/.SRCINFO index c1bc8ee..0ae2226 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,17 +1,19 @@ pkgbase = open-video-downloader-appimage - pkgdesc = A cross-platform GUI for youtube-dl made in Electron and node.js - pkgver = 2.4.10 - pkgrel = 3 - url = https://github.com/StefanLobbenmeier/youtube-dl-gui + pkgdesc = A cross-platform GUI for youtube-dl made in Rust with Tauri and Vue + Typescript + pkgver = 3.2.0 + pkgrel = 1 + url = https://github.com/jely2002/youtube-dl-gui arch = x86_64 license = AGPL3 - depends = zlib - depends = glibc - depends = python-mutagen + provides = open-video-downloader conflicts = open-video-downloader - conflicts = youtube-dl-gui options = !strip - source = open-video-downloader-2.4.10.AppImage::https://github.com/StefanLobbenmeier/youtube-dl-gui/releases/download/v2.4.10/Open-Video-Downloader-2.4.10.AppImage - sha256sums = e99cf7780eebbe74a1e45cbac822f965c7e7299193adce39b37240d75d8e2389 + options = !debug + source = open-video-downloader-3.2.0.AppImage::https://github.com/jely2002/youtube-dl-gui/releases/download/app-v3.2.0/Open.Video.Downloader_3.2.0_amd64.AppImage + source = open-video-downloader.desktop + source = open-video-downloader.png + sha256sums = dffee4cfef50e8edb9be4136d5650b123e49b8a1ffd959ff3d2c42502fc391e3 + sha256sums = 217d02211a51853d920e53558cd9cbd7a753ba9f2036ddaa0ec4e00a77351b6c + sha256sums = 188992cbe106d0dd6e7b9c219020118a1246c3657c828f86e463617c3d6214cb pkgname = open-video-downloader-appimage diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6518c1e --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +# AppImages +*.AppImage +# built packages +*.pkg.tar.zst diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..04f030a --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Bryan Joshua Pedini + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/PKGBUILD b/PKGBUILD index dadff1b..dc9e5e9 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,27 +1,41 @@ -# Maintainer: zxp19821005 -pkgname="open-video-downloader-appimage" -pkgver=2.4.10 -pkgrel=3 -pkgdesc="A cross-platform GUI for youtube-dl made in Electron and node.js" -arch=('x86_64') -url="https://github.com/StefanLobbenmeier/youtube-dl-gui" -license=('AGPL3') -conflicts=("${pkgname%-appimage}" "youtube-dl-gui") -depends=('zlib' 'glibc' 'python-mutagen') -options=('!strip') -_install_path="/opt/appimages" -source=("${pkgname%-appimage}-${pkgver}.AppImage::${url}/releases/download/v${pkgver}/Open-Video-Downloader-${pkgver}.AppImage") -sha256sums=('e99cf7780eebbe74a1e45cbac822f965c7e7299193adce39b37240d75d8e2389') - +# Maintainer: Bryan Joshua Pedini + +_pkgname="open-video-downloader" +_srcname="youtube-dl-gui" +_srcmntr="jely2002" + +pkgname="${_pkgname}-appimage" +pkgver="3.2.0" +pkgrel="1" +pkgdesc="A cross-platform GUI for youtube-dl made in Rust with Tauri and Vue + Typescript" +url="https://github.com/${_srcmntr}/${_srcname}" +arch=("x86_64") +license=("AGPL3") +options=("!strip" "!debug") +_archive="${_pkgname}-${pkgver}.AppImage" +source=( + "${_archive}::https://github.com/${_srcmntr}/${_srcname}/releases/download/app-v${pkgver}/Open.Video.Downloader_${pkgver}_amd64.AppImage" + "${_pkgname}.desktop" + "${_pkgname}.png" +) +conflicts=("open-video-downloader") +provides=("open-video-downloader") + +sha256sums=( + "dffee4cfef50e8edb9be4136d5650b123e49b8a1ffd959ff3d2c42502fc391e3" + "217d02211a51853d920e53558cd9cbd7a753ba9f2036ddaa0ec4e00a77351b6c" + "188992cbe106d0dd6e7b9c219020118a1246c3657c828f86e463617c3d6214cb" +) + prepare() { - chmod a+x "${srcdir}/${pkgname%-appimage}-${pkgver}.AppImage" - "${srcdir}/${pkgname%-appimage}-${pkgver}.AppImage" --appimage-extract > /dev/null - sed "s|AppRun|${_install_path}/${pkgname%-appimage}.AppImage|g;s|youtube-dl-gui|${pkgname%-appimage}|g;s|X-utility|Utility|g" \ - -i "${srcdir}/squashfs-root/${pkgname%-appimage}.desktop" + sed -i -e '/^X-AppImage-/d' "${srcdir}/${_pkgname}.desktop" } - + package() { - install -Dm755 "${srcdir}/${pkgname%-appimage}-${pkgver}.AppImage" "${pkgdir}/${_install_path}/${pkgname%-appimage}.AppImage" - install -Dm644 "${srcdir}/squashfs-root/usr/share/icons/hicolor/0x0/apps/${pkgname%-appimage}.png" -t "${pkgdir}/usr/share/pixmaps" - install -Dm644 "${srcdir}/squashfs-root/${pkgname%-appimage}.desktop" -t "${pkgdir}/usr/share/applications" -} \ No newline at end of file + install -Dm755 "${srcdir}/${_archive}" \ + "${pkgdir}/usr/bin/${_pkgname}" + install -Dm644 "$srcdir/${_pkgname}.desktop" \ + "$pkgdir/usr/share/applications/${_pkgname}.desktop" + install -Dm644 "$srcdir/${_pkgname}.png" \ + "$pkgdir/usr/share/icons/hicolor/256x256/apps/${_pkgname}.png" +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..8bb2d73 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# open-video-downloader-appimage +PKGBUILD script for Arch Linux for `open-video-downloader-appimage` package diff --git a/open-video-downloader.desktop b/open-video-downloader.desktop new file mode 100644 index 0000000..01fab73 --- /dev/null +++ b/open-video-downloader.desktop @@ -0,0 +1,13 @@ +[Desktop Entry] +Categories= +Comment=Download videos from all over the web. +Exec=open-video-downloader +StartupWMClass=open-video-downloader +Icon=open-video-downloader +Name=Open Video Downloader +Terminal=false +Type=Application + +X-AppImage-Name=Open_Video_Downloader +X-AppImage-Version=UNKNOWN +X-AppImage-Arch=x86_64 diff --git a/open-video-downloader.png b/open-video-downloader.png new file mode 100644 index 0000000000000000000000000000000000000000..3de22fb11653f039ccf72280cf900a96f8ad27ba GIT binary patch literal 38465 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 bN&F$~lc=E3+vr~wfGg3}G<;I|$S&f4g82lv literal 0 HcmV?d00001 diff --git a/push.sh b/push.sh new file mode 100755 index 0000000..ac89e6a --- /dev/null +++ b/push.sh @@ -0,0 +1,101 @@ +#!/usr/bin/env bash + +# Variables +gui=true +desktop="Open Video Downloader.desktop" +icon="open-video-downloader.png" + +# Get version +oldver=$(grep -E "^pkgver=" PKGBUILD | sed 's/pkgver="//;s/"//') +if [ $# -eq 1 ]; then + pkgver="${1}" +else + echo "Old version: ${oldver}" + read -p "New version: " pkgver +fi + +# Check version +if [ "${pkgver}" = "${oldver}" ] && [ -z "${FORCE_REBUILD}" ]; then + echo >/dev/stderr "Error: same (old) version specified - update aborted" + exit 1 +fi + +# Get variables from PKGBUILD +url=$(sed -n '/^source=(/,/)/p' PKGBUILD | grep -oE 'https?://[^"]+') +pkgname=$(grep -E "^pkgname=" PKGBUILD | sed 's/pkgname="//;s/"//') +_pkgname=$(grep -E "^_pkgname=" PKGBUILD | sed 's/_pkgname="//;s/"//') +_srcname=$(grep -E "^_srcname=" PKGBUILD | sed 's/_srcname="//;s/"//') +_srcmntr=$(grep -E "^_srcmntr=" PKGBUILD | sed 's/_srcmntr="//;s/"//') +_archive=$(grep -E "^_archive=" PKGBUILD | sed 's/_archive="//;s/"//') +pkgrel=$(grep -E "^pkgrel=" PKGBUILD | sed 's/pkgrel="//;s/"//') +aur_url="ssh://aur@aur.archlinux.org/${pkgname}.git" +if [ "${gui}" = "true" ] && [ -n "${_pkgname}" ]; then + newdesktop="${_pkgname}.desktop" + newicon="${_pkgname}.png" +else + newdesktop="${package}.desktop" + newicon="${package}.png" +fi + +# Perform variable substitution +url="${url//\$\{pkgname\}/$pkgname}" +url="${url//\$\{_pkgname\}/$_pkgname}" +url="${url//\$\{_srcname\}/$_srcname}" +url="${url//\$\{_srcmntr\}/$_srcmntr}" +url="${url//\$\{pkgver\}/$pkgver}" +_archive="${_archive//\$\{pkgname\}/$pkgname}" +_archive="${_archive//\$\{_pkgname\}/$_pkgname}" +_archive="${_archive//\$\{pkgver\}/$pkgver}" +aur_url="${aur_url//\$\{_pkgname\}/$_pkgname}" + +# Download archive +wget -O ${_archive} "${url}" +# Extract icon / .desktop files if appimage +if printf '%s' "${_archive,,}" | grep -qi "appimage"; then + chmod +x "${_archive}" + "./${_archive}" --appimage-extract + cp "squashfs-root/${desktop}" "${newdesktop}" + cp "squashfs-root/${icon}" "${newicon}" + if [ -L "squashfs-root" ]; then + rm -rf $(readlink -f squashfs-root) squashfs-root + fi +fi +# Calculate checksums +sha256bin=$(sha256sum ${_archive} | awk '{print $1}') +if [ "${gui}" = "true" ]; then + sha256dsk=$(sha256sum ${newdesktop} | awk '{print $1}') + sha256ico=$(sha256sum ${newicon} | awk '{print $1}') +fi +# Yoink the archive - unnecessary anymore +rm -f ${_archive} + +# Update PKGBUILD with new values +sed -i -E "s/^pkgver=\"[^\"]+\"/pkgver=\"$pkgver\"/" PKGBUILD +if [ "${gui}" = "true" ]; then + sed -i '/^sha256sums=(/,/^)/c\ +sha256sums=(\ + "'"$sha256bin"'"\ + "'"$sha256dsk"'"\ + "'"$sha256ico"'"\ +)' PKGBUILD +else + sed -i -E "s/^sha256sums=\(\"[^\"]+\"\)/sha256sums=(\"$sha256bin\")/" PKGBUILD +fi +# Update .SRCINFO +makepkg --printsrcinfo > .SRCINFO + +# Create git message with correct variable +if [ -n "$_pkgname" ]; then + commit_msg="Updated ${pkgname//\$\{_pkgname\}/_pkgname} to ${pkgver}-${pkgrel}" +else + commit_msg="Updated ${pkgname} to ${pkgver}-${pkgrel}" +fi + +if [ -z "${NO_GIT_PUSH}" ]; then + # In case of fire, git commit, git push, leave building + git add . + git commit -m "Updated ${pkgname} to ${pkgver}-${pkgrel}" + git remote add aur ${aur_url} + git push origin main + git push aur main:master +fi