From 7f0d206fceced603292e4a19d5a68386f6232121 Mon Sep 17 00:00:00 2001 From: ewuuwe Date: Sat, 6 Jan 2024 14:33:50 +0100 Subject: [PATCH] parabolic: init at 2023.12.0 --- pkgs/by-name/pa/parabolic/deps.nix | 52 ++++++++++++++++++ pkgs/by-name/pa/parabolic/package.nix | 77 +++++++++++++++++++++++++++ pkgs/by-name/pa/parabolic/update.sh | 18 +++++++ 3 files changed, 147 insertions(+) create mode 100644 pkgs/by-name/pa/parabolic/deps.nix create mode 100644 pkgs/by-name/pa/parabolic/package.nix create mode 100755 pkgs/by-name/pa/parabolic/update.sh diff --git a/pkgs/by-name/pa/parabolic/deps.nix b/pkgs/by-name/pa/parabolic/deps.nix new file mode 100644 index 000000000000..898fd49dac40 --- /dev/null +++ b/pkgs/by-name/pa/parabolic/deps.nix @@ -0,0 +1,52 @@ +# This file was automatically generated by passthru.fetch-deps. +# Please dont edit it manually, your changes might get overwritten! + +{ fetchNuGet }: [ + (fetchNuGet { pname = "Ace4896.DBus.Services.Secrets"; version = "1.2.0"; sha256 = "1i1rwv8z2dx0mjib7vair2w7ylngmrcpbd012sdlpvdjpx0af0bn"; }) + (fetchNuGet { pname = "Cake.Tool"; version = "4.0.0"; sha256 = "11vc5fimi6w465081sqxs4zhw7grr6v8ga7nl1mscdl43wv33ql2"; }) + (fetchNuGet { pname = "GetText.NET"; version = "1.9.14"; sha256 = "18z4cf0dldcf41z8xgj3gdlvj9w5a9ikgj72623r0i740ndnl094"; }) + (fetchNuGet { pname = "GirCore.Adw-1"; version = "0.5.0-preview.3"; sha256 = "090kg5v99myd7hi49cz933cl36hk5n586ywy78gf5djn5im3v19l"; }) + (fetchNuGet { pname = "GirCore.Cairo-1.0"; version = "0.5.0-preview.3"; sha256 = "0bh1h2hr6givrq6096bvzcsg4lab1hlm7r7h4bqifbw0zmmcfb7k"; }) + (fetchNuGet { pname = "GirCore.FreeType2-2.0"; version = "0.5.0-preview.3"; sha256 = "194p44gd7r69x70j3qynv5v8awlyxmdazmzpwzgj5ayy2xpdk3hy"; }) + (fetchNuGet { pname = "GirCore.Gdk-4.0"; version = "0.5.0-preview.3"; sha256 = "09p097nvs7vi7l14l024m39qyhg1gyqihanq7zv66xqys4hzim1g"; }) + (fetchNuGet { pname = "GirCore.GdkPixbuf-2.0"; version = "0.5.0-preview.3"; sha256 = "0lspyra1g1rd8hj3f3daxspin5dhgplzgjh4jwhlgzzn648942j0"; }) + (fetchNuGet { pname = "GirCore.Gio-2.0"; version = "0.5.0-preview.3"; sha256 = "090svrddgpliks5r29yncih3572w7gdc552nl16qbviqbmhr0lbs"; }) + (fetchNuGet { pname = "GirCore.GLib-2.0"; version = "0.5.0-preview.3"; sha256 = "1wxwf24gabd69yxpnhv30rn7pcv49w885jdw3nqbrakl7pvv9fza"; }) + (fetchNuGet { pname = "GirCore.GObject-2.0"; version = "0.5.0-preview.3"; sha256 = "0iajydyx79f3khx0fhv8izbxlzxwn6gpps2xzmi9c4v98ly221j3"; }) + (fetchNuGet { pname = "GirCore.Graphene-1.0"; version = "0.5.0-preview.3"; sha256 = "114fbgxils50jdy891nwj70yr43lnwgbq9fzxqzywd1kk70k7mww"; }) + (fetchNuGet { pname = "GirCore.Gsk-4.0"; version = "0.5.0-preview.3"; sha256 = "0f5s6f6pwc9vc3nm7xfaa06z2klgpg4rv5cdf0cwis3vlncd7dnj"; }) + (fetchNuGet { pname = "GirCore.Gtk-4.0"; version = "0.5.0-preview.3"; sha256 = "1fn0b8lwlrmjm9phjq4amqnq3q70fl214115652cap5rz4rjmpgg"; }) + (fetchNuGet { pname = "GirCore.HarfBuzz-0.0"; version = "0.5.0-preview.3"; sha256 = "0xska2l44l0j38mlgmrwly1qal9wzbv2w2jjj8gn90sxbygb8zky"; }) + (fetchNuGet { pname = "GirCore.Pango-1.0"; version = "0.5.0-preview.3"; sha256 = "0ccw3bd3kl24mnxbjzhya11i0ln6g1g7q876pyy54cwh48x4mdia"; }) + (fetchNuGet { pname = "GirCore.PangoCairo-1.0"; version = "0.5.0-preview.3"; sha256 = "0lds340p5cci7sjp58nh94jxkjvzfky9cbs2h4q98hglxndjm7r9"; }) + (fetchNuGet { pname = "Markdig"; version = "0.33.0"; sha256 = "1dj06wgdqmjji4nfr1dysz7hwp5bjgsrk9qjkdq82d7gk6nmhs9r"; }) + (fetchNuGet { pname = "Meziantou.Framework.Win32.CredentialManager"; version = "1.4.5"; sha256 = "1ikjxj6wir2jcjwlmd4q7zz0b4g40808gx59alvad31sb2aqp738"; }) + (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; }) + (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "8.0.0"; sha256 = "05qjnzk1fxybks92y93487l3mj5nghjcwiy360xjgk3jykz3rv39"; }) + (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; }) + (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "5.0.0"; sha256 = "0z3qyv7qal5irvabc8lmkh58zsl42mrzd1i0sssvzhv4q4kl3cg6"; }) + (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "8.0.0"; sha256 = "05392f41ijgn17y8pbjcx535l1k09krnq3xdp60kyq568sn6xk2i"; }) + (fetchNuGet { pname = "Nickvision.Aura"; version = "2023.11.4"; sha256 = "0gasyglp1pgi0s6zqzmbm603j3j36vvr68grv6g93fdj2vjlmkxs"; }) + (fetchNuGet { pname = "Octokit"; version = "9.0.0"; sha256 = "0kw49w1hxk4d2x9598012z9q1yr3ml5rm06fy1jnmhy44s3d3jp5"; }) + (fetchNuGet { pname = "pythonnet"; version = "3.0.3"; sha256 = "0qnivddg13vi1fb22z3krsj1gczyyfd56nmk6gas6qrwlxdzhriv"; }) + (fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlcipher"; version = "2.1.6"; sha256 = "15v2x7y4k7cl47a9jccbvgbwngwi5dz6qhv0cxpcasx4v5i9aila"; }) + (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.1.6"; sha256 = "1w8zsgz2w2q0a9cw9cl1rzrpv48a04nhyq67ywan6xlgknds65a7"; }) + (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlcipher"; version = "2.1.6"; sha256 = "0dl5an15whs4yl5hm2wibzbfigzck0flah8a07k99y1bhbmv080z"; }) + (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlcipher"; version = "2.1.6"; sha256 = "1jx8d4dq5w2951b7w722gnxbfgdklwazc48kcbdzylkglwkrqgrq"; }) + (fetchNuGet { pname = "System.CodeDom"; version = "8.0.0"; sha256 = "0zyzd15v0nf8gla7nz243m1kff8ia6vqp471i3g7xgawgj5n21dv"; }) + (fetchNuGet { pname = "System.Drawing.Common"; version = "8.0.0"; sha256 = "1j4rsm36bnwqmh5br9mzmj0ikjnc39k26q6l9skjlrnw8hlngwy4"; }) + (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; }) + (fetchNuGet { pname = "System.IO.Pipelines"; version = "6.0.0"; sha256 = "08211lvckdsdbd67xz4f6cyk76cli565j0dby1grlc4k9bhwby65"; }) + (fetchNuGet { pname = "System.Management"; version = "8.0.0"; sha256 = "1zbwj6ii8axa4w8ymjzi9d9pj28nhswygahyqppvzaxypw6my2hz"; }) + (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; }) + (fetchNuGet { pname = "System.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; }) + (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; }) + (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; }) + (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; }) + (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; }) + (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; }) + (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; }) + (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; }) + (fetchNuGet { pname = "Tmds.DBus"; version = "0.15.0"; sha256 = "1bz5j6wfp9hn4fg5vjxl6mr9lva4gx6zqncqyqxrcb8lw7hvhwc6"; }) + (fetchNuGet { 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 new file mode 100644 index 000000000000..397bc3004a45 --- /dev/null +++ b/pkgs/by-name/pa/parabolic/package.nix @@ -0,0 +1,77 @@ +{ lib +, buildDotnetModule +, fetchFromGitHub +, dotnetCorePackages +, gtk4 +, libadwaita +, pkg-config +, wrapGAppsHook4 +, glib +, shared-mime-info +, gdk-pixbuf +, blueprint-compiler +, python3 +, ffmpeg +}: + +buildDotnetModule rec { + pname = "parabolic"; + version = "2023.12.0"; + + src = fetchFromGitHub { + owner = "NickvisionApps"; + repo = "Parabolic"; + rev = version; + hash = "sha256-mbGByw/wgovo81l2LDtDE5p+Mh6aJ5DOcZCNzVfmAtA="; + fetchSubmodules = true; + }; + + dotnet-sdk = dotnetCorePackages.sdk_8_0; + dotnet-runtime = dotnetCorePackages.runtime_8_0; + pythonEnv = python3.withPackages(ps: with ps; [ yt-dlp ]); + + projectFile = "NickvisionTubeConverter.GNOME/NickvisionTubeConverter.GNOME.csproj"; + nugetDeps = ./deps.nix; + executables = "NickvisionTubeConverter.GNOME"; + + nativeBuildInputs = [ + pkg-config + wrapGAppsHook4 + glib + shared-mime-info + gdk-pixbuf + blueprint-compiler + ]; + + buildInputs = [ gtk4 libadwaita ]; + + runtimeDeps = [ + gtk4 + libadwaita + glib + gdk-pixbuf + ]; + + postPatch = '' + substituteInPlace NickvisionTubeConverter.Shared/Linux/org.nickvision.tubeconverter.desktop.in --replace '@EXEC@' "NickvisionTubeConverter.GNOME" + ''; + + 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"; + homepage = "https://github.com/NickvisionApps/Parabolic"; + license = licenses.mit; + maintainers = with maintainers; [ ewuuwe ]; + mainProgram = "parabolic"; + platforms = platforms.linux; + }; +} diff --git a/pkgs/by-name/pa/parabolic/update.sh b/pkgs/by-name/pa/parabolic/update.sh new file mode 100755 index 000000000000..798dba869403 --- /dev/null +++ b/pkgs/by-name/pa/parabolic/update.sh @@ -0,0 +1,18 @@ +#!/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"