ieda: init at 0-unstable-2024-10-11 (#338769)
[NixPkgs.git] / pkgs / by-name / gu / guilt / package.nix
blob77152b5930bc2e8699dd4e4488104aef1d0aa431
2   asciidoc,
3   docbook_xml_dtd_45,
4   docbook_xsl,
5   fetchFromGitHub,
6   gawk,
7   git,
8   gnused,
9   lib,
10   makeWrapper,
11   openssl,
12   perl,
13   stdenv,
14   xmlto,
17 stdenv.mkDerivation rec {
18   pname = "guilt";
19   version = "0.37-rc1";
21   src = fetchFromGitHub {
22     owner = "jeffpc";
23     repo = "guilt";
24     rev = "v${version}";
25     sha256 = "sha256-7OgRbMGYWtGvrZxKfJe0CkpmU3AUkPebF5NyTsfXeGA=";
26   };
28   doCheck = true;
30   patches = [
31     ./guilt-help-mandir.patch
32     ./darwin-fix.patch
33   ];
34   nativeBuildInputs = [
35     asciidoc
36     docbook_xml_dtd_45
37     docbook_xsl
38     makeWrapper
39     perl
40     xmlto
41   ];
42   buildInputs = [
43     gawk
44     git
45     gnused
46   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ openssl ];
47   makeFlags = [
48     "PREFIX=$(out)"
49   ];
51   postBuild = ''
52     make -j $NIX_BUILD_CORES doc
53   '';
55   preCheck = ''
56     patchShebangs regression/run-tests regression/*.sh
57   '';
59   postInstall = ''
60     make PREFIX=$out install-doc
61   '';
63   postFixup = ''
64     wrapProgram $out/bin/guilt --prefix PATH : ${lib.makeBinPath buildInputs}
65   '';
67   meta = with lib; {
68     description = "Manage patches like quilt, on top of a git repository";
69     longDescription = ''
70       Andrew Morton originally developed a set of scripts for
71       maintaining kernel patches outside of any SCM tool. Others
72       extended these into a suite called quilt]. The basic idea behind
73       quilt is to maintain patches instead of maintaining source
74       files. Patches can be added, removed or reordered, and they can
75       be refreshed as you fix bugs or update to a new base
76       revision. quilt is very powerful, but it is not integrated with
77       the underlying SCM tools. This makes it difficult to visualize
78       your changes.
80       Guilt allows one to use quilt functionality on top of a Git
81       repository. Changes are maintained as patches which are
82       committed into Git. Commits can be removed or reordered, and the
83       underlying patch can be refreshed based on changes made in the
84       working directory. The patch directory can also be placed under
85       revision control, so you can have a separate history of changes
86       made to your patches.
87     '';
88     homepage = "https://github.com/jeffpc/guilt";
89     maintainers = with lib.maintainers; [ javimerino ];
90     license = [ licenses.gpl2 ];
91     platforms = platforms.all;
92     mainProgram = "guilt";
93   };