{ lib, stdenv, fetchFromGitHub, dbus, fpc, getopt, glib, lazarus, libX11, libsForQt5, writableTmpDirAsHomeHook, }: stdenv.mkDerivation (finalAttrs: { pname = "doublecmd"; version = "1.1.27"; src = fetchFromGitHub { owner = "doublecmd"; repo = "doublecmd"; tag = "v${finalAttrs.version}"; hash = "sha256-YHaxynBIxoirFDKvGEECKIAJezuex3DBoU8snEdbhhg="; }; nativeBuildInputs = [ fpc getopt lazarus libsForQt5.wrapQtAppsHook writableTmpDirAsHomeHook ]; buildInputs = [ dbus glib libX11 libsForQt5.libqtpas ]; env.NIX_LDFLAGS = "--as-needed -rpath ${lib.makeLibraryPath finalAttrs.buildInputs}"; postPatch = '' patchShebangs build.sh install/linux/install.sh substituteInPlace build.sh \ --replace-warn '$(which lazbuild)' '"${lazarus}/bin/lazbuild --lazarusdir=${lazarus}/share/lazarus"' substituteInPlace install/linux/install.sh \ --replace-warn '$DC_INSTALL_PREFIX/usr' '$DC_INSTALL_PREFIX' ''; buildPhase = '' runHook preBuild ./build.sh release qt5 runHook postBuild ''; installPhase = '' runHook preInstall install/linux/install.sh -I $out runHook postInstall ''; meta = { homepage = "https://doublecmd.sourceforge.io/"; description = "Two-panel graphical file manager written in Pascal"; license = lib.licenses.gpl2Plus; mainProgram = "doublecmd"; maintainers = with lib.maintainers; [ ]; platforms = lib.platforms.linux; }; }) # TODO: deal with other platforms too