summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasahiro Yamada <masahiroy@kernel.org>2023-02-15 10:20:33 +0900
committerMasahiro Yamada <masahiroy@kernel.org>2023-02-26 15:23:30 +0900
commit3ab18a625ce42163da91ee4096460218d11bed36 (patch)
tree5a25fc4aa5f88b640c186e1053defdf7f58c63a2
parentc5bf2efb058d841bf8993b9a9b4522abda804d39 (diff)
kbuild: deb-pkg: improve the usability of source package
Improve the source package support in case the dpkg-buildpackage is directly used to build binary packages. For cross-compiling, you can set CROSS_COMPILE via the environment variable, but it is better to set it automatically - set it to ${DEB_HOST_GNU_TYPE}- if we are cross-compiling but not from the top Makefile. The generated source package may be carried to a different build environment, which may have a different compiler installed. Run olddefconfig first to set new CONFIG options to their default values without prompting. Take KERNELRELEASE and KBUILD_BUILD_VERSION from the version field of debian/changelog in case it is updated afterwards. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
-rwxr-xr-xscripts/package/deb-build-option16
-rwxr-xr-xscripts/package/mkdebian9
2 files changed, 20 insertions, 5 deletions
diff --git a/scripts/package/deb-build-option b/scripts/package/deb-build-option
new file mode 100755
index 000000000000..b079b0d121d4
--- /dev/null
+++ b/scripts/package/deb-build-option
@@ -0,0 +1,16 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0-only
+
+# Set up CROSS_COMPILE if we are cross-compiling, but not called from the
+# kernel toplevel Makefile
+if [ -z "${CROSS_COMPILE}${cross_compiling}" -a "${DEB_HOST_ARCH}" != "${DEB_BUILD_ARCH}" ]; then
+ echo CROSS_COMPILE=${DEB_HOST_GNU_TYPE}-
+fi
+
+version=$(dpkg-parsechangelog -S Version)
+version_upstream="${version%-*}"
+debian_revision="${version#${version_upstream}}"
+debian_revision="${debian_revision#*-}"
+
+echo KERNELRELEASE=${version_upstream}
+echo KBUILD_BUILD_VERSION=${debian_revision}
diff --git a/scripts/package/mkdebian b/scripts/package/mkdebian
index eef20d5dc288..f74380036bb5 100755
--- a/scripts/package/mkdebian
+++ b/scripts/package/mkdebian
@@ -90,10 +90,8 @@ rm -rf debian
version=$KERNELRELEASE
if [ -n "$KDEB_PKGVERSION" ]; then
packageversion=$KDEB_PKGVERSION
- revision=${packageversion##*-}
else
- revision=$($srctree/init/build-version)
- packageversion=$version-$revision
+ packageversion=$version-$($srctree/init/build-version)
fi
sourcename=${KDEB_SOURCENAME:-linux-upstream}
@@ -244,8 +242,9 @@ srctree ?= .
build-indep:
build-arch:
- \$(MAKE) KERNELRELEASE=${version} ARCH=${ARCH} \
- KBUILD_BUILD_VERSION=${revision} -f \$(srctree)/Makefile
+ \$(MAKE) -f \$(srctree)/Makefile ARCH=${ARCH} \
+ \$(shell \$(srctree)/scripts/package/deb-build-option) \
+ olddefconfig all
build: build-arch