kbuild: do not put .scmversion into the source tarball
authorMasahiro Yamada <masahiroy@kernel.org>
Sun, 22 Jan 2023 14:14:21 +0000 (23:14 +0900)
committerMasahiro Yamada <masahiroy@kernel.org>
Mon, 30 Jan 2023 04:00:30 +0000 (13:00 +0900)
.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.
For the same reason, you do not need to save LOCALVERSION in the
spec file.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
scripts/Makefile.package
scripts/package/mkspec
scripts/remove-stale-files
scripts/setlocalversion

index 525a282..e84c4e8 100644 (file)
@@ -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
 # ---------------------------------------------------------------------------
index 094e52c..108c0cb 100755 (executable)
@@ -33,8 +33,6 @@ EXCLUDES="$RCS_TAR_IGNORE --exclude=*vmlinux* --exclude=*.mod \
 --exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation \
 --exclude=.config.old --exclude=.missing-syscalls.d --exclude=*.s"
 
-test -n "$LOCALVERSION" && MAKE="$MAKE LOCALVERSION=$LOCALVERSION"
-
 # We can label the here-doc lines for conditional output to the spec file
 #
 # Labels:
@@ -90,7 +88,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=$KERNELRELEASE KBUILD_BUILD_VERSION=%{release}
 $S
        %install
        mkdir -p %{buildroot}/boot
@@ -101,8 +99,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=$KERNELRELEASE INSTALL_MOD_PATH=%{buildroot} modules_install
+       $MAKE %{?_smp_mflags} KERNELRELEASE=$KERNELRELEASE 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
index 04fcdf7..7f43290 100755 (executable)
@@ -31,3 +31,5 @@ rm -f scripts/kconfig/[gmnq]conf-cfg
 rm -f rust/target.json
 
 rm -f scripts/bin2c
+
+rm -f .scmversion
index af4754a..3b31702 100755 (executable)
 #
 
 usage() {
-       echo "Usage: $0 [--save-scmversion] [srctree]" >&2
+       echo "Usage: $0 [srctree]" >&2
        exit 1
 }
 
-scm_only=false
 srctree=.
-if test "$1" = "--save-scmversion"; then
-       scm_only=true
-       shift
-fi
 if test $# -gt 0; then
        srctree=$1
        shift
@@ -35,10 +30,6 @@ scm_version()
        short=false
 
        cd "$srctree"
-       if test -e .scmversion; then
-               cat .scmversion
-               return
-       fi
        if test "$1" = "--short"; then
                short=true
        fi
@@ -103,14 +94,6 @@ collect_files()
        echo "$res"
 }
 
-if $scm_only; then
-       if test ! -e .scmversion; then
-               res=$(scm_version)
-               echo "$res" >.scmversion
-       fi
-       exit
-fi
-
 if ! test -e include/config/auto.conf; then
        echo "Error: kernelrelease not valid - run 'make prepare' to update it" >&2
        exit 1