unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: Leo Famulari <leo@famulari.name>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 24105@debbugs.gnu.org
Subject: bug#24105: git package misses man pages
Date: Tue, 9 Aug 2016 15:03:02 -0400	[thread overview]
Message-ID: <20160809190302.GA13796@jasmine> (raw)
In-Reply-To: <87vaznb5my.fsf@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 749 bytes --]

On Sat, Jul 30, 2016 at 03:46:29PM +0200, Ludovic Courtès wrote:
> Leo Famulari <leo@famulari.name> skribis:
> 
> > On Fri, Jul 29, 2016 at 02:46:23PM +0200, Andreas Enge wrote:
> 
> [...]
> 
> >> I suggest to include the man pages into the git package itself. If building
> >> them is a real issue, adding a source and the build phase of git-manpages
> >> to the git package itself could also be an option.
> >
> > I agree. If we continue to not build them from source, it won't make the
> > Git package any more "expensive". We could add the pre-built source
> > tarball as a native-input to the Git package, and re-use the unpack
> > phase from git-manpages.
> 
> I agree too, this sounds like a good idea.

I've attached a patch. Your thoughts?

[-- Attachment #2: 0001-gnu-git-Provide-man-pages-in-main-Git-package.patch --]
[-- Type: text/x-diff, Size: 4668 bytes --]

From 2407216eac19e5a7a3376efc497f7047dc0c8299 Mon Sep 17 00:00:00 2001
From: Leo Famulari <leo@famulari.name>
Date: Tue, 9 Aug 2016 14:55:37 -0400
Subject: [PATCH] gnu: git: Provide man-pages in main Git package.

* gnu/packages/version-control.scm (git-manpages): Remove variable.
(git)[native-inputs]: Add GIT-MANPAGES.
[arguments]: Add 'install-man-pages' phase.
---
 gnu/packages/version-control.scm | 69 ++++++++++++----------------------------
 1 file changed, 20 insertions(+), 49 deletions(-)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 767715d..dd0195d 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -110,7 +111,6 @@ as well as the classic centralized workflow.")
     (license gpl2+)))
 
 (define-public git
-  ;; Keep in sync with 'git-manpages'!
   (package
    (name "git")
    (version "2.9.2")
@@ -124,7 +124,16 @@ as well as the classic centralized workflow.")
    (build-system gnu-build-system)
    (native-inputs
     `(("native-perl" ,perl)
-      ("gettext" ,gnu-gettext)))
+      ("gettext" ,gnu-gettext)
+      ("git-manpages"
+       ,(origin
+          (method url-fetch)
+          (uri (string-append
+                 "mirror://kernel.org/software/scm/git/git-manpages-"
+                 version ".tar.xz"))
+          (sha256
+           (base32
+            "08y38w6yfvrpgj10dl3vghp05xjpl8jj37kkfna2nhf0wip52p2c"))))))
    (inputs
     `(("curl" ,curl)
       ("expat" ,expat)
@@ -260,7 +269,15 @@ as well as the classic centralized workflow.")
               ;; specify a single directory, not a search path.
               (wrap-program (string-append out "/bin/git")
                 `("PATH" ":" prefix
-                  ("$HOME/.guix-profile/libexec/git-core")))))))))
+                  ("$HOME/.guix-profile/libexec/git-core"))))))
+        (add-after 'split 'install-man-pages
+          (lambda* (#:key inputs outputs #:allow-other-keys)
+            (let* ((out (assoc-ref outputs "out"))
+                   (man (string-append out "/share/man"))
+                   (manpages (assoc-ref inputs "git-manpages")))
+              (mkdir-p man)
+              (with-directory-excursion man
+                (zero? (system* "tar" "xvf" manpages)))))))))
 
    (native-search-paths
     ;; For HTTPS access, Git needs a single-file certificate bundle, specified
@@ -278,52 +295,6 @@ everything from small to very large projects with speed and efficiency.")
    (license gpl2)
    (home-page "http://git-scm.com/")))
 
-(define-public git-manpages
-  ;; Keep in sync with 'git'!
-
-  ;; Granted, we could build the man pages from the 'git' package itself,
-  ;; which contains the real source.  However, it would add a dependency on a
-  ;; full XML tool chain, and building it actually takes ages.  So we use this
-  ;; lazy approach.
-  (package
-    (name "git-manpages")
-    (version (package-version git))
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://kernel.org/software/scm/git/git-manpages-"
-                    version ".tar.xz"))
-              (sha256
-               (base32
-                "08y38w6yfvrpgj10dl3vghp05xjpl8jj37kkfna2nhf0wip52p2c"))))
-    (build-system trivial-build-system)
-    (arguments
-     '(#:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules (guix build utils))
-
-         (let* ((xz  (assoc-ref %build-inputs "xz"))
-                (tar (assoc-ref %build-inputs "tar"))
-                (out (assoc-ref %outputs "out"))
-                (man (string-append out "/share/man")))
-           (setenv "PATH" (string-append tar "/bin:" xz "/bin"))
-
-           (mkdir-p man)
-           (with-directory-excursion man
-             (zero? (system* "tar" "xvf"
-                             (assoc-ref %build-inputs "source"))))))))
-
-    (native-inputs `(("tar" ,tar)
-                     ("xz" ,xz)))
-    (home-page (package-home-page git))
-    (license (package-license git))
-    (synopsis "Man pages of the Git version control system")
-    (description
-     "This package provides the man pages of the Git version control system.
-This is the documentation displayed when using the '--help' option of a 'git'
-command.")))
-
 (define-public libgit2
   (package
     (name "libgit2")
-- 
2.9.2


  reply	other threads:[~2016-08-09 19:04 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-29 12:46 bug#24105: git package misses man pages Andreas Enge
2016-07-29 17:10 ` Leo Famulari
2016-07-30 13:46   ` Ludovic Courtès
2016-08-09 19:03     ` Leo Famulari [this message]
2016-08-17  9:33       ` Ludovic Courtès
2016-08-18  2:42         ` Leo Famulari

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160809190302.GA13796@jasmine \
    --to=leo@famulari.name \
    --cc=24105@debbugs.gnu.org \
    --cc=ludo@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).