mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-07-05 13:25:20 +02:00
kbuild: srcrpm-pkg: create source package without cleaning
If you run 'make (src)rpm-pkg', all objects are lost due to 'make clean', which makes the incremental builds impossible. Instead of cleaning, pass the exclude list to tar's --exclude-from option. Previously, the .config was contained in the source tarball. With this commit, the source rpm consists of separate linux.tar.gz and .config. Remove stale comments. Now, 'make (src)rpm-pkg' works with O= option. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
parent
1ec9bb704f
commit
6fc91752d7
|
@ -3,27 +3,6 @@
|
||||||
|
|
||||||
include $(srctree)/scripts/Kbuild.include
|
include $(srctree)/scripts/Kbuild.include
|
||||||
|
|
||||||
# RPM target
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
# The rpm target generates two rpm files:
|
|
||||||
# /usr/src/packages/SRPMS/kernel-2.6.7rc2-1.src.rpm
|
|
||||||
# /usr/src/packages/RPMS/i386/kernel-2.6.7rc2-1.<arch>.rpm
|
|
||||||
# The src.rpm files includes all source for the kernel being built
|
|
||||||
# The <arch>.rpm includes kernel configuration, modules etc.
|
|
||||||
#
|
|
||||||
# Process to create the rpm files
|
|
||||||
# a) clean the kernel
|
|
||||||
# b) Generate .spec file
|
|
||||||
# c) Build a tar ball, using symlink to make kernel version
|
|
||||||
# first entry in the path
|
|
||||||
# d) and pack the result to a tar.gz file
|
|
||||||
# e) generate the rpm files, based on kernel.spec
|
|
||||||
# - Use /. to avoid tar packing just the symlink
|
|
||||||
|
|
||||||
# Note that the rpm-pkg target cannot be used with KBUILD_OUTPUT,
|
|
||||||
# but the binrpm-pkg target can; for some reason O= gets ignored.
|
|
||||||
|
|
||||||
# Remove hyphens since they have special meaning in RPM filenames
|
|
||||||
KERNELPATH := kernel-$(subst -,_,$(KERNELRELEASE))
|
KERNELPATH := kernel-$(subst -,_,$(KERNELRELEASE))
|
||||||
KDEB_SOURCENAME ?= linux-upstream
|
KDEB_SOURCENAME ?= linux-upstream
|
||||||
KBUILD_PKG_ROOTCMD ?="fakeroot -u"
|
KBUILD_PKG_ROOTCMD ?="fakeroot -u"
|
||||||
|
@ -42,8 +21,7 @@ if test "$(objtree)" != "$(srctree)"; then \
|
||||||
echo >&2; \
|
echo >&2; \
|
||||||
echo >&2 " ERROR:"; \
|
echo >&2 " ERROR:"; \
|
||||||
echo >&2 " Building source tarball is not possible outside the"; \
|
echo >&2 " Building source tarball is not possible outside the"; \
|
||||||
echo >&2 " kernel source tree. Don't set KBUILD_OUTPUT, or use the"; \
|
echo >&2 " kernel source tree. Don't set KBUILD_OUTPUT"; \
|
||||||
echo >&2 " binrpm-pkg target instead."; \
|
|
||||||
echo >&2; \
|
echo >&2; \
|
||||||
false; \
|
false; \
|
||||||
fi ; \
|
fi ; \
|
||||||
|
@ -95,12 +73,10 @@ rpm-pkg: srcrpm-pkg
|
||||||
# srcrpm-pkg
|
# srcrpm-pkg
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
PHONY += srcrpm-pkg
|
PHONY += srcrpm-pkg
|
||||||
srcrpm-pkg:
|
srcrpm-pkg: linux.tar.gz
|
||||||
$(MAKE) clean
|
|
||||||
$(CONFIG_SHELL) $(MKSPEC) >$(objtree)/kernel.spec
|
$(CONFIG_SHELL) $(MKSPEC) >$(objtree)/kernel.spec
|
||||||
$(call cmd,src_tar,$(KERNELPATH),kernel.spec)
|
+rpmbuild $(RPMOPTS) --target $(UTS_MACHINE)-linux -bs kernel.spec \
|
||||||
+rpmbuild $(RPMOPTS) --target $(UTS_MACHINE)-linux -ts $(KERNELPATH).tar.gz \
|
--define='_smp_mflags %{nil}' --define='_sourcedir .' --define='_srcrpmdir .'
|
||||||
--define='_smp_mflags %{nil}' --define='_srcrpmdir $(srctree)'
|
|
||||||
|
|
||||||
# binrpm-pkg
|
# binrpm-pkg
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|
|
@ -47,7 +47,8 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
|
||||||
Group: System Environment/Kernel
|
Group: System Environment/Kernel
|
||||||
Vendor: The Linux Community
|
Vendor: The Linux Community
|
||||||
URL: https://www.kernel.org
|
URL: https://www.kernel.org
|
||||||
$S Source: kernel-$__KERNELRELEASE.tar.gz
|
$S Source0: linux.tar.gz
|
||||||
|
$S Source1: .config
|
||||||
Provides: $PROVIDES
|
Provides: $PROVIDES
|
||||||
$S BuildRequires: bc binutils bison dwarves
|
$S BuildRequires: bc binutils bison dwarves
|
||||||
$S BuildRequires: (elfutils-libelf-devel or libelf-devel) flex
|
$S BuildRequires: (elfutils-libelf-devel or libelf-devel) flex
|
||||||
|
@ -83,9 +84,8 @@ $S$M This package provides kernel headers and makefiles sufficient to build modu
|
||||||
$S$M against the $__KERNELRELEASE kernel package.
|
$S$M against the $__KERNELRELEASE kernel package.
|
||||||
$S$M
|
$S$M
|
||||||
$S %prep
|
$S %prep
|
||||||
$S %setup -q
|
$S %setup -q -n linux
|
||||||
$S rm -f scripts/basic/fixdep scripts/kconfig/conf
|
$S cp %{SOURCE1} .
|
||||||
$S rm -f tools/objtool/{fixdep,objtool}
|
|
||||||
$S
|
$S
|
||||||
$S %build
|
$S %build
|
||||||
$S $MAKE %{?_smp_mflags} KERNELRELEASE=$KERNELRELEASE KBUILD_BUILD_VERSION=%{release}
|
$S $MAKE %{?_smp_mflags} KERNELRELEASE=$KERNELRELEASE KBUILD_BUILD_VERSION=%{release}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user