1 #!/bin/sh 1 #!/bin/sh 2 # 2 # 3 # builddeb 1.3 3 # builddeb 1.3 4 # Copyright 2003 Wichert Akkerman <wichert@wigg 4 # Copyright 2003 Wichert Akkerman <wichert@wiggy.net> 5 # 5 # 6 # Simple script to generate a deb package for 6 # Simple script to generate a deb package for a Linux kernel. All the 7 # complexity of what to do with a kernel after 7 # complexity of what to do with a kernel after it is installed or removed 8 # is left to other scripts and packages: they 8 # is left to other scripts and packages: they can install scripts in the 9 # /etc/kernel/{pre,post}{inst,rm}.d/ directori 9 # /etc/kernel/{pre,post}{inst,rm}.d/ directories (or an alternative location 10 # specified in KDEB_HOOKDIR) that will be call 10 # specified in KDEB_HOOKDIR) that will be called on package install and 11 # removal. 11 # removal. 12 12 13 set -eu !! 13 set -e 14 14 15 is_enabled() { !! 15 create_package() { 16 grep -q "^$1=y" include/config/auto.co !! 16 local pname="$1" pdir="$2" >> 17 >> 18 mkdir -m 755 -p "$pdir/DEBIAN" >> 19 mkdir -p "$pdir/usr/share/doc/$pname" >> 20 cp debian/copyright "$pdir/usr/share/doc/$pname/" >> 21 cp debian/changelog "$pdir/usr/share/doc/$pname/changelog.Debian" >> 22 gzip -9 "$pdir/usr/share/doc/$pname/changelog.Debian" >> 23 sh -c "cd '$pdir'; find . -type f ! -path './DEBIAN/*' -printf '%P\0' \ >> 24 | xargs -r0 md5sum > DEBIAN/md5sums" >> 25 >> 26 # Fix ownership and permissions >> 27 chown -R root:root "$pdir" >> 28 chmod -R go-w "$pdir" >> 29 # in case we are in a restrictive umask environment like 0077 >> 30 chmod -R a+rX "$pdir" >> 31 >> 32 # Create the package >> 33 dpkg-gencontrol $forcearch -Vkernel:debarch="${debarch}" -p$pname -P"$pdir" >> 34 dpkg --build "$pdir" .. 17 } 35 } 18 36 19 if_enabled_echo() { !! 37 set_debarch() { 20 if is_enabled "$1"; then !! 38 # Attempt to find the correct Debian architecture 21 echo -n "$2" !! 39 case "$UTS_MACHINE" in 22 elif [ $# -ge 3 ]; then !! 40 i386|ia64|alpha) 23 echo -n "$3" !! 41 debarch="$UTS_MACHINE" ;; >> 42 x86_64) >> 43 debarch=amd64 ;; >> 44 sparc*) >> 45 debarch=sparc ;; >> 46 s390*) >> 47 debarch=s390$(grep -q CONFIG_64BIT=y $KCONFIG_CONFIG && echo x || true) ;; >> 48 ppc*) >> 49 debarch=$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo ppc64el || echo powerpc) ;; >> 50 parisc*) >> 51 debarch=hppa ;; >> 52 mips*) >> 53 debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo el || true) ;; >> 54 aarch64|arm64) >> 55 debarch=arm64 ;; >> 56 arm*) >> 57 if grep -q CONFIG_AEABI=y $KCONFIG_CONFIG; then >> 58 if grep -q CONFIG_VFP=y $KCONFIG_CONFIG; then >> 59 debarch=armhf >> 60 else >> 61 debarch=armel >> 62 fi >> 63 else >> 64 debarch=arm >> 65 fi >> 66 ;; >> 67 *) >> 68 debarch=$(dpkg --print-architecture) >> 69 echo "" >&2 >> 70 echo "** ** ** WARNING ** ** **" >&2 >> 71 echo "" >&2 >> 72 echo "Your architecture doesn't have its equivalent" >&2 >> 73 echo "Debian userspace architecture defined!" >&2 >> 74 echo "Falling back to using your current userspace instead!" >&2 >> 75 echo "Please add support for $UTS_MACHINE to ${0} ..." >&2 >> 76 echo "" >&2 >> 77 esac >> 78 if [ -n "$KBUILD_DEBARCH" ] ; then >> 79 debarch="$KBUILD_DEBARCH" 24 fi 80 fi >> 81 forcearch="-DArchitecture=$debarch" >> 82 25 } 83 } 26 84 27 install_linux_image () { !! 85 # Some variables and settings used throughout the script 28 pname=$1 !! 86 version=$KERNELRELEASE 29 pdir=debian/$1 !! 87 revision=$(cat .version) >> 88 if [ -n "$KDEB_PKGVERSION" ]; then >> 89 packageversion=$KDEB_PKGVERSION >> 90 else >> 91 packageversion=$version-$revision >> 92 fi >> 93 sourcename=$KDEB_SOURCENAME >> 94 tmpdir="$objtree/debian/tmp" >> 95 kernel_headers_dir="$objtree/debian/hdrtmp" >> 96 libc_headers_dir="$objtree/debian/headertmp" >> 97 dbg_dir="$objtree/debian/dbgtmp" >> 98 packagename=linux-image-$version >> 99 kernel_headers_packagename=linux-headers-$version >> 100 libc_headers_packagename=linux-libc-dev >> 101 dbg_packagename=$packagename-dbg >> 102 debarch= >> 103 forcearch= >> 104 set_debarch >> 105 >> 106 if [ "$ARCH" = "um" ] ; then >> 107 packagename=user-mode-linux-$version >> 108 fi >> 109 >> 110 # Not all arches have the same installed path in debian >> 111 # XXX: have each arch Makefile export a variable of the canonical image install >> 112 # path instead >> 113 case $ARCH in >> 114 um) >> 115 installed_image_path="usr/bin/linux-$version" >> 116 ;; >> 117 parisc|mips|powerpc) >> 118 installed_image_path="boot/vmlinux-$version" >> 119 ;; >> 120 *) >> 121 installed_image_path="boot/vmlinuz-$version" >> 122 esac 30 123 31 # Only some architectures with OF supp !! 124 BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)" 32 if is_enabled CONFIG_OF_EARLY_FLATTREE << 33 ${MAKE} -f ${srctree}/Makefile << 34 fi << 35 125 36 ${MAKE} -f ${srctree}/Makefile INSTALL !! 126 # Setup the directory structure 37 rm -f "${pdir}/lib/modules/${KERNELREL !! 127 rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files >> 128 mkdir -m 755 -p "$tmpdir/DEBIAN" >> 129 mkdir -p "$tmpdir/lib" "$tmpdir/boot" >> 130 mkdir -p "$kernel_headers_dir/lib/modules/$version/" >> 131 >> 132 # Build and install the kernel >> 133 if [ "$ARCH" = "um" ] ; then >> 134 mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/bin" "$tmpdir/usr/share/doc/$packagename" >> 135 $MAKE linux >> 136 cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map" >> 137 cp $KCONFIG_CONFIG "$tmpdir/usr/share/doc/$packagename/config" >> 138 gzip "$tmpdir/usr/share/doc/$packagename/config" >> 139 else >> 140 cp System.map "$tmpdir/boot/System.map-$version" >> 141 cp $KCONFIG_CONFIG "$tmpdir/boot/config-$version" >> 142 fi >> 143 cp "$($MAKE -s image_name)" "$tmpdir/$installed_image_path" 38 144 39 # Install the kernel !! 145 if grep -q "^CONFIG_OF=y" $KCONFIG_CONFIG ; then 40 if [ "${ARCH}" = um ] ; then !! 146 # Only some architectures with OF support have this target 41 mkdir -p "${pdir}/usr/lib/uml/ !! 147 if grep -q dtbs_install "${srctree}/arch/$SRCARCH/Makefile"; then 42 mv "${pdir}/lib/modules/${KERN !! 148 $MAKE KBUILD_SRC= INSTALL_DTBS_PATH="$tmpdir/usr/lib/$packagename" dtbs_install 43 mkdir -p "${pdir}/usr/bin" "${ << 44 cp System.map "${pdir}/usr/lib << 45 cp ${KCONFIG_CONFIG} "${pdir}/ << 46 gzip "${pdir}/usr/share/doc/${ << 47 else << 48 mkdir -p "${pdir}/boot" << 49 cp System.map "${pdir}/boot/Sy << 50 cp ${KCONFIG_CONFIG} "${pdir}/ << 51 fi 149 fi >> 150 fi 52 151 53 # Not all arches have the same install !! 152 if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then 54 # XXX: have each arch Makefile export !! 153 INSTALL_MOD_PATH="$tmpdir" $MAKE KBUILD_SRC= modules_install 55 # path instead !! 154 rm -f "$tmpdir/lib/modules/$version/build" 56 case "${SRCARCH}" in !! 155 rm -f "$tmpdir/lib/modules/$version/source" 57 um) !! 156 if [ "$ARCH" = "um" ] ; then 58 installed_image_path="usr/bin/ !! 157 mv "$tmpdir/lib/modules/$version"/* "$tmpdir/usr/lib/uml/modules/$version/" 59 parisc|mips|powerpc) !! 158 rmdir "$tmpdir/lib/modules/$version" 60 installed_image_path="boot/vml !! 159 fi 61 *) !! 160 if [ -n "$BUILD_DEBUG" ] ; then 62 installed_image_path="boot/vml !! 161 for module in $(find $tmpdir/lib/modules/ -name *.ko -printf '%P\n'); do 63 esac !! 162 module=lib/modules/$module 64 cp "$(${MAKE} -s -f ${srctree}/Makefil !! 163 mkdir -p $(dirname $dbg_dir/usr/lib/debug/$module) 65 !! 164 # only keep debug symbols in the debug file 66 # Install the maintainer scripts !! 165 $OBJCOPY --only-keep-debug $tmpdir/$module $dbg_dir/usr/lib/debug/$module 67 # Note: hook scripts under /etc/kernel !! 166 # strip original module from debug symbols 68 # kernel packages, as well as kernel p !! 167 $OBJCOPY --strip-debug $tmpdir/$module 69 # make-kpkg sets $INITRD to indicate w !! 168 # then add a link to those 70 # so do we; recent versions of dracut !! 169 $OBJCOPY --add-gnu-debuglink=$dbg_dir/usr/lib/debug/$module $tmpdir/$module 71 debhookdir=${KDEB_HOOKDIR:-/etc/kernel !! 170 done 72 for script in postinst postrm preinst !! 171 73 mkdir -p "${pdir}${debhookdir} !! 172 # resign stripped modules 74 !! 173 MODULE_SIG_ALL="$(grep -s '^CONFIG_MODULE_SIG_ALL=y' $KCONFIG_CONFIG || true)" 75 mkdir -p "${pdir}/DEBIAN" !! 174 if [ -n "$MODULE_SIG_ALL" ]; then 76 cat <<-EOF > "${pdir}/DEBIAN/$ !! 175 INSTALL_MOD_PATH="$tmpdir" $MAKE KBUILD_SRC= modules_sign 77 #!/bin/sh !! 176 fi 78 !! 177 fi 79 set -e !! 178 fi 80 << 81 # Pass maintainer script param << 82 export DEB_MAINT_PARAMS="\$*" << 83 << 84 # Tell initramfs builder wheth << 85 export INITRD=$(if_enabled_ech << 86 << 87 test -d ${debhookdir}/${script << 88 exit 0 << 89 EOF << 90 chmod 755 "${pdir}/DEBIAN/${sc << 91 done << 92 } << 93 179 94 install_linux_image_dbg () { !! 180 if [ "$ARCH" != "um" ]; then 95 pdir=debian/$1 !! 181 $MAKE headers_check KBUILD_SRC= >> 182 $MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr" >> 183 fi >> 184 >> 185 # Install the maintainer scripts >> 186 # Note: hook scripts under /etc/kernel are also executed by official Debian >> 187 # kernel packages, as well as kernel packages built using make-kpkg. >> 188 # make-kpkg sets $INITRD to indicate whether an initramfs is wanted, and >> 189 # so do we; recent versions of dracut and initramfs-tools will obey this. >> 190 debhookdir=${KDEB_HOOKDIR:-/etc/kernel} >> 191 if grep -q '^CONFIG_BLK_DEV_INITRD=y' $KCONFIG_CONFIG; then >> 192 want_initrd=Yes >> 193 else >> 194 want_initrd=No >> 195 fi >> 196 for script in postinst postrm preinst prerm ; do >> 197 mkdir -p "$tmpdir$debhookdir/$script.d" >> 198 cat <<EOF > "$tmpdir/DEBIAN/$script" >> 199 #!/bin/sh >> 200 >> 201 set -e >> 202 >> 203 # Pass maintainer script parameters to hook scripts >> 204 export DEB_MAINT_PARAMS="\$*" >> 205 >> 206 # Tell initramfs builder whether it's wanted >> 207 export INITRD=$want_initrd >> 208 >> 209 test -d $debhookdir/$script.d && run-parts --arg="$version" --arg="/$installed_image_path" $debhookdir/$script.d >> 210 exit 0 >> 211 EOF >> 212 chmod 755 "$tmpdir/DEBIAN/$script" >> 213 done >> 214 >> 215 # Try to determine maintainer and email values >> 216 if [ -n "$DEBEMAIL" ]; then >> 217 email=$DEBEMAIL >> 218 elif [ -n "$EMAIL" ]; then >> 219 email=$EMAIL >> 220 else >> 221 email=$(id -nu)@$(hostname -f 2>/dev/null || hostname) >> 222 fi >> 223 if [ -n "$DEBFULLNAME" ]; then >> 224 name=$DEBFULLNAME >> 225 elif [ -n "$NAME" ]; then >> 226 name=$NAME >> 227 else >> 228 name="Anonymous" >> 229 fi >> 230 maintainer="$name <$email>" >> 231 >> 232 # Try to determine distribution >> 233 if [ -n "$KDEB_CHANGELOG_DIST" ]; then >> 234 distribution=$KDEB_CHANGELOG_DIST >> 235 # In some cases lsb_release returns the codename as n/a, which breaks dpkg-parsechangelog >> 236 elif distribution=$(lsb_release -cs 2>/dev/null) && [ -n "$distribution" ] && [ "$distribution" != "n/a" ]; then >> 237 : # nothing to do in this case >> 238 else >> 239 distribution="unstable" >> 240 echo >&2 "Using default distribution of 'unstable' in the changelog" >> 241 echo >&2 "Install lsb-release or set \$KDEB_CHANGELOG_DIST explicitly" >> 242 fi >> 243 >> 244 # Generate a simple changelog template >> 245 cat <<EOF > debian/changelog >> 246 $sourcename ($packageversion) $distribution; urgency=low >> 247 >> 248 * Custom built Linux kernel. >> 249 >> 250 -- $maintainer $(date -R) >> 251 EOF >> 252 >> 253 # Generate copyright file >> 254 cat <<EOF > debian/copyright >> 255 This is a packacked upstream version of the Linux kernel. >> 256 >> 257 The sources may be found at most Linux archive sites, including: >> 258 https://www.kernel.org/pub/linux/kernel >> 259 >> 260 Copyright: 1991 - 2017 Linus Torvalds and others. >> 261 >> 262 The git repository for mainline kernel development is at: >> 263 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git >> 264 >> 265 This program is free software; you can redistribute it and/or modify >> 266 it under the terms of the GNU General Public License as published by >> 267 the Free Software Foundation; version 2 dated June, 1991. >> 268 >> 269 On Debian GNU/Linux systems, the complete text of the GNU General Public >> 270 License version 2 can be found in \`/usr/share/common-licenses/GPL-2'. >> 271 EOF >> 272 >> 273 >> 274 build_depends="bc, kmod, cpio " >> 275 >> 276 # Generate a control file >> 277 cat <<EOF > debian/control >> 278 Source: $sourcename >> 279 Section: kernel >> 280 Priority: optional >> 281 Maintainer: $maintainer >> 282 Build-Depends: $build_depends >> 283 Homepage: http://www.kernel.org/ >> 284 EOF >> 285 >> 286 if [ "$ARCH" = "um" ]; then >> 287 cat <<EOF >> debian/control >> 288 >> 289 Package: $packagename >> 290 Architecture: any >> 291 Description: User Mode Linux kernel, version $version >> 292 User-mode Linux is a port of the Linux kernel to its own system call >> 293 interface. It provides a kind of virtual machine, which runs Linux >> 294 as a user process under another Linux kernel. This is useful for >> 295 kernel development, sandboxes, jails, experimentation, and >> 296 many other things. >> 297 . >> 298 This package contains the Linux kernel, modules and corresponding other >> 299 files, version: $version. >> 300 EOF >> 301 >> 302 else >> 303 cat <<EOF >> debian/control >> 304 >> 305 Package: $packagename >> 306 Architecture: any >> 307 Description: Linux kernel, version $version >> 308 This package contains the Linux kernel, modules and corresponding other >> 309 files, version: $version. >> 310 EOF >> 311 >> 312 fi >> 313 >> 314 # Build kernel header package >> 315 (cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl) > "$objtree/debian/hdrsrcfiles" >> 316 (cd $srctree; find arch/*/include include scripts -type f) >> "$objtree/debian/hdrsrcfiles" >> 317 (cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles" >> 318 (cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles" >> 319 if grep -q '^CONFIG_STACK_VALIDATION=y' $KCONFIG_CONFIG ; then >> 320 (cd $objtree; find tools/objtool -type f -executable) >> "$objtree/debian/hdrobjfiles" >> 321 fi >> 322 (cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f) >> "$objtree/debian/hdrobjfiles" >> 323 if grep -q '^CONFIG_GCC_PLUGINS=y' $KCONFIG_CONFIG ; then >> 324 (cd $objtree; find scripts/gcc-plugins -name \*.so -o -name gcc-common.h) >> "$objtree/debian/hdrobjfiles" >> 325 fi >> 326 destdir=$kernel_headers_dir/usr/src/linux-headers-$version >> 327 mkdir -p "$destdir" >> 328 (cd $srctree; tar -c -f - -T -) < "$objtree/debian/hdrsrcfiles" | (cd $destdir; tar -xf -) >> 329 (cd $objtree; tar -c -f - -T -) < "$objtree/debian/hdrobjfiles" | (cd $destdir; tar -xf -) >> 330 (cd $objtree; cp $KCONFIG_CONFIG $destdir/.config) # copy .config manually to be where it's expected to be >> 331 ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build" >> 332 rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles" >> 333 >> 334 cat <<EOF >> debian/control >> 335 >> 336 Package: $kernel_headers_packagename >> 337 Architecture: any >> 338 Description: Linux kernel headers for $KERNELRELEASE on \${kernel:debarch} >> 339 This package provides kernel header files for $KERNELRELEASE on \${kernel:debarch} >> 340 . >> 341 This is useful for people who need to build external modules >> 342 EOF >> 343 >> 344 cat <<EOF >> debian/control >> 345 >> 346 Package: $libc_headers_packagename >> 347 Section: devel >> 348 Provides: linux-kernel-headers >> 349 Architecture: any >> 350 Description: Linux support headers for userspace development >> 351 This package provides userspaces headers from the Linux kernel. These headers >> 352 are used by the installed headers for GNU glibc and other system libraries. >> 353 EOF >> 354 >> 355 if [ "$ARCH" != "um" ]; then >> 356 create_package "$kernel_headers_packagename" "$kernel_headers_dir" >> 357 create_package "$libc_headers_packagename" "$libc_headers_dir" >> 358 fi 96 359 97 # Parse modules.order directly because !! 360 create_package "$packagename" "$tmpdir" 98 # compress modules, and then run unnee << 99 while read -r mod; do << 100 mod="${mod%.o}.ko" << 101 dbg="${pdir}/usr/lib/debug/lib << 102 buildid=$("${READELF}" -n "${m << 103 link="${pdir}/usr/lib/debug/.b << 104 << 105 mkdir -p "${dbg%/*}" "${link%/ << 106 "${OBJCOPY}" --only-keep-debug << 107 ln -sf --relative "${dbg}" "${ << 108 done < modules.order << 109 361 >> 362 if [ -n "$BUILD_DEBUG" ] ; then 110 # Build debug package 363 # Build debug package 111 # Different tools want the image in di 364 # Different tools want the image in different locations 112 # perf 365 # perf 113 mkdir -p ${pdir}/usr/lib/debug/lib/mod !! 366 mkdir -p $dbg_dir/usr/lib/debug/lib/modules/$version/ 114 cp vmlinux ${pdir}/usr/lib/debug/lib/m !! 367 cp vmlinux $dbg_dir/usr/lib/debug/lib/modules/$version/ 115 # systemtap 368 # systemtap 116 mkdir -p ${pdir}/usr/lib/debug/boot/ !! 369 mkdir -p $dbg_dir/usr/lib/debug/boot/ 117 ln -s ../lib/modules/${KERNELRELEASE}/ !! 370 ln -s ../lib/modules/$version/vmlinux $dbg_dir/usr/lib/debug/boot/vmlinux-$version 118 # kdump-tools 371 # kdump-tools 119 ln -s lib/modules/${KERNELRELEASE}/vml !! 372 ln -s lib/modules/$version/vmlinux $dbg_dir/usr/lib/debug/vmlinux-$version 120 } << 121 373 122 install_kernel_headers () { !! 374 cat <<EOF >> debian/control 123 pdir=debian/$1 << 124 version=${1#linux-headers-} << 125 << 126 CC="${DEB_HOST_GNU_TYPE}-gcc" "${srctr << 127 << 128 mkdir -p $pdir/lib/modules/$version/ << 129 ln -s /usr/src/linux-headers-$version << 130 } << 131 375 132 install_libc_headers () { !! 376 Package: $dbg_packagename 133 pdir=debian/$1 !! 377 Section: debug >> 378 Architecture: any >> 379 Description: Linux kernel debugging symbols for $version >> 380 This package will come in handy if you need to debug the kernel. It provides >> 381 all the necessary debug symbols for the kernel and its modules. >> 382 EOF >> 383 >> 384 create_package "$dbg_packagename" "$dbg_dir" >> 385 fi >> 386 >> 387 if [ "x$1" = "xdeb-pkg" ] >> 388 then >> 389 cat <<EOF > debian/rules >> 390 #!/usr/bin/make -f >> 391 >> 392 build: >> 393 \$(MAKE) >> 394 >> 395 binary-arch: >> 396 \$(MAKE) KDEB_SOURCENAME=${sourcename} KDEB_PKGVERSION=${packageversion} bindeb-pkg >> 397 >> 398 clean: >> 399 rm -rf debian/*tmp debian/files >> 400 mv debian/ debian.backup # debian/ might be cleaned away >> 401 \$(MAKE) clean >> 402 mv debian.backup debian >> 403 >> 404 binary: binary-arch >> 405 EOF >> 406 mv ${sourcename}.tar.gz ../${sourcename}_${version}.orig.tar.gz >> 407 tar caf ../${sourcename}_${packageversion}.debian.tar.gz debian/{copyright,rules,changelog,control} >> 408 dpkg-source -cdebian/control -ldebian/changelog --format="3.0 (custom)" --target-format="3.0 (quilt)" \ >> 409 -b / ../${sourcename}_${version}.orig.tar.gz ../${sourcename}_${packageversion}.debian.tar.gz >> 410 mv ${sourcename}_${packageversion}*dsc .. >> 411 dpkg-genchanges -Vkernel:debarch="${debarch}" > ../${sourcename}_${packageversion}_${debarch}.changes >> 412 else >> 413 dpkg-genchanges -b -Vkernel:debarch="${debarch}" > ../${sourcename}_${packageversion}_${debarch}.changes >> 414 fi 134 415 135 $MAKE -f $srctree/Makefile headers_ins !! 416 exit 0 136 << 137 # move asm headers to /usr/include/<li << 138 # used by Debian-based distros (to sup << 139 mkdir "$pdir/usr/include/${DEB_HOST_MU << 140 mv "$pdir/usr/include/asm" "$pdir/usr/ << 141 } << 142 << 143 package=$1 << 144 << 145 case "${package}" in << 146 *-dbg) << 147 install_linux_image_dbg "${package}";; << 148 linux-image-*|user-mode-linux-*) << 149 install_linux_image "${package}";; << 150 linux-libc-dev) << 151 install_libc_headers "${package}";; << 152 linux-headers-*) << 153 install_kernel_headers "${package}";; << 154 esac <<
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.