* gnu/packages/version-control.scm (git)[native-inputs]: add back comment skipped by commit d1cada0450fca54260fd20ab49d0586d147cbeb3 Signed-off-by: François J. <francois-oss@avalenn.eu> --- gnu/packages/version-control.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 3992f74644..fddabbcd40 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -188,6 +188,9 @@ as well as the classic centralized workflow.") ("bash" ,bash-minimal) ("bash-for-tests" ,bash) ("gettext" ,gettext-minimal) + ;; To build the man pages from the git sources, we would need a dependency + ;; on a full XML tool chain, and building it actually takes ages. So we + ;; use this lazy approach and use released tarball. ("git-manpages" ,(origin (method url-fetch) -- 2.31.1
I use release tarball (instead of git as I would have liked) because it contains pre-compiled man-pages which are too hard to build in this context as it uses git Makefile to do it. * gnu/packages/version-control.scm (git-filter-repo): New variable. Signed-off-by: François J <francois-oss@avalenn.eu> --- gnu/packages/version-control.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index fddabbcd40..481cbbb98c 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -3074,3 +3074,34 @@ If several repos are related, it helps to see their status together.") makes a directory under a specific root directory (by default @file{~/ghq}) using the remote repository URL's host and path.") (license license:expat))) + +(define-public git-filter-repo + (package + (name "git-filter-repo") + (version "2.29.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/newren/git-filter-repo/releases/" + "download/v" version + "/git-filter-repo-" version ".tar.xz")) + (sha256 + (base32 + "00nn7k9jqrybb762486fmigsnbcn9lbvimgpfvvarz4ikdp9y9pb")) + )) + (build-system copy-build-system) + (arguments + `(#:install-plan + '( + ("git-filter-repo" "libexec/git-core/") + ("Documentation/man1/" "share/man/man1") + ("/" "" #:include ()) + ))) + (home-page + "https://github.com/newren/git-filter-repo") + (synopsis + "Quickly rewrite git repository history") + (description + "Quickly rewrite git repository history") + (license (list license:expat ;; Main license. + license:gpl2)))) ;; For test harness. -- 2.31.1
I use release tarball (instead of git as I would have liked) because it contains pre-compiled man-pages which are too hard to build in this context as it uses git Makefile to do it. * gnu/packages/version-control.scm (git-filter-repo): New variable. Signed-off-by: François J <francois-oss@avalenn.eu> --- gnu/packages/version-control.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) I changed the description by taking a more complete one from upstream. I have chosen to not capitalize the "git" in "git filter-repo" to respect upstream capitalization but have no opinion on the matter. diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index fddabbcd40..4460c1c548 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -38,6 +38,7 @@ ;;; Copyright © 2021 Léo Le Bouter <lle-bout@zaclys.net> ;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org> ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> +;;; Copyright © 2021 François J. <francois-oss@avalenn.eu> ;;; ;;; This file is part of GNU Guix. ;;; @@ -3074,3 +3075,31 @@ If several repos are related, it helps to see their status together.") makes a directory under a specific root directory (by default @file{~/ghq}) using the remote repository URL's host and path.") (license license:expat))) + +(define-public git-filter-repo + (package + (name "git-filter-repo") + (version "2.29.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/newren/git-filter-repo/releases/" + "download/v" version + "/git-filter-repo-" version ".tar.xz")) + (sha256 + (base32 + "00nn7k9jqrybb762486fmigsnbcn9lbvimgpfvvarz4ikdp9y9pb")))) + (build-system copy-build-system) + (arguments + `(#:install-plan + '(("git-filter-repo" "libexec/git-core/") + ("Documentation/man1/" "share/man/man1") + ("/" "" #:include ())))) + (home-page + "https://github.com/newren/git-filter-repo") + (synopsis + "Quickly rewrite Git repository history") + (description + "git filter-repo is a versatile tool for rewriting history, which roughly falls into the same space of tool like git filter-branch but with more capabilities. git filter-repo is now recommended by the Git project instead of git filter-branch.") + (license (list license:expat ;; Main license. + license:gpl2)))) ;; For test harness. -- 2.31.1
Just adding git-filter-repo but taking advantage of this to add back a comment which would have saved me time. François J (2): gnu: git: add a comment on why we don't build manpages gnu: Add git-filter-repo gnu/packages/version-control.scm | 34 ++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) -- 2.31.1
Hi François, François J <francois-oss@avalenn.eu> skribis: > I use release tarball (instead of git as I would have liked) because it > contains pre-compiled man-pages which are too hard to build in this > context as it uses git Makefile to do it. > > * gnu/packages/version-control.scm (git-filter-repo): New variable. > > Signed-off-by: François J <francois-oss@avalenn.eu> Could you add a copyright line for you at the top? > + (base32 > + "00nn7k9jqrybb762486fmigsnbcn9lbvimgpfvvarz4ikdp9y9pb")) > + )) ‘guix lint’ complains about these dangling parens. :-) > + (arguments > + `(#:install-plan > + '( > + ("git-filter-repo" "libexec/git-core/") Please move this to the previous line. > + ("Documentation/man1/" "share/man/man1") > + ("/" "" #:include ()) > + ))) Likewise: lonely parens. :-) > + (synopsis > + "Quickly rewrite git repository history") > + (description > + "Quickly rewrite git repository history") Please capitalize “Git” and expound the description, using full sentences, as per: https://guix.gnu.org/manual/en/html_node/Synopses-and-Descriptions.html Could you send an updated patch? (The patch 1/2 LGTM.) Thanks, Ludo’.
François J <francois-oss@avalenn.eu> skribis:
> I use release tarball (instead of git as I would have liked) because it
> contains pre-compiled man-pages which are too hard to build in this
> context as it uses git Makefile to do it.
>
> * gnu/packages/version-control.scm (git-filter-repo): New variable.
>
> Signed-off-by: François J <francois-oss@avalenn.eu>
Applied with minor changes: addressing remaining ‘guix lint’ complaints,
tweaking indentation, and adding ‘python’ as an input so that the
shebang of ‘git-filter-repo’ gets patched (otherwise it’d remain
“#!/usr/bin/env python3”.)
Thanks!
Ludo’.