kbuild: rpm-build: generate kernel.spec in rpmbuild/SPECS/

Message ID 20230930103847.1272324-1-masahiroy@kernel.org
State New
Headers
Series kbuild: rpm-build: generate kernel.spec in rpmbuild/SPECS/ |

Commit Message

Masahiro Yamada Sept. 30, 2023, 10:38 a.m. UTC
  kernel.spec is the last piece that resides outside the rpmbuild/
directory. Move all RPM-related files to rpmbuild/ consistently.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

 .gitignore                 | 1 -
 Makefile                   | 2 +-
 scripts/Makefile.package   | 8 ++++----
 scripts/package/mkspec     | 6 ++++++
 scripts/remove-stale-files | 2 +-
 5 files changed, 12 insertions(+), 7 deletions(-)
  

Comments

Nathan Chancellor Oct. 2, 2023, 11:09 p.m. UTC | #1
On Sat, Sep 30, 2023 at 07:38:47PM +0900, Masahiro Yamada wrote:
> kernel.spec is the last piece that resides outside the rpmbuild/
> directory. Move all RPM-related files to rpmbuild/ consistently.
> 
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Tested-by: Nathan Chancellor <nathan@kernel.org>

> ---
> 
>  .gitignore                 | 1 -
>  Makefile                   | 2 +-
>  scripts/Makefile.package   | 8 ++++----
>  scripts/package/mkspec     | 6 ++++++
>  scripts/remove-stale-files | 2 +-
>  5 files changed, 12 insertions(+), 7 deletions(-)
> 
> diff --git a/.gitignore b/.gitignore
> index 0bbae167bf93..98274e1160d7 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -74,7 +74,6 @@ modules.order
>  #
>  # RPM spec file (make rpm-pkg)
>  #
> -/kernel.spec
>  /rpmbuild/
>  
>  #
> diff --git a/Makefile b/Makefile
> index 3de08c780c74..9e77a58207a8 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1486,7 +1486,7 @@ MRPROPER_FILES += include/config include/generated          \
>  		  certs/signing_key.pem \
>  		  certs/x509.genkey \
>  		  vmlinux-gdb.py \
> -		  kernel.spec rpmbuild \
> +		  rpmbuild \
>  		  rust/libmacros.so
>  
>  # clean - Delete most, but leave enough to build external modules
> diff --git a/scripts/Makefile.package b/scripts/Makefile.package
> index 2bcab02da965..05b8c3e29aac 100644
> --- a/scripts/Makefile.package
> +++ b/scripts/Makefile.package
> @@ -69,9 +69,9 @@ $(linux-tarballs): .tmp_HEAD FORCE
>  # ---------------------------------------------------------------------------
>  
>  quiet_cmd_mkspec = GEN     $@
> -      cmd_mkspec = $(srctree)/scripts/package/mkspec > $@
> +      cmd_mkspec = $(srctree)/scripts/package/mkspec $@
>  
> -kernel.spec: FORCE
> +rpmbuild/SPECS/kernel.spec: FORCE
>  	$(call cmd,mkspec)
>  
>  PHONY += rpm-sources
> @@ -88,8 +88,8 @@ srcrpm-pkg: private build-type := s
>  binrpm-pkg: private build-type := b
>  
>  rpm-pkg srcrpm-pkg: rpm-sources
> -rpm-pkg srcrpm-pkg binrpm-pkg: kernel.spec
> -	+$(strip rpmbuild -b$(build-type) kernel.spec \
> +rpm-pkg srcrpm-pkg binrpm-pkg: rpmbuild/SPECS/kernel.spec
> +	+$(strip rpmbuild -b$(build-type) rpmbuild/SPECS/kernel.spec \
>  	--define='_topdir $(abspath rpmbuild)' \
>  	$(if $(filter a b, $(build-type)), \
>  		--target $(UTS_MACHINE)-linux --build-in-place --noprep --define='_smp_mflags %{nil}' \
> diff --git a/scripts/package/mkspec b/scripts/package/mkspec
> index d41608efb747..ce201bfa8377 100755
> --- a/scripts/package/mkspec
> +++ b/scripts/package/mkspec
> @@ -9,6 +9,12 @@
>  #	Patched for non-x86 by Opencon (L) 2002 <opencon@rio.skydome.net>
>  #
>  
> +output=$1
> +
> +mkdir -p "$(dirname "${output}")"
> +
> +exec >"${output}"
> +
>  if grep -q CONFIG_MODULES=y include/config/auto.conf; then
>  echo '%define with_devel %{?_without_devel: 0} %{?!_without_devel: 1}'
>  else
> diff --git a/scripts/remove-stale-files b/scripts/remove-stale-files
> index 8b1a636f8543..385610fe3936 100755
> --- a/scripts/remove-stale-files
> +++ b/scripts/remove-stale-files
> @@ -38,4 +38,4 @@ rm -rf include/ksym
>  
>  find . -name '*.usyms' | xargs rm -f
>  
> -rm -f binkernel.spec
> +rm -f *.spec
> -- 
> 2.39.2
>
  

Patch

diff --git a/.gitignore b/.gitignore
index 0bbae167bf93..98274e1160d7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -74,7 +74,6 @@  modules.order
 #
 # RPM spec file (make rpm-pkg)
 #
-/kernel.spec
 /rpmbuild/
 
 #
diff --git a/Makefile b/Makefile
index 3de08c780c74..9e77a58207a8 100644
--- a/Makefile
+++ b/Makefile
@@ -1486,7 +1486,7 @@  MRPROPER_FILES += include/config include/generated          \
 		  certs/signing_key.pem \
 		  certs/x509.genkey \
 		  vmlinux-gdb.py \
-		  kernel.spec rpmbuild \
+		  rpmbuild \
 		  rust/libmacros.so
 
 # clean - Delete most, but leave enough to build external modules
diff --git a/scripts/Makefile.package b/scripts/Makefile.package
index 2bcab02da965..05b8c3e29aac 100644
--- a/scripts/Makefile.package
+++ b/scripts/Makefile.package
@@ -69,9 +69,9 @@  $(linux-tarballs): .tmp_HEAD FORCE
 # ---------------------------------------------------------------------------
 
 quiet_cmd_mkspec = GEN     $@
-      cmd_mkspec = $(srctree)/scripts/package/mkspec > $@
+      cmd_mkspec = $(srctree)/scripts/package/mkspec $@
 
-kernel.spec: FORCE
+rpmbuild/SPECS/kernel.spec: FORCE
 	$(call cmd,mkspec)
 
 PHONY += rpm-sources
@@ -88,8 +88,8 @@  srcrpm-pkg: private build-type := s
 binrpm-pkg: private build-type := b
 
 rpm-pkg srcrpm-pkg: rpm-sources
-rpm-pkg srcrpm-pkg binrpm-pkg: kernel.spec
-	+$(strip rpmbuild -b$(build-type) kernel.spec \
+rpm-pkg srcrpm-pkg binrpm-pkg: rpmbuild/SPECS/kernel.spec
+	+$(strip rpmbuild -b$(build-type) rpmbuild/SPECS/kernel.spec \
 	--define='_topdir $(abspath rpmbuild)' \
 	$(if $(filter a b, $(build-type)), \
 		--target $(UTS_MACHINE)-linux --build-in-place --noprep --define='_smp_mflags %{nil}' \
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
index d41608efb747..ce201bfa8377 100755
--- a/scripts/package/mkspec
+++ b/scripts/package/mkspec
@@ -9,6 +9,12 @@ 
 #	Patched for non-x86 by Opencon (L) 2002 <opencon@rio.skydome.net>
 #
 
+output=$1
+
+mkdir -p "$(dirname "${output}")"
+
+exec >"${output}"
+
 if grep -q CONFIG_MODULES=y include/config/auto.conf; then
 echo '%define with_devel %{?_without_devel: 0} %{?!_without_devel: 1}'
 else
diff --git a/scripts/remove-stale-files b/scripts/remove-stale-files
index 8b1a636f8543..385610fe3936 100755
--- a/scripts/remove-stale-files
+++ b/scripts/remove-stale-files
@@ -38,4 +38,4 @@  rm -rf include/ksym
 
 find . -name '*.usyms' | xargs rm -f
 
-rm -f binkernel.spec
+rm -f *.spec