summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFathi Boudra <fathi.boudra@linaro.org>2014-04-14 18:10:26 +0300
committerFathi Boudra <fathi.boudra@linaro.org>2014-04-14 18:10:26 +0300
commit83850ffd65fa9809f7facabbc099f70549608983 (patch)
tree4c14ea9c32f75d5343fd53a0a4d68cf0886845bb
parente5b994ed77faa86bc07b4fdc7c065d11b0d49511 (diff)
builddeb: update to latest version available in linux-linaro
Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
-rw-r--r--build-scripts/builddeb120
-rwxr-xr-xjenkins_common_lib4
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