From bf730a47d46e9058a4fb72aa0cfb578162f2b466 Mon Sep 17 00:00:00 2001 From: normalc Date: Fri, 31 Jan 2025 09:41:34 -0500 Subject: [PATCH] parabolic: 2024.5.0 -> 2025.1.4 --- pkgs/by-name/pa/parabolic/deps.json | 237 -------------------------- pkgs/by-name/pa/parabolic/package.nix | 161 ++++++++++------- pkgs/by-name/pa/parabolic/update.sh | 18 -- 3 files changed, 102 insertions(+), 314 deletions(-) delete mode 100644 pkgs/by-name/pa/parabolic/deps.json delete mode 100755 pkgs/by-name/pa/parabolic/update.sh diff --git a/pkgs/by-name/pa/parabolic/deps.json b/pkgs/by-name/pa/parabolic/deps.json deleted file mode 100644 index 3bdb9a2e2489..000000000000 --- a/pkgs/by-name/pa/parabolic/deps.json +++ /dev/null @@ -1,237 +0,0 @@ -[ - { - "pname": "Ace4896.DBus.Services.Secrets", - "version": "1.2.0", - "sha256": "1i1rwv8z2dx0mjib7vair2w7ylngmrcpbd012sdlpvdjpx0af0bn" - }, - { - "pname": "Cake.Tool", - "version": "4.0.0", - "sha256": "11vc5fimi6w465081sqxs4zhw7grr6v8ga7nl1mscdl43wv33ql2" - }, - { - "pname": "GetText.NET", - "version": "1.9.14", - "sha256": "18z4cf0dldcf41z8xgj3gdlvj9w5a9ikgj72623r0i740ndnl094" - }, - { - "pname": "GirCore.Adw-1", - "version": "0.5.0", - "sha256": "130jwgkkphyhsk0c14kqmznx9ywfhiwa37lzjn2qgr68akgd3xd9" - }, - { - "pname": "GirCore.Cairo-1.0", - "version": "0.5.0", - "sha256": "1x9d3jzzpf72gzxq6qf02ih2x79y9m5zqc874drl5wc8p1qbryzn" - }, - { - "pname": "GirCore.FreeType2-2.0", - "version": "0.5.0", - "sha256": "1688rn8dycqcslfk850w8w2pbs4b93nmj1xa6g4n6ncy799780cy" - }, - { - "pname": "GirCore.Gdk-4.0", - "version": "0.5.0", - "sha256": "1v2nl9gh941lqzfvryslhgsx9nwaf91q131xrpilrmk18xn3hpd6" - }, - { - "pname": "GirCore.GdkPixbuf-2.0", - "version": "0.5.0", - "sha256": "0gbmckch435s2fxpxzqjwckfsxqsidv1nz3wil3v1a2iqvk3imnr" - }, - { - "pname": "GirCore.Gio-2.0", - "version": "0.5.0", - "sha256": "1yx23jcyy7pzjkbcf0v0s4nw1n51rcaxf8dg7zqfzhvg9f0k2iwl" - }, - { - "pname": "GirCore.GLib-2.0", - "version": "0.5.0", - "sha256": "169y390cgda0ps60g2j6vf5bkr6bfmxvgzga8k697bsl3dfzkkvv" - }, - { - "pname": "GirCore.GObject-2.0", - "version": "0.5.0", - "sha256": "1w35a1kmn0ggnlwcsib9m4427299f9ylm7xkm69yzswdwzrfv1kj" - }, - { - "pname": "GirCore.Graphene-1.0", - "version": "0.5.0", - "sha256": "16y836gzn9ah963lhg533hik8wh984j33gc60kzn8nziwxl6jplq" - }, - { - "pname": "GirCore.Gsk-4.0", - "version": "0.5.0", - "sha256": "152c839l1lv6qc8pccmkzm72sfh45n9qpyyarxvllnn0lzhd50lf" - }, - { - "pname": "GirCore.Gtk-4.0", - "version": "0.5.0", - "sha256": "0lj69qx9ksz9w94j4ryy8hr0ja60ijvx8wpr4l1i7ic01gsyxprc" - }, - { - "pname": "GirCore.HarfBuzz-0.0", - "version": "0.5.0", - "sha256": "0cnic254jwkndcdg51wvi1vvh4f947ylwg63ag428gfbmx0684c4" - }, - { - "pname": "GirCore.Pango-1.0", - "version": "0.5.0", - "sha256": "0p4ks9yk3d8pl9c58zc1ncdzw45fkkmgpwn29vj1wax73iml1k79" - }, - { - "pname": "GirCore.PangoCairo-1.0", - "version": "0.5.0", - "sha256": "0j532ixh9adk2gwg55w81m5hwy0c6a3307jr4157pbjg2qm1x4mn" - }, - { - "pname": "Markdig", - "version": "0.33.0", - "sha256": "1dj06wgdqmjji4nfr1dysz7hwp5bjgsrk9qjkdq82d7gk6nmhs9r" - }, - { - "pname": "Meziantou.Framework.Win32.CredentialManager", - "version": "1.4.5", - "sha256": "1ikjxj6wir2jcjwlmd4q7zz0b4g40808gx59alvad31sb2aqp738" - }, - { - "pname": "Microsoft.CSharp", - "version": "4.7.0", - "sha256": "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j" - }, - { - "pname": "Microsoft.Data.Sqlite.Core", - "version": "8.0.0", - "sha256": "05qjnzk1fxybks92y93487l3mj5nghjcwiy360xjgk3jykz3rv39" - }, - { - "pname": "Microsoft.NETCore.Platforms", - "version": "1.1.0", - "sha256": "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm" - }, - { - "pname": "Microsoft.NETCore.Targets", - "version": "5.0.0", - "sha256": "0z3qyv7qal5irvabc8lmkh58zsl42mrzd1i0sssvzhv4q4kl3cg6" - }, - { - "pname": "Microsoft.Win32.SystemEvents", - "version": "8.0.0", - "sha256": "05392f41ijgn17y8pbjcx535l1k09krnq3xdp60kyq568sn6xk2i" - }, - { - "pname": "Nickvision.Aura", - "version": "2023.11.4", - "sha256": "0gasyglp1pgi0s6zqzmbm603j3j36vvr68grv6g93fdj2vjlmkxs" - }, - { - "pname": "Octokit", - "version": "9.0.0", - "sha256": "0kw49w1hxk4d2x9598012z9q1yr3ml5rm06fy1jnmhy44s3d3jp5" - }, - { - "pname": "pythonnet", - "version": "3.0.3", - "sha256": "0qnivddg13vi1fb22z3krsj1gczyyfd56nmk6gas6qrwlxdzhriv" - }, - { - "pname": "SQLitePCLRaw.bundle_e_sqlcipher", - "version": "2.1.6", - "sha256": "15v2x7y4k7cl47a9jccbvgbwngwi5dz6qhv0cxpcasx4v5i9aila" - }, - { - "pname": "SQLitePCLRaw.core", - "version": "2.1.6", - "sha256": "1w8zsgz2w2q0a9cw9cl1rzrpv48a04nhyq67ywan6xlgknds65a7" - }, - { - "pname": "SQLitePCLRaw.lib.e_sqlcipher", - "version": "2.1.6", - "sha256": "0dl5an15whs4yl5hm2wibzbfigzck0flah8a07k99y1bhbmv080z" - }, - { - "pname": "SQLitePCLRaw.provider.e_sqlcipher", - "version": "2.1.6", - "sha256": "1jx8d4dq5w2951b7w722gnxbfgdklwazc48kcbdzylkglwkrqgrq" - }, - { - "pname": "System.CodeDom", - "version": "8.0.0", - "sha256": "0zyzd15v0nf8gla7nz243m1kff8ia6vqp471i3g7xgawgj5n21dv" - }, - { - "pname": "System.Drawing.Common", - "version": "8.0.0", - "sha256": "1j4rsm36bnwqmh5br9mzmj0ikjnc39k26q6l9skjlrnw8hlngwy4" - }, - { - "pname": "System.IO", - "version": "4.3.0", - "sha256": "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f" - }, - { - "pname": "System.IO.Pipelines", - "version": "6.0.0", - "sha256": "08211lvckdsdbd67xz4f6cyk76cli565j0dby1grlc4k9bhwby65" - }, - { - "pname": "System.Management", - "version": "8.0.0", - "sha256": "1zbwj6ii8axa4w8ymjzi9d9pj28nhswygahyqppvzaxypw6my2hz" - }, - { - "pname": "System.Memory", - "version": "4.5.3", - "sha256": "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a" - }, - { - "pname": "System.Memory", - "version": "4.5.5", - "sha256": "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h" - }, - { - "pname": "System.Reflection", - "version": "4.3.0", - "sha256": "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m" - }, - { - "pname": "System.Reflection.Emit", - "version": "4.3.0", - "sha256": "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74" - }, - { - "pname": "System.Reflection.Emit.ILGeneration", - "version": "4.3.0", - "sha256": "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q" - }, - { - "pname": "System.Reflection.Primitives", - "version": "4.3.0", - "sha256": "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276" - }, - { - "pname": "System.Runtime", - "version": "4.3.0", - "sha256": "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7" - }, - { - "pname": "System.Text.Encoding", - "version": "4.3.0", - "sha256": "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr" - }, - { - "pname": "System.Threading.Tasks", - "version": "4.3.0", - "sha256": "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7" - }, - { - "pname": "Tmds.DBus", - "version": "0.15.0", - "sha256": "1bz5j6wfp9hn4fg5vjxl6mr9lva4gx6zqncqyqxrcb8lw7hvhwc6" - }, - { - "pname": "Tmds.DBus.Protocol", - "version": "0.15.0", - "sha256": "0d99kcs7r9cp6gpyc7z230czkkyx4164x86dhy0mca73f2ykc2g2" - } -] diff --git a/pkgs/by-name/pa/parabolic/package.nix b/pkgs/by-name/pa/parabolic/package.nix index 21f6dbe6d38b..308f508604d9 100644 --- a/pkgs/by-name/pa/parabolic/package.nix +++ b/pkgs/by-name/pa/parabolic/package.nix @@ -1,77 +1,120 @@ -{ lib -, buildDotnetModule -, fetchFromGitHub -, dotnetCorePackages -, gtk4 -, libadwaita -, pkg-config -, wrapGAppsHook4 -, glib -, shared-mime-info -, gdk-pixbuf -, blueprint-compiler -, python3 -, ffmpeg +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + gettext, + itstool, + ninja, + yelp-tools, + pkg-config, + libnick, + boost, + glib, + shared-mime-info, + gtk4, + libadwaita, + wrapGAppsHook4, + libxmlxx5, + blueprint-compiler, + qt6, + yt-dlp, + ffmpeg, + aria2, + nix-update-script, + uiPlatform ? "gnome", }: +assert lib.assertOneOf "uiPlatform" uiPlatform [ + "gnome" + "qt" +]; -buildDotnetModule rec { +stdenv.mkDerivation (finalAttrs: { pname = "parabolic"; - version = "2024.5.0"; + version = "2025.1.4"; src = fetchFromGitHub { owner = "NickvisionApps"; repo = "Parabolic"; - rev = version; - hash = "sha256-awbCn7W7RUSuEByXxLGrsmYjmxCrwywhhrMJq/iM1Uc="; - fetchSubmodules = true; + tag = "${finalAttrs.version}"; + hash = "sha256-B8/e5urhy5tAgHNd/PR3HlNQd0M0CxgC56nArFGlQ9c="; }; - dotnet-sdk = dotnetCorePackages.sdk_8_0; - dotnet-runtime = dotnetCorePackages.runtime_8_0; - pythonEnv = python3.withPackages(ps: with ps; [ yt-dlp ]); + nativeBuildInputs = + [ + cmake + gettext + ninja + pkg-config + itstool + yelp-tools + ] + ++ lib.optionals (uiPlatform == "gnome") [ + wrapGAppsHook4 + blueprint-compiler + glib + shared-mime-info + ] + ++ lib.optional (uiPlatform == "qt") qt6.wrapQtAppsHook; - projectFile = "NickvisionTubeConverter.GNOME/NickvisionTubeConverter.GNOME.csproj"; - nugetDeps = ./deps.json; - executables = "NickvisionTubeConverter.GNOME"; + buildInputs = + [ + libnick + boost + ] + ++ lib.optionals (uiPlatform == "qt") [ + qt6.qtbase + qt6.qtsvg + ] + ++ lib.optionals (uiPlatform == "gnome") [ + glib + gtk4 + libadwaita + libxmlxx5 + ]; - nativeBuildInputs = [ - pkg-config - wrapGAppsHook4 - glib - shared-mime-info - gdk-pixbuf - blueprint-compiler + cmakeFlags = [ + (lib.cmakeFeature "UI_PLATFORM" uiPlatform) ]; - buildInputs = [ gtk4 libadwaita ]; + preFixup = + lib.optionalString (uiPlatform == "gnome") "gappsWrapperArgs" + + lib.optionalString (uiPlatform == "qt") "qtWrapperArgs" + + "+=(--prefix PATH : ${ + lib.makeBinPath [ + aria2 + ffmpeg + yt-dlp + ] + })"; - runtimeDeps = [ - gtk4 - libadwaita - glib - gdk-pixbuf - ]; + passthru.updateScript = nix-update-script { }; - postPatch = '' - substituteInPlace NickvisionTubeConverter.Shared/Linux/org.nickvision.tubeconverter.desktop.in --replace '@EXEC@' "NickvisionTubeConverter.GNOME" - ''; + meta = { + description = "Graphical frontend for yt-dlp to download video and audio"; + longDescription = '' + Parabolic is a user-friendly frontend for `yt-dlp` that supports + many features including but limited to: + - Downloading and converting videos and audio using ffmpeg. + - Supporting multiple codecs. + - Offering YouTube sponsorblock support. + - Running multiple downloads at a time. + - Downloading metadata and video subtitles. + - Allowing the use of `aria2` for parallel downloads. + - Offering a graphical keyring to manage account credentials. + - Being available as both a Qt and GNOME application. - postInstall = '' - install -Dm444 NickvisionTubeConverter.Shared/Resources/org.nickvision.tubeconverter.svg -t $out/share/icons/hicolor/scalable/apps/ - install -Dm444 NickvisionTubeConverter.Shared/Resources/org.nickvision.tubeconverter-symbolic.svg -t $out/share/icons/hicolor/symbolic/apps/ - install -Dm444 NickvisionTubeConverter.Shared/Linux/org.nickvision.tubeconverter.desktop.in -T $out/share/applications/org.nickvision.tubeconverter.desktop - ''; - - makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ pythonEnv ffmpeg ]}" ]; - - passthru.updateScript = ./update.sh; - - meta = with lib; { - description = "Download web video and audio"; + By default, the GNOME interface is used, but the Qt interface + can be built by overriding the `uiPlatform` argument to `"qt"` + over the default value `"gnome"`. + ''; homepage = "https://github.com/NickvisionApps/Parabolic"; - license = licenses.mit; - maintainers = with maintainers; [ ewuuwe ]; - mainProgram = "NickvisionTubeConverter.GNOME"; - platforms = platforms.linux; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ + normalcea + getchoo + ]; + mainProgram = "org.nickvision.tubeconverter"; + platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/by-name/pa/parabolic/update.sh b/pkgs/by-name/pa/parabolic/update.sh deleted file mode 100755 index 798dba869403..000000000000 --- a/pkgs/by-name/pa/parabolic/update.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -I nixpkgs=./. -i bash -p curl jq common-updater-scripts -#shellcheck shell=bash - -set -eu -o pipefail - -version=$(curl -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \ - https://api.github.com/repos/NickvisionApps/Parabolic/releases/latest | jq -e -r .tag_name) -old_version=$(nix-instantiate --eval -A parabolic.version | jq -e -r) - -if [[ $version == "$old_version" ]]; then - echo "New version same as old version, nothing to do." >&2 - exit 0 -fi - -update-source-version parabolic "$version" - -$(nix-build -A parabolic.fetch-deps --no-out-link) "$(dirname -- "${BASH_SOURCE[0]}")/deps.nix"