biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / tools / apksigcopier / default.nix
blob1262c9eaaa75f1be7e332d9e2506c8f0febd29f5
1 { lib
2 , apksigner
3 , bash
4 , fetchFromGitHub
5 , installShellFiles
6 , pandoc
7 , python3
8 }:
10 python3.pkgs.buildPythonApplication rec {
11   pname = "apksigcopier";
12   version = "1.1.1";
14   src = fetchFromGitHub {
15     owner = "obfusk";
16     repo = "apksigcopier";
17     rev = "refs/tags/v${version}";
18     sha256 = "sha256-VuwSaoTv5qq1jKwgBTKd1y9RKUzz89n86Z4UBv7Q51o=";
19   };
21   nativeBuildInputs = [
22     installShellFiles
23     pandoc
24   ];
26   propagatedBuildInputs = with python3.pkgs; [
27     click
28   ];
30   makeWrapperArgs = [
31     "--prefix"
32     "PATH"
33     ":"
34     "${lib.makeBinPath [ apksigner ]}"
35   ];
37   postPatch = ''
38     substituteInPlace Makefile \
39       --replace /bin/bash ${bash}/bin/bash
40   '';
42   postBuild = ''
43     make ${pname}.1
44   '';
46   postInstall = ''
47     installManPage ${pname}.1
48   '';
50   doInstallCheck = true;
52   installCheckPhase = ''
53     runHook preInstallCheck
54     $out/bin/apksigcopier --version | grep "${version}"
55     runHook postInstallCheck
56   '';
58   meta = with lib; {
59     description = "Copy/extract/patch android apk signatures & compare APKs";
60     mainProgram = "apksigcopier";
61     longDescription = ''
62       apksigcopier is a tool for copying android APK signatures from a signed
63       APK to an unsigned one (in order to verify reproducible builds).
64       It can also be used to compare two APKs with different signatures.
65       Its command-line tool offers four operations:
67       * copy signatures directly from a signed to an unsigned APK
68       * extract signatures from a signed APK to a directory
69       * patch previously extracted signatures onto an unsigned APK
70       * compare two APKs with different signatures (requires apksigner)
71     '';
72     homepage = "https://github.com/obfusk/apksigcopier";
73     license = with licenses; [ gpl3Plus ];
74     maintainers = with maintainers; [ obfusk ];
75   };