[PATCH] scripts/package/mkdebian: expose KCONFIG_CONFIG to debian/rules

Arseny Maslennikov
2019-02-21T22:19:35Z

If KCONFIG_CONFIG is passed to `make deb-pkg` as a makeflag or
environment variable, the source tarball produced contains whatever
specified by that variable instead of the usual `.config'.

While `make deb-pkg' yields a correct Debian binary package (at least
on amd64), the generated source package's debian/rules does not pass
KCONFIG_CONFIG to make(1), thus rendering the source package unable to
be rebuilt.

Steps to reproduce the kind of failure being fixed:
1) Produce a source and binary package with:
% KCONFIG_CONFIG=my.config make deb-pkg
2) In the parent directory:
% dpkg-source -x linux-*.dsc
3) In the unpacked source directory:
% debuild -i -us -uc

Here is an excerpt from an example output of `debuild -i -us -uc':

make[2]: *** No rule to make target '.config', needed by 'kernel/config_data.gz'. Stop.
make[1]: *** [Makefile:1043: kernel] Error 2
make[1]: Leaving directory '/home/ar/linux-kernel/deb/linux-5.0.0-rc5-tks-gitd6ff78479ec5-57-5.0.0-rc5-tks-gitd6ff78479ec5-57'
make: *** [debian/rules:4: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
debuild: fatal error at line 1182:
dpkg-buildpackage -us -uc -ui -i failed

Signed-off-by: Arseny Maslennikov <ar@cs.msu.ru>
---
scripts/package/mkdebian | 2 ++
1 file changed, 2 insertions(+)

diff --git a/scripts/package/mkdebian b/scripts/package/mkdebian
index edcad61fe3cd..130d3f6696eb 100755
--- a/scripts/package/mkdebian
+++ b/scripts/package/mkdebian
@@ -207,10 +207,12 @@ cat <<EOF > debian/rules

build:
\$(MAKE) KERNELRELEASE=${version} ARCH=${ARCH} \
+ KCONFIG_CONFIG=${KCONFIG_CONFIG} \
KBUILD_BUILD_VERSION=${revision} KBUILD_SRC=

binary-arch:
\$(MAKE) KERNELRELEASE=${version} ARCH=${ARCH} \
+ KCONFIG_CONFIG=${KCONFIG_CONFIG} \
KBUILD_BUILD_VERSION=${revision} KBUILD_SRC= intdeb-pkg

clean:
--
2.20.1