[AR-83] Fix broken packaging patch on kernel 5.4.y and above (#1641)

This commit is contained in:
Igor Pečovnik 2019-11-27 17:43:45 +01:00 committed by GitHub
parent c083520fd7
commit ce27fe1af6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,13 +1,26 @@
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 2c0238ce0..1b55633a9 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -125,7 +125,7 @@ core-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a
# Default target when executing plain make
boot := arch/arm64/boot
-KBUILD_IMAGE := $(boot)/Image.gz
+KBUILD_IMAGE := $(boot)/Image
all: Image.gz
diff --git a/scripts/package/builddeb b/scripts/package/builddeb diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index 90c9a8a..3c79b90 100755 index c4c580f54..351a33958 100755
--- a/scripts/package/builddeb --- a/scripts/package/builddeb
+++ b/scripts/package/builddeb +++ b/scripts/package/builddeb
@@ -29,6 +29,27 @@ create_package() { @@ -41,6 +41,27 @@ create_package() {
# in case we are in a restrictive umask environment like 0077 # in case we are in a restrictive umask environment like 0077
chmod -R a+rX "$pdir" chmod -R a+rX "$pdir"
+ # Create preinstall and post install script to remove dtb + # Create preinstall and post install script to remove dtb
+ if [[ "$1" == *dtb* ]]; then + if [ "$3" = "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-$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 /boot/dtb.old ]; then rm -rf /boot/dtb.old; fi" >> $pdir/DEBIAN/preinst
+ echo "if [ -d /boot/dtb ]; then mv /boot/dtb /boot/dtb.old; fi" >> $pdir/DEBIAN/preinst + echo "if [ -d /boot/dtb ]; then mv /boot/dtb /boot/dtb.old; fi" >> $pdir/DEBIAN/preinst
@ -21,7 +34,7 @@ index 90c9a8a..3c79b90 100755
+ fi + fi
+ +
+ # Create postinstall script for headers + # Create postinstall script for headers
+ if [[ "$1" == *headers* ]]; then + if [ "$3" = "headers" ]; then
+ echo "cd /usr/src/linux-headers-$version; echo \"Compiling headers - please wait ...\"; find -type f -exec touch {} +;make -s scripts >/dev/null 2>&1; make -s M=scripts/mod/ >/dev/null 2>&1" >> $pdir/DEBIAN/postinst + echo "cd /usr/src/linux-headers-$version; echo \"Compiling headers - please wait ...\"; find -type f -exec touch {} +;make -s scripts >/dev/null 2>&1; make -s M=scripts/mod/ >/dev/null 2>&1" >> $pdir/DEBIAN/postinst
+ echo "exit 0" >> $pdir/DEBIAN/postinst + echo "exit 0" >> $pdir/DEBIAN/postinst
+ chmod 775 $pdir/DEBIAN/postinst + chmod 775 $pdir/DEBIAN/postinst
@ -30,7 +43,7 @@ index 90c9a8a..3c79b90 100755
# Create the package # Create the package
dpkg-gencontrol -p$pname -P"$pdir" dpkg-gencontrol -p$pname -P"$pdir"
dpkg --build "$pdir" .. dpkg --build "$pdir" ..
@@ -39,9 +60,11 @@ tmpdir="$objtree/debian/tmp" @@ -51,9 +72,11 @@ tmpdir="$objtree/debian/tmp"
kernel_headers_dir="$objtree/debian/hdrtmp" kernel_headers_dir="$objtree/debian/hdrtmp"
libc_headers_dir="$objtree/debian/headertmp" libc_headers_dir="$objtree/debian/headertmp"
dbg_dir="$objtree/debian/dbgtmp" dbg_dir="$objtree/debian/dbgtmp"
@ -45,7 +58,7 @@ index 90c9a8a..3c79b90 100755
dbg_packagename=$packagename-dbg dbg_packagename=$packagename-dbg
if [ "$ARCH" = "um" ] ; then if [ "$ARCH" = "um" ] ; then
@@ -52,6 +75,15 @@ fi @@ -64,6 +87,15 @@ fi
# XXX: have each arch Makefile export a variable of the canonical image install # XXX: have each arch Makefile export a variable of the canonical image install
# path instead # path instead
case $ARCH in case $ARCH in
@ -61,8 +74,8 @@ index 90c9a8a..3c79b90 100755
um) um)
installed_image_path="usr/bin/linux-$version" installed_image_path="usr/bin/linux-$version"
;; ;;
@@ -65,7 +97,9 @@ esac @@ -77,7 +109,9 @@ esac
BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)" BUILD_DEBUG=$(if_enabled_echo CONFIG_DEBUG_INFO Yes)
# Setup the directory structure # Setup the directory structure
-rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files -rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files
@ -72,7 +85,7 @@ index 90c9a8a..3c79b90 100755
mkdir -m 755 -p "$tmpdir/DEBIAN" mkdir -m 755 -p "$tmpdir/DEBIAN"
mkdir -p "$tmpdir/lib" "$tmpdir/boot" mkdir -p "$tmpdir/lib" "$tmpdir/boot"
mkdir -p "$kernel_headers_dir/lib/modules/$version/" mkdir -p "$kernel_headers_dir/lib/modules/$version/"
@@ -118,6 +152,11 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then @@ -129,6 +163,11 @@ if is_enabled CONFIG_MODULES; then
fi fi
fi fi
@ -82,9 +95,9 @@ index 90c9a8a..3c79b90 100755
+fi +fi
+ +
if [ "$ARCH" != "um" ]; then if [ "$ARCH" != "um" ]; then
$MAKE headers_check KBUILD_SRC= $MAKE -f $srctree/Makefile headers
$MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr" $MAKE -f $srctree/Makefile headers_install INSTALL_HDR_PATH="$libc_headers_dir/usr"
@@ -137,7 +176,7 @@ fi @@ -148,7 +187,7 @@ debhookdir=${KDEB_HOOKDIR:-/etc/kernel}
for script in postinst postrm preinst prerm ; do for script in postinst postrm preinst prerm ; do
mkdir -p "$tmpdir$debhookdir/$script.d" mkdir -p "$tmpdir$debhookdir/$script.d"
cat <<EOF > "$tmpdir/DEBIAN/$script" cat <<EOF > "$tmpdir/DEBIAN/$script"
@ -93,7 +106,7 @@ index 90c9a8a..3c79b90 100755
set -e set -e
@@ -153,9 +192,60 @@ EOF @@ -164,9 +203,60 @@ EOF
chmod 755 "$tmpdir/DEBIAN/$script" chmod 755 "$tmpdir/DEBIAN/$script"
done done
@ -153,8 +166,8 @@ index 90c9a8a..3c79b90 100755
+(cd $srctree; find security/*/include -type f) >> "$objtree/debian/hdrsrcfiles" +(cd $srctree; find security/*/include -type f) >> "$objtree/debian/hdrsrcfiles"
(cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$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 $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles"
if grep -q '^CONFIG_STACK_VALIDATION=y' $KCONFIG_CONFIG ; then if is_enabled CONFIG_STACK_VALIDATION; then
@@ -167,15 +257,19 @@ if grep -q '^CONFIG_GCC_PLUGINS=y' $KCONFIG_CONFIG ; then @@ -178,15 +268,18 @@ if is_enabled CONFIG_GCC_PLUGINS; then
fi fi
destdir=$kernel_headers_dir/usr/src/linux-headers-$version destdir=$kernel_headers_dir/usr/src/linux-headers-$version
mkdir -p "$destdir" mkdir -p "$destdir"
@ -168,18 +181,18 @@ index 90c9a8a..3c79b90 100755
+(cd $destdir; make M=scripts clean) +(cd $destdir; make M=scripts clean)
+ +
if [ "$ARCH" != "um" ]; then if [ "$ARCH" != "um" ]; then
create_package "$kernel_headers_packagename" "$kernel_headers_dir" - create_package "$kernel_headers_packagename" "$kernel_headers_dir"
- create_package "$libc_headers_packagename" "$libc_headers_dir" - create_package "$libc_headers_packagename" "$libc_headers_dir"
+ # create_package "$libc_headers_packagename" "$libc_headers_dir" + create_package "$kernel_headers_packagename" "$kernel_headers_dir" "headers"
+ create_package "$dtb_packagename" "$dtb_dir" + create_package "$dtb_packagename" "$dtb_dir" "dtb"
fi fi
create_package "$packagename" "$tmpdir" create_package "$packagename" "$tmpdir"
diff --git a/scripts/package/mkdebian b/scripts/package/mkdebian diff --git a/scripts/package/mkdebian b/scripts/package/mkdebian
index 6adb3a1..00e12eb 100755 index e0750b704..6ac0114c0 100755
--- a/scripts/package/mkdebian --- a/scripts/package/mkdebian
+++ b/scripts/package/mkdebian +++ b/scripts/package/mkdebian
@@ -61,10 +61,12 @@ else @@ -94,10 +94,12 @@ else
packageversion=$version-$revision packageversion=$version-$revision
fi fi
sourcename=$KDEB_SOURCENAME sourcename=$KDEB_SOURCENAME
@ -194,7 +207,7 @@ index 6adb3a1..00e12eb 100755
set_debarch set_debarch
if [ "$ARCH" = "um" ] ; then if [ "$ARCH" = "um" ] ; then
@@ -168,6 +170,11 @@ Architecture: $debarch @@ -205,6 +207,11 @@ Architecture: $debarch
Description: Linux kernel debugging symbols for $version Description: Linux kernel debugging symbols for $version
This package will come in handy if you need to debug the kernel. It provides This package will come in handy if you need to debug the kernel. It provides
all the necessary debug symbols for the kernel and its modules. all the necessary debug symbols for the kernel and its modules.
@ -206,16 +219,3 @@ index 6adb3a1..00e12eb 100755
EOF EOF
cat <<EOF > debian/rules cat <<EOF > debian/rules
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index f839ecd9..cd276162 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -103,7 +103,7 @@ core-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a
# Default target when executing plain make
boot := arch/arm64/boot
-KBUILD_IMAGE := $(boot)/Image.gz
+KBUILD_IMAGE := $(boot)/Image
all: Image.gz $(KBUILD_DTBS)