Skip to content

Commit

Permalink
kbuild: deb-pkg: improve the usability of source package
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
masahir0y committed Feb 26, 2023
1 parent c5bf2ef commit 3ab18a6
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 5 deletions.
16 changes: 16 additions & 0 deletions scripts/package/deb-build-option
Original file line number Diff line number Diff line change
@@ -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}
9 changes: 4 additions & 5 deletions scripts/package/mkdebian
Original file line number Diff line number Diff line change
Expand Up @@ -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}

Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 3ab18a6

Please sign in to comment.