Le mar. 29 avr. 2025 à 22:06, Martin Wilck <mwi...@suse.com> a écrit :
>
> 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?

You can!

Acked-by: Yoann Congal <yoann.con...@smile.fr>

FYI, I participated in the patch development and am already in the
Signed-off-by list if you did not notice.

> Or @Ben could you give it a review?
>
> Martin

-- 
Yoann Congal
Smile ECS

Reply via email to