{ lib, autoPatchelfHook, fetchurl, fontconfig, freetype, glib, libgcc, libjpeg, libpng12, libz, makeWrapper, stdenvNoCC, unrar, xorg, }: let rarPassword = "spflashtool.com"; in stdenvNoCC.mkDerivation (self: { pname = "SPFlashTool5"; version = "5.1916"; src = fetchurl { url = "https://spflashtool.com/files/SP_Flash_Tool-5.1916_Linux.rar"; hash = "sha256-5lv/uPfUoke0IwjGuV/gTBt4kCbr95mwco3q9cjW/mE="; curlOptsList = [ "--referer" "https://spflashtool.com/download/" ]; }; nativeBuildInputs = [ autoPatchelfHook fontconfig freetype glib libgcc libjpeg libpng12 libz makeWrapper unrar xorg.libSM xorg.libX11 xorg.libXext xorg.libXrender ]; unpackPhase = '' runHook preUnpack unrar x -p${lib.escapeShellArg rarPassword} $src cd */ runHook postUnpack ''; # remove plugins that have outdated dependencies not available in nixpkgs # they are not needed to run the tool anyway prePatch = '' rm \ plugins/imageformats/libqsvg.so \ plugins/imageformats/libqmng.so \ plugins/imageformats/libqtiff.so ''; dontConfigure = true; dontBuild = true; dontCheck = true; installPhase = '' runHook preInstall mkdir -p $out/bin mkdir -p $out/share/SPFlashTool5 cp -r * $out/share/SPFlashTool5 chmod +x $out/share/SPFlashTool5/flash_tool makeWrapper $out/share/SPFlashTool5/flash_tool $out/bin/SPFlashTool5 runHook postInstall ''; meta = { description = "Flash tool for MediaTek devices"; homepage = "https://spflashtool.com/"; license = lib.licenses.unfree; maintainers = with lib.maintainers; [ amozeo ]; }; })