From 6316d6b627ca034fb24a3615778ace0c4562fed3 Mon Sep 17 00:00:00 2001 From: Tonymac32 Date: Fri, 11 Aug 2017 03:08:04 -0400 Subject: [PATCH] meson64 dev patch folder --- .../meson64-dev/bash_to_afterinstall.patch | 11 + ...ing-4.x-DEV-with-postinstall-scripts.patch | 198 ++++++++++++++++++ .../meson64-dev/packaging-4.x-meson64.patch | 14 ++ 3 files changed, 223 insertions(+) create mode 100644 patch/kernel/meson64-dev/bash_to_afterinstall.patch create mode 100644 patch/kernel/meson64-dev/packaging-4.x-DEV-with-postinstall-scripts.patch create mode 100644 patch/kernel/meson64-dev/packaging-4.x-meson64.patch diff --git a/patch/kernel/meson64-dev/bash_to_afterinstall.patch b/patch/kernel/meson64-dev/bash_to_afterinstall.patch new file mode 100644 index 0000000000..ce95ec007b --- /dev/null +++ b/patch/kernel/meson64-dev/bash_to_afterinstall.patch @@ -0,0 +1,11 @@ +--- a/scripts/package/builddeb ++++ b/scripts/package/builddeb +@@ -218,7 +218,7 @@ + for script in postinst postrm preinst prerm ; do + mkdir -p "$tmpdir$debhookdir/$script.d" + cat < "$tmpdir/DEBIAN/$script" +-#!/bin/sh ++#!/bin/bash + + set -e + diff --git a/patch/kernel/meson64-dev/packaging-4.x-DEV-with-postinstall-scripts.patch b/patch/kernel/meson64-dev/packaging-4.x-DEV-with-postinstall-scripts.patch new file mode 100644 index 0000000000..42e2d77a55 --- /dev/null +++ b/patch/kernel/meson64-dev/packaging-4.x-DEV-with-postinstall-scripts.patch @@ -0,0 +1,198 @@ +diff --git a/scripts/package/builddeb b/scripts/package/builddeb +index 807c9cd..9b9435f 100755 +--- a/scripts/package/builddeb ++++ b/scripts/package/builddeb +@@ -29,6 +29,28 @@ create_package() { + # in case we are in a restrictive umask environment like 0077 + chmod -R a+rX "$pdir" + ++ # 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-$version.old ]; then rm -rf /boot/dtb-$version.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}" -p$pname -P"$pdir" + dpkg --build "$pdir" .. +@@ -95,11 +117,13 @@ 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-$version +-fwpackagename=linux-firmware-image-$version +-kernel_headers_packagename=linux-headers-$version +-libc_headers_packagename=linux-libc-dev ++packagename=linux-image-dev"$LOCALVERSION" ++fwpackagename=linux-firmware-image-dev"$LOCALVERSION" ++kernel_headers_packagename=linux-headers-dev"$LOCALVERSION" ++dtb_packagename=linux-dtb-dev"$LOCALVERSION" ++libc_headers_packagename=linux-libc-dev-dev"$LOCALVERSION" + dbg_packagename=$packagename-dbg + debarch= + forcearch= +@@ -126,7 +150,9 @@ 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" $objtree/debian/files ++rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" "$dtb_dir" $objtree/debian/files ++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 "$tmpdir/DEBIAN" + mkdir -p "$tmpdir/lib" "$tmpdir/boot" + mkdir -p "$fwdir/lib/firmware/$version/" +@@ -180,6 +206,11 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then + fi + fi + ++if grep -q '^CONFIG_OF=y' $KCONFIG_CONFIG ; then ++ #mkdir -p "$tmpdir/boot/dtb" ++ INSTALL_DTBS_PATH="$dtb_dir/boot/dtb-$version" $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" +@@ -192,7 +223,7 @@ fi + # 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 ++ want_initrd=Yes + else + want_initrd=No + fi +@@ -204,9 +235,11 @@ for script in postinst postrm preinst prerm ; do + 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 +@@ -215,6 +248,55 @@ EOF + chmod 755 "$tmpdir/DEBIAN/$script" + done + ++## ++## Create sym link to kernel image ++## ++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 ++cp /boot/uImage /tmp/uImage ++sync ++mountpoint -q /boot || mount /boot ++cp /tmp/uImage /boot/uImage ++rm -f /$installed_image_path ++else ++ln -sf $(basename $installed_image_path) /boot/zImage > /dev/null 2>&1 || mv /$installed_image_path /boot/zImage ++fi ++touch /boot/.next ++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 +@@ -329,12 +411,20 @@ if grep -q '^CONFIG_GCC_PLUGINS=y' $KCONFIG_CONFIG ; then + fi + 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 $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 +@@ -363,6 +453,16 @@ 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 +@@ -374,7 +474,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" diff --git a/patch/kernel/meson64-dev/packaging-4.x-meson64.patch b/patch/kernel/meson64-dev/packaging-4.x-meson64.patch new file mode 100644 index 0000000000..a5d46f1f11 --- /dev/null +++ b/patch/kernel/meson64-dev/packaging-4.x-meson64.patch @@ -0,0 +1,14 @@ +diff --git a/scripts/package/builddeb b/scripts/package/builddeb +index 750d70e..8fc16c9 100755 +--- a/scripts/package/builddeb ++++ b/scripts/package/builddeb +@@ -267,7 +267,8 @@ mountpoint -q /boot || mount /boot + cp /tmp/uImage /boot/uImage + rm -f /$installed_image_path + else +-ln -sf $(basename $installed_image_path) /boot/zImage > /dev/null 2>&1 || mv /$installed_image_path /boot/zImage ++rm -f /boot/zImage;gunzip -c /boot/$(basename $installed_image_path) > /boot/xImage ++mkimage -A arm64 -O linux -T kernel -C none -a 0x1080000 -e 0x1080000 -n "Linux kernel" -d /boot/xImage /boot/uImage; rm -f /boot/xImage + fi + touch /boot/.next + exit 0