mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Masahiro Yamada <masahiroy@kernel.org>
To: linux-kbuild@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
	Masahiro Yamada <masahiroy@kernel.org>,
	Nathan Chancellor <nathan@kernel.org>,
	Nick Desaulniers <ndesaulniers@google.com>,
	Nicolas Schier <nicolas@fjasle.eu>
Subject: [PATCH 12/19] kbuild: rpm-pkg: invoke the kernel build from rpmbuild for binrpm-pkg
Date: Sat, 22 Jul 2023 13:47:59 +0900	[thread overview]
Message-ID: <20230722044806.3867434-12-masahiroy@kernel.org> (raw)
In-Reply-To: <20230722044806.3867434-1-masahiroy@kernel.org>

To reduce the preprocess of the spec file, invoke the kernel build
from rpmbuild.

Run init/build-version to increment the release number not only for
binrpm-pkg but also for srcrpm-pkg and rpm-pkg.

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

 scripts/Makefile.package |  2 +-
 scripts/package/mkspec   | 31 ++++++++++++++++---------------
 2 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/scripts/Makefile.package b/scripts/Makefile.package
index 7cd61a374dae..8373644a0473 100644
--- a/scripts/Makefile.package
+++ b/scripts/Makefile.package
@@ -86,10 +86,10 @@ srcrpm-pkg: linux.tar.gz
 # ---------------------------------------------------------------------------
 PHONY += binrpm-pkg
 binrpm-pkg:
-	$(MAKE) -f $(srctree)/Makefile
 	$(CONFIG_SHELL) $(MKSPEC) prebuilt > $(objtree)/binkernel.spec
 	+rpmbuild $(RPMOPTS) --define "_builddir $(objtree)" --target \
 		$(UTS_MACHINE)-linux -bb $(objtree)/binkernel.spec \
+		--build-in-place --noprep --define='_smp_mflags %{nil}' \
 		--define='make $(MAKE)'
 
 # deb-pkg srcdeb-pkg bindeb-pkg
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
index 22b980cf3d00..a9425d993667 100755
--- a/scripts/package/mkspec
+++ b/scripts/package/mkspec
@@ -35,6 +35,7 @@ fi
 sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
 %define ARCH ${ARCH}
 %define KERNELRELEASE ${KERNELRELEASE}
+%define pkg_release $("${srctree}/init/build-version")
 
 # _arch is undefined if /usr/lib/rpm/platform/*/macros was not included.
 %{!?_arch: %define _arch dummy}
@@ -44,18 +45,18 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
 	Name: kernel
 	Summary: The Linux Kernel
 	Version: %(echo %{KERNELRELEASE} | sed -e 's/-/_/g')
-	Release: $(cat .version 2>/dev/null || echo 1)
+	Release: %{pkg_release}
 	License: GPL
 	Group: System Environment/Kernel
 	Vendor: The Linux Community
 	URL: https://www.kernel.org
-$S	Source0: linux.tar.gz
-$S	Source1: config
-$S	Source2: diff.patch
+	Source0: linux.tar.gz
+	Source1: config
+	Source2: diff.patch
 	Provides: kernel-%{KERNELRELEASE}
-$S	BuildRequires: bc binutils bison dwarves
-$S	BuildRequires: (elfutils-libelf-devel or libelf-devel) flex
-$S	BuildRequires: gcc make openssl openssl-devel perl python3 rsync
+	BuildRequires: bc binutils bison dwarves
+	BuildRequires: (elfutils-libelf-devel or libelf-devel) flex
+	BuildRequires: gcc make openssl openssl-devel perl python3 rsync
 
 	%define __spec_install_post /usr/lib/rpm/brp-compress || :
 	%define debug_package %{nil}
@@ -83,14 +84,14 @@ $S$M	%description -n kernel-devel
 $S$M	This package provides kernel headers and makefiles sufficient to build modules
 $S$M	against the %{version} kernel package.
 $S$M
