# Bug: Install from .tar.xz fails without write permission on /usr/local/share/man/man3

3 messages from 2018-05-31 to 2018-06-01. Participants: mlell@posteo.de, Christian Couder, Jeff King.
Thread: https://gitlist.dev/t/48615

## mlell@posteo.de, 2018-05-31 16:30

Subject: Bug: Install from .tar.xz fails without write permission on /usr/local/share/man/man3
Message-ID: <d464115b7c2ee5f9084ae9bd33cebea1@posteo.de>
URL: https://gitlist.dev/e/d464115b7c2ee5f9084ae9bd33cebea1%40posteo.de

```
Hi,

I was trying to build git 2.9.5 as a normal user, as I have no root 
access on a cluster with outdated software.

The build fails, unless I change the PREFIX=/usr/local line in 
per/perl.mak:80 to a folder where I have write permission.
Apparently, perl.mak does not honour the --prefix= setting of 
./configure.

Is it possible to change perl.mak to honor the PREFIX?

Best,
Mo


Steps to reproduce:

wget 
https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.xz
tar xf git-2.9.5.tar.xz
cd git-2.9.5
./configure --prefix=$HOME/.usr
make
make install # fails

Output (last lines):

install -d -m 755 '/qg-10/data/AGR-QG/lell/.usr/share/locale'
(cd po/build/locale && gtar cf - .) | \
(cd '/qg-10/data/AGR-QG/lell/.usr/share/locale' && umask 022 && gtar xof 
-)
make -C perl prefix='/qg-10/data/AGR-QG/lell/.usr' DESTDIR='' install
make[1]: Entering directory 
`/qg-10/data/AGR-QG/lell/.usr/git-2.9.5/perl'
make[2]: Entering directory 
`/qg-10/data/AGR-QG/lell/.usr/git-2.9.5/perl'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Can't create '/usr/local/share/man/man3'
Do not have write permissions on '/usr/local/share/man/man3'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  at -e line 1.
make[2]: *** [pure_site_install] Error 13
make[2]: Leaving directory `/qg-10/data/AGR-QG/lell/.usr/git-2.9.5/perl'
make[1]: *** [install] Error 2
make[1]: Leaving directory `/qg-10/data/AGR-QG/lell/.usr/git-2.9.5/perl'
make: *** [install] Error 2




```

## Christian Couder, 2018-05-31 18:33

Subject: Re: Bug: Install from .tar.xz fails without write permission on /usr/local/share/man/man3
Message-ID: <CAP8UFD10BW=WYmv2Vz8cFCt1OofpsrhBGR0z7C5tp0ixrpwwgg@mail.gmail.com>
URL: https://gitlist.dev/e/CAP8UFD10BW%3DWYmv2Vz8cFCt1OofpsrhBGR0z7C5tp0ixrpwwgg%40mail.gmail.com
In-Reply-To: <d464115b7c2ee5f9084ae9bd33cebea1@posteo.de>

```
Hi,

On Thu, May 31, 2018 at 6:30 PM,  <mlell@posteo.de> wrote:
>
> I was trying to build git 2.9.5 as a normal user, as I have no root access
> on a cluster with outdated software.
>
> The build fails, unless I change the PREFIX=/usr/local line in
> per/perl.mak:80 to a folder where I have write permission.
> Apparently, perl.mak does not honour the --prefix= setting of ./configure.
>
> Is it possible to change perl.mak to honor the PREFIX?

I don't think we will support old versions like v2.9.X.

There was a security release and we only released v2.17.1, v2.13.7,
v2.14.4, v2.15.2 and v2.16.4:

https://public-inbox.org/git/xmqqy3g2flb6.fsf@gitster-ct.c.googlers.com/

So it looks like v2.13.X is the oldest version we support. Do you
really need v2.9.5?

Best,
Christian.

```

## Jeff King, 2018-06-01 06:33

Subject: Re: Bug: Install from .tar.xz fails without write permission on /usr/local/share/man/man3
Message-ID: <20180601063314.GA2170@sigill.intra.peff.net>
URL: https://gitlist.dev/e/20180601063314.GA2170%40sigill.intra.peff.net
In-Reply-To: <d464115b7c2ee5f9084ae9bd33cebea1@posteo.de>

```
On Thu, May 31, 2018 at 06:30:18PM +0200, mlell@posteo.de wrote:

> I was trying to build git 2.9.5 as a normal user, as I have no root access
> on a cluster with outdated software.
> 
> The build fails, unless I change the PREFIX=/usr/local line in
> per/perl.mak:80 to a folder where I have write permission.
> Apparently, perl.mak does not honour the --prefix= setting of ./configure.

Weird, I can't reproduce. That perl.mak is generated by running
Makefile.PL.

If I follow your steps:

> wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.xz
> tar xf git-2.9.5.tar.xz
> cd git-2.9.5
> ./configure --prefix=$HOME/.usr
> make

During this step I get output like this (amidst the other compiles):

  /usr/bin/perl Makefile.PL PREFIX='/tmp/foo' INSTALL_BASE='' --localedir='/tmp/foo/share/locale'
  Generating a Unix-style perl.mak
  Writing perl.mak for Git

So I wonder if there is some reason your perl MakeMaker module is not
behaving the same way.

At any rate, though, I don't know if it's worth digging too far. Git
v2.17 drastically simplified the perl section of the build process,
ditching MakeMaker completely. The new code is much simpler and follows
the same prefix rules as the rest of the Makefile. So probably the
simplest thing is try v2.17.1.

-Peff

```
