git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v4 1/4] Add tar extract install options override in installation processing.

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 24, 2018, 20:33 UTC
Message-ID
<xmqq607rdmka.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20180121234203.13764-2-randall.s.becker@rogers.com>
randall.s.becker@rogers.com writes:
> From: "Randall S. Becker" <rsbecker@nexbridge.com>
> Subject: Re: [PATCH v4 1/4] Add tar extract install options override in installation processing.

We typically start the subject with some short token to help readers of "git shortlog --no-merges" identify what area is being touched, e.g. something like

Subject: [PATCH 1/4] Makefile: allow customizing tar extract options for installation
> Introduced TAR_EXTRACT_OPTIONS as a configuration option to change
> the options of tar processing during extract. The default value is "o"
> which synthesizes xof, by default.

And then we order the codebase "to be like so" (or, give an order to a patch monkey "to make the resulting code like so"). i.e. something like:

    Introduce TAR_EXTRACT_OPTIONS to allow customizing the tar
    options used when installing.  The default value is "o", which ...

What is missing from the log message is the most important thing, though. Everything you wrote (i.e. what build-time knob is being added, what is tweaked and what the default is) we can read from the patch text itself, but readers will be left wondering why anybody would want to change "o" and change it to what else under what circumstances to achieve what. I am guessing something like this might be the reason behind this change

    This allows an implementations of "tar" that lacks the 'o'
    (--no-same-owner) extract option to be used (even though the
    resulting installed versions will keep ownership of whoever
    happened to have built them, instead of being owned by 'root')
but please do not make readers guess.

Having said all that, I wonder if this "go to po/build/locale, tar everything up and then extract it elsewhere" is truly necessary. IOW, why isn't it sufficient to do this instead, for example?

    umask 022 && cp -r po/build/locale/. '$(DESTDIR_SQ)$(localedir_SQ)'
Show 38 quoted lines
>
> Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
> ---
>  Makefile | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/Makefile b/Makefile
> index 1a9b23b67..78ee431b7 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -429,6 +429,10 @@ all::
>  # running the test scripts (e.g., bash has better support for "set -x"
>  # tracing).
>  #
> +# Define TAR_EXTRACT_OPTIONS if you want to change the default behaviour
> +# from xvf to something else during installation. The option only includes
> +# "o" as xf are required.
> +#
>  # When cross-compiling, define HOST_CPU as the canonical name of the CPU on
>  # which the built Git will run (for instance "x86_64").
>  
> @@ -452,6 +456,7 @@ LDFLAGS =
>  ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS)
>  ALL_LDFLAGS = $(LDFLAGS)
>  STRIP ?= strip
> +TAR_EXTRACT_OPTIONS = o
>  
>  # Create as necessary, replace existing, make ranlib unneeded.
>  ARFLAGS = rcs
> @@ -2569,7 +2574,7 @@ install: all
>  ifndef NO_GETTEXT
>  	$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(localedir_SQ)'
>  	(cd po/build/locale && $(TAR) cf - .) | \
> -	(cd '$(DESTDIR_SQ)$(localedir_SQ)' && umask 022 && $(TAR) xof -)
> +	(cd '$(DESTDIR_SQ)$(localedir_SQ)' && umask 022 && $(TAR) x$(TAR_EXTRACT_OPTIONS)f -)
>  endif
>  ifndef NO_PERL
>  	$(MAKE) -C perl prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' install
Previous: randall.s.becker@rogers.comNext: Todd Zullinger
Message 4 of 16 in “Force pipes to flush immediately on NonStop platform”
  1. 0/4 Force pipes to flush immediately on NonStop platformrandall.s.becker@rogers.com, Jan 21, 2018
  2. 4/4 Add intptr_t and uintptr_t to regcomp.c for NonStop platform.randall.s.becker@rogers.com, Jan 21, 2018
  3. 1/4 Add tar extract install options override in installation processing.randall.s.becker@rogers.com, Jan 21, 2018
  4. Junio C HamanoJan 24, 2018
  5. Todd ZullingerJan 24, 2018
  6. Randall S. BeckerJan 24, 2018
  7. Ramsay JonesJan 24, 2018
  8. 3/4 Bring NonStop platform definitions up to date in git-compat-util.hrandall.s.becker@rogers.com, Jan 21, 2018
  9. Junio C HamanoJan 24, 2018
  10. Randall S. BeckerJan 24, 2018
  11. Junio C HamanoJan 24, 2018
  12. Junio C HamanoJan 24, 2018
  13. Randall S. BeckerJan 24, 2018
  14. 2/4 Define config options required for the HPE NonStop NSX and NSE platformsrandall.s.becker@rogers.com, Jan 21, 2018
  15. Junio C HamanoJan 24, 2018
  16. randall.s.becker@rogers.comJan 24, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.