Re: [PATCH v2 08/10] make-setup-generated: optionally add GIT metadata

Alex Bennée <[email protected]> Fri, 10 Oct 2025 14:10:25 +0100
Newsgroups dev.linux.lists.virtio-comment
Message-ID <[email protected]>
"Michael S. Tsirkin" <[email protected]> writes:

> On Fri, Oct 10, 2025 at 12:20:08PM +0100, Alex Bennée wrote:
<snip>
>> Signed-off-by: Alex Bennée <[email protected]>
>> Message-ID: <[email protected]>
>
> Pls avoid Message-ID trailers in patches you post. It's really
> confusing.

That was added by b4 - I can add a .b4-config to stop that happening
accidentally. I see the git history has Links instead, e.g.:

 Link: https://lore.kernel.org/r/[email protected]

is that OK?

>
>> ---
>>  make-setup-generated.sh | 32 ++++++++++++++++++++++++++++----
>>  makeall.sh              |  4 ++--
>>  makehtml.sh             |  2 +-
>>  makepdf.sh              |  2 +-
>>  4 files changed, 32 insertions(+), 8 deletions(-)
>> 
>> diff --git a/make-setup-generated.sh b/make-setup-generated.sh
>> index 2c5c7f8..8d33ac5 100755
>> --- a/make-setup-generated.sh
>> +++ b/make-setup-generated.sh
>> @@ -1,16 +1,31 @@
>>  #! /bin/sh
>> +#
>> +# Generate version and metadata preamble for the document
>> +#
>>  
>>  DATESTR=${DATESTR:-`cat REVISION-DATE 2>/dev/null`}
>> -if [ x"$DATESTR" = x ]; then
>> -    ISODATE=`git show --format=format:'%cd' --date=iso | head -n 1`
>> -    DATESTR=`date -d "$DATE" +'%d %B %Y'`
>> +
>> +# If a second argument is passed we extract what we can from git
>> +# metadata (closest lightweight tag) and local tree status. This
>> +# allows locally generated copies to be tagged appropriately.
>> +#
>> +# The formal build process skips this.
>> +if ! test -z "$2"; then
>> +    TAG=$(git describe --dirty --tags)
>> +    # base date on now
>> +    DATESTR=$(date +'%d %B %Y')
>> +    COMMIT=$(git rev-parse --short HEAD)
>> +
>> +    # Finally check if we have un-committed changes in the tree
>> +    if ! git diff-index --quiet HEAD -- ; then
>> +        COMMIT="$COMMIT with local changes"
>> +    fi
>>  fi
>>  
>>  case "$1" in
>>      *-wd*)
>>  	STAGE=wd
>>  	STAGENAME="Working Draft"
>> -	WORKINGDRAFT=`basename "$1" | sed 's/.*-wd//'`
>>  	;;
>>      *-os*)
>>  	STAGE=os
>
> This is used in the generated latex:
> make-setup-generated.sh:\newcommand{\virtioworkingdraft}{$WORKINGDRAFT}
>
> Are you sure output for a wd is unaffected?
> We still need to be able to generate these for the TC process.
>
>
>> @@ -41,6 +56,15 @@ esac
>>  
>>  VERSION=`echo "$1"| sed -e 's/virtio-v//' -e 's/-.*//'`
>>  
>> +#
>> +# Finally if we are building a local draft copy append the commit
>> +# details to the end of the working draft
>> +#
>> +if ! test -z "$COMMIT" ; then
>> +    STAGEEXTRATITLE="$STAGEEXTRATITLE (@ git $COMMIT)"
>> +fi
>> +
>> +
>>  #Prepend OASIS unless already there
>>  case "$STAGENAME" in
>>  	OASIS*)
>> diff --git a/makeall.sh b/makeall.sh
>> index 37e6c34..5f5d5dc 100755
>> --- a/makeall.sh
>> +++ b/makeall.sh
>> @@ -3,8 +3,8 @@
>>  export SPECDOC=${SPECDOC:-`cat REVISION`}
>>  export DATESTR=${DATESTR:-`cat REVISION-DATE`}
>>  ./makezip.sh
>> -./makehtml.sh
>> -./makepdf.sh
>> +./makehtml.sh $1
>> +./makepdf.sh $1
>>  zip $SPECDOC.zip $SPECDOC.pdf
>>  echo Generated file $SPECDOC.zip
>>  echo To change output file name, set SPECDOC environment variable
>> diff --git a/makehtml.sh b/makehtml.sh
>> index 45b7080..cf1a8d7 100755
>> --- a/makehtml.sh
>> +++ b/makehtml.sh
>> @@ -1,7 +1,7 @@
>>  #!/bin/sh
>>  
>>  SPECDOC=${SPECDOC:-`cat REVISION`}
>> -./make-setup-generated.sh "$SPECDOC"
>> +./make-setup-generated.sh "$SPECDOC" $1
>>  
>>  cp virtio-html.tex $SPECDOC.tex
>>  
>> diff --git a/makepdf.sh b/makepdf.sh
>> index 9cae903..bdfb8e5 100755
>> --- a/makepdf.sh
>> +++ b/makepdf.sh
>> @@ -1,7 +1,7 @@
>>  #!/bin/sh
>>  
>>  SPECDOC=${SPECDOC:-`cat REVISION`}
>> -./make-setup-generated.sh "$SPECDOC"
>> +./make-setup-generated.sh "$SPECDOC" $1
>>  
>>  rm $SPECDOC.aux $SPECDOC.pdf $SPECDOC.out
>>  xelatex --jobname $SPECDOC virtio.tex
>> -- 
>> 2.47.3
>> 

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro