threads / discuss / 38115

Git's configure script --mandir doesn't work

Subject: Git's configure script --mandir doesn't work

## tl;dr

4 messages between Dec 4, 2014 and Dec 10, 2014.

replies: 3people: 2as markdown or json

Stephen Fisher· Dec 4, 2014, 23:25 UTC · lore

I'm installing Git 2.2.0 from source distribution on NetBSD 6.1.5 (amd64) and when I specify --mandir=/usr/local/man, it still installs man pages in the default /usr/local/share/man directory. Is there a fix available for this?

Jeff King· Dec 5, 2014, 09:36 UTC · re: Stephen Fisher · lore

Re: Git's configure script --mandir doesn't work

On Thu, Dec 04, 2014 at 04:25:32PM -0700, Stephen Fisher wrote:
> I'm installing Git 2.2.0 from source distribution on NetBSD 6.1.5 
> (amd64) and when I specify --mandir=/usr/local/man, it still installs 
> man pages in the default /usr/local/share/man directory.  Is there a fix 
> available for this?
It works fine for me here (Debian):
  tar xzf git-2.2.0.tar.gz
  cd git-2.2.0
  ./configure --prefix=/tmp/foo --mandir=/tmp/bar
  make install-man
puts the manpages into /tmp/bar.

Can you elaborate on the commands you're running? After running the configure script, can you confirm that "mandir" is set appropriately in config.mak.autogen?

-Peff
Stephen Fisher· Dec 10, 2014, 19:41 UTC · re: Jeff King · lore

Re: Git's configure script --mandir doesn't work

On Fri, Dec 05, 2014 at 04:36:20AM -0500, Jeff King wrote:
Show 8 quoted lines
> On Thu, Dec 04, 2014 at 04:25:32PM -0700, Stephen Fisher wrote:
> 
> > I'm installing Git 2.2.0 from source distribution on NetBSD 6.1.5 
> > (amd64) and when I specify --mandir=/usr/local/man, it still 
> > installs man pages in the default /usr/local/share/man directory.  
> > Is there a fix available for this?
> 
> It works fine for me here (Debian):
> Can you elaborate on the commands you're running? After running the 
> configure script, can you confirm that "mandir" is set appropriately 
> in config.mak.autogen?
Thanks for your reply and sorry for my delay in responding.

I'm executing ./configure --mandir=/usr/local/man --disable-pthreads then gmake and gmake install. I'm using gmake (GNU make) because I get Makefile errors with the regular BSD make, but that's another issue. I'm disabling pthreads because there is a linking error for undefined references to a few functions (I probably need to pass -lpthread in LDFLAGS, but haven't tried that yet).

mandir is properly set in config.mak.autogen.

When I set prefix to /tmp/foo and mandir to /tmp/bar like your example, it installs things into /tmp/foo, but /tmp/bar isn't even created.

I noticed text files in Documentation/ that look like the content of man pages, and when I run gmake in that directory, I get an error about asciidoc missing to make an HTML file. Is asciidoc required for the man pages as well? I don't see any files that appear to be man page format other than in perl/blib/man3 and those are installed (but not under the mandir prefix, rather the default /usr/local/share/man prefix).

Jeff King· Dec 10, 2014, 19:55 UTC · re: Stephen Fisher · lore

Re: Git's configure script --mandir doesn't work

On Wed, Dec 10, 2014 at 12:41:50PM -0700, Stephen Fisher wrote:
> I'm executing ./configure --mandir=/usr/local/man --disable-pthreads 
> then gmake and gmake install.  I'm using gmake (GNU make) because I get 
> Makefile errors with the regular BSD make, but that's another issue.

You have to build git with GNU make; there are several GNU-isms in the Makefile.

> I'm disabling pthreads because there is a linking error for undefined 
> references to a few functions (I probably need to pass -lpthread in 
> LDFLAGS, but haven't tried that yet).

We should link against -lpthread automatically unless pthreads are disabled. So that may be an issue worth investigating.

> I noticed text files in Documentation/ that look like the content of man 
> pages, and when I run gmake in that directory, I get an error about 
> asciidoc missing to make an HTML file.  Is asciidoc required for the man 
> pages as well?

Yes, you need asciidoc to build the manpages. However, there is a "make quick-install-man" target which will install pre-formatted manpages. You'll need to:

  git clone git://git.kernel.org/pub/scm/git/git-manpages.git

next to your git.git clone. If you are installing from tarballs, I think there are manpage tarballs on kernel.org, as well.

> I don't see any files that appear to be man page format 
> other than in perl/blib/man3 and those are installed (but not under the 
> mandir prefix, rather the default /usr/local/share/man prefix).

It sounds like the manpage install bailed due to asciidoc failing. So the remaining bug is that the perl Makefile does not respect $(mandir). That does not surprise me too much. We use perl's MakeMaker to build that Makefile, and it looks like we just pass in the prefix, not individual paths.

-Peff

← back to recent threads