Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

builddeb: split kernel headers deployment out into a function

Deploy kernel headers (linux-headers package) in a separate function
for readability.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

+42 -34
+42 -34
scripts/package/builddeb
··· 46 46 dpkg-deb ${KDEB_COMPRESS:+-Z$KDEB_COMPRESS} --build "$pdir" .. 47 47 } 48 48 49 + deploy_kernel_headers () { 50 + pdir=$1 51 + 52 + rm -rf $pdir 53 + 54 + ( 55 + cd $srctree 56 + find . arch/$SRCARCH -maxdepth 1 -name Makefile\* 57 + find include scripts -type f -o -type l 58 + find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform 59 + find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f 60 + ) > debian/hdrsrcfiles 61 + 62 + { 63 + if is_enabled CONFIG_STACK_VALIDATION; then 64 + echo tools/objtool/objtool 65 + fi 66 + 67 + find arch/$SRCARCH/include Module.symvers include scripts -type f 68 + 69 + if is_enabled CONFIG_GCC_PLUGINS; then 70 + find scripts/gcc-plugins -name \*.so 71 + fi 72 + } > debian/hdrobjfiles 73 + 74 + destdir=$pdir/usr/src/linux-headers-$version 75 + mkdir -p $destdir 76 + tar -c -f - -C $srctree -T debian/hdrsrcfiles | tar -xf - -C $destdir 77 + tar -c -f - -T debian/hdrobjfiles | tar -xf - -C $destdir 78 + rm -f debian/hdrsrcfiles debian/hdrobjfiles 79 + 80 + # copy .config manually to be where it's expected to be 81 + cp $KCONFIG_CONFIG $destdir/.config 82 + 83 + mkdir -p $pdir/lib/modules/$version/ 84 + ln -s /usr/src/linux-headers-$version $pdir/lib/modules/$version/build 85 + } 86 + 49 87 version=$KERNELRELEASE 50 88 tmpdir=debian/linux-image 51 - kernel_headers_dir=debian/linux-headers 52 89 libc_headers_dir=debian/linux-libc-dev 53 90 dbg_dir=debian/linux-image-dbg 54 91 packagename=linux-image-$version 55 - kernel_headers_packagename=linux-headers-$version 56 92 libc_headers_packagename=linux-libc-dev 57 93 dbg_packagename=$packagename-dbg 58 94 ··· 113 77 BUILD_DEBUG=$(if_enabled_echo CONFIG_DEBUG_INFO Yes) 114 78 115 79 # Setup the directory structure 116 - rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" debian/files 80 + rm -rf "$tmpdir" "$libc_headers_dir" "$dbg_dir" debian/files 117 81 mkdir -m 755 -p "$tmpdir/DEBIAN" 118 82 mkdir -p "$tmpdir/lib" "$tmpdir/boot" 119 - mkdir -p "$kernel_headers_dir/lib/modules/$version/" 120 83 121 84 # Install the kernel 122 85 if [ "$ARCH" = "um" ] ; then ··· 198 163 chmod 755 "$tmpdir/DEBIAN/$script" 199 164 done 200 165 201 - # Build kernel header package 202 - ( 203 - cd $srctree 204 - find . arch/$SRCARCH -maxdepth 1 -name Makefile\* 205 - find include scripts -type f -o -type l 206 - find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform 207 - find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f 208 - ) > debian/hdrsrcfiles 209 - 210 - { 211 - if is_enabled CONFIG_STACK_VALIDATION; then 212 - echo tools/objtool/objtool 213 - fi 214 - 215 - find arch/$SRCARCH/include Module.symvers include scripts -type f 216 - 217 - if is_enabled CONFIG_GCC_PLUGINS; then 218 - find scripts/gcc-plugins -name \*.so 219 - fi 220 - } > debian/hdrobjfiles 221 - 222 - destdir=$kernel_headers_dir/usr/src/linux-headers-$version 223 - mkdir -p "$destdir" 224 - tar -c -f - -C $srctree -T debian/hdrsrcfiles | tar -xf - -C $destdir 225 - tar -c -f - -T debian/hdrobjfiles | tar -xf - -C $destdir 226 - cp $KCONFIG_CONFIG $destdir/.config # copy .config manually to be where it's expected to be 227 - ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build" 228 - rm -f debian/hdrsrcfiles debian/hdrobjfiles 229 - 230 166 if [ "$ARCH" != "um" ]; then 231 - create_package "$kernel_headers_packagename" "$kernel_headers_dir" 167 + deploy_kernel_headers debian/linux-headers 168 + create_package linux-headers-$version debian/linux-headers 169 + 232 170 create_package "$libc_headers_packagename" "$libc_headers_dir" 233 171 fi 234 172