Unverified Commit a31403a8 authored by Sandro Jäckel's avatar Sandro Jäckel Committed by GitHub
Browse files

parabolic: 2025.6.0 → 2025.8.1 (#430728)

parents accbc4f5 32bf2f31
Loading
Loading
Loading
Loading
+6 −13
Original line number Diff line number Diff line
{
  lib,
  stdenvNoCC,
  stdenv,
  fetchFromGitHub,
  cmake,
  nix-update-script,
}:

stdenvNoCC.mkDerivation (finalAttrs: {
stdenv.mkDerivation (finalAttrs: {
  pname = "libmaddy-markdown";
  version = "1.6.0";

@@ -16,17 +17,9 @@ stdenvNoCC.mkDerivation (finalAttrs: {
    hash = "sha256-WMueY199ngw9BtHSY8zypfPZjWaQsSLUx8FDfQbBt5g=";
  };

  dontBuild = true;
  dontConfigure = true;

  installPhase = ''
    runHook preInstall

    mkdir -p $out/include/maddy
    install -Dm444 include/maddy/* -t $out/include/maddy

    runHook postInstall
  '';
  nativeBuildInputs = [
    cmake
  ];

  passthru.updateScript = nix-update-script { };

+7 −5
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@
  openssl,
  sqlcipher,
  boost,
  cpr,
  curl,
  glib,
  libsecret,
@@ -19,13 +20,13 @@

stdenv.mkDerivation (finalAttrs: {
  pname = "libnick";
  version = "2025.6.1";
  version = "2025.8.0";

  src = fetchFromGitHub {
    owner = "NickvisionApps";
    repo = "libnick";
    tag = finalAttrs.version;
    hash = "sha256-Ir2Jke1zK4pKldQJHaT0Ju0ubz7H6nx16hDNl6u48Ck=";
    hash = "sha256-LgvU5a3W5Oii6pRAAKZo28yOyPRUMjxwEXDZ2jXJPGM=";
  };

  nativeBuildInputs = [
@@ -39,17 +40,18 @@ stdenv.mkDerivation (finalAttrs: {

  buildInputs = [
    boost
    libmaddy-markdown
  ]
  ++ lib.optionals stdenv.hostPlatform.isUnix [
    glib
    openssl
  ]
  ++ lib.optional stdenv.hostPlatform.isWindows sqlcipher;
  ];

  propagatedBuildInputs = [
    curl
    cpr
    libsecret
    libmaddy-markdown
    sqlcipher
  ];

  cmakeFlags = [
+22 −55
Original line number Diff line number Diff line
@@ -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,57 +61,29 @@ 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 : ${
  preFixup = ''
    gappsWrapperArgs+=(--prefix PATH : ${
      lib.makeBinPath [
        aria2
        ffmpeg
        yt-dlp
      ]
    })

      wrapProgram $out/bin/org.nickvision.tubeconverter \
        ''${makeWrapperArgs[@]}
  '';

  passthru.updateScript = nix-update-script { };
@@ -120,8 +91,9 @@ stdenv.mkDerivation (finalAttrs: {
  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;