11da177e4SLinus Torvalds#!/bin/sh 21da177e4SLinus Torvalds# 34964451aSFrans Pop# builddeb 1.3 41da177e4SLinus Torvalds# Copyright 2003 Wichert Akkerman <wichert@wiggy.net> 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 2810f26fa6SAsbjoern Sloth Toennesen # Attempt to find the correct Debian architecture 2910f26fa6SAsbjoern Sloth Toennesen local forcearch="" debarch="" 3010f26fa6SAsbjoern Sloth Toennesen case "$UTS_MACHINE" in 3110f26fa6SAsbjoern Sloth Toennesen i386|ia64|alpha) 3210f26fa6SAsbjoern Sloth Toennesen debarch="$UTS_MACHINE" ;; 3310f26fa6SAsbjoern Sloth Toennesen x86_64) 3410f26fa6SAsbjoern Sloth Toennesen debarch=amd64 ;; 3510f26fa6SAsbjoern Sloth Toennesen sparc*) 3610f26fa6SAsbjoern Sloth Toennesen debarch=sparc ;; 3710f26fa6SAsbjoern Sloth Toennesen s390*) 38a1323fd1SBen Hutchings debarch=s390$(grep -q CONFIG_64BIT=y $KCONFIG_CONFIG && echo x || true) ;; 3910f26fa6SAsbjoern Sloth Toennesen ppc*) 4010f26fa6SAsbjoern Sloth Toennesen debarch=powerpc ;; 4110f26fa6SAsbjoern Sloth Toennesen parisc*) 4210f26fa6SAsbjoern Sloth Toennesen debarch=hppa ;; 4310f26fa6SAsbjoern Sloth Toennesen mips*) 44c5e318f6SBen Hutchings debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo el || true) ;; 45a8d9c9f1SFathi Boudra arm64) 46a8d9c9f1SFathi Boudra debarch=arm64 ;; 4710f26fa6SAsbjoern Sloth Toennesen arm*) 48c5e318f6SBen Hutchings debarch=arm$(grep -q CONFIG_AEABI=y $KCONFIG_CONFIG && echo el || true) ;; 4910f26fa6SAsbjoern Sloth Toennesen *) 5010f26fa6SAsbjoern Sloth Toennesen echo "" >&2 5110f26fa6SAsbjoern Sloth Toennesen echo "** ** ** WARNING ** ** **" >&2 5210f26fa6SAsbjoern Sloth Toennesen echo "" >&2 5310f26fa6SAsbjoern Sloth Toennesen echo "Your architecture doesn't have it's equivalent" >&2 5410f26fa6SAsbjoern Sloth Toennesen echo "Debian userspace architecture defined!" >&2 5510f26fa6SAsbjoern Sloth Toennesen echo "Falling back to using your current userspace instead!" >&2 5610f26fa6SAsbjoern Sloth Toennesen echo "Please add support for $UTS_MACHINE to ${0} ..." >&2 5710f26fa6SAsbjoern Sloth Toennesen echo "" >&2 5810f26fa6SAsbjoern Sloth Toennesen esac 5955f88eccSAsbjoern Sloth Toennesen if [ -n "$KBUILD_DEBARCH" ] ; then 6055f88eccSAsbjoern Sloth Toennesen debarch="$KBUILD_DEBARCH" 6155f88eccSAsbjoern Sloth Toennesen fi 6210f26fa6SAsbjoern Sloth Toennesen if [ -n "$debarch" ] ; then 6310f26fa6SAsbjoern Sloth Toennesen forcearch="-DArchitecture=$debarch" 6410f26fa6SAsbjoern Sloth Toennesen fi 6510f26fa6SAsbjoern Sloth Toennesen 663e2ab256SFrans Pop # Create the package 67f8ce239dSBen Hutchings dpkg-gencontrol -isp $forcearch -Vkernel:debarch="${debarch:-$(dpkg --print-architecture)}" -p$pname -P"$pdir" 683e2ab256SFrans Pop dpkg --build "$pdir" .. 693e2ab256SFrans Pop} 703e2ab256SFrans Pop 711da177e4SLinus Torvalds# Some variables and settings used throughout the script 721da177e4SLinus Torvaldsversion=$KERNELRELEASE 734f66199bSFrans Poprevision=$(cat .version) 74c72c75dbSFrans Popif [ -n "$KDEB_PKGVERSION" ]; then 75c72c75dbSFrans Pop packageversion=$KDEB_PKGVERSION 76c72c75dbSFrans Popelse 77c72c75dbSFrans Pop packageversion=$version-$revision 78c72c75dbSFrans Popfi 791da177e4SLinus Torvaldstmpdir="$objtree/debian/tmp" 80bf1b3644SJonathan McDowellfwdir="$objtree/debian/fwtmp" 81ee81b786Smaximilian attemskernel_headers_dir="$objtree/debian/hdrtmp" 82ee81b786Smaximilian attemslibc_headers_dir="$objtree/debian/headertmp" 83810e8437SAnisse Astierdbg_dir="$objtree/debian/dbgtmp" 84f7a2c31fSmaximilian attemspackagename=linux-image-$version 8595e2a7d8SHeinrich Schuchardtfwpackagename=linux-firmware-image-$version 86ee81b786Smaximilian attemskernel_headers_packagename=linux-headers-$version 87ee81b786Smaximilian attemslibc_headers_packagename=linux-libc-dev 88810e8437SAnisse Astierdbg_packagename=$packagename-dbg 89687c3dacSSam Ravnborg 904f66199bSFrans Popif [ "$ARCH" = "um" ] ; then 91687c3dacSSam Ravnborg packagename=user-mode-linux-$version 92687c3dacSSam Ravnborgfi 931da177e4SLinus Torvalds 949de70176SAnisse Astier# Not all arches have the same installed path in debian 959de70176SAnisse Astier# XXX: have each arch Makefile export a variable of the canonical image install 969de70176SAnisse Astier# path instead 979de70176SAnisse Astiercase $ARCH in 989de70176SAnisse Astierum) 999de70176SAnisse Astier installed_image_path="usr/bin/linux-$version" 1009de70176SAnisse Astier ;; 1019de70176SAnisse Astierparisc|mips|powerpc) 1029de70176SAnisse Astier installed_image_path="boot/vmlinux-$version" 1039de70176SAnisse Astier ;; 1049de70176SAnisse Astier*) 1059de70176SAnisse Astier installed_image_path="boot/vmlinuz-$version" 1069de70176SAnisse Astieresac 1079de70176SAnisse Astier 108810e8437SAnisse AstierBUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)" 109810e8437SAnisse Astier 1101da177e4SLinus Torvalds# Setup the directory structure 111810e8437SAnisse Astierrm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" 112e86c2412Smaximilian attemsmkdir -m 755 -p "$tmpdir/DEBIAN" 113e86c2412Smaximilian attemsmkdir -p "$tmpdir/lib" "$tmpdir/boot" "$tmpdir/usr/share/doc/$packagename" 114e86c2412Smaximilian attemsmkdir -m 755 -p "$fwdir/DEBIAN" 1156607ddadSmaximilian attemsmkdir -p "$fwdir/lib/firmware/$version/" "$fwdir/usr/share/doc/$fwpackagename" 116ee81b786Smaximilian attemsmkdir -m 755 -p "$libc_headers_dir/DEBIAN" 117ee81b786Smaximilian attemsmkdir -p "$libc_headers_dir/usr/share/doc/$libc_headers_packagename" 118ee81b786Smaximilian attemsmkdir -m 755 -p "$kernel_headers_dir/DEBIAN" 119ee81b786Smaximilian attemsmkdir -p "$kernel_headers_dir/usr/share/doc/$kernel_headers_packagename" 120a47b6c61SJoerg Roedelmkdir -p "$kernel_headers_dir/lib/modules/$version/" 1214f66199bSFrans Popif [ "$ARCH" = "um" ] ; then 1229461f666SFrans Pop mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/bin" 123687c3dacSSam Ravnborgfi 124810e8437SAnisse Astierif [ -n "$BUILD_DEBUG" ] ; then 125810e8437SAnisse Astier mkdir -p "$dbg_dir/usr/share/doc/$dbg_packagename" 126810e8437SAnisse Astier mkdir -m 755 -p "$dbg_dir/DEBIAN" 127810e8437SAnisse Astierfi 1281da177e4SLinus Torvalds 1291da177e4SLinus Torvalds# Build and install the kernel 1304f66199bSFrans Popif [ "$ARCH" = "um" ] ; then 131687c3dacSSam Ravnborg $MAKE linux 132687c3dacSSam Ravnborg cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map" 133d2091767SAnisse Astier cp $KCONFIG_CONFIG "$tmpdir/usr/share/doc/$packagename/config" 134687c3dacSSam Ravnborg gzip "$tmpdir/usr/share/doc/$packagename/config" 135687c3dacSSam Ravnborgelse 1361da177e4SLinus Torvalds cp System.map "$tmpdir/boot/System.map-$version" 137d2091767SAnisse Astier cp $KCONFIG_CONFIG "$tmpdir/boot/config-$version" 1389de70176SAnisse Astierfi 139a89b433bSFrans Pop# Not all arches include the boot path in KBUILD_IMAGE 140242c5ab0SGuillem Joverif [ -e $KBUILD_IMAGE ]; then 1419de70176SAnisse Astier cp $KBUILD_IMAGE "$tmpdir/$installed_image_path" 142242c5ab0SGuillem Joverelse 1439de70176SAnisse Astier cp arch/$ARCH/boot/$KBUILD_IMAGE "$tmpdir/$installed_image_path" 144687c3dacSSam Ravnborgfi 1451da177e4SLinus Torvalds 146d2091767SAnisse Astierif grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then 147dddcbb7cSJoerg Roedel INSTALL_MOD_PATH="$tmpdir" $MAKE KBUILD_SRC= modules_install 148a47b6c61SJoerg Roedel rm -f "$tmpdir/lib/modules/$version/build" 149a47b6c61SJoerg Roedel rm -f "$tmpdir/lib/modules/$version/source" 1504f66199bSFrans Pop if [ "$ARCH" = "um" ] ; then 151687c3dacSSam Ravnborg mv "$tmpdir/lib/modules/$version"/* "$tmpdir/usr/lib/uml/modules/$version/" 152687c3dacSSam Ravnborg rmdir "$tmpdir/lib/modules/$version" 153687c3dacSSam Ravnborg fi 154810e8437SAnisse Astier if [ -n "$BUILD_DEBUG" ] ; then 155810e8437SAnisse Astier ( 156810e8437SAnisse Astier cd $tmpdir 157810e8437SAnisse Astier for module in $(find lib/modules/ -name *.ko); do 158810e8437SAnisse Astier mkdir -p $(dirname $dbg_dir/usr/lib/debug/$module) 159810e8437SAnisse Astier # only keep debug symbols in the debug file 1606b4a144aSFathi Boudra $OBJCOPY --only-keep-debug $module $dbg_dir/usr/lib/debug/$module 161810e8437SAnisse Astier # strip original module from debug symbols 1626b4a144aSFathi Boudra $OBJCOPY --strip-debug $module 163810e8437SAnisse Astier # then add a link to those 1646b4a144aSFathi Boudra $OBJCOPY --add-gnu-debuglink=$dbg_dir/usr/lib/debug/$module $module 165810e8437SAnisse Astier done 166810e8437SAnisse Astier ) 167810e8437SAnisse Astier fi 1681da177e4SLinus Torvaldsfi 1691da177e4SLinus Torvalds 170d7d357bcSJoerg Roedelif [ "$ARCH" != "um" ]; then 171dddcbb7cSJoerg Roedel $MAKE headers_check KBUILD_SRC= 172dddcbb7cSJoerg Roedel $MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr" 173d7d357bcSJoerg Roedelfi 174e6807785Smaximilian attems 1751da177e4SLinus Torvalds# Install the maintainer scripts 176fe233cb6SFrans Pop# Note: hook scripts under /etc/kernel are also executed by official Debian 1771c8ddae0SBen Hutchings# kernel packages, as well as kernel packages built using make-kpkg. 1781c8ddae0SBen Hutchings# make-kpkg sets $INITRD to indicate whether an initramfs is wanted, and 1791c8ddae0SBen Hutchings# so do we; recent versions of dracut and initramfs-tools will obey this. 180fe233cb6SFrans Popdebhookdir=${KDEB_HOOKDIR:-/etc/kernel} 1811c8ddae0SBen Hutchingsif grep -q '^CONFIG_BLK_DEV_INITRD=y' $KCONFIG_CONFIG; then 1821c8ddae0SBen Hutchings want_initrd=Yes 1831c8ddae0SBen Hutchingselse 1841c8ddae0SBen Hutchings want_initrd=No 1851c8ddae0SBen Hutchingsfi 1861da177e4SLinus Torvaldsfor script in postinst postrm preinst prerm ; do 187fe233cb6SFrans Pop mkdir -p "$tmpdir$debhookdir/$script.d" 1881da177e4SLinus Torvalds cat <<EOF > "$tmpdir/DEBIAN/$script" 1891da177e4SLinus Torvalds#!/bin/sh 1901da177e4SLinus Torvalds 1911da177e4SLinus Torvaldsset -e 1921da177e4SLinus Torvalds 1934964451aSFrans Pop# Pass maintainer script parameters to hook scripts 194241ad11fSmaximilian attemsexport DEB_MAINT_PARAMS="\$*" 1954964451aSFrans Pop 1961c8ddae0SBen Hutchings# Tell initramfs builder whether it's wanted 1971c8ddae0SBen Hutchingsexport INITRD=$want_initrd 1981c8ddae0SBen Hutchings 199c95182bfSAnisse Astiertest -d $debhookdir/$script.d && run-parts --arg="$version" --arg="/$installed_image_path" $debhookdir/$script.d 2001da177e4SLinus Torvaldsexit 0 2011da177e4SLinus TorvaldsEOF 2021da177e4SLinus Torvalds chmod 755 "$tmpdir/DEBIAN/$script" 2031da177e4SLinus Torvaldsdone 2041da177e4SLinus Torvalds 205edec611dSmaximilian attems# Try to determine maintainer and email values 206edec611dSmaximilian attemsif [ -n "$DEBEMAIL" ]; then 207edec611dSmaximilian attems email=$DEBEMAIL 208edec611dSmaximilian attemselif [ -n "$EMAIL" ]; then 209edec611dSmaximilian attems email=$EMAIL 210edec611dSmaximilian attemselse 211edec611dSmaximilian attems email=$(id -nu)@$(hostname -f) 212edec611dSmaximilian attemsfi 213edec611dSmaximilian attemsif [ -n "$DEBFULLNAME" ]; then 214edec611dSmaximilian attems name=$DEBFULLNAME 215edec611dSmaximilian attemselif [ -n "$NAME" ]; then 216edec611dSmaximilian attems name=$NAME 217edec611dSmaximilian attemselse 218edec611dSmaximilian attems name="Anonymous" 219edec611dSmaximilian attemsfi 220edec611dSmaximilian attemsmaintainer="$name <$email>" 221edec611dSmaximilian attems 2221da177e4SLinus Torvalds# Generate a simple changelog template 2231da177e4SLinus Torvaldscat <<EOF > debian/changelog 2244bf4cd49SFrans Poplinux-upstream ($packageversion) unstable; urgency=low 2251da177e4SLinus Torvalds 226a83ca277SFrans Pop * Custom built Linux kernel. 2271da177e4SLinus Torvalds 228edec611dSmaximilian attems -- $maintainer $(date -R) 2291da177e4SLinus TorvaldsEOF 2301da177e4SLinus Torvalds 2319461f666SFrans Pop# Generate copyright file 2329461f666SFrans Popcat <<EOF > debian/copyright 2339461f666SFrans PopThis is a packacked upstream version of the Linux kernel. 2349461f666SFrans Pop 2359461f666SFrans PopThe sources may be found at most Linux ftp sites, including: 2369461f666SFrans Popftp://ftp.kernel.org/pub/linux/kernel 2379461f666SFrans Pop 2389461f666SFrans PopCopyright: 1991 - 2009 Linus Torvalds and others. 2399461f666SFrans Pop 2409461f666SFrans PopThe git repository for mainline kernel development is at: 2419461f666SFrans Popgit://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 2429461f666SFrans Pop 2439461f666SFrans Pop This program is free software; you can redistribute it and/or modify 2449461f666SFrans Pop it under the terms of the GNU General Public License as published by 2459461f666SFrans Pop the Free Software Foundation; version 2 dated June, 1991. 2469461f666SFrans Pop 2479461f666SFrans PopOn Debian GNU/Linux systems, the complete text of the GNU General Public 2489461f666SFrans PopLicense version 2 can be found in \`/usr/share/common-licenses/GPL-2'. 2499461f666SFrans PopEOF 2509461f666SFrans Pop 2511da177e4SLinus Torvalds# Generate a control file 2521da177e4SLinus Torvaldscat <<EOF > debian/control 2534bf4cd49SFrans PopSource: linux-upstream 254aa42abedSRogério BritoSection: kernel 2551da177e4SLinus TorvaldsPriority: optional 256edec611dSmaximilian attemsMaintainer: $maintainer 2572d7204acSRogério BritoStandards-Version: 3.8.4 258ee6eed80SRogério BritoHomepage: http://www.kernel.org/ 2593e2ab256SFrans PopEOF 2603e2ab256SFrans Pop 2613e2ab256SFrans Popif [ "$ARCH" = "um" ]; then 2623e2ab256SFrans Pop cat <<EOF >> debian/control 2631da177e4SLinus Torvalds 264687c3dacSSam RavnborgPackage: $packagename 2658ebc2fe9Smaximilian attemsProvides: linux-image, linux-image-2.6, linux-modules-$version 2661da177e4SLinus TorvaldsArchitecture: any 267dc5962fdSSam RavnborgDescription: User Mode Linux kernel, version $version 268dc5962fdSSam Ravnborg User-mode Linux is a port of the Linux kernel to its own system call 269dc5962fdSSam Ravnborg interface. It provides a kind of virtual machine, which runs Linux 270dc5962fdSSam Ravnborg as a user process under another Linux kernel. This is useful for 271dc5962fdSSam Ravnborg kernel development, sandboxes, jails, experimentation, and 272dc5962fdSSam Ravnborg many other things. 273dc5962fdSSam Ravnborg . 2741da177e4SLinus Torvalds This package contains the Linux kernel, modules and corresponding other 275a83ca277SFrans Pop files, version: $version. 2761da177e4SLinus TorvaldsEOF 2771da177e4SLinus Torvalds 278dc5962fdSSam Ravnborgelse 2793e2ab256SFrans Pop cat <<EOF >> debian/control 280dc5962fdSSam Ravnborg 281dc5962fdSSam RavnborgPackage: $packagename 2828ebc2fe9Smaximilian attemsProvides: linux-image, linux-image-2.6, linux-modules-$version 283bf1b3644SJonathan McDowellSuggests: $fwpackagename 284dc5962fdSSam RavnborgArchitecture: any 285dc5962fdSSam RavnborgDescription: Linux kernel, version $version 286dc5962fdSSam Ravnborg This package contains the Linux kernel, modules and corresponding other 287a83ca277SFrans Pop files, version: $version. 288dc5962fdSSam RavnborgEOF 2894f66199bSFrans Pop 290dc5962fdSSam Ravnborgfi 291dc5962fdSSam Ravnborg 292cd8d60a2STheodore Ts'o# Build header package 293a765a7ceSMichal Marek(cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl) > "$objtree/debian/hdrsrcfiles" 294a765a7ceSMichal Marek(cd $srctree; find arch/$SRCARCH/include include scripts -type f) >> "$objtree/debian/hdrsrcfiles" 295a765a7ceSMichal Marek(cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f) >> "$objtree/debian/hdrobjfiles" 296ee81b786Smaximilian attemsdestdir=$kernel_headers_dir/usr/src/linux-headers-$version 297ee81b786Smaximilian attemsmkdir -p "$destdir" 298a765a7ceSMichal Marek(cd $srctree; tar -c -f - -T -) < "$objtree/debian/hdrsrcfiles" | (cd $destdir; tar -xf -) 299a765a7ceSMichal Marek(cd $objtree; tar -c -f - -T -) < "$objtree/debian/hdrobjfiles" | (cd $destdir; tar -xf -) 300d2091767SAnisse Astier(cd $objtree; cp $KCONFIG_CONFIG $destdir/.config) # copy .config manually to be where it's expected to be 301a47b6c61SJoerg Roedelln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build" 3026c635224SBen Hutchingsrm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles" 303cd8d60a2STheodore Ts'o 304cd8d60a2STheodore Ts'ocat <<EOF >> debian/control 305cd8d60a2STheodore Ts'o 306ee81b786Smaximilian attemsPackage: $kernel_headers_packagename 307cd8d60a2STheodore Ts'oProvides: linux-headers, linux-headers-2.6 308f8ce239dSBen HutchingsArchitecture: any 309f8ce239dSBen HutchingsDescription: Linux kernel headers for $KERNELRELEASE on \${kernel:debarch} 310f8ce239dSBen Hutchings This package provides kernel header files for $KERNELRELEASE on \${kernel:debarch} 311cd8d60a2STheodore Ts'o . 312cd8d60a2STheodore Ts'o This is useful for people who need to build external modules 313cd8d60a2STheodore Ts'oEOF 314cd8d60a2STheodore Ts'o 315bf1b3644SJonathan McDowell# Do we have firmware? Move it out of the way and build it into a package. 316bf1b3644SJonathan McDowellif [ -e "$tmpdir/lib/firmware" ]; then 3176607ddadSmaximilian attems mv "$tmpdir/lib/firmware"/* "$fwdir/lib/firmware/$version/" 3186607ddadSmaximilian attems rmdir "$tmpdir/lib/firmware" 319bf1b3644SJonathan McDowell 320bf1b3644SJonathan McDowell cat <<EOF >> debian/control 321bf1b3644SJonathan McDowell 322bf1b3644SJonathan McDowellPackage: $fwpackagename 323bf1b3644SJonathan McDowellArchitecture: all 324bf1b3644SJonathan McDowellDescription: Linux kernel firmware, version $version 325a83ca277SFrans Pop This package contains firmware from the Linux kernel, version $version. 326bf1b3644SJonathan McDowellEOF 327bf1b3644SJonathan McDowell 3283e2ab256SFrans Pop create_package "$fwpackagename" "$fwdir" 329bf1b3644SJonathan McDowellfi 330bf1b3644SJonathan McDowell 331e6807785Smaximilian attemscat <<EOF >> debian/control 332e6807785Smaximilian attems 333ee81b786Smaximilian attemsPackage: $libc_headers_packagename 334e6807785Smaximilian attemsSection: devel 335e6807785Smaximilian attemsProvides: linux-kernel-headers 336e6807785Smaximilian attemsArchitecture: any 337e6807785Smaximilian attemsDescription: Linux support headers for userspace development 338e6807785Smaximilian attems This package provides userspaces headers from the Linux kernel. These headers 339e6807785Smaximilian attems are used by the installed headers for GNU glibc and other system libraries. 340e6807785Smaximilian attemsEOF 341e6807785Smaximilian attems 342d7d357bcSJoerg Roedelif [ "$ARCH" != "um" ]; then 343d7d357bcSJoerg Roedel create_package "$kernel_headers_packagename" "$kernel_headers_dir" 344ee81b786Smaximilian attems create_package "$libc_headers_packagename" "$libc_headers_dir" 345d7d357bcSJoerg Roedelfi 346d7d357bcSJoerg Roedel 3473e2ab256SFrans Popcreate_package "$packagename" "$tmpdir" 3481da177e4SLinus Torvalds 349810e8437SAnisse Astierif [ -n "$BUILD_DEBUG" ] ; then 350810e8437SAnisse Astier # Build debug package 351810e8437SAnisse Astier # Different tools want the image in different locations 352810e8437SAnisse Astier # perf 353810e8437SAnisse Astier mkdir -p $dbg_dir/usr/lib/debug/lib/modules/$version/ 354810e8437SAnisse Astier cp vmlinux $dbg_dir/usr/lib/debug/lib/modules/$version/ 355810e8437SAnisse Astier # systemtap 356810e8437SAnisse Astier mkdir -p $dbg_dir/usr/lib/debug/boot/ 357810e8437SAnisse Astier ln -s ../lib/modules/$version/vmlinux $dbg_dir/usr/lib/debug/boot/vmlinux-$version 358810e8437SAnisse Astier # kdump-tools 359810e8437SAnisse Astier ln -s lib/modules/$version/vmlinux $dbg_dir/usr/lib/debug/vmlinux-$version 360810e8437SAnisse Astier 361810e8437SAnisse Astier cat <<EOF >> debian/control 362810e8437SAnisse Astier 363810e8437SAnisse AstierPackage: $dbg_packagename 364810e8437SAnisse AstierSection: debug 365810e8437SAnisse AstierProvides: linux-debug, linux-debug-$version 366810e8437SAnisse AstierArchitecture: any 367810e8437SAnisse AstierDescription: Linux kernel debugging symbols for $version 368810e8437SAnisse Astier This package will come in handy if you need to debug the kernel. It provides 369810e8437SAnisse Astier all the necessary debug symbols for the kernel and its modules. 370810e8437SAnisse AstierEOF 371810e8437SAnisse Astier 372810e8437SAnisse Astier create_package "$dbg_packagename" "$dbg_dir" 373810e8437SAnisse Astierfi 374810e8437SAnisse Astier 3751da177e4SLinus Torvaldsexit 0 376