diff --git a/scripts/package/builddeb b/scripts/package/builddeb old mode 100644 new mode 100755 index 0aa0496..152d4d2 --- a/scripts/package/builddeb +++ b/scripts/package/builddeb @@ -61,30 +61,8 @@ create_package() { forcearch="-DArchitecture=$debarch" fi - # Create preinstall and post install script to remove dtb - if [[ "$1" == *dtb* ]]; then - echo "if [ -d /boot/dtb-$version ]; then mv /boot/dtb-$version /boot/dtb-$version.old; fi" >> $pdir/DEBIAN/preinst - echo "if [ -d /boot/dtb.old ]; then rm -rf /boot/dtb.old; fi" >> $pdir/DEBIAN/preinst - echo "if [ -d /dtb ]; then mv /dtb /dtb.old; fi" >> $pdir/DEBIAN/preinst - echo "if [ -d /boot/dtb ]; then mv /boot/dtb /boot/dtb.old; fi" >> $pdir/DEBIAN/preinst - echo "exit 0" >> $pdir/DEBIAN/preinst - chmod 775 $pdir/DEBIAN/preinst - # - echo "if [ -d /boot/dtb.old ]; then rm -rf /boot/dtb.old; fi" >> $pdir/DEBIAN/postinst - echo "ln -sf dtb-$version /boot/dtb > /dev/null 2>&1 || mv /boot/dtb-$version /boot/dtb" >> $pdir/DEBIAN/postinst - echo "exit 0" >> $pdir/DEBIAN/postinst - chmod 775 $pdir/DEBIAN/postinst - fi - - # Create postinstall script for headers - if [[ "$1" == *headers* ]]; then - echo "cd /usr/src/linux-headers-$version; echo \"Compiling headers - please wait ...\"; make -s scripts >/dev/null 2>&1" >> $pdir/DEBIAN/postinst - echo "exit 0" >> $pdir/DEBIAN/postinst - chmod 775 $pdir/DEBIAN/postinst - fi - # Create the package - dpkg-gencontrol $forcearch -Vkernel:debarch="${debarch:-$(dpkg --print-architecture)}" -p$pname -P"$pdir" + dpkg-gencontrol -isp $forcearch -Vkernel:debarch="${debarch:-$(dpkg --print-architecture)}" -p$pname -P"$pdir" dpkg --build "$pdir" .. } @@ -100,13 +78,11 @@ tmpdir="$objtree/debian/tmp" fwdir="$objtree/debian/fwtmp" kernel_headers_dir="$objtree/debian/hdrtmp" libc_headers_dir="$objtree/debian/headertmp" -dtb_dir="$objtree/debian/dtbtmp" dbg_dir="$objtree/debian/dbgtmp" -packagename=linux-image"$LOCAL_VERSION" -fwpackagename=linux-firmware-image"$LOCAL_VERSION" -kernel_headers_packagename=linux-headers"$LOCAL_VERSION" -dtb_packagename=linux-dtb"$LOCAL_VERSION" -libc_headers_packagename=linux-libc-dev"$LOCAL_VERSION" +packagename=linux-image-$version +fwpackagename=linux-firmware-image-$version +kernel_headers_packagename=linux-headers-$version +libc_headers_packagename=linux-libc-dev dbg_packagename=$packagename-dbg if [ "$ARCH" = "um" ] ; then @@ -130,17 +106,13 @@ esac BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)" # Setup the directory structure -rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" "$dtb_dir" +rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" mkdir -m 755 -p "$tmpdir/DEBIAN" mkdir -p "$tmpdir/lib" "$tmpdir/boot" "$tmpdir/usr/share/doc/$packagename" mkdir -m 755 -p "$fwdir/DEBIAN" mkdir -p "$fwdir/lib/firmware/$version/" "$fwdir/usr/share/doc/$fwpackagename" mkdir -m 755 -p "$libc_headers_dir/DEBIAN" mkdir -p "$libc_headers_dir/usr/share/doc/$libc_headers_packagename" - -mkdir -m 755 -p "$dtb_dir/DEBIAN" -mkdir -p "$dtb_dir/boot/dtb-$version" "$dtb_dir/usr/share/doc/$dtb_packagename" - mkdir -m 755 -p "$kernel_headers_dir/DEBIAN" mkdir -p "$kernel_headers_dir/usr/share/doc/$kernel_headers_packagename" mkdir -p "$kernel_headers_dir/lib/modules/$version/" @@ -158,7 +130,7 @@ if [ "$ARCH" = "um" ] ; then cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map" cp $KCONFIG_CONFIG "$tmpdir/usr/share/doc/$packagename/config" gzip "$tmpdir/usr/share/doc/$packagename/config" -else +else cp System.map "$tmpdir/boot/System.map-$version" cp $KCONFIG_CONFIG "$tmpdir/boot/config-$version" fi @@ -166,7 +138,7 @@ fi if [ -e $KBUILD_IMAGE ]; then cp $KBUILD_IMAGE "$tmpdir/$installed_image_path" else - cp arch/$ARCH/boot/Image "$tmpdir/$installed_image_path" + cp arch/$ARCH/boot/$KBUILD_IMAGE "$tmpdir/$installed_image_path" fi if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then @@ -178,25 +150,21 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then rmdir "$tmpdir/lib/modules/$version" fi if [ -n "$BUILD_DEBUG" ] ; then - for module in $(find $tmpdir/lib/modules/ -name *.ko -printf '%P\n'); do - module=lib/modules/$module - mkdir -p $(dirname $dbg_dir/usr/lib/debug/$module) - # only keep debug symbols in the debug file - $OBJCOPY --only-keep-debug $tmpdir/$module $dbg_dir/usr/lib/debug/$module - # strip original module from debug symbols - $OBJCOPY --strip-debug $tmpdir/$module - # then add a link to those - $OBJCOPY --add-gnu-debuglink=$dbg_dir/usr/lib/debug/$module $tmpdir/$module - done + ( + cd $tmpdir + for module in $(find lib/modules/ -name *.ko); do + mkdir -p $(dirname $dbg_dir/usr/lib/debug/$module) + # only keep debug symbols in the debug file + $OBJCOPY --only-keep-debug $module $dbg_dir/usr/lib/debug/$module + # strip original module from debug symbols + $OBJCOPY --strip-debug $module + # then add a link to those + $OBJCOPY --add-gnu-debuglink=$dbg_dir/usr/lib/debug/$module $module + done + ) fi fi -if grep -q '^CONFIG_OF=y' $KCONFIG_CONFIG ; then - mkdir -p "$tmpdir/boot/dtb-""$version" - cp $objtree/arch/$SRCARCH/boot/dts/*.dtb $dtb_dir/boot/dtb-$version - #INSTALL_DTBS_PATH="$dtb_dir/boot/dtb" $MAKE KBUILD_SRC= dtbs_install -fi - if [ "$ARCH" != "um" ]; then $MAKE headers_check KBUILD_SRC= $MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr" @@ -216,16 +184,14 @@ fi for script in postinst postrm preinst prerm ; do mkdir -p "$tmpdir$debhookdir/$script.d" cat < "$tmpdir/DEBIAN/$script" -#!/bin/bash +#!/bin/sh set -e # Pass maintainer script parameters to hook scripts - export DEB_MAINT_PARAMS="\$*" # Tell initramfs builder whether it's wanted - export INITRD=$want_initrd test -d $debhookdir/$script.d && run-parts --arg="$version" --arg="/$installed_image_path" $debhookdir/$script.d @@ -234,47 +200,6 @@ EOF chmod 755 "$tmpdir/DEBIAN/$script" done -## -## Create sym link to kernel image -## -kernel_tmp_version="${installed_image_path////\\/}" -sed -e "s/set -e//g" -i $tmpdir/DEBIAN/postinst -sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/postinst -cat >> $tmpdir/DEBIAN/postinst < /dev/null 2>&1 || mv /$kernel_tmp_version /boot/zImage - -exit 0 -EOT - -## -## FAT install workaround -## -sed -e "s/set -e//g" -i $tmpdir/DEBIAN/preinst -sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/preinst -cat >> $tmpdir/DEBIAN/preinst <> $tmpdir/DEBIAN/preinst - # Try to determine maintainer and email values if [ -n "$DEBEMAIL" ]; then email=$DEBEMAIL @@ -292,20 +217,9 @@ else fi maintainer="$name <$email>" -# Try to determine distribution -if [ -n "$KDEB_CHANGELOG_DIST" ]; then - distribution=$KDEB_CHANGELOG_DIST -elif distribution=$(lsb_release -cs 2>/dev/null) && [ -n "$distribution" ]; then - : # nothing to do in this case -else - distribution="unstable" - echo >&2 "Using default distribution of 'unstable' in the changelog" - echo >&2 "Install lsb-release or set \$KDEB_CHANGELOG_DIST explicitly" -fi - # Generate a simple changelog template cat < debian/changelog -linux-upstream ($packageversion) $distribution; urgency=low +linux-upstream ($packageversion) unstable; urgency=low * Custom built Linux kernel. @@ -319,10 +233,10 @@ This is a packacked upstream version of the Linux kernel. The sources may be found at most Linux ftp sites, including: ftp://ftp.kernel.org/pub/linux/kernel -Copyright: 1991 - 2015 Linus Torvalds and others. +Copyright: 1991 - 2009 Linus Torvalds and others. The git repository for mainline kernel development is at: -git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git +git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -373,33 +287,22 @@ EOF fi -# Build kernel header package -(cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl) > "$objtree/debian/hdrsrcfiles" -(cd $srctree; find arch/$SRCARCH/include include scripts -type f) >> "$objtree/debian/hdrsrcfiles" -(cd $srctree; find security -type f -name \*.h) >> "$objtree/debian/hdrsrcfiles" -(cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles" -(cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles" -(cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f) >> "$objtree/debian/hdrobjfiles" +# Build header package +(cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl > "$objtree/debian/hdrsrcfiles") +(cd $srctree; find arch/$SRCARCH/include include scripts -type f >> "$objtree/debian/hdrsrcfiles") +(cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f >> "$objtree/debian/hdrobjfiles") destdir=$kernel_headers_dir/usr/src/linux-headers-$version mkdir -p "$destdir" -######################## headers patch -ZACNI=$(pwd) -cd $destdir -patch -p1 < /tmp/headers-debian-byteshift.patch -cd $ZACNI -######################## headers patch -(cd $srctree; tar -c -f - -T -) < "$objtree/debian/hdrsrcfiles" | (cd $destdir; tar -xf -) -(cd $objtree; tar -c -f - -T -) < "$objtree/debian/hdrobjfiles" | (cd $destdir; tar -xf -) +(cd $srctree; tar -c -f - -T "$objtree/debian/hdrsrcfiles") | (cd $destdir; tar -xf -) +(cd $objtree; tar -c -f - -T "$objtree/debian/hdrobjfiles") | (cd $destdir; tar -xf -) (cd $objtree; cp $KCONFIG_CONFIG $destdir/.config) # copy .config manually to be where it's expected to be ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build" rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles" -(cd "$destdir"; make M=scripts clean) - cat <> debian/control Package: $kernel_headers_packagename -Provides: linux-headers +Provides: linux-headers, linux-headers-2.6 Architecture: any Description: Linux kernel headers for $KERNELRELEASE on \${kernel:debarch} This package provides kernel header files for $KERNELRELEASE on \${kernel:debarch} @@ -425,16 +328,6 @@ fi cat <> debian/control -Package: $dtb_packagename -Architecture: any -Description: Linux DTB, version $version - This package contains device blobs from the Linux kernel, version $version. -EOF - -create_package "$dtb_packagename" "$dtb_dir" - -cat <> debian/control - Package: $libc_headers_packagename Section: devel Provides: linux-kernel-headers @@ -446,7 +339,7 @@ EOF if [ "$ARCH" != "um" ]; then create_package "$kernel_headers_packagename" "$kernel_headers_dir" -# create_package "$libc_headers_packagename" "$libc_headers_dir" + create_package "$libc_headers_packagename" "$libc_headers_dir" fi create_package "$packagename" "$tmpdir"