Unverified Commit 64b6e492 authored by Matthias Beyer's avatar Matthias Beyer Committed by GitHub
Browse files

Merge pull request #250204 from JaviMerino/guilt

guilt: init at 0.37-rc1
parents 3714f48d 9288bd04
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -7998,6 +7998,12 @@
    githubId = 488556;
    name = "Javier Aguirre";
  };
  javimerino = {
    email = "merino.jav@gmail.com";
    name = "Javi Merino";
    github = "JaviMerino";
    githubId = 44926;
  };
  jayesh-bhoot = {
    name = "Jayesh Bhoot";
    email = "jb@jayeshbhoot.com";
+20 −0
Original line number Diff line number Diff line
uname -s is used to determine the differences between the command line
utilities like stat or awk in linux and darwin. However, in nix, guilt
will be using the nix versions of this programs, not the ones
installed in the system.  Therefore, guilt should use the command-line
parameters that the linux forms of these commands expect, even if it
is being run on Darwin.

diff --git a/guilt b/guilt
index bf50343..cfc9332 100755
--- a/guilt
+++ b/guilt
@@ -986,7 +986,7 @@ guards_file="$GUILT_DIR/$branch/guards"
 pager="more"
 [ ! -z "$PAGER" ] && pager="$PAGER"
 
-UNAME_S=`uname -s`
+UNAME_S="Linux"
 
 if [ -r "$GUILT_PATH/os.$UNAME_S" ]; then
 	. "$GUILT_PATH/os.$UNAME_S"
+92 −0
Original line number Diff line number Diff line
{ asciidoc
, docbook_xml_dtd_45
, docbook_xsl
, fetchFromGitHub
, gawk
, git
, gnused
, lib
, makeWrapper
, openssl
, perl
, stdenv
, xmlto
}:

stdenv.mkDerivation rec {
  pname = "guilt";
  version = "0.37-rc1";

  src = fetchFromGitHub {
    owner = "jeffpc";
    repo = "guilt";
    rev = "v${version}";
    sha256 = "sha256-7OgRbMGYWtGvrZxKfJe0CkpmU3AUkPebF5NyTsfXeGA=";
  };

  doCheck = true;

  patches = [
    ./guilt-help-mandir.patch
    ./darwin-fix.patch
  ];
  nativeBuildInputs = [
    asciidoc
    docbook_xml_dtd_45
    docbook_xsl
    makeWrapper
    perl
    xmlto
  ];
  buildInputs = [
    gawk
    git
    gnused
  ] ++ lib.optionals stdenv.isDarwin [ openssl ];
  makeFlags = [
    "PREFIX=$(out)"
  ];

  postBuild = ''
    make -j $NIX_BUILD_CORES doc
  '';

  preCheck = ''
    patchShebangs regression/run-tests regression/*.sh
  '';

  postInstall = ''
    make PREFIX=$out install-doc
  '';

  postFixup = ''
    wrapProgram $out/bin/guilt --prefix PATH : ${lib.makeBinPath buildInputs}
  '';

  meta = with lib; {
    description = "Manage patches like quilt, on top of a git repository";
    longDescription = ''
      Andrew Morton originally developed a set of scripts for
      maintaining kernel patches outside of any SCM tool. Others
      extended these into a suite called quilt]. The basic idea behind
      quilt is to maintain patches instead of maintaining source
      files. Patches can be added, removed or reordered, and they can
      be refreshed as you fix bugs or update to a new base
      revision. quilt is very powerful, but it is not integrated with
      the underlying SCM tools. This makes it difficult to visualize
      your changes.

      Guilt allows one to use quilt functionality on top of a Git
      repository. Changes are maintained as patches which are
      committed into Git. Commits can be removed or reordered, and the
      underlying patch can be refreshed based on changes made in the
      working directory. The patch directory can also be placed under
      revision control, so you can have a separate history of changes
      made to your patches.
    '';
    homepage = "https://github.com/jeffpc/guilt";
    maintainers = with lib.maintainers; [ javimerino ];
    license = [ licenses.gpl2 ];
    platforms = platforms.all;
  };
}
+15 −0
Original line number Diff line number Diff line
nixpkgs' post-installation fixup moves the pages to share/man.  Tell guilt-help so that it can find them.

diff --git a/guilt-help b/guilt-help
index 93442a3..b29e059 100755
--- a/guilt-help
+++ b/guilt-help
@@ -34,7 +34,7 @@ case $# in
 		;;
 esac
 
-MANDIR=`dirname $0`/../man
+MANDIR=`dirname $0`/../share/man
 MANDIR=`(cd "$MANDIR"; pwd)`
 exec man -M "$MANDIR" "$page"
 
+2 −0
Original line number Diff line number Diff line
@@ -2506,6 +2506,8 @@ with pkgs;
  gst = callPackage ../applications/version-management/gst { };
  guilt = callPackage ../applications/version-management/guilt { };
  gut = callPackage ../applications/version-management/gut { };
  hred = callPackage ../development/tools/hred { };