threads / discuss / 54175

[Suggestion] Documentation: quick-install-man not propagating DESTDIR

Subject: [Suggestion] Documentation: quick-install-man not propagating DESTDIR

## tl;dr

3 messages between Sep 1, 2020 and Sep 2, 2020.

replies: 2people: 2as markdown or json

Randall S. Becker· Sep 1, 2020, 22:28 UTC · lore

The make quick-install-man rule is not propagating DESTDIR when GNU Make 4.2.1 is used.

It seems like a bit of a nit to report this, but I discovered that the installation is not putting the manuals in the same place as git. It’s a pretty simple fix. I can put a patch together if desired.

diff --git a/Makefile b/Makefile
index 372139f1f2..dae2d99a7f 100644
--- a/Makefile
+++ b/Makefile
@@ -2992,10 +2992,10 @@ install-gitweb:
        $(MAKE) -C gitweb install

install-doc: install-man-perl
-       $(MAKE) -C Documentation install
+       $(MAKE) -C Documentation install DESTDIR=$(DESTDIR)

install-man: install-man-perl
-       $(MAKE) -C Documentation install-man
+       $(MAKE) -C Documentation install-man DESTDIR=$(DESTDIR)

install-man-perl: man-perl
        $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(mandir_SQ)/man3'
@@ -3006,19 +3006,19 @@ install-html:
        $(MAKE) -C Documentation install-html

install-info:
-       $(MAKE) -C Documentation install-info
+       $(MAKE) -C Documentation install-info DESTDIR=$(DESTDIR)

install-pdf:
-       $(MAKE) -C Documentation install-pdf
+       $(MAKE) -C Documentation install-pdf DESTDIR=$(DESTDIR)

quick-install-doc:
-       $(MAKE) -C Documentation quick-install
+       $(MAKE) -C Documentation quick-install DESTDIR=$(DESTDIR)

quick-install-man:
-       $(MAKE) -C Documentation quick-install-man
+       $(MAKE) -C Documentation quick-install-man DESTDIR=$(DESTDIR)

quick-install-html:
-       $(MAKE) -C Documentation quick-install-html
+       $(MAKE) -C Documentation quick-install-html DESTDIR=$(DESTDIR)

-- Brief whoami:
NonStop developer since approximately 211288444200000000
UNIX developer since approximately 421664400
-- In my real life, I talk too much.
Junio C Hamano· Sep 2, 2020, 19:44 UTC · re: Randall S. Becker · lore

Re: [Suggestion] Documentation: quick-install-man not propagating DESTDIR

"Randall S. Becker" <rsbecker@nexbridge.com> writes:
> The make quick-install-man rule is not propagating DESTDIR when GNU Make
> 4.2.1 is used.

I wonder, instead of having to change all "$(MAKE) -C elsewhere", we can add DESTDIR to the list of variables that are exported.

... goes and looks ...

Hmph, DESTDIR is exported together with DIFF, TAR, INSTALL and SHELL_PATH. We do rely on SHELL_PATH to be exported correctly to t/Makefile for "make test" to work, so it is puzzling.

It is doubly puzzling that we use $(INSTALL) in Documentation/Makefile on the same line as $(DESTDIR) is used, and apparently you are not reporting problem on that one.

> It seems like a bit of a nit to report this, but I discovered that the
> installation is not putting the manuals in the same place as git. It’s a
> pretty simple fix. I can put a patch together if desired.

I do not think we want that patch. Instead I think we'd want a patch that uses the same trick as what makes INSTALL work.

Thanks.
Show 44 quoted lines
> diff --git a/Makefile b/Makefile
> index 372139f1f2..dae2d99a7f 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -2992,10 +2992,10 @@ install-gitweb:
>         $(MAKE) -C gitweb install
>
> install-doc: install-man-perl
> -       $(MAKE) -C Documentation install
> +       $(MAKE) -C Documentation install DESTDIR=$(DESTDIR)
>
> install-man: install-man-perl
> -       $(MAKE) -C Documentation install-man
> +       $(MAKE) -C Documentation install-man DESTDIR=$(DESTDIR)
>
> install-man-perl: man-perl
>         $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(mandir_SQ)/man3'
> @@ -3006,19 +3006,19 @@ install-html:
>         $(MAKE) -C Documentation install-html
>
> install-info:
> -       $(MAKE) -C Documentation install-info
> +       $(MAKE) -C Documentation install-info DESTDIR=$(DESTDIR)
>
> install-pdf:
> -       $(MAKE) -C Documentation install-pdf
> +       $(MAKE) -C Documentation install-pdf DESTDIR=$(DESTDIR)
>
> quick-install-doc:
> -       $(MAKE) -C Documentation quick-install
> +       $(MAKE) -C Documentation quick-install DESTDIR=$(DESTDIR)
>
> quick-install-man:
> -       $(MAKE) -C Documentation quick-install-man
> +       $(MAKE) -C Documentation quick-install-man DESTDIR=$(DESTDIR)
>
> quick-install-html:
> -       $(MAKE) -C Documentation quick-install-html
> +       $(MAKE) -C Documentation quick-install-html DESTDIR=$(DESTDIR)
>
> -- Brief whoami:
> NonStop developer since approximately 211288444200000000
> UNIX developer since approximately 421664400
> -- In my real life, I talk too much.
Randall S. Becker· Sep 2, 2020, 19:52 UTC · re: Junio C Hamano · lore

RE: [Suggestion] Documentation: quick-install-man not propagating DESTDIR

On September 2, 2020 3:45 PM, Junio C Hamano wrote:
Show 25 quoted lines
> "Randall S. Becker" <rsbecker@nexbridge.com> writes:
> 
> > The make quick-install-man rule is not propagating DESTDIR when GNU
> > Make
> > 4.2.1 is used.
> 
> I wonder, instead of having to change all "$(MAKE) -C elsewhere", we can
> add DESTDIR to the list of variables that are exported.
> 
> ... goes and looks ...
> 
> Hmph, DESTDIR is exported together with DIFF, TAR, INSTALL and
> SHELL_PATH.  We do rely on SHELL_PATH to be exported correctly to
> t/Makefile for "make test" to work, so it is puzzling.
> 
> It is doubly puzzling that we use $(INSTALL) in Documentation/Makefile on
> the same line as $(DESTDIR) is used, and apparently you are not reporting
> problem on that one.
> 
> > It seems like a bit of a nit to report this, but I discovered that the
> > installation is not putting the manuals in the same place as git. It’s
> > a pretty simple fix. I can put a patch together if desired.
> 
> I do not think we want that patch.  Instead I think we'd want a patch that
> uses the same trick as what makes INSTALL work.
I'll look into that approach. Thanks for the direction.

Regards, Randall

← back to recent threads