nixpkgs/pkgs/applications/misc/johnny/default.nix
stuebinm ff1a94e523 treewide: add meta.mainProgram to packages with a single binary
The nixpkgs-unstable channel's programs.sqlite was used to identify
packages producing exactly one binary, and these automatically added
to their package definitions wherever possible.
2024-03-19 03:14:51 +01:00

51 lines
1.4 KiB
Nix

{ lib, stdenv, fetchFromGitHub, qt5, john, makeWrapper, makeDesktopItem
, copyDesktopItems }:
stdenv.mkDerivation rec {
pname = "johnny";
version = "2.2";
src = fetchFromGitHub {
owner = "openwall";
repo = "johnny";
rev = "v${version}";
hash = "sha256-fwRvyQbRO63iVt9AHlfl+Cv4NRFQmyVsZUQLxmzGjAY=";
};
buildInputs = [ john qt5.qtbase ];
nativeBuildInputs =
[ makeWrapper copyDesktopItems qt5.wrapQtAppsHook qt5.qmake ];
installPhase = ''
install -D ${pname} $out/bin/${pname}
wrapProgram $out/bin/${pname} \
--prefix PATH : ${lib.makeBinPath [ john ]}
install -D README $out/share/doc/${pname}/README
install -D LICENSE $out/share/licenses/${pname}/LICENSE
install -D resources/icons/${pname}_128.png $out/share/pixmaps/${pname}.png
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = "Johnny";
desktopName = "Johnny";
comment = "A GUI for John the Ripper";
icon = pname;
exec = pname;
terminal = false;
categories = [ "Application" "System" ];
startupNotify = true;
})
];
meta = with lib; {
homepage = "https://openwall.info/wiki/john/johnny";
description = "Open Source GUI frontend for John the Ripper";
mainProgram = "johnny";
license = licenses.bsd2;
maintainers = with maintainers; [ Misaka13514 ];
platforms = platforms.linux;
};
}