Skip to content

Commit

Permalink
rockbox-utility: 1.4.1 -> 1.5.1
Browse files Browse the repository at this point in the history
  • Loading branch information
j0hax committed Nov 2, 2024
1 parent d74a406 commit 0854cf9
Showing 1 changed file with 50 additions and 43 deletions.
93 changes: 50 additions & 43 deletions pkgs/by-name/ro/rockbox-utility/package.nix
Original file line number Diff line number Diff line change
@@ -1,24 +1,35 @@
{ lib
, stdenv
, fetchurl
, cryptopp
, libusb1
, makeWrapper
, pkg-config
, qt5
, withEspeak ? false, espeak ? null
{
lib,
stdenv,
fetchurl,
cryptopp,
cmake,
libusb1,
makeWrapper,
pkg-config,
qt5,
withEspeak ? false,
espeak ? null,
makeDesktopItem,
}:

stdenv.mkDerivation rec {
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=";
};

patches = [
(fetchurl {
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/app-misc/rbutil/files/rbutil-1.5.1-cmake.patch";
sha256 = "sha256-rA5avWAb5F9A4SLaurGgMcBsRj0UjVrw7egup9/cNQg=";
})
];

nativeBuildInputs = [
cmake
makeWrapper
pkg-config
qt5.qmake
Expand All @@ -30,51 +41,47 @@ stdenv.mkDerivation rec {
libusb1
qt5.qtbase
qt5.qttools
]
++ lib.optional withEspeak espeak;
qt5.qtmultimedia
] ++ 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|'
'';

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 -Dm755 RockboxUtility $out/bin/rockboxutility
ln -s $out/bin/rockboxutility $out/bin/RockboxUtility
wrapProgram $out/bin/rockboxutility \
install -Dm755 ../build/ipodpatcher $out/bin/ipodpatcher
install -Dm755 ../build/sansapatcher $out/bin/sansapatcher
install -Dm755 ../build/rbutilqt/RockboxUtility $out/bin/RockboxUtility
install -Dm644 ../../docs/logo/rockbox-clef.svg $out/share/icons/hicolor/scalable/apps/rockbox-clef.svg
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;
desktopItems = [
(makeDesktopItem {
name = "RockboxUtility";
desktopName = "Rockbox Utility";
comment = "Automated installer tool for Rockbox";
icon = "rockbox-clef";
exec = "RockboxUtility";
categories = [ "Utility" ];
})
];

meta = with lib; {
meta = {
homepage = "https://www.rockbox.org";
description = "Open source firmware for digital music players";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ AndersonTorres ];
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [
AndersonTorres
j0hax
];
mainProgram = "RockboxUtility";
platforms = platforms.linux;
platforms = lib.platforms.linux;
};
}

0 comments on commit 0854cf9

Please sign in to comment.