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