diff --git a/pkgs/by-name/pa/parabolic/package.nix b/pkgs/by-name/pa/parabolic/package.nix index 4185627fbdd9..12ae8ffefb93 100644 --- a/pkgs/by-name/pa/parabolic/package.nix +++ b/pkgs/by-name/pa/parabolic/package.nix @@ -18,29 +18,21 @@ wrapGAppsHook4, libxmlxx5, blueprint-compiler, - qt6, - qlementine, - qlementine-icons, yt-dlp, ffmpeg, aria2, nix-update-script, - uiPlatform ? "gnome", }: -assert lib.assertOneOf "uiPlatform" uiPlatform [ - "gnome" - "qt" -]; stdenv.mkDerivation (finalAttrs: { pname = "parabolic"; - version = "2025.6.0"; + version = "2025.8.1"; src = fetchFromGitHub { owner = "NickvisionApps"; repo = "Parabolic"; tag = finalAttrs.version; - hash = "sha256-Osfj/GaD4t85ZYnlFDqgHhLJLA8VvgqtHEJN8bn0SxI="; + hash = "sha256-Xft9yqkJzWu4eGPDtRl4tV4594HjJp17Osnv0kG0IMk="; }; # Patches desktop file/dbus service bypassing wrapped executable @@ -52,6 +44,13 @@ stdenv.mkDerivation (finalAttrs: { substituteInPlace "resources/linux/org.nickvision.tubeconverter.service.in" \ --replace-fail "@CMAKE_INSTALL_FULL_LIBDIR@/@PROJECT_NAME@/@OUTPUT_NAME@" \ "@CMAKE_INSTALL_FULL_BINDIR@/@PROJECT_NAME@" + '' + # Ensure that users are not downloading vendored versions of yt-dlp + # outside of nixpkgs + + '' + substituteInPlace "libparabolic/src/models/downloadmanager.cpp" \ + --replace-fail "m_ytdlpManager.checkForUpdates();" \ + "" ''; nativeBuildInputs = [ @@ -62,66 +61,39 @@ stdenv.mkDerivation (finalAttrs: { itstool yelp-tools desktop-file-utils - ] - ++ lib.optionals (uiPlatform == "gnome") [ wrapGAppsHook4 blueprint-compiler glib shared-mime-info - ] - ++ lib.optional (uiPlatform == "qt") qt6.wrapQtAppsHook; + ]; buildInputs = [ libnick boost - ] - ++ lib.optionals (uiPlatform == "qt") [ - qt6.qtbase - qt6.qtsvg - qlementine - qlementine-icons - ] - ++ lib.optionals (uiPlatform == "gnome") [ glib gtk4 libadwaita libxmlxx5 ]; - cmakeFlags = [ - (lib.cmakeFeature "UI_PLATFORM" uiPlatform) - ]; - - dontWrapGApps = true; - dontWrapQtApps = true; - - preFixup = - lib.optionalString (uiPlatform == "gnome") '' - makeWrapperArgs+=("''${gappsWrapperArgs[@]}") - '' - + lib.optionalString (uiPlatform == "qt") '' - makeWrapperArgs+=("''${qtWrapperArgs[@]}") - '' - + '' - makeWrapperArgs+=(--prefix PATH : ${ - lib.makeBinPath [ - aria2 - ffmpeg - yt-dlp - ] - }) - - wrapProgram $out/bin/org.nickvision.tubeconverter \ - ''${makeWrapperArgs[@]} - ''; + preFixup = '' + gappsWrapperArgs+=(--prefix PATH : ${ + lib.makeBinPath [ + aria2 + ffmpeg + yt-dlp + ] + }) + ''; passthru.updateScript = nix-update-script { }; 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: + Parabolic is a user-friendly adwaita application for `yt-dlp` + that supports many features including but not limited to: + - Downloading and converting videos and audio using ffmpeg. - Supporting multiple codecs. - Offering YouTube sponsorblock support. @@ -129,11 +101,6 @@ stdenv.mkDerivation (finalAttrs: { - 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. - - 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 = lib.licenses.gpl3Plus;