parabolic: 2024.5.0 -> 2025.1.4

This commit is contained in:
normalc
2025-02-02 17:15:58 -05:00
parent c823d3ae1a
commit bf730a47d4
3 changed files with 102 additions and 314 deletions
-237
View File
@@ -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"
}
]
+102 -59
View File
@@ -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;
};
}
})
-18
View File
@@ -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"