threads / bug / 48615

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

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

## tl;dr

3 messages between May 31, 2018 and Jun 1, 2018.

replies: 2people: 3as markdown or json

mlell@posteo.de· May 31, 2018, 16:30 UTC · lore
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· May 31, 2018, 18:33 UTC · re: mlell@posteo.de · lore

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

Hi,
On Thu, May 31, 2018 at 6:30 PM,  <mlell@posteo.de> wrote:
Show 9 quoted lines
>
> 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· Jun 1, 2018, 06:33 UTC · re: mlell@posteo.de · lore

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

On Thu, May 31, 2018 at 06:30:18PM +0200, mlell@posteo.de wrote:
Show 6 quoted lines
> 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:
Show 5 quoted lines
> 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

← back to recent threads