All of lore.kernel.org
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: Jeff King <peff@peff.net>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
	Kyle Lippincott <spectral@google.com>
Subject: Re: [PATCH 1/2] GIT-VERSION-GEN: fix overriding version via environment
Date: Fri, 20 Dec 2024 09:45:36 +0100	[thread overview]
Message-ID: <Z2UlpaDFjvl--zau@pks.im> (raw)
In-Reply-To: <20241220073437.GA2389154@coredump.intra.peff.net>

On Fri, Dec 20, 2024 at 02:34:37AM -0500, Jeff King wrote:
> On Thu, Dec 19, 2024 at 04:53:36PM +0100, Patrick Steinhardt wrote:
> > diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN
> > index de0e63bdfbac263884e2ea328cc2ef11ace7a238..787c6cfd04f0a43d0c1c8a6690185d26ccf2fc2f 100755
> > --- a/GIT-VERSION-GEN
> > +++ b/GIT-VERSION-GEN
> > @@ -29,7 +29,10 @@ export GIT_CEILING_DIRECTORIES
> >  
> >  # First see if there is a version file (included in release tarballs),
> >  # then try git-describe, then default.
> > -if test -f "$SOURCE_DIR"/version
> > +if test -n "$GIT_VERSION"
> > +then
> > +    VN="$GIT_VERSION"
> > +elif test -f "$SOURCE_DIR"/version
> >  then
> >  	VN=$(cat "$SOURCE_DIR"/version) || VN="$DEF_VER"
> >  elif {
> 
> Later we process $VN into $GIT_VERSION, but after removing the leading
> "v" (which would usually be there from the tag name):
> 
>   GIT_VERSION=$(expr "$VN" : v*'\(.*\)')
> 
> So if I do:
> 
>   make GIT_VERSION=very-special
> 
> with v2.47 I'd end up with the version "very-special". But after your
> patch, it is "ery-special".
> 
> I'd guess it's unlikely to come up in practice, but if we are trying to
> restore the old behavior, that's one difference.

Ah, indeed, will fix.

> The second is that the value is read from the environment, but make will
> not always put its variables into the environment. Ones given on the
> command line are, so:
> 
>   make GIT_VERSION=foo
> 
> works as before. But:
> 
>   echo 'GIT_VERSION = foo' >config.mak
>   make
> 
> will not, as the variable isn't set in the environment. The invocation
> of GIT-VERSION-GEN already passes along GIT_USER_AGENT explicitly:
> 
>   version-def.h: version-def.h.in GIT-VERSION-GEN GIT-VERSION-FILE GIT-USER-AGENT
>           $(QUIET_GEN)GIT_USER_AGENT="$(GIT_USER_AGENT)" $(SHELL_PATH) ./GIT-VERSION-GEN "$(shell pwd)" $< $@+
>           @if cmp $@+ $@ >/dev/null 2>&1; then $(RM) $@+; else mv $@+ $@; fi
> 
> Should we do the same thing for GIT_VERSION? And GIT_DATE, etc? If we're
> going to do many of these, it might also be easier to just add "export
> GIT_VERSION", etc, in the Makefile.

I guess. It'll become quite painful to do this at every callsite, so
I'll add another commit on top to introduce a call template that does
all of this for us.

> PS I don't know if meson.build would need something similar. It does not
>    even pass through GIT_USER_AGENT now.

It's easy enough to do, so why not?

Patrick

  reply	other threads:[~2024-12-20  8:45 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-19 15:53 [PATCH 0/2] GIT-VERSION-GEN: fix overriding values Patrick Steinhardt
2024-12-19 15:53 ` [PATCH 1/2] GIT-VERSION-GEN: fix overriding version via environment Patrick Steinhardt
2024-12-19 18:49   ` Junio C Hamano
2024-12-20  7:34   ` Jeff King
2024-12-20  8:45     ` Patrick Steinhardt [this message]
2024-12-20  8:56       ` Jeff King
2024-12-20  9:31         ` Patrick Steinhardt
2024-12-20 11:17           ` Jeff King
2024-12-20 12:22             ` Patrick Steinhardt
2024-12-19 15:53 ` [PATCH 2/2] GIT-VERSION-GEN: fix overriding GIT_BUILT_FROM_COMMIT and GIT_DATE Patrick Steinhardt
2024-12-19 21:19   ` Kyle Lippincott
2024-12-19 21:59     ` Junio C Hamano
2024-12-20  7:37   ` Jeff King
2024-12-20 15:04     ` Junio C Hamano
2024-12-20 12:22 ` [PATCH v2 0/5] GIT-VERSION-GEN: fix overriding values Patrick Steinhardt
2024-12-20 12:22   ` [PATCH v2 1/5] GIT-VERSION-GEN: fix overriding version via environment Patrick Steinhardt
2024-12-20 15:52     ` Jeff King
2024-12-20 16:16       ` Patrick Steinhardt
2024-12-20 16:17       ` Junio C Hamano
2024-12-20 16:23         ` Patrick Steinhardt
2024-12-20 12:22   ` [PATCH v2 2/5] GIT-VERSION-GEN: fix overriding GIT_BUILT_FROM_COMMIT and GIT_DATE Patrick Steinhardt
2024-12-20 12:22   ` [PATCH v2 3/5] Makefile: drop unneeded indirection for GIT-VERSION-GEN outputs Patrick Steinhardt
2024-12-20 15:53     ` Jeff King
2024-12-20 12:22   ` [PATCH v2 4/5] Makefile: respect build info declared in "config.mak" Patrick Steinhardt
2024-12-20 15:54     ` Jeff King
2024-12-20 16:47       ` Patrick Steinhardt
2024-12-20 17:51         ` Jeff King
2024-12-20 18:02           ` Patrick Steinhardt
2024-12-20 18:18             ` Patrick Steinhardt
2024-12-20 18:24             ` Jeff King
2024-12-20 18:39               ` Patrick Steinhardt
2024-12-20 19:07                 ` Patrick Steinhardt
2024-12-28 19:43                   ` Jeff King
2024-12-20 12:22   ` [PATCH v2 5/5] meson: add options to override build information Patrick Steinhardt
2024-12-20 15:56   ` [PATCH v2 0/5] GIT-VERSION-GEN: fix overriding values Jeff King
2024-12-20 19:44 ` [PATCH v3 0/6] " Patrick Steinhardt
2024-12-20 19:44   ` [PATCH v3 1/6] Makefile: stop including "GIT-VERSION-FILE" in docs Patrick Steinhardt
2024-12-20 19:44   ` [PATCH v3 2/6] Makefile: drop unneeded indirection for GIT-VERSION-GEN outputs Patrick Steinhardt
2024-12-20 19:44   ` [PATCH v3 3/6] Makefile: introduce template for GIT-VERSION-GEN Patrick Steinhardt
2024-12-20 19:44   ` [PATCH v3 4/6] GIT-VERSION-GEN: fix overriding GIT_VERSION Patrick Steinhardt
2024-12-20 21:50     ` Junio C Hamano
2024-12-21 10:30       ` Patrick Steinhardt
2024-12-20 19:44   ` [PATCH v3 5/6] GIT-VERSION-GEN: fix overriding GIT_BUILT_FROM_COMMIT and GIT_DATE Patrick Steinhardt
2024-12-20 19:44   ` [PATCH v3 6/6] meson: add options to override build information Patrick Steinhardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Z2UlpaDFjvl--zau@pks.im \
    --to=ps@pks.im \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    --cc=spectral@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.