diff options
author | Fathi Boudra <fathi.boudra@linaro.org> | 2014-04-14 18:10:26 +0300 |
---|---|---|
committer | Fathi Boudra <fathi.boudra@linaro.org> | 2014-04-14 18:10:26 +0300 |
commit | 83850ffd65fa9809f7facabbc099f70549608983 (patch) | |
tree | 4c14ea9c32f75d5343fd53a0a4d68cf0886845bb | |
parent | e5b994ed77faa86bc07b4fdc7c065d11b0d49511 (diff) |
builddeb: update to latest version available in linux-linaro
Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
-rw-r--r-- | build-scripts/builddeb | 120 | ||||
-rwxr-xr-x | jenkins_common_lib | 4 |
2 files changed, 67 insertions, 57 deletions
diff --git a/build-scripts/builddeb b/build-scripts/builddeb index e342919..a9ec8b3 100644 --- a/build-scripts/builddeb +++ b/build-scripts/builddeb @@ -12,47 +12,6 @@ set -e -# Attempt to find the correct Debian architecture -forcearch="" -debarch="" -case "$UTS_MACHINE" in -i386|ia64|alpha) - debarch="$UTS_MACHINE" ;; -x86_64) - debarch=amd64 ;; -sparc*) - debarch=sparc ;; -s390*) - debarch=s390 ;; -ppc*) - debarch=powerpc ;; -parisc*) - debarch=hppa ;; -mips*) - debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo el) ;; -arm*) - if grep -q '^CONFIG_ARM64=y' $KCONFIG_CONFIG ; then - debarch=arm64 - else - debarch=arm$(grep -q CONFIG_AEABI=y $KCONFIG_CONFIG && echo el) - fi ;; -*) - echo "" >&2 - echo "** ** ** WARNING ** ** **" >&2 - echo "" >&2 - echo "Your architecture doesn't have it's equivalent" >&2 - echo "Debian userspace architecture defined!" >&2 - echo "Falling back to using your current userspace instead!" >&2 - echo "Please add support for $UTS_MACHINE to ${0} ..." >&2 - echo "" >&2 -esac -if [ -n "$KBUILD_DEBARCH" ] ; then - debarch="$KBUILD_DEBARCH" -fi -if [ -n "$debarch" ] ; then - forcearch="-DArchitecture=$debarch" -fi - create_package() { local pname="$1" pdir="$2" @@ -66,8 +25,46 @@ create_package() { chown -R root:root "$pdir" chmod -R go-w "$pdir" + # Attempt to find the correct Debian architecture + local forcearch="" debarch="" + case "$UTS_MACHINE" in + i386|ia64|alpha) + debarch="$UTS_MACHINE" ;; + x86_64) + debarch=amd64 ;; + sparc*) + debarch=sparc ;; + s390*) + debarch=s390 ;; + ppc*) + debarch=powerpc ;; + parisc*) + debarch=hppa ;; + mips*) + debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo el || true) ;; + arm64) + debarch=arm64 ;; + arm*) + debarch=arm$(grep -q CONFIG_AEABI=y $KCONFIG_CONFIG && echo el || true) ;; + *) + echo "" >&2 + echo "** ** ** WARNING ** ** **" >&2 + echo "" >&2 + echo "Your architecture doesn't have it's equivalent" >&2 + echo "Debian userspace architecture defined!" >&2 + echo "Falling back to using your current userspace instead!" >&2 + echo "Please add support for $UTS_MACHINE to ${0} ..." >&2 + echo "" >&2 + esac + if [ -n "$KBUILD_DEBARCH" ] ; then + debarch="$KBUILD_DEBARCH" + fi + if [ -n "$debarch" ] ; then + forcearch="-DArchitecture=$debarch" + fi + # Create the package - dpkg-gencontrol -isp $forcearch -p$pname -P"$pdir" + dpkg-gencontrol -isp $forcearch -Vkernel:debarch="${debarch:-$(dpkg --print-architecture)}" -p$pname -P"$pdir" dpkg --build "$pdir" .. } @@ -173,6 +170,11 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then fi fi +if grep -q '^CONFIG_OF=y' $KCONFIG_CONFIG ; then + mkdir -p "$tmpdir/lib/firmware/$version/device-tree" + cp arch/$ARCH/boot/dts/*.dtb "$tmpdir/lib/firmware/$version/device-tree" +fi + if [ "$ARCH" != "um" ]; then $MAKE headers_check KBUILD_SRC= $MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr" @@ -180,8 +182,15 @@ fi # Install the maintainer scripts # Note: hook scripts under /etc/kernel are also executed by official Debian -# kernel packages, as well as kernel packages built using make-kpkg +# kernel packages, as well as kernel packages built using make-kpkg. +# make-kpkg sets $INITRD to indicate whether an initramfs is wanted, and +# so do we; recent versions of dracut and initramfs-tools will obey this. debhookdir=${KDEB_HOOKDIR:-/etc/kernel} +if grep -q '^CONFIG_BLK_DEV_INITRD=y' $KCONFIG_CONFIG; then + want_initrd=Yes +else + want_initrd=No +fi for script in postinst postrm preinst prerm ; do mkdir -p "$tmpdir$debhookdir/$script.d" cat <<EOF > "$tmpdir/DEBIAN/$script" @@ -192,6 +201,9 @@ 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 exit 0 EOF @@ -285,14 +297,18 @@ EOF fi -# Build header package +# 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") +if [ "$ARCH" = "arm" ]; then + (cd $srctree; find arch/arm/mach-*/include -type f >> "$objtree/debian/hdrsrcfiles") +fi (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" -(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 -) +excludes="--exclude-vcs --exclude=*.cmd --exclude=*.o --exclude=Documentation" +(cd $srctree; tar $excludes -cf - -T "$objtree/debian/hdrsrcfiles") | (cd $destdir; tar -xf -) +(cd $objtree; tar $excludes -cf - -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" @@ -301,9 +317,9 @@ cat <<EOF >> debian/control Package: $kernel_headers_packagename Provides: linux-headers, linux-headers-2.6 -Architecture: $debarch -Description: Linux kernel headers for $KERNELRELEASE on $debarch - This package provides kernel header files for $KERNELRELEASE on $debarch +Architecture: any +Description: Linux kernel headers for $KERNELRELEASE on \${kernel:debarch} + This package provides kernel header files for $KERNELRELEASE on \${kernel:debarch} . This is useful for people who need to build external modules EOF @@ -324,12 +340,6 @@ EOF create_package "$fwpackagename" "$fwdir" fi -# Copy device tree files if generated -stat arch/$ARCH/boot/dts/*.dtb && { - mkdir -p "$tmpdir/lib/firmware/$version/device-tree" - cp arch/$ARCH/boot/dts/*.dtb "$tmpdir/lib/firmware/$version/device-tree" -} - # Copy boot wrapper files if built if [ "$ARCH" = "arm64" ] ; then stat arch/arm64/boot/*.axf && cp arch/arm64/boot/*.axf "$tmpdir/boot" diff --git a/jenkins_common_lib b/jenkins_common_lib index 06ad3c6..d24aa5d 100755 --- a/jenkins_common_lib +++ b/jenkins_common_lib @@ -44,8 +44,8 @@ build_setup() rm -f *.deb # The builddeb has the changes to successfully build for armhf/arm64 in linux-linaro-tracking tree. # Hence copy the modified builddeb for other trees only, which is required to do armhf or arm64 builds. - # last-modified: 2013-10-04 - linux-linaro-tracking (ll-20131003.0) - # http://git.linaro.org/gitweb?p=kernel/linux-linaro-tracking.git;a=blob_plain;f=scripts/package/builddeb + # last-modified: 2014-04-11 - linux-linaro-tracking (ll-20140411.1) + # https://git.linaro.org/kernel/linux-linaro-tracking.git/blob_plain/refs/heads/linux-linaro:/scripts/package/builddeb repo_name="linux-linaro-tracking" if [[ ! "$KERNEL_GIT" =~ "$repo_name" ]] then |