11da177e4SLinus Torvalds#!/bin/sh 21da177e4SLinus Torvalds# 34964451aSFrans Pop# builddeb 1.3 41da177e4SLinus Torvalds# Copyright 2003 Wichert Akkerman <[email protected]> 51da177e4SLinus Torvalds# 61da177e4SLinus Torvalds# Simple script to generate a deb package for a Linux kernel. All the 74f66199bSFrans Pop# complexity of what to do with a kernel after it is installed or removed 81da177e4SLinus Torvalds# is left to other scripts and packages: they can install scripts in the 9fe233cb6SFrans Pop# /etc/kernel/{pre,post}{inst,rm}.d/ directories (or an alternative location 10fe233cb6SFrans Pop# specified in KDEB_HOOKDIR) that will be called on package install and 11fe233cb6SFrans Pop# removal. 121da177e4SLinus Torvalds 131da177e4SLinus Torvaldsset -e 141da177e4SLinus Torvalds 153e2ab256SFrans Popcreate_package() { 163e2ab256SFrans Pop local pname="$1" pdir="$2" 173e2ab256SFrans Pop 189461f666SFrans Pop cp debian/copyright "$pdir/usr/share/doc/$pname/" 191ab18486Smaximilian attems cp debian/changelog "$pdir/usr/share/doc/$pname/changelog.Debian" 201ab18486Smaximilian attems gzip -9 "$pdir/usr/share/doc/$pname/changelog.Debian" 21b59a1225SFEJES Jozsef sh -c "cd '$pdir'; find . -type f ! -path './DEBIAN/*' -printf '%P\0' \ 22b59a1225SFEJES Jozsef | xargs -r0 md5sum > DEBIAN/md5sums" 239461f666SFrans Pop 243e2ab256SFrans Pop # Fix ownership and permissions 253e2ab256SFrans Pop chown -R root:root "$pdir" 263e2ab256SFrans Pop chmod -R go-w "$pdir" 273e2ab256SFrans Pop 28dca0c024SRiku Voipio # Create the package 29dca0c024SRiku Voipio dpkg-gencontrol $forcearch -Vkernel:debarch="${debarch}" -p$pname -P"$pdir" 30dca0c024SRiku Voipio dpkg --build "$pdir" .. 31dca0c024SRiku Voipio} 32dca0c024SRiku Voipio 33dca0c024SRiku Voipioset_debarch() { 3410f26fa6SAsbjoern Sloth Toennesen # Attempt to find the correct Debian architecture 3510f26fa6SAsbjoern Sloth Toennesen case "$UTS_MACHINE" in 3610f26fa6SAsbjoern Sloth Toennesen i386|ia64|alpha) 3710f26fa6SAsbjoern Sloth Toennesen debarch="$UTS_MACHINE" ;; 3810f26fa6SAsbjoern Sloth Toennesen x86_64) 3910f26fa6SAsbjoern Sloth Toennesen debarch=amd64 ;; 4010f26fa6SAsbjoern Sloth Toennesen sparc*) 4110f26fa6SAsbjoern Sloth Toennesen debarch=sparc ;; 4210f26fa6SAsbjoern Sloth Toennesen s390*) 43a1323fd1SBen Hutchings debarch=s390$(grep -q CONFIG_64BIT=y $KCONFIG_CONFIG && echo x || true) ;; 4410f26fa6SAsbjoern Sloth Toennesen ppc*) 4522739edfSMichael Neuling debarch=$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo ppc64el || echo powerpc) ;; 4610f26fa6SAsbjoern Sloth Toennesen parisc*) 4710f26fa6SAsbjoern Sloth Toennesen debarch=hppa ;; 4810f26fa6SAsbjoern Sloth Toennesen mips*) 49c5e318f6SBen Hutchings debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo el || true) ;; 50a8d9c9f1SFathi Boudra arm64) 51a8d9c9f1SFathi Boudra debarch=arm64 ;; 5210f26fa6SAsbjoern Sloth Toennesen arm*) 53c5e318f6SBen Hutchings debarch=arm$(grep -q CONFIG_AEABI=y $KCONFIG_CONFIG && echo el || true) ;; 5410f26fa6SAsbjoern Sloth Toennesen *) 55dca0c024SRiku Voipio debarch=$(dpkg --print-architecture) 5610f26fa6SAsbjoern Sloth Toennesen echo "" >&2 5710f26fa6SAsbjoern Sloth Toennesen echo "** ** ** WARNING ** ** **" >&2 5810f26fa6SAsbjoern Sloth Toennesen echo "" >&2 5910f26fa6SAsbjoern Sloth Toennesen echo "Your architecture doesn't have it's equivalent" >&2 6010f26fa6SAsbjoern Sloth Toennesen echo "Debian userspace architecture defined!" >&2 6110f26fa6SAsbjoern Sloth Toennesen echo "Falling back to using your current userspace instead!" >&2 6210f26fa6SAsbjoern Sloth Toennesen echo "Please add support for $UTS_MACHINE to ${0} ..." >&2 6310f26fa6SAsbjoern Sloth Toennesen echo "" >&2 6410f26fa6SAsbjoern Sloth Toennesen esac 6555f88eccSAsbjoern Sloth Toennesen if [ -n "$KBUILD_DEBARCH" ] ; then 6655f88eccSAsbjoern Sloth Toennesen debarch="$KBUILD_DEBARCH" 6755f88eccSAsbjoern Sloth Toennesen fi 6810f26fa6SAsbjoern Sloth Toennesen forcearch="-DArchitecture=$debarch" 6910f26fa6SAsbjoern Sloth Toennesen 703e2ab256SFrans Pop} 713e2ab256SFrans Pop 721da177e4SLinus Torvalds# Some variables and settings used throughout the script 731da177e4SLinus Torvaldsversion=$KERNELRELEASE 744f66199bSFrans Poprevision=$(cat .version) 75c72c75dbSFrans Popif [ -n "$KDEB_PKGVERSION" ]; then 76c72c75dbSFrans Pop packageversion=$KDEB_PKGVERSION 77c72c75dbSFrans Popelse 78c72c75dbSFrans Pop packageversion=$version-$revision 79c72c75dbSFrans Popfi 801da177e4SLinus Torvaldstmpdir="$objtree/debian/tmp" 81bf1b3644SJonathan McDowellfwdir="$objtree/debian/fwtmp" 82ee81b786Smaximilian attemskernel_headers_dir="$objtree/debian/hdrtmp" 83ee81b786Smaximilian attemslibc_headers_dir="$objtree/debian/headertmp" 84810e8437SAnisse Astierdbg_dir="$objtree/debian/dbgtmp" 85f7a2c31fSmaximilian attemspackagename=linux-image-$version 8695e2a7d8SHeinrich Schuchardtfwpackagename=linux-firmware-image-$version 87ee81b786Smaximilian attemskernel_headers_packagename=linux-headers-$version 88ee81b786Smaximilian attemslibc_headers_packagename=linux-libc-dev 89810e8437SAnisse Astierdbg_packagename=$packagename-dbg 90dca0c024SRiku Voipiodebarch= 91dca0c024SRiku Voipioforcearch= 92dca0c024SRiku Voipioset_debarch 93687c3dacSSam Ravnborg 944f66199bSFrans Popif [ "$ARCH" = "um" ] ; then 95687c3dacSSam Ravnborg packagename=user-mode-linux-$version 96687c3dacSSam Ravnborgfi 971da177e4SLinus Torvalds 989de70176SAnisse Astier# Not all arches have the same installed path in debian 999de70176SAnisse Astier# XXX: have each arch Makefile export a variable of the canonical image install 1009de70176SAnisse Astier# path instead 1019de70176SAnisse Astiercase $ARCH in 1029de70176SAnisse Astierum) 1039de70176SAnisse Astier installed_image_path="usr/bin/linux-$version" 1049de70176SAnisse Astier ;; 1059de70176SAnisse Astierparisc|mips|powerpc) 1069de70176SAnisse Astier installed_image_path="boot/vmlinux-$version" 1079de70176SAnisse Astier ;; 1089de70176SAnisse Astier*) 1099de70176SAnisse Astier installed_image_path="boot/vmlinuz-$version" 1109de70176SAnisse Astieresac 1119de70176SAnisse Astier 112810e8437SAnisse AstierBUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)" 113810e8437SAnisse Astier 1141da177e4SLinus Torvalds# Setup the directory structure 115810e8437SAnisse Astierrm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" 116e86c2412Smaximilian attemsmkdir -m 755 -p "$tmpdir/DEBIAN" 117e86c2412Smaximilian attemsmkdir -p "$tmpdir/lib" "$tmpdir/boot" "$tmpdir/usr/share/doc/$packagename" 118e86c2412Smaximilian attemsmkdir -m 755 -p "$fwdir/DEBIAN" 1196607ddadSmaximilian attemsmkdir -p "$fwdir/lib/firmware/$version/" "$fwdir/usr/share/doc/$fwpackagename" 120ee81b786Smaximilian attemsmkdir -m 755 -p "$libc_headers_dir/DEBIAN" 121ee81b786Smaximilian attemsmkdir -p "$libc_headers_dir/usr/share/doc/$libc_headers_packagename" 122ee81b786Smaximilian attemsmkdir -m 755 -p "$kernel_headers_dir/DEBIAN" 123ee81b786Smaximilian attemsmkdir -p "$kernel_headers_dir/usr/share/doc/$kernel_headers_packagename" 124a47b6c61SJoerg Roedelmkdir -p "$kernel_headers_dir/lib/modules/$version/" 1254f66199bSFrans Popif [ "$ARCH" = "um" ] ; then 1269461f666SFrans Pop mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/bin" 127687c3dacSSam Ravnborgfi 128810e8437SAnisse Astierif [ -n "$BUILD_DEBUG" ] ; then 129810e8437SAnisse Astier mkdir -p "$dbg_dir/usr/share/doc/$dbg_packagename" 130810e8437SAnisse Astier mkdir -m 755 -p "$dbg_dir/DEBIAN" 131810e8437SAnisse Astierfi 1321da177e4SLinus Torvalds 1331da177e4SLinus Torvalds# Build and install the kernel 1344f66199bSFrans Popif [ "$ARCH" = "um" ] ; then 135687c3dacSSam Ravnborg $MAKE linux 136687c3dacSSam Ravnborg cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map" 137d2091767SAnisse Astier cp $KCONFIG_CONFIG "$tmpdir/usr/share/doc/$packagename/config" 138687c3dacSSam Ravnborg gzip "$tmpdir/usr/share/doc/$packagename/config" 139687c3dacSSam Ravnborgelse 1401da177e4SLinus Torvalds cp System.map "$tmpdir/boot/System.map-$version" 141d2091767SAnisse Astier cp $KCONFIG_CONFIG "$tmpdir/boot/config-$version" 1429de70176SAnisse Astierfi 143a89b433bSFrans Pop# Not all arches include the boot path in KBUILD_IMAGE 144242c5ab0SGuillem Joverif [ -e $KBUILD_IMAGE ]; then 1459de70176SAnisse Astier cp $KBUILD_IMAGE "$tmpdir/$installed_image_path" 146242c5ab0SGuillem Joverelse 1479de70176SAnisse Astier cp arch/$ARCH/boot/$KBUILD_IMAGE "$tmpdir/$installed_image_path" 148687c3dacSSam Ravnborgfi 1491da177e4SLinus Torvalds 150d2091767SAnisse Astierif grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then 151dddcbb7cSJoerg Roedel INSTALL_MOD_PATH="$tmpdir" $MAKE KBUILD_SRC= modules_install 152a47b6c61SJoerg Roedel rm -f "$tmpdir/lib/modules/$version/build" 153a47b6c61SJoerg Roedel rm -f "$tmpdir/lib/modules/$version/source" 1544f66199bSFrans Pop if [ "$ARCH" = "um" ] ; then 155687c3dacSSam Ravnborg mv "$tmpdir/lib/modules/$version"/* "$tmpdir/usr/lib/uml/modules/$version/" 156687c3dacSSam Ravnborg rmdir "$tmpdir/lib/modules/$version" 157687c3dacSSam Ravnborg fi 158810e8437SAnisse Astier if [ -n "$BUILD_DEBUG" ] ; then 1592d087139SMichal Marek for module in $(find $tmpdir/lib/modules/ -name *.ko -printf '%P\n'); do 1602d087139SMichal Marek module=lib/modules/$module 161810e8437SAnisse Astier mkdir -p $(dirname $dbg_dir/usr/lib/debug/$module) 162810e8437SAnisse Astier # only keep debug symbols in the debug file 1632d087139SMichal Marek $OBJCOPY --only-keep-debug $tmpdir/$module $dbg_dir/usr/lib/debug/$module 164810e8437SAnisse Astier # strip original module from debug symbols 1652d087139SMichal Marek $OBJCOPY --strip-debug $tmpdir/$module 166810e8437SAnisse Astier # then add a link to those 1672d087139SMichal Marek $OBJCOPY --add-gnu-debuglink=$dbg_dir/usr/lib/debug/$module $tmpdir/$module 168810e8437SAnisse Astier done 169*64178cb6SAndrey Skvortsov 170*64178cb6SAndrey Skvortsov # resign stripped modules 171*64178cb6SAndrey Skvortsov MODULE_SIG_ALL="$(grep -s '^CONFIG_MODULE_SIG_ALL=y' $KCONFIG_CONFIG || true)" 172*64178cb6SAndrey Skvortsov if [ -n "$MODULE_SIG_ALL" ]; then 173*64178cb6SAndrey Skvortsov INSTALL_MOD_PATH="$tmpdir" $MAKE KBUILD_SRC= modules_sign 174*64178cb6SAndrey Skvortsov fi 175810e8437SAnisse Astier fi 1761da177e4SLinus Torvaldsfi 1771da177e4SLinus Torvalds 178d7d357bcSJoerg Roedelif [ "$ARCH" != "um" ]; then 179dddcbb7cSJoerg Roedel $MAKE headers_check KBUILD_SRC= 180dddcbb7cSJoerg Roedel $MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr" 181d7d357bcSJoerg Roedelfi 182e6807785Smaximilian attems 1831da177e4SLinus Torvalds# Install the maintainer scripts 184fe233cb6SFrans Pop# Note: hook scripts under /etc/kernel are also executed by official Debian 1851c8ddae0SBen Hutchings# kernel packages, as well as kernel packages built using make-kpkg. 1861c8ddae0SBen Hutchings# make-kpkg sets $INITRD to indicate whether an initramfs is wanted, and 1871c8ddae0SBen Hutchings# so do we; recent versions of dracut and initramfs-tools will obey this. 188fe233cb6SFrans Popdebhookdir=${KDEB_HOOKDIR:-/etc/kernel} 1891c8ddae0SBen Hutchingsif grep -q '^CONFIG_BLK_DEV_INITRD=y' $KCONFIG_CONFIG; then 1901c8ddae0SBen Hutchings want_initrd=Yes 1911c8ddae0SBen Hutchingselse 1921c8ddae0SBen Hutchings want_initrd=No 1931c8ddae0SBen Hutchingsfi 1941da177e4SLinus Torvaldsfor script in postinst postrm preinst prerm ; do 195fe233cb6SFrans Pop mkdir -p "$tmpdir$debhookdir/$script.d" 1961da177e4SLinus Torvalds cat <<EOF > "$tmpdir/DEBIAN/$script" 1971da177e4SLinus Torvalds#!/bin/sh 1981da177e4SLinus Torvalds 1991da177e4SLinus Torvaldsset -e 2001da177e4SLinus Torvalds 2014964451aSFrans Pop# Pass maintainer script parameters to hook scripts 202241ad11fSmaximilian attemsexport DEB_MAINT_PARAMS="\$*" 2034964451aSFrans Pop 2041c8ddae0SBen Hutchings# Tell initramfs builder whether it's wanted 2051c8ddae0SBen Hutchingsexport INITRD=$want_initrd 2061c8ddae0SBen Hutchings 207c95182bfSAnisse Astiertest -d $debhookdir/$script.d && run-parts --arg="$version" --arg="/$installed_image_path" $debhookdir/$script.d 2081da177e4SLinus Torvaldsexit 0 2091da177e4SLinus TorvaldsEOF 2101da177e4SLinus Torvalds chmod 755 "$tmpdir/DEBIAN/$script" 2111da177e4SLinus Torvaldsdone 2121da177e4SLinus Torvalds 213edec611dSmaximilian attems# Try to determine maintainer and email values 214edec611dSmaximilian attemsif [ -n "$DEBEMAIL" ]; then 215edec611dSmaximilian attems email=$DEBEMAIL 216edec611dSmaximilian attemselif [ -n "$EMAIL" ]; then 217edec611dSmaximilian attems email=$EMAIL 218edec611dSmaximilian attemselse 219edec611dSmaximilian attems email=$(id -nu)@$(hostname -f) 220edec611dSmaximilian attemsfi 221edec611dSmaximilian attemsif [ -n "$DEBFULLNAME" ]; then 222edec611dSmaximilian attems name=$DEBFULLNAME 223edec611dSmaximilian attemselif [ -n "$NAME" ]; then 224edec611dSmaximilian attems name=$NAME 225edec611dSmaximilian attemselse 226edec611dSmaximilian attems name="Anonymous" 227edec611dSmaximilian attemsfi 228edec611dSmaximilian attemsmaintainer="$name <$email>" 229edec611dSmaximilian attems 230d9f711dbSSedat Dilek# Try to determine distribution 231d9f711dbSSedat Dilekif [ -n "$KDEB_CHANGELOG_DIST" ]; then 232d9f711dbSSedat Dilek distribution=$KDEB_CHANGELOG_DIST 233d9f711dbSSedat Dilekelif distribution=$(lsb_release -cs 2>/dev/null) && [ -n "$distribution" ]; then 234d9f711dbSSedat Dilek : # nothing to do in this case 235d9f711dbSSedat Dilekelse 236d9f711dbSSedat Dilek distribution="unstable" 237d9f711dbSSedat Dilek echo >&2 "Using default distribution of 'unstable' in the changelog" 238d9f711dbSSedat Dilek echo >&2 "Install lsb-release or set \$KDEB_CHANGELOG_DIST explicitly" 239d9f711dbSSedat Dilekfi 240d9f711dbSSedat Dilek 2411da177e4SLinus Torvalds# Generate a simple changelog template 2421da177e4SLinus Torvaldscat <<EOF > debian/changelog 243d9f711dbSSedat Dileklinux-upstream ($packageversion) $distribution; urgency=low 2441da177e4SLinus Torvalds 245a83ca277SFrans Pop * Custom built Linux kernel. 2461da177e4SLinus Torvalds 247edec611dSmaximilian attems -- $maintainer $(date -R) 2481da177e4SLinus TorvaldsEOF 2491da177e4SLinus Torvalds 2509461f666SFrans Pop# Generate copyright file 2519461f666SFrans Popcat <<EOF > debian/copyright 2529461f666SFrans PopThis is a packacked upstream version of the Linux kernel. 2539461f666SFrans Pop 2549461f666SFrans PopThe sources may be found at most Linux ftp sites, including: 2559461f666SFrans Popftp://ftp.kernel.org/pub/linux/kernel 2569461f666SFrans Pop 257701ca30cSSedat DilekCopyright: 1991 - 2015 Linus Torvalds and others. 2589461f666SFrans Pop 2599461f666SFrans PopThe git repository for mainline kernel development is at: 260701ca30cSSedat Dilekgit://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 2619461f666SFrans Pop 2629461f666SFrans Pop This program is free software; you can redistribute it and/or modify 2639461f666SFrans Pop it under the terms of the GNU General Public License as published by 2649461f666SFrans Pop the Free Software Foundation; version 2 dated June, 1991. 2659461f666SFrans Pop 2669461f666SFrans PopOn Debian GNU/Linux systems, the complete text of the GNU General Public 2679461f666SFrans PopLicense version 2 can be found in \`/usr/share/common-licenses/GPL-2'. 2689461f666SFrans PopEOF 2699461f666SFrans Pop 2701da177e4SLinus Torvalds# Generate a control file 2711da177e4SLinus Torvaldscat <<EOF > debian/control 2724bf4cd49SFrans PopSource: linux-upstream 273aa42abedSRogério BritoSection: kernel 2741da177e4SLinus TorvaldsPriority: optional 275edec611dSmaximilian attemsMaintainer: $maintainer 2762d7204acSRogério BritoStandards-Version: 3.8.4 277ee6eed80SRogério BritoHomepage: http://www.kernel.org/ 2783e2ab256SFrans PopEOF 2793e2ab256SFrans Pop 2803e2ab256SFrans Popif [ "$ARCH" = "um" ]; then 2813e2ab256SFrans Pop cat <<EOF >> debian/control 2821da177e4SLinus Torvalds 283687c3dacSSam RavnborgPackage: $packagename 2848ebc2fe9Smaximilian attemsProvides: linux-image, linux-image-2.6, linux-modules-$version 2851da177e4SLinus TorvaldsArchitecture: any 286dc5962fdSSam RavnborgDescription: User Mode Linux kernel, version $version 287dc5962fdSSam Ravnborg User-mode Linux is a port of the Linux kernel to its own system call 288dc5962fdSSam Ravnborg interface. It provides a kind of virtual machine, which runs Linux 289dc5962fdSSam Ravnborg as a user process under another Linux kernel. This is useful for 290dc5962fdSSam Ravnborg kernel development, sandboxes, jails, experimentation, and 291dc5962fdSSam Ravnborg many other things. 292dc5962fdSSam Ravnborg . 2931da177e4SLinus Torvalds This package contains the Linux kernel, modules and corresponding other 294a83ca277SFrans Pop files, version: $version. 2951da177e4SLinus TorvaldsEOF 2961da177e4SLinus Torvalds 297dc5962fdSSam Ravnborgelse 2983e2ab256SFrans Pop cat <<EOF >> debian/control 299dc5962fdSSam Ravnborg 300dc5962fdSSam RavnborgPackage: $packagename 3018ebc2fe9Smaximilian attemsProvides: linux-image, linux-image-2.6, linux-modules-$version 302bf1b3644SJonathan McDowellSuggests: $fwpackagename 303dc5962fdSSam RavnborgArchitecture: any 304dc5962fdSSam RavnborgDescription: Linux kernel, version $version 305dc5962fdSSam Ravnborg This package contains the Linux kernel, modules and corresponding other 306a83ca277SFrans Pop files, version: $version. 307dc5962fdSSam RavnborgEOF 3084f66199bSFrans Pop 309dc5962fdSSam Ravnborgfi 310dc5962fdSSam Ravnborg 3118bf13561SFathi Boudra# Build kernel header package 312a765a7ceSMichal Marek(cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl) > "$objtree/debian/hdrsrcfiles" 313a765a7ceSMichal Marek(cd $srctree; find arch/$SRCARCH/include include scripts -type f) >> "$objtree/debian/hdrsrcfiles" 3148bf13561SFathi Boudra(cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles" 3158bf13561SFathi Boudra(cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles" 316a765a7ceSMichal Marek(cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f) >> "$objtree/debian/hdrobjfiles" 317ee81b786Smaximilian attemsdestdir=$kernel_headers_dir/usr/src/linux-headers-$version 318ee81b786Smaximilian attemsmkdir -p "$destdir" 319a765a7ceSMichal Marek(cd $srctree; tar -c -f - -T -) < "$objtree/debian/hdrsrcfiles" | (cd $destdir; tar -xf -) 320a765a7ceSMichal Marek(cd $objtree; tar -c -f - -T -) < "$objtree/debian/hdrobjfiles" | (cd $destdir; tar -xf -) 321d2091767SAnisse Astier(cd $objtree; cp $KCONFIG_CONFIG $destdir/.config) # copy .config manually to be where it's expected to be 322a47b6c61SJoerg Roedelln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build" 3236c635224SBen Hutchingsrm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles" 324cd8d60a2STheodore Ts'o 325cd8d60a2STheodore Ts'ocat <<EOF >> debian/control 326cd8d60a2STheodore Ts'o 327ee81b786Smaximilian attemsPackage: $kernel_headers_packagename 328cd8d60a2STheodore Ts'oProvides: linux-headers, linux-headers-2.6 329f8ce239dSBen HutchingsArchitecture: any 330f8ce239dSBen HutchingsDescription: Linux kernel headers for $KERNELRELEASE on \${kernel:debarch} 331f8ce239dSBen Hutchings This package provides kernel header files for $KERNELRELEASE on \${kernel:debarch} 332cd8d60a2STheodore Ts'o . 333cd8d60a2STheodore Ts'o This is useful for people who need to build external modules 334cd8d60a2STheodore Ts'oEOF 335cd8d60a2STheodore Ts'o 336bf1b3644SJonathan McDowell# Do we have firmware? Move it out of the way and build it into a package. 337bf1b3644SJonathan McDowellif [ -e "$tmpdir/lib/firmware" ]; then 3386607ddadSmaximilian attems mv "$tmpdir/lib/firmware"/* "$fwdir/lib/firmware/$version/" 3396607ddadSmaximilian attems rmdir "$tmpdir/lib/firmware" 340bf1b3644SJonathan McDowell 341bf1b3644SJonathan McDowell cat <<EOF >> debian/control 342bf1b3644SJonathan McDowell 343bf1b3644SJonathan McDowellPackage: $fwpackagename 344bf1b3644SJonathan McDowellArchitecture: all 345bf1b3644SJonathan McDowellDescription: Linux kernel firmware, version $version 346a83ca277SFrans Pop This package contains firmware from the Linux kernel, version $version. 347bf1b3644SJonathan McDowellEOF 348bf1b3644SJonathan McDowell 3493e2ab256SFrans Pop create_package "$fwpackagename" "$fwdir" 350bf1b3644SJonathan McDowellfi 351bf1b3644SJonathan McDowell 352e6807785Smaximilian attemscat <<EOF >> debian/control 353e6807785Smaximilian attems 354ee81b786Smaximilian attemsPackage: $libc_headers_packagename 355e6807785Smaximilian attemsSection: devel 356e6807785Smaximilian attemsProvides: linux-kernel-headers 357e6807785Smaximilian attemsArchitecture: any 358e6807785Smaximilian attemsDescription: Linux support headers for userspace development 359e6807785Smaximilian attems This package provides userspaces headers from the Linux kernel. These headers 360e6807785Smaximilian attems are used by the installed headers for GNU glibc and other system libraries. 361e6807785Smaximilian attemsEOF 362e6807785Smaximilian attems 363d7d357bcSJoerg Roedelif [ "$ARCH" != "um" ]; then 364d7d357bcSJoerg Roedel create_package "$kernel_headers_packagename" "$kernel_headers_dir" 365ee81b786Smaximilian attems create_package "$libc_headers_packagename" "$libc_headers_dir" 366d7d357bcSJoerg Roedelfi 367d7d357bcSJoerg Roedel 3683e2ab256SFrans Popcreate_package "$packagename" "$tmpdir" 3691da177e4SLinus Torvalds 370810e8437SAnisse Astierif [ -n "$BUILD_DEBUG" ] ; then 371810e8437SAnisse Astier # Build debug package 372810e8437SAnisse Astier # Different tools want the image in different locations 373810e8437SAnisse Astier # perf 374810e8437SAnisse Astier mkdir -p $dbg_dir/usr/lib/debug/lib/modules/$version/ 375810e8437SAnisse Astier cp vmlinux $dbg_dir/usr/lib/debug/lib/modules/$version/ 376810e8437SAnisse Astier # systemtap 377810e8437SAnisse Astier mkdir -p $dbg_dir/usr/lib/debug/boot/ 378810e8437SAnisse Astier ln -s ../lib/modules/$version/vmlinux $dbg_dir/usr/lib/debug/boot/vmlinux-$version 379810e8437SAnisse Astier # kdump-tools 380810e8437SAnisse Astier ln -s lib/modules/$version/vmlinux $dbg_dir/usr/lib/debug/vmlinux-$version 381810e8437SAnisse Astier 382810e8437SAnisse Astier cat <<EOF >> debian/control 383810e8437SAnisse Astier 384810e8437SAnisse AstierPackage: $dbg_packagename 385810e8437SAnisse AstierSection: debug 386810e8437SAnisse AstierProvides: linux-debug, linux-debug-$version 387810e8437SAnisse AstierArchitecture: any 388810e8437SAnisse AstierDescription: Linux kernel debugging symbols for $version 389810e8437SAnisse Astier This package will come in handy if you need to debug the kernel. It provides 390810e8437SAnisse Astier all the necessary debug symbols for the kernel and its modules. 391810e8437SAnisse AstierEOF 392810e8437SAnisse Astier 393810e8437SAnisse Astier create_package "$dbg_packagename" "$dbg_dir" 394810e8437SAnisse Astierfi 395810e8437SAnisse Astier 3961da177e4SLinus Torvaldsexit 0 397