Skip to content

Commit 36862e1

Browse files
committed
kbuild: deb-pkg: use dh_listpackages to know enabled packages
Use dh_listpackages to get a list of all binary packages. With this, debian/control lists which binary packages will be produced. Previously, ARCH=um listed linux-libc-dev in debian/control, but it was not generated because each of mkdebian and builddeb independently maintained the if-conditionals. Another motivation is to allow scripts/package/builddeb to get the package name (linux-image-*, etc.) dynamically from debian/control. This will also allow the BuildProfile to control the generation of the binary packages. Signed-off-by: Masahiro Yamada <[email protected]>
1 parent b611daa commit 36862e1

File tree

2 files changed

+39
-29
lines changed

2 files changed

+39
-29
lines changed

scripts/package/builddeb

Lines changed: 33 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ install_linux_image_dbg () {
160160
ln -s lib/modules/${KERNELRELEASE}/vmlinux ${pdir}/usr/lib/debug/vmlinux-${KERNELRELEASE}
161161
}
162162

163-
deploy_kernel_headers () {
163+
install_kernel_headers () {
164164
pdir=$1
165165

166166
rm -rf $pdir
@@ -198,7 +198,7 @@ deploy_kernel_headers () {
198198
ln -s /usr/src/linux-headers-$version $pdir/lib/modules/$version/build
199199
}
200200

201-
deploy_libc_headers () {
201+
install_libc_headers () {
202202
pdir=$1
203203

204204
rm -rf $pdir
@@ -213,33 +213,38 @@ deploy_libc_headers () {
213213
mv $pdir/usr/include/asm $pdir/usr/include/$host_arch/
214214
}
215215

216-
version=$KERNELRELEASE
217-
packagename=linux-image-$version
218-
dbg_packagename=$packagename-dbg
219-
220-
if [ "$ARCH" = "um" ] ; then
221-
packagename=user-mode-linux-$version
222-
fi
223-
224216
rm -f debian/files
225217

226-
if [ "$ARCH" != "um" ]; then
227-
if is_enabled CONFIG_MODULES; then
228-
deploy_kernel_headers debian/linux-headers
229-
create_package linux-headers-$version debian/linux-headers
230-
fi
231-
232-
deploy_libc_headers debian/linux-libc-dev
233-
create_package linux-libc-dev debian/linux-libc-dev
234-
fi
235-
236-
install_linux_image debian/linux-image "$packagename"
237-
238-
if is_enabled CONFIG_DEBUG_INFO; then
239-
install_linux_image_dbg debian/linux-image-dbg debian/linux-image
240-
create_package "$dbg_packagename" debian/linux-image-dbg
241-
fi
242-
243-
create_package "$packagename" debian/linux-image
218+
packages_enabled=$(dh_listpackages)
219+
220+
for package in ${packages_enabled}
221+
do
222+
case ${package} in
223+
*-dbg)
224+
# This must be done after linux-image, that is, we expect the
225+
# debug package appears after linux-image in debian/control.
226+
install_linux_image_dbg debian/linux-image-dbg debian/linux-image;;
227+
linux-image-*|user-mode-linux-*)
228+
install_linux_image debian/linux-image ${package};;
229+
linux-libc-dev)
230+
install_libc_headers debian/linux-libc-dev;;
231+
linux-headers-*)
232+
install_kernel_headers debian/linux-headers;;
233+
esac
234+
done
235+
236+
for package in ${packages_enabled}
237+
do
238+
case ${package} in
239+
*-dbg)
240+
create_package ${package} debian/linux-image-dbg;;
241+
linux-image-*|user-mode-linux-*)
242+
create_package ${package} debian/linux-image;;
243+
linux-libc-dev)
244+
create_package ${package} debian/linux-libc-dev;;
245+
linux-headers-*)
246+
create_package ${package} debian/linux-headers;;
247+
esac
248+
done
244249

245250
exit 0

scripts/package/mkdebian

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,14 +192,18 @@ Section: kernel
192192
Priority: optional
193193
Maintainer: $maintainer
194194
Rules-Requires-Root: no
195-
Build-Depends: bc, rsync, kmod, cpio, bison, flex $extra_build_depends
195+
Build-Depends: bc, debhelper, rsync, kmod, cpio, bison, flex $extra_build_depends
196196
Homepage: https://www.kernel.org/
197197
198198
Package: $packagename-$version
199199
Architecture: $debarch
200200
Description: Linux kernel, version $version
201201
This package contains the Linux kernel, modules and corresponding other
202202
files, version: $version.
203+
EOF
204+
205+
if [ "${SRCARCH}" != um ]; then
206+
cat <<EOF >> debian/control
203207
204208
Package: linux-libc-dev
205209
Section: devel
@@ -222,6 +226,7 @@ Description: Linux kernel headers for $version on $debarch
222226
This is useful for people who need to build external modules
223227
EOF
224228
fi
229+
fi
225230

226231
if is_enabled CONFIG_DEBUG_INFO; then
227232
cat <<EOF >> debian/control

0 commit comments

Comments
 (0)