Re: [PATCH 1/7] kbuild: do not put .scmversion into the source tarball

From: Masahiro Yamada
Date: Sun Jan 29 2023 - 20:45:09 EST


On Mon, Jan 30, 2023 at 6:29 AM Nicolas Schier <nicolas@xxxxxxxxx> wrote:
>
> On Sun 22 Jan 2023 23:14:21 GMT, Masahiro Yamada wrote:
> > .scmversion is used by (src)rpm-pkg and deb-pkg to carry
> > KERNELRELEASE.
> >
> > In fact, deb-pkg does not rely on it any more because the generated
> > debian/rules specifies KERNELRELEASE from the command line.
> >
> > Do likwise for (src)rpm-pkg, and remove this feature.
> >
> > Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> > ---
> >
> > scripts/Makefile.package | 6 ++----
> > scripts/package/mkspec | 6 +++---
> > scripts/setlocalversion | 19 +------------------
> > 3 files changed, 6 insertions(+), 25 deletions(-)
> >
> > diff --git a/scripts/Makefile.package b/scripts/Makefile.package
> > index 525a2820976f..e84c4e8ceb8e 100644
> > --- a/scripts/Makefile.package
> > +++ b/scripts/Makefile.package
> > @@ -32,7 +32,7 @@ export KDEB_SOURCENAME
> > TAR_CONTENT := Documentation LICENSES arch block certs crypto drivers fs \
> > include init io_uring ipc kernel lib mm net rust \
> > samples scripts security sound tools usr virt \
> > - .config .scmversion Makefile \
> > + .config Makefile \
> > Kbuild Kconfig COPYING $(wildcard localversion*)
> > MKSPEC := $(srctree)/scripts/package/mkspec
> >
> > @@ -47,10 +47,8 @@ if test "$(objtree)" != "$(srctree)"; then \
> > echo >&2; \
> > false; \
> > fi ; \
> > -$(srctree)/scripts/setlocalversion --save-scmversion; \
> > tar -I $(KGZIP) -c $(RCS_TAR_IGNORE) -f $(2).tar.gz \
> > - --transform 's:^:$(2)/:S' $(TAR_CONTENT) $(3); \
> > -rm -f $(objtree)/.scmversion
> > + --transform 's:^:$(2)/:S' $(TAR_CONTENT) $(3)
> >
> > # rpm-pkg
> > # ---------------------------------------------------------------------------
> > diff --git a/scripts/package/mkspec b/scripts/package/mkspec
> > index adab28fa7f89..d3c6701b7769 100755
> > --- a/scripts/package/mkspec
> > +++ b/scripts/package/mkspec
> > @@ -90,7 +90,7 @@ $S rm -f scripts/basic/fixdep scripts/kconfig/conf
> > $S rm -f tools/objtool/{fixdep,objtool}
> > $S
> > $S %build
> > -$S $MAKE %{?_smp_mflags} KBUILD_BUILD_VERSION=%{release}
> > +$S $MAKE %{?_smp_mflags} KERNELRELEASE=%{version} KBUILD_BUILD_VERSION=%{release}
> > $S
> > %install
> > mkdir -p %{buildroot}/boot
> > @@ -101,8 +101,8 @@ $S
> > %else
> > cp \$($MAKE -s image_name) %{buildroot}/boot/vmlinuz-$KERNELRELEASE
> > %endif
> > -$M $MAKE %{?_smp_mflags} INSTALL_MOD_PATH=%{buildroot} modules_install
> > - $MAKE %{?_smp_mflags} INSTALL_HDR_PATH=%{buildroot}/usr headers_install
> > +$M $MAKE %{?_smp_mflags} KERNELRELEASE=%{version} INSTALL_MOD_PATH=%{buildroot} modules_install
> > + $MAKE %{?_smp_mflags} KERNELRELEASE=%{version} INSTALL_HDR_PATH=%{buildroot}/usr headers_install
> > cp System.map %{buildroot}/boot/System.map-$KERNELRELEASE
> > cp .config %{buildroot}/boot/config-$KERNELRELEASE
> > $S$M rm -f %{buildroot}/lib/modules/$KERNELRELEASE/build
> > diff --git a/scripts/setlocalversion b/scripts/setlocalversion
> > index af4754a35e66..3b31702b4a4a 100755
> > --- a/scripts/setlocalversion
> > +++ b/scripts/setlocalversion
> > @@ -11,16 +11,11 @@
> > #
> >
> > usage() {
> > - echo "Usage: $0 [--save-scmversion] [srctree]" >&2
> > + echo "Usage: $0 [srctree]" >&2
>
> Hi Masahiro,
>
> as .scmversion will not we generated (or removed by 'make clean' or
> 'make mrproper'), might it make sense to add it to
> scripts/remove-stale-files?
>
> Reviewed-by: Nicolas Schier <nicolas@xxxxxxxxx>
>
> Kind regards,
> Nicolas


Good point.

.scmversion is removed after the tarball is created
(see "rm -f $(objtree)/.scmversion"), but
it is left over if the user interrupts while the
tarball is being created.

I will fold it locally.

Thanks.






--
Best Regards
Masahiro Yamada