Commit 3126c17d authored by Masahiro Yamada's avatar Masahiro Yamada

builddeb: split kernel headers deployment out into a function

Deploy kernel headers (linux-headers package) in a separate function
for readability.
Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
parent aae6a671
...@@ -46,13 +46,49 @@ create_package() { ...@@ -46,13 +46,49 @@ create_package() {
dpkg-deb ${KDEB_COMPRESS:+-Z$KDEB_COMPRESS} --build "$pdir" .. dpkg-deb ${KDEB_COMPRESS:+-Z$KDEB_COMPRESS} --build "$pdir" ..
} }
deploy_kernel_headers () {
pdir=$1
rm -rf $pdir
(
cd $srctree
find . arch/$SRCARCH -maxdepth 1 -name Makefile\*
find include scripts -type f -o -type l
find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform
find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f
) > debian/hdrsrcfiles
{
if is_enabled CONFIG_STACK_VALIDATION; then
echo tools/objtool/objtool
fi
find arch/$SRCARCH/include Module.symvers include scripts -type f
if is_enabled CONFIG_GCC_PLUGINS; then
find scripts/gcc-plugins -name \*.so
fi
} > debian/hdrobjfiles
destdir=$pdir/usr/src/linux-headers-$version
mkdir -p $destdir
tar -c -f - -C $srctree -T debian/hdrsrcfiles | tar -xf - -C $destdir
tar -c -f - -T debian/hdrobjfiles | tar -xf - -C $destdir
rm -f debian/hdrsrcfiles debian/hdrobjfiles
# copy .config manually to be where it's expected to be
cp $KCONFIG_CONFIG $destdir/.config
mkdir -p $pdir/lib/modules/$version/
ln -s /usr/src/linux-headers-$version $pdir/lib/modules/$version/build
}
version=$KERNELRELEASE version=$KERNELRELEASE
tmpdir=debian/linux-image tmpdir=debian/linux-image
kernel_headers_dir=debian/linux-headers
libc_headers_dir=debian/linux-libc-dev libc_headers_dir=debian/linux-libc-dev
dbg_dir=debian/linux-image-dbg dbg_dir=debian/linux-image-dbg
packagename=linux-image-$version packagename=linux-image-$version
kernel_headers_packagename=linux-headers-$version
libc_headers_packagename=linux-libc-dev libc_headers_packagename=linux-libc-dev
dbg_packagename=$packagename-dbg dbg_packagename=$packagename-dbg
...@@ -77,10 +113,9 @@ esac ...@@ -77,10 +113,9 @@ esac
BUILD_DEBUG=$(if_enabled_echo CONFIG_DEBUG_INFO Yes) BUILD_DEBUG=$(if_enabled_echo CONFIG_DEBUG_INFO Yes)
# Setup the directory structure # Setup the directory structure
rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" debian/files rm -rf "$tmpdir" "$libc_headers_dir" "$dbg_dir" debian/files
mkdir -m 755 -p "$tmpdir/DEBIAN" mkdir -m 755 -p "$tmpdir/DEBIAN"
mkdir -p "$tmpdir/lib" "$tmpdir/boot" mkdir -p "$tmpdir/lib" "$tmpdir/boot"
mkdir -p "$kernel_headers_dir/lib/modules/$version/"
# Install the kernel # Install the kernel
if [ "$ARCH" = "um" ] ; then if [ "$ARCH" = "um" ] ; then
...@@ -163,37 +198,10 @@ EOF ...@@ -163,37 +198,10 @@ EOF
chmod 755 "$tmpdir/DEBIAN/$script" chmod 755 "$tmpdir/DEBIAN/$script"
done done
# Build kernel header package
(
cd $srctree
find . arch/$SRCARCH -maxdepth 1 -name Makefile\*
find include scripts -type f -o -type l
find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform
find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f
) > debian/hdrsrcfiles
{
if is_enabled CONFIG_STACK_VALIDATION; then
echo tools/objtool/objtool
fi
find arch/$SRCARCH/include Module.symvers include scripts -type f
if is_enabled CONFIG_GCC_PLUGINS; then
find scripts/gcc-plugins -name \*.so
fi
} > debian/hdrobjfiles
destdir=$kernel_headers_dir/usr/src/linux-headers-$version
mkdir -p "$destdir"
tar -c -f - -C $srctree -T debian/hdrsrcfiles | tar -xf - -C $destdir
tar -c -f - -T debian/hdrobjfiles | tar -xf - -C $destdir
cp $KCONFIG_CONFIG $destdir/.config # copy .config manually to be where it's expected to be
ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build"
rm -f debian/hdrsrcfiles debian/hdrobjfiles
if [ "$ARCH" != "um" ]; then if [ "$ARCH" != "um" ]; then
create_package "$kernel_headers_packagename" "$kernel_headers_dir" deploy_kernel_headers debian/linux-headers
create_package linux-headers-$version debian/linux-headers
create_package "$libc_headers_packagename" "$libc_headers_dir" create_package "$libc_headers_packagename" "$libc_headers_dir"
fi fi
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment