From a753044e5f7f7f9cd61f0b1b829e26e2d8aa1b44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berk=20=C3=96zk=C3=BCt=C3=BCk?= Date: Fri, 25 Apr 2025 20:23:37 +0200 Subject: [PATCH] rockbox-utility: 1.4.1 -> 1.5.1 --- pkgs/by-name/ro/rockbox-utility/package.nix | 37 ++++++------------- .../rockbox-utility-fix-cmake.patch | 33 +++++++++++++++++ 2 files changed, 44 insertions(+), 26 deletions(-) create mode 100644 pkgs/by-name/ro/rockbox-utility/rockbox-utility-fix-cmake.patch diff --git a/pkgs/by-name/ro/rockbox-utility/package.nix b/pkgs/by-name/ro/rockbox-utility/package.nix index 06cd261b2f88..644cff5ed85a 100644 --- a/pkgs/by-name/ro/rockbox-utility/package.nix +++ b/pkgs/by-name/ro/rockbox-utility/package.nix @@ -7,23 +7,24 @@ makeWrapper, pkg-config, qt5, + cmake, withEspeak ? false, espeak ? null, }: stdenv.mkDerivation rec { pname = "rockbox-utility"; - version = "1.4.1"; + version = "1.5.1"; src = fetchurl { url = "https://download.rockbox.org/rbutil/source/RockboxUtility-v${version}-src.tar.bz2"; - hash = "sha256-PhlJ+fNY4/Qjoc72zV9WO+kNqF5bZQuwOh4EpAJwqX4="; + hash = "sha256-guNO11a0d30RexPEAAQGIgV9W17zgTjZ/LNz/oUn4HM="; }; nativeBuildInputs = [ makeWrapper pkg-config - qt5.qmake + cmake qt5.wrapQtAppsHook ]; @@ -31,30 +32,20 @@ stdenv.mkDerivation rec { cryptopp libusb1 qt5.qtbase + qt5.qtmultimedia qt5.qttools ] ++ lib.optional withEspeak espeak; - postPatch = '' - sed -i rbutil/rbutilqt/rbutilqt.pro \ - -e '/^lrelease.commands =/ s|$$\[QT_INSTALL_BINS\]/lrelease -silent|${lib.getDev qt5.qttools}/bin/lrelease|' - ''; + cmakeDir = "../utils"; - preConfigure = '' - cd rbutil/rbutilqt - lrelease rbutilqt.pro - ''; - - # Workaround build failure on -fno-common toolchains like upstream - # gcc-10. Otherwise build fails as: - # ld: libmkimxboot.a(elf.c.o):utils/imxtools/sbtools/misc.h:43: multiple definition of `g_nr_keys'; - # libmkimxboot.a(mkimxboot.c.o):utils/imxtools/sbtools/misc.h:43: first defined here - # TODO: try to remove with 1.5.1 update. - env.NIX_CFLAGS_COMPILE = "-fcommon"; + patches = [ + ./rockbox-utility-fix-cmake.patch + ]; installPhase = '' runHook preInstall - install -Dm755 RockboxUtility $out/bin/rockboxutility + install -Dm755 rbutilqt/RockboxUtility $out/bin/rockboxutility ln -s $out/bin/rockboxutility $out/bin/RockboxUtility wrapProgram $out/bin/rockboxutility \ ${lib.optionalString withEspeak '' @@ -64,17 +55,11 @@ stdenv.mkDerivation rec { runHook postInstall ''; - # `make build/rcc/qrc_rbutilqt-lang.cpp` fails with - # RCC: Error in 'rbutilqt-lang.qrc': Cannot find file 'lang/rbutil_cs.qm' - # Do not add `lrelease rbutilqt.pro` into preConfigure, otherwise `make lrelease` - # may clobber the files read by the parallel `make build/rcc/qrc_rbutilqt-lang.cpp`. - enableParallelBuilding = false; - meta = with lib; { homepage = "https://www.rockbox.org"; description = "Open source firmware for digital music players"; license = licenses.gpl2Plus; - maintainers = with maintainers; [ ]; + maintainers = with maintainers; [ ozkutuk ]; mainProgram = "RockboxUtility"; platforms = platforms.linux; }; diff --git a/pkgs/by-name/ro/rockbox-utility/rockbox-utility-fix-cmake.patch b/pkgs/by-name/ro/rockbox-utility/rockbox-utility-fix-cmake.patch new file mode 100644 index 000000000000..af84482b3223 --- /dev/null +++ b/pkgs/by-name/ro/rockbox-utility/rockbox-utility-fix-cmake.patch @@ -0,0 +1,33 @@ +diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt +index 55e5b79..0934905 100644 +--- a/utils/CMakeLists.txt ++++ b/utils/CMakeLists.txt +@@ -358,22 +358,6 @@ add_library(rbtomcrypt + ) + target_include_directories(rbtomcrypt PUBLIC ${CMAKE_CURRENT_LIST_DIR}/tomcrypt/src/headers) + +-add_library(skin_parser +- ${CMAKE_CURRENT_LIST_DIR}/../lib/skin_parser/skin_buffer.c +- ${CMAKE_CURRENT_LIST_DIR}/../lib/skin_parser/skin_buffer.h +- ${CMAKE_CURRENT_LIST_DIR}/../lib/skin_parser/skin_debug.c +- ${CMAKE_CURRENT_LIST_DIR}/../lib/skin_parser/skin_debug.h +- ${CMAKE_CURRENT_LIST_DIR}/../lib/skin_parser/skin_parser.c +- ${CMAKE_CURRENT_LIST_DIR}/../lib/skin_parser/skin_parser.h +- ${CMAKE_CURRENT_LIST_DIR}/../lib/skin_parser/skin_scan.c +- ${CMAKE_CURRENT_LIST_DIR}/../lib/skin_parser/skin_scan.h +- ${CMAKE_CURRENT_LIST_DIR}/../lib/skin_parser/symbols.h +- ${CMAKE_CURRENT_LIST_DIR}/../lib/skin_parser/tag_table.c +- ${CMAKE_CURRENT_LIST_DIR}/../lib/skin_parser/tag_table.h +- ) +-target_include_directories(skin_parser PUBLIC ${CMAKE_CURRENT_LIST_DIR}/../lib/skin_parser) +-target_compile_definitions(skin_parser PUBLIC __PCTOOL__) +- + # target will always be build. File is only updated when contents change. + add_custom_target(gitversion.h + COMMENT "Updating gitversion.h" +@@ -391,5 +375,3 @@ target_include_directories(gitversion INTERFACE ${CMAKE_CURRENT_BINARY_DIR}/gitv + include(${CMAKE_CURRENT_LIST_DIR}/cmake/deploy.cmake) + include(${CMAKE_CURRENT_LIST_DIR}/cmake/QtTest.cmake) + add_subdirectory(rbutilqt) +-add_subdirectory(themeeditor) +-