Re: [PATCH] doc: set actual revdate for manpages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Apr 13, 2023 at 01:47:22AM -0600, Felipe Contreras wrote:

> manpages expect the date of the last revision, if that is not found
> DocBook Stylesheets go through a series of hacks to generate one with
> the format `%d/%d/%Y` which is not ideal.
> 
> In addition to this format not being standard, different tools generate
> dates with different formats.
> 
> There's no need for any confusion if we specify the revision date, so
> let's do so.

That seems like a good goal, and should reduce our asciidoc/asciidoctor
diff considerably.

> This patch requires [1] to actually work, and has a simple conflict with
> [2], so it's written on top of both.
> 
> [1] https://lore.kernel.org/git/20230323221523.52472-1-felipe.contreras@xxxxxxxxx/
> [2] https://lore.kernel.org/git/20230408001829.11031-1-felipe.contreras@xxxxxxxxx/

I wasted a bit of time trying this out, so let me elaborate on "actually
work" for the benefit of other reviewers. Without the patch in [1]
(which is 8806120de6c on fc/remove-header-workarounds-for-asciidoc),
this patch works as advertised with asciidoctor, but has no effect with
asciidoc.  The reason is that asciidoc puts the <date> tags in the
header, and the custom header removed by 8806120de6c suppresses
asciidoc's default header entirely (so a workaround would be to include
the <date> tags in our custom header, but I don't see any reason not to
just build on top of 8806120de6c, as you did here).

> diff --git a/Documentation/Makefile b/Documentation/Makefile
> index 3133ea3182..b629176d7d 100644
> --- a/Documentation/Makefile
> +++ b/Documentation/Makefile
> @@ -144,13 +144,16 @@ man5dir = $(mandir)/man5
>  man7dir = $(mandir)/man7
>  # DESTDIR =
>  
> +GIT_DATE := $(shell git show --quiet --pretty='%as')

What will/should this do in a distribution tarball, where we won't have
a Git repository at all? I think we'll just end up with a blank date in
the xml file, though it looks like docbook turns that into today's date
in the result.

That's not _too_ bad, but feels a bit inconsistent (and it uses the
format you're trying to get rid of!).

It would be nicer to populate the date variable in that case, like we do
for GIT_VERSION. I think that could look something like this:

diff --git a/Documentation/Makefile b/Documentation/Makefile
index 2ccc3a9bc9..307634a94f 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -144,8 +144,6 @@ man5dir = $(mandir)/man5
 man7dir = $(mandir)/man7
 # DESTDIR =
 
-GIT_DATE := $(shell git show --quiet --pretty='%as')
-
 ASCIIDOC = asciidoc
 ASCIIDOC_EXTRA =
 ASCIIDOC_HTML = xhtml11
diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN
index 9a1111af9b..14903bd261 100755
--- a/GIT-VERSION-GEN
+++ b/GIT-VERSION-GEN
@@ -10,7 +10,8 @@ LF='
 # then try git-describe, then default.
 if test -f version
 then
-	VN=$(cat version) || VN="$DEF_VER"
+	VN=$(cut -d" " -f1 version) || VN="$DEF_VER"
+	DN=$(cut -d" " -f2 version) || DN=""
 elif test -d ${GIT_DIR:-.git} -o -f .git &&
 	VN=$(git describe --match "v[0-9]*" HEAD 2>/dev/null) &&
 	case "$VN" in
@@ -22,19 +23,22 @@ elif test -d ${GIT_DIR:-.git} -o -f .git &&
 	esac
 then
 	VN=$(echo "$VN" | sed -e 's/-/./g');
+	DN=$(git log -1 --format=%as HEAD)
 else
 	VN="$DEF_VER"
+	DN=""
 fi
 
 VN=$(expr "$VN" : v*'\(.*\)')
 
 if test -r $GVF
 then
-	VC=$(sed -e 's/^GIT_VERSION = //' <$GVF)
+	VC=$(sed -ne 's/^GIT_VERSION = //p' <$GVF)
 else
 	VC=unset
 fi
 test "$VN" = "$VC" || {
 	echo >&2 "GIT_VERSION = $VN"
 	echo "GIT_VERSION = $VN" >$GVF
+	echo "GIT_DATE = $DN" >>$GVF
 }
diff --git a/Makefile b/Makefile
index 60ab1a8b4f..fa8db1943c 100644
--- a/Makefile
+++ b/Makefile
@@ -3573,7 +3573,7 @@ endif
 dist: git-archive$(X) configure
 	@$(RM) -r .dist-tmp-dir
 	@mkdir .dist-tmp-dir
-	@echo $(GIT_VERSION) > .dist-tmp-dir/version
+	@echo $(GIT_VERSION) $(GIT_DATE) > .dist-tmp-dir/version
 	@$(MAKE) -C git-gui TARDIR=../.dist-tmp-dir/git-gui dist-version
 	./git-archive --format=tar \
 		$(GIT_ARCHIVE_EXTRA_FILES) \
-- 
2.40.0.515.gdfb9e78b42




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux