* bug#24105: git package misses man pages
@ 2016-07-29 12:46 Andreas Enge
2016-07-29 17:10 ` Leo Famulari
0 siblings, 1 reply; 6+ messages in thread
From: Andreas Enge @ 2016-07-29 12:46 UTC (permalink / raw)
To: 24105
Hello,
wondering why "git log --help" does not work, I thought that maybe there
was a different doc output. But the man pages are actually hidden in a
separate package called "git-manpages". This is surprising for the user.
Also, the resulting package is quite small with only 2.3 MB.
The reason for the separate package is given as this:
;; 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.
Building will most of the time happen on the build farm, so the time it
takes should not be an issue. I suppose that the xml tool chain will only
be a native and not a normal input, so it should not be too much of a problem.
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.
Thanks!
Andreas
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#24105: git package misses man pages
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
0 siblings, 1 reply; 6+ messages in thread
From: Leo Famulari @ 2016-07-29 17:10 UTC (permalink / raw)
To: Andreas Enge; +Cc: 24105
On Fri, Jul 29, 2016 at 02:46:23PM +0200, Andreas Enge wrote:
> Also, the resulting package is quite small with only 2.3 MB.
Not much, considering how often I consult these manpages.
> The reason for the separate package is given as this:
> ;; 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.
> Building will most of the time happen on the build farm, so the time it
> takes should not be an issue. I suppose that the xml tool chain will only
> be a native and not a normal input, so it should not be too much of a problem.
Our git-manpages package doesn't build the manpages from source anyways.
It simply unpacks a tarball of pre-built manpages.
> 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 think the current arrangement offers a bad experience for new users
who can't find the manpages.
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#24105: git package misses man pages
2016-07-29 17:10 ` Leo Famulari
@ 2016-07-30 13:46 ` Ludovic Courtès
2016-08-09 19:03 ` Leo Famulari
0 siblings, 1 reply; 6+ messages in thread
From: Ludovic Courtès @ 2016-07-30 13:46 UTC (permalink / raw)
To: Leo Famulari; +Cc: 24105
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.
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#24105: git package misses man pages
2016-07-30 13:46 ` Ludovic Courtès
@ 2016-08-09 19:03 ` Leo Famulari
2016-08-17 9:33 ` Ludovic Courtès
0 siblings, 1 reply; 6+ messages in thread
From: Leo Famulari @ 2016-08-09 19:03 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 24105
[-- 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
^ permalink raw reply related [flat|nested] 6+ messages in thread
* bug#24105: git package misses man pages
2016-08-09 19:03 ` Leo Famulari
@ 2016-08-17 9:33 ` Ludovic Courtès
2016-08-18 2:42 ` Leo Famulari
0 siblings, 1 reply; 6+ messages in thread
From: Ludovic Courtès @ 2016-08-17 9:33 UTC (permalink / raw)
To: Leo Famulari; +Cc: 24105
Leo Famulari <leo@famulari.name> skribis:
> 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?
>
> 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.
LGTM! :-)
Thank you!
Ludo'.
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#24105: git package misses man pages
2016-08-17 9:33 ` Ludovic Courtès
@ 2016-08-18 2:42 ` Leo Famulari
0 siblings, 0 replies; 6+ messages in thread
From: Leo Famulari @ 2016-08-18 2:42 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 24105-done
On Wed, Aug 17, 2016 at 11:33:54AM +0200, Ludovic Courtès wrote:
> Leo Famulari <leo@famulari.name> skribis:
> > * gnu/packages/version-control.scm (git-manpages): Remove variable.
> > (git)[native-inputs]: Add GIT-MANPAGES.
> > [arguments]: Add 'install-man-pages' phase.
>
> LGTM! :-)
Pushed as d1cada045.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-08-18 2:44 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2016-08-17 9:33 ` Ludovic Courtès
2016-08-18 2:42 ` Leo Famulari
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).