From c47a37d00bfcae77ddb622af168dffa5c2053ba8 Mon Sep 17 00:00:00 2001 From: "Peter H. Hoeg" Date: Sat, 7 Jun 2025 09:06:20 +0200 Subject: [PATCH] mediaelch: move to by-name and clean up --- .../me/mediaelch/package.nix} | 94 ++++++++++--------- pkgs/top-level/all-packages.nix | 5 +- 2 files changed, 53 insertions(+), 46 deletions(-) rename pkgs/{applications/misc/mediaelch/default.nix => by-name/me/mediaelch/package.nix} (50%) diff --git a/pkgs/applications/misc/mediaelch/default.nix b/pkgs/by-name/me/mediaelch/package.nix similarity index 50% rename from pkgs/applications/misc/mediaelch/default.nix rename to pkgs/by-name/me/mediaelch/package.nix index ab3efadfe3c7..e2c18c560f98 100644 --- a/pkgs/applications/misc/mediaelch/default.nix +++ b/pkgs/by-name/me/mediaelch/package.nix @@ -5,59 +5,33 @@ fetchpatch, cmake, - qttools, - wrapQtAppsHook, curl, ffmpeg, libmediainfo, libzen, - qt5compat ? null, # qt6 only - qtbase, - qtdeclarative, - qtmultimedia, - qtsvg, - qtwayland, - quazip, + libsForQt5, + qt6Packages, + + qtVersion ? 6, }: + let - qtVersion = lib.versions.major qtbase.version; + qt' = if qtVersion == 5 then libsForQt5 else qt6Packages; + in -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "mediaelch"; version = "2.12.0"; src = fetchFromGitHub { owner = "Komet"; repo = "MediaElch"; - rev = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-m2d4lnyD8HhhqovMdeG36dMK+4kJA7rlPHE2tlhfevo="; fetchSubmodules = true; }; - nativeBuildInputs = [ - cmake - qttools - wrapQtAppsHook - ]; - - buildInputs = - [ - curl - ffmpeg - libmediainfo - libzen - qtbase - qtdeclarative - qtmultimedia - qtsvg - qtwayland - quazip - ] - ++ lib.optionals (qtVersion == "6") [ - qt5compat - ]; - patches = [ # fix from: https://github.com/Komet/MediaElch/pull/1878 (fetchpatch { @@ -66,10 +40,34 @@ stdenv.mkDerivation rec { }) ]; + nativeBuildInputs = [ + cmake + qt'.qttools + qt'.wrapQtAppsHook + ]; + + buildInputs = + [ + curl + ffmpeg + libmediainfo + libzen + qt'.qtbase + qt'.qtdeclarative + qt'.qtmultimedia + qt'.qtsvg + qt'.qtwayland + qt'.quazip + ] + ++ lib.optionals (qtVersion == 6) [ + qt'.qt5compat + ]; + cmakeFlags = [ - "-DDISABLE_UPDATER=ON" - "-DUSE_EXTERN_QUAZIP=ON" - "-DMEDIAELCH_FORCE_QT${qtVersion}=ON" + (lib.cmakeBool "DISABLE_UPDATER" true) + (lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck or false) + (lib.cmakeBool "MEDIAELCH_FORCE_QT${toString qtVersion}" true) + (lib.cmakeBool "USE_EXTERN_QUAZIP" true) ]; # libmediainfo.so.0 is loaded dynamically @@ -77,12 +75,22 @@ stdenv.mkDerivation rec { "--prefix LD_LIBRARY_PATH : ${libmediainfo}/lib" ]; - meta = with lib; { + env = { + HOME = "/tmp"; # for the font cache + LANG = "C.UTF-8"; + QT_QPA_PLATFORM = "offscreen"; # the tests require a UI + }; + + doCheck = true; + + checkTarget = "unit_test"; # the other tests require network connectivity + + meta = { homepage = "https://mediaelch.de/mediaelch/"; description = "Media Manager for Kodi"; mainProgram = "MediaElch"; - license = licenses.lgpl3Only; - maintainers = with maintainers; [ stunkymonkey ]; - platforms = platforms.linux; + license = lib.licenses.lgpl3Only; + maintainers = with lib.maintainers; [ stunkymonkey ]; + platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 91e9769d22e0..de1dc70e210b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13249,9 +13249,8 @@ with pkgs; mbrola-voices = callPackage ../applications/audio/mbrola/voices.nix { }; - mediaelch = mediaelch-qt5; - mediaelch-qt5 = libsForQt5.callPackage ../applications/misc/mediaelch { }; - mediaelch-qt6 = qt6Packages.callPackage ../applications/misc/mediaelch { }; + mediaelch-qt5 = callPackage ../by-name/me/mediaelch/package.nix { qtVersion = 5; }; + mediaelch-qt6 = mediaelch; melmatcheq.lv2 = callPackage ../applications/audio/melmatcheq.lv2 { };