On Sat, 2025-04-12 at 00:05 +0200, Yoann Congal wrote:
> Le lun. 7 avr. 2025 à 16:42, Martin Wilck <mwi...@suse.com> a écrit :
> > 
> > On Mon, 2025-04-07 at 12:53 +0200, Yoann Congal wrote:
> > > Hello,
> > > 
> > > Le lun. 7 avr. 2025 à 12:32, Martin Wilck <mwi...@suse.com> a
> > > écrit :
> > > > 
> > > > On Mon, 2025-04-07 at 10:53 +0200, Martin Wilck wrote:
> > > > > On Fri, 2025-04-04 at 14:29 +0200, Sofiane HAMAM wrote:
> > > > > > From: Kéléfa Sané <kelefa.s...@smile.fr>
> > > > > > 
> > > > > > When checking out the git repos, sometimes, target
> > > > > > docs/man/dmmp_strerror.3 is newer that the prerequisite
> > > > > > libdmmp/libdmmp.h this leads to a non reproducible
> > > > > > behavior:
> > > > > > Sometimes, the timestamps are updated in the manpages,
> > > > > > sometimes
> > > > > > not.
> > > > > > 
> > > > > > Signed-off-by: Yoann Congal <yoann.con...@smile.fr>
> > > > > > Signed-off-by: Sofiane HAMAM <sofiane.ha...@smile.fr>
> > > > > > Signed-off-by: Kelefa Sane <kelefa.s...@smile.fr>
> > > > > > ---
> > > > > >  libdmmp/Makefile | 2 +-
> > > > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > > > 
> > > > > > diff --git a/libdmmp/Makefile b/libdmmp/Makefile
> > > > > > index 7e0e2509..187bcb8c 100644
> > > > > > --- a/libdmmp/Makefile
> > > > > > +++ b/libdmmp/Makefile
> > > > > > @@ -20,7 +20,7 @@ CFLAGS += $(LIB_CFLAGS) -
> > > > > > fvisibility=hidden
> > > > > >  LIBDEPS += $(shell $(PKG_CONFIG) --libs json-c) -
> > > > > > L$(mpathcmddir) -
> > > > > > lmpathcmd -lpthread
> > > > > > 
> > > > > >  all: $(LIBS) doc
> > > > > > -.PHONY:    doc clean install uninstall check speed_test
> > > > > > dep_clean
> > > > > > +.PHONY:    doc clean install uninstall check speed_test
> > > > > > dep_clean docs/man/dmmp_strerror.3
> > > > > > 
> > > > > 
> > > > > I've seen the issue you refer to, but this is not the right
> > > > > solution.
> > > > > It will cause the time stamps of the man pages to be
> > > > > regenerated
> > > > > on
> > > > > every build.
> > > > 
> > > > After investigating this some more: AFAICS, your patch 1/2
> > > > fixes
> > > > the
> > > > erratic behavior in the (normal) case where
> > > > KBUILD_BUILD_TIMESTAMP
> > > > is
> > > > not set and git is available. Previously, in this case, the
> > > > kernel-
> > > > doc
> > > > script would have substituted the current date for
> > > > KBUILD_BUILD_TIMESTAMP (yielding "April 2025" today). With your
> > > > fix,
> > > > KBUILD_BUILD_TIMESTAMP is correctly set to "August 2024".
> > > > 
> > > > We need to create a commit that updates the man page time
> > > > stamps to
> > > > "August 2024". I'll do this.
> > > > 
> > > > Once this is done, the build rule does the right thing, AFAICS.
> > > > While
> > > > it will rewrite the man pages if the libdmmp.h timestamp is
> > > > updated, it
> > > > won't apply any real changes (visible in "git diff" or "git
> > > > status")
> > > > unless libdmmp.h has actually changed.
> > > > 
> > > > Am I overlooking something?
> > > 
> > > Depending on the order the files are written on disk during the
> > > git
> > > clone/archive extraction (is dmmp_strerror.3 written before or
> > > after
> > > libdmmp.h ?), the build rule will either run or not.
> > > But, as you wrote, with your latest patch, it does not matter at
> > > all
> > > because the rewritten timestamp will be exactly the same.
> > > 
> > > Apart from this little quirk without any consequence, it looks
> > > good
> > > to me.
> > > 
> > > The only future problem I can imagine is if libdmmp.h is updated
> > > without updating the timestamps (again).
> > > In this case, we will either get the timestamps from the sources
> > > or
> > > from git.
> > 
> > That shouldn't happen because as soon as someone changes libdmmp.h
> > and
> > runs "make", the timestamps will be updated. Even if it does, the
> > worst
> > possible outcome is an outdated timestamp in the man pages, which
> > we've
> > seem to have had for several years now.
> > Also, the actual content of libdmmp.h has hardly changed over
> > years.
> > 
> > If someone can contribute a better fix, we'll apply it happily. But
> > I'd
> > rather not want to have to check in the man pages after every
> > build.
> 
> Our (Yocto project) situation is quite different: We build from
> scratch every time and the sources are only kept during the
> compilation, erased after.
> So we will use in our integration the 2 patches of this series to
> force a reproducible build of the manpages.
> 
> Thanks!

Can I take this as an acked-by: from your part?
Or @Ben could you give it a review?

Martin

Reply via email to