diff --git a/pkgs/by-name/ro/rockbox-utility/package.nix b/pkgs/by-name/ro/rockbox-utility/package.nix index 83ee50fbed9c..29d70ff01f8a 100644 --- a/pkgs/by-name/ro/rockbox-utility/package.nix +++ b/pkgs/by-name/ro/rockbox-utility/package.nix @@ -1,27 +1,31 @@ -{ lib -, stdenv -, fetchurl -, cryptopp -, libusb1 -, makeWrapper -, pkg-config -, qt5 -, withEspeak ? false, espeak ? null +{ + lib, + stdenv, + fetchgit, + cmake, + pkg-config, + qt5, + makeWrapper, + cryptopp, + libusb1, + espeak ? null, + withEspeak ? false, }: -stdenv.mkDerivation rec { - pname = "rockbox-utility"; - version = "1.4.1"; +stdenv.mkDerivation rec { + pname = "rbutil"; + 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="; + src = fetchgit { + url = "git://git.rockbox.org/rockbox.git"; + rev = "rbutil_${version}"; + hash = "sha256-n5UnqBhRJ8R4AV2PLNTHuTIRuyDSqV1CjkQGlOHPIUY="; }; nativeBuildInputs = [ - makeWrapper + cmake pkg-config - qt5.qmake + makeWrapper qt5.wrapQtAppsHook ]; @@ -29,46 +33,24 @@ stdenv.mkDerivation rec { cryptopp libusb1 qt5.qtbase + qt5.qtmultimedia qt5.qttools - ] - ++ lib.optional withEspeak espeak; + ] ++ 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|' - ''; + cmakeFlags = [ "-Wno-dev" ]; - 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"; + preConfigure = "cd utils"; installPhase = '' - runHook preInstall + install -Dm 755 rbutilqt/RockboxUtility -t $out/bin/ + install -Dm 644 -D $src/utils/rbutilqt/RockboxUtility.desktop -t $out/share/applications/ + install -Dm 644 $src/docs/logo/rockbox-clef.svg -t $out/share/pixmaps/ - install -Dm755 RockboxUtility $out/bin/rockboxutility - ln -s $out/bin/rockboxutility $out/bin/RockboxUtility - wrapProgram $out/bin/rockboxutility \ - ${lib.optionalString withEspeak '' + wrapProgram $out/bin/RockboxUtility ${lib.optionalString withEspeak '' --prefix PATH : ${espeak}/bin ''} - - 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";