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