-$S	%prep
-$S	%setup -q -n linux
-$S	cp %{SOURCE1} .config
-$S	patch -p1 < %{SOURCE2}
-$S
-$S	%build
-$S	%{make} %{makeflags} KERNELRELEASE=%{KERNELRELEASE} KBUILD_BUILD_VERSION=%{release}
-$S
+	%prep
+	%setup -q -n linux
+	cp %{SOURCE1} .config
+	patch -p1 < %{SOURCE2}
+
+	%build
+	%{make} %{makeflags} KERNELRELEASE=%{KERNELRELEASE} KBUILD_BUILD_VERSION=%{release}
+
 	%install
 	mkdir -p %{buildroot}/boot
 	%ifarch ia64
-- 
2.39.2


  parent reply	other threads:[~2023-07-22  4:49 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-22  4:47 [PATCH 01/19] kbuild: rpm-pkg: define _arch conditionally Masahiro Yamada
2023-07-22  4:47 ` [PATCH 02/19] kbuild: rpm-pkg: remove unneeded '-f $srctree/Makefile' in spec file Masahiro Yamada
2023-07-22  4:47 ` [PATCH 03/19] kbuild: rpm-pkg: do not hard-code $MAKE " Masahiro Yamada
2023-07-22  4:47 ` [PATCH 04/19] kbuild: rpm-pkg: use %{makeflags} to pass common Make options Masahiro Yamada
2023-07-22  4:47 ` [PATCH 05/19] kbuild: rpm-pkg: record ARCH option in spec file Masahiro Yamada
2023-07-22  4:47 ` [PATCH 06/19] kbuild: rpm-pkg: replace $__KERNELRELEASE in spec file with %{version} Masahiro Yamada
2023-07-22  4:47 ` [PATCH 07/19] kbuild: rpm-pkg: replace $KERNELRELEASE in spec file with %{KERNELRELEASE} Masahiro Yamada
2023-07-22  4:47 ` [PATCH 08/19] kbuild: add a phony target to run a command with Kbuild env vars Masahiro Yamada
2023-07-24 19:53   ` Nicolas Schier
2023-07-22  4:47 ` [PATCH 09/19] kbuild: refactor kernel-devel RPM package and linux-headers Deb package Masahiro Yamada
2023-07-22  4:47 ` [PATCH 10/19] kbuild: rpm-pkg: derive the Version from %{KERNELRELEASE} Masahiro Yamada
2023-07-22  4:47 ` [PATCH 11/19] kbuild: rpm-pkg: use a dummy string for _arch when undefined Masahiro Yamada
2023-09-12  7:09   ` chenxiang (M)
2023-09-14  4:58     ` Masahiro Yamada
2023-07-22  4:47 ` Masahiro Yamada [this message]
2023-07-22  4:48 ` [PATCH 13/19] kbuild: rpm-pkg: run modules_install for non-modular kernel Masahiro Yamada
2023-07-22  4:48 ` [PATCH 14/19] kbuild: rpm-pkg: introduce %{with_devel} switch to select devel package Masahiro Yamada
2023-07-22  4:48 ` [PATCH 15/19] kbuild: rpm-pkg: split out the body of spec file Masahiro Yamada
2023-07-22  4:48 ` [PATCH 16/19] kbuild: rpm-pkg: rename binkernel.spec to kernel.spec Masahiro Yamada
2023-07-22  4:48 ` [PATCH 17/19] kbuild: rpm-pkg: build the kernel in-place for rpm-pkg Masahiro Yamada
2023-07-22  4:48 ` [PATCH 18/19] kbuild: rpm-pkg: refactor *rpm-pkg targets Masahiro Yamada
2023-07-22  4:48 ` [PATCH 19/19] kbuild: rpm-pkg: skip build dependency check on non-rpm systems Masahiro Yamada

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230722044806.3867434-12-masahiroy@kernel.org \
    --to=masahiroy@kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nathan@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=nicolas@fjasle.eu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®