Update builddeb
This commit is contained in:
parent
965f749b72
commit
b7051b4fb5
|
|
@ -68,57 +68,56 @@ create_package() {
|
||||||
# Create preinstall and post install script to remove dtb
|
# Create preinstall and post install script to remove dtb
|
||||||
if [ "$3" = "dtb" ]; then
|
if [ "$3" = "dtb" ]; then
|
||||||
|
|
||||||
cat >> $pdir/DEBIAN/preinst <<EOT
|
cat >> $pdir/DEBIAN/preinst <<- EOT
|
||||||
rm -rf /boot/dtb
|
rm -rf /boot/dtb
|
||||||
rm -rf /boot/dtb-$version
|
rm -rf /boot/dtb-$version
|
||||||
exit 0
|
exit 0
|
||||||
EOT
|
EOT
|
||||||
|
|
||||||
cat >> $pdir/DEBIAN/postinst <<EOT
|
cat >> $pdir/DEBIAN/postinst <<- EOT
|
||||||
cd /boot
|
cd /boot
|
||||||
ln -sfT dtb-$version dtb 2> /dev/null || mv dtb-$version dtb
|
ln -sfT dtb-$version dtb 2> /dev/null || mv dtb-$version dtb
|
||||||
exit 0
|
exit 0
|
||||||
EOT
|
EOT
|
||||||
|
|
||||||
chmod 775 $pdir/DEBIAN/preinst
|
chmod 775 $pdir/DEBIAN/preinst
|
||||||
chmod 775 $pdir/DEBIAN/postinst
|
chmod 775 $pdir/DEBIAN/postinst
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create postinst prerm script for headers
|
# Create postinst prerm script for headers
|
||||||
if [ "$3" = "headers" ]; then
|
if [ "$3" = "headers" ]; then
|
||||||
|
|
||||||
# Set the time for all files to the current time.
|
# Set the time for all files to the current time.
|
||||||
# And build them for the current architecture.
|
# And build them for the current architecture.
|
||||||
cat >> $pdir/DEBIAN/postinst << EOT
|
cat >> $pdir/DEBIAN/postinst <<- EOT
|
||||||
cd /usr/src/linux-headers-$version
|
cd /usr/src/linux-headers-$version
|
||||||
echo "Compiling headers - please wait ..."
|
echo "Compiling headers - please wait ..."
|
||||||
NCPU=\$(grep -c 'processor' /proc/cpuinfo)
|
NCPU=\$(grep -c 'processor' /proc/cpuinfo)
|
||||||
find -type f -exec touch {} +
|
find -type f -exec touch {} +
|
||||||
yes "" | make oldconfig >/dev/null
|
yes "" | make oldconfig >/dev/null
|
||||||
make -j\$NCPU -s scripts >/dev/null
|
make -j\$NCPU -s scripts >/dev/null
|
||||||
make -j\$NCPU -s M=scripts/mod/ >/dev/null
|
make -j\$NCPU -s M=scripts/mod/ >/dev/null
|
||||||
exit 0
|
exit 0
|
||||||
EOT
|
EOT
|
||||||
|
|
||||||
# After the configuration and compilation processes, new files
|
# After the configuration and compilation processes, new files
|
||||||
# appear that the package manager does not know anything about.
|
# appear that the package manager does not know anything about.
|
||||||
# Just clear all the files in the target directory.
|
# Just clear all the files in the target directory.
|
||||||
cat >> $pdir/DEBIAN/prerm << EOT
|
cat >> $pdir/DEBIAN/prerm <<- EOT
|
||||||
rm -rf /usr/src/linux-headers-$version
|
rm -rf /usr/src/linux-headers-$version
|
||||||
exit 0
|
exit 0
|
||||||
EOT
|
EOT
|
||||||
|
|
||||||
chmod 775 $pdir/DEBIAN/postinst
|
chmod 775 $pdir/DEBIAN/postinst
|
||||||
chmod 775 $pdir/DEBIAN/prerm
|
chmod 775 $pdir/DEBIAN/prerm
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Create the package
|
# Create the package
|
||||||
dpkg-gencontrol -p$pname -P"$pdir"
|
dpkg-gencontrol -p$pname -P"$pdir"
|
||||||
dpkg-deb ${KDEB_COMPRESS:+-Z$KDEB_COMPRESS} --build "$pdir" ..
|
dpkg-deb ${KDEB_COMPRESS:+-Z$KDEB_COMPRESS} --build "$pdir" ..
|
||||||
}
|
}
|
||||||
|
|
||||||
deploy_kernel_headers () {
|
deploy_kernel_headers() {
|
||||||
pdir=$1
|
pdir=$1
|
||||||
|
|
||||||
rm -rf $pdir
|
rm -rf $pdir
|
||||||
|
|
@ -137,7 +136,7 @@ deploy_kernel_headers () {
|
||||||
|
|
||||||
{
|
{
|
||||||
if is_enabled CONFIG_STACK_VALIDATION; then
|
if is_enabled CONFIG_STACK_VALIDATION; then
|
||||||
# echo tools/objtool/objtool
|
# echo tools/objtool/objtool
|
||||||
find tools/objtool -type f -executable
|
find tools/objtool -type f -executable
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -152,8 +151,8 @@ deploy_kernel_headers () {
|
||||||
echo "info: Build native: Skip headers-debian-byteshift.patch" >&2
|
echo "info: Build native: Skip headers-debian-byteshift.patch" >&2
|
||||||
elif is_build_on_amd64; then
|
elif is_build_on_amd64; then
|
||||||
(
|
(
|
||||||
cd $destdir
|
cd $destdir
|
||||||
patch -p1 < /tmp/headers-debian-byteshift.patch
|
patch -p1 < /tmp/headers-debian-byteshift.patch
|
||||||
)
|
)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -168,7 +167,7 @@ deploy_kernel_headers () {
|
||||||
ln -s /usr/src/linux-headers-$version $pdir/lib/modules/$version/build
|
ln -s /usr/src/linux-headers-$version $pdir/lib/modules/$version/build
|
||||||
}
|
}
|
||||||
|
|
||||||
deploy_libc_headers () {
|
deploy_libc_headers() {
|
||||||
pdir=$1
|
pdir=$1
|
||||||
|
|
||||||
rm -rf $pdir
|
rm -rf $pdir
|
||||||
|
|
@ -195,7 +194,7 @@ dtb_packagename=linux-dtb-"$BRANCH$LOCALVERSION"
|
||||||
libc_headers_packagename=linux-libc-dev
|
libc_headers_packagename=linux-libc-dev
|
||||||
dbg_packagename=$packagename-dbg
|
dbg_packagename=$packagename-dbg
|
||||||
|
|
||||||
if [ "$ARCH" = "um" ] ; then
|
if [ "$ARCH" = "um" ]; then
|
||||||
packagename=user-mode-linux-$version
|
packagename=user-mode-linux-$version
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -203,23 +202,24 @@ 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
|
||||||
++aarch64|arm64)
|
++aarch64|arm64)
|
||||||
image_name=Image
|
image_name=Image
|
||||||
installed_image_path="boot/vmlinuz-$version"
|
installed_image_path="boot/vmlinuz-$version"
|
||||||
;;
|
;;
|
||||||
arm*)
|
arm*)
|
||||||
image_name=zImage
|
image_name=zImage
|
||||||
installed_image_path="boot/vmlinuz-$version"
|
installed_image_path="boot/vmlinuz-$version"
|
||||||
;;
|
;;
|
||||||
um)
|
um)
|
||||||
installed_image_path="usr/bin/linux-$version"
|
installed_image_path="usr/bin/linux-$version"
|
||||||
;;
|
;;
|
||||||
parisc|mips|powerpc)
|
parisc|mips|powerpc)
|
||||||
installed_image_path="boot/vmlinux-$version"
|
installed_image_path="boot/vmlinux-$version"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
image_name=vmlinuz
|
image_name=vmlinuz
|
||||||
installed_image_path="boot/vmlinuz-$version"
|
installed_image_path="boot/vmlinuz-$version"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
BUILD_DEBUG=$(if_enabled_echo CONFIG_DEBUG_INFO Yes)
|
BUILD_DEBUG=$(if_enabled_echo CONFIG_DEBUG_INFO Yes)
|
||||||
|
|
@ -234,7 +234,7 @@ mkdir -m 755 -p "$kernel_headers_dir/lib/modules/$version/"
|
||||||
mkdir -m 755 -p "$libc_headers_dir/DEBIAN"
|
mkdir -m 755 -p "$libc_headers_dir/DEBIAN"
|
||||||
|
|
||||||
# Install the kernel
|
# Install the kernel
|
||||||
if [ "$ARCH" = "um" ] ; then
|
if [ "$ARCH" = "um" ]; then
|
||||||
mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/bin" "$tmpdir/usr/share/doc/$packagename"
|
mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/bin" "$tmpdir/usr/share/doc/$packagename"
|
||||||
$MAKE linux
|
$MAKE linux
|
||||||
cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map"
|
cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map"
|
||||||
|
|
@ -249,11 +249,11 @@ cp "$($MAKE -s -f $srctree/Makefile image_name)" "$tmpdir/$installed_image_path"
|
||||||
if is_enabled CONFIG_OF_EARLY_FLATTREE; then
|
if is_enabled CONFIG_OF_EARLY_FLATTREE; then
|
||||||
# Only some architectures with OF support have this target
|
# Only some architectures with OF support have this target
|
||||||
if [ -d "${srctree}/arch/$SRCARCH/boot/dts" ]; then
|
if [ -d "${srctree}/arch/$SRCARCH/boot/dts" ]; then
|
||||||
$MAKE -f $srctree/Makefile INSTALL_DTBS_PATH="$tmpdir/usr/lib/$packagename" dtbs_install
|
$MAKE -f $srctree/Makefile INSTALL_DTBS_PATH="$tmpdir/usr/lib/linux-image-$version" dtbs_install
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if grep -q '^CONFIG_OF=y' $KCONFIG_CONFIG ; then
|
if grep -q '^CONFIG_OF=y' $KCONFIG_CONFIG; then
|
||||||
#mkdir -p "$tmpdir/boot/dtb"
|
#mkdir -p "$tmpdir/boot/dtb"
|
||||||
INSTALL_DTBS_PATH="$dtb_dir/boot/dtb-$version" $MAKE KBUILD_SRC= dtbs_install
|
INSTALL_DTBS_PATH="$dtb_dir/boot/dtb-$version" $MAKE KBUILD_SRC= dtbs_install
|
||||||
fi
|
fi
|
||||||
|
|
@ -262,11 +262,13 @@ if is_enabled CONFIG_MODULES; then
|
||||||
INSTALL_MOD_PATH="$tmpdir" $MAKE -f $srctree/Makefile modules_install
|
INSTALL_MOD_PATH="$tmpdir" $MAKE -f $srctree/Makefile modules_install
|
||||||
rm -f "$tmpdir/lib/modules/$version/build"
|
rm -f "$tmpdir/lib/modules/$version/build"
|
||||||
rm -f "$tmpdir/lib/modules/$version/source"
|
rm -f "$tmpdir/lib/modules/$version/source"
|
||||||
if [ "$ARCH" = "um" ] ; then
|
|
||||||
|
if [ "$ARCH" = "um" ]; then
|
||||||
mv "$tmpdir/lib/modules/$version"/* "$tmpdir/usr/lib/uml/modules/$version/"
|
mv "$tmpdir/lib/modules/$version"/* "$tmpdir/usr/lib/uml/modules/$version/"
|
||||||
rmdir "$tmpdir/lib/modules/$version"
|
rmdir "$tmpdir/lib/modules/$version"
|
||||||
fi
|
fi
|
||||||
if [ -n "$BUILD_DEBUG" ] ; then
|
|
||||||
|
if [ -n "$BUILD_DEBUG" ]; then
|
||||||
for module in $(find $tmpdir/lib/modules/ -name *.ko -printf '%P\n'); do
|
for module in $(find $tmpdir/lib/modules/ -name *.ko -printf '%P\n'); do
|
||||||
module=lib/modules/$module
|
module=lib/modules/$module
|
||||||
mkdir -p $(dirname $dbg_dir/usr/lib/debug/$module)
|
mkdir -p $(dirname $dbg_dir/usr/lib/debug/$module)
|
||||||
|
|
@ -291,22 +293,22 @@ fi
|
||||||
# make-kpkg sets $INITRD to indicate whether an initramfs is wanted, and
|
# 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.
|
# so do we; recent versions of dracut and initramfs-tools will obey this.
|
||||||
debhookdir=${KDEB_HOOKDIR:-/etc/kernel}
|
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"
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Pass maintainer script parameters to hook scripts
|
# Pass maintainer script parameters to hook scripts
|
||||||
export DEB_MAINT_PARAMS="\$*"
|
export DEB_MAINT_PARAMS="\$*"
|
||||||
|
|
||||||
# Tell initramfs builder whether it's wanted
|
# Tell initramfs builder whether it's wanted
|
||||||
export INITRD=$(if_enabled_echo CONFIG_BLK_DEV_INITRD Yes No)
|
export INITRD=$(if_enabled_echo CONFIG_BLK_DEV_INITRD Yes No)
|
||||||
|
|
||||||
test -d $debhookdir/$script.d && run-parts --arg="$version" --arg="/$installed_image_path" $debhookdir/$script.d
|
test -d $debhookdir/$script.d && run-parts --arg="$version" --arg="/$installed_image_path" $debhookdir/$script.d
|
||||||
exit 0
|
exit 0
|
||||||
EOF
|
EOF
|
||||||
chmod 755 "$tmpdir/DEBIAN/$script"
|
chmod 755 "$tmpdir/DEBIAN/$script"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
@ -314,38 +316,38 @@ done
|
||||||
## Create sym link to kernel image
|
## Create sym link to kernel image
|
||||||
##
|
##
|
||||||
sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/postinst
|
sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/postinst
|
||||||
cat >> $tmpdir/DEBIAN/postinst << EOT
|
cat >> $tmpdir/DEBIAN/postinst <<- EOT
|
||||||
ln -sf $(basename $installed_image_path) /boot/$image_name 2> /dev/null || mv /$installed_image_path /boot/$image_name
|
ln -sf $(basename $installed_image_path) /boot/$image_name 2> /dev/null || mv /$installed_image_path /boot/$image_name
|
||||||
touch /boot/.next
|
touch /boot/.next
|
||||||
exit 0
|
exit 0
|
||||||
EOT
|
EOT
|
||||||
|
|
||||||
##
|
##
|
||||||
## FAT install workaround
|
## FAT install workaround
|
||||||
##
|
##
|
||||||
sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/preinst
|
sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/preinst
|
||||||
cat >> $tmpdir/DEBIAN/preinst <<EOT
|
cat >> $tmpdir/DEBIAN/preinst <<- EOT
|
||||||
# exit if we are running chroot
|
# exit if we are running chroot
|
||||||
if [ "\$(stat -c %d:%i /)" != "\$(stat -c %d:%i /proc/1/root/.)" ]; then exit 0; fi
|
if [ "\$(stat -c %d:%i /)" != "\$(stat -c %d:%i /proc/1/root/.)" ]; then exit 0; fi
|
||||||
|
|
||||||
check_and_unmount (){
|
check_boot_dev (){
|
||||||
boot_device=\$(mountpoint -d /boot)
|
boot_device=\$(mountpoint -d /boot)
|
||||||
|
|
||||||
for file in /dev/* ; do
|
for file in /dev/* ; do
|
||||||
CURRENT_DEVICE=\$(printf "%d:%d" \$(stat --printf="0x%t 0x%T" \$file))
|
CURRENT_DEVICE=\$(printf "%d:%d" \$(stat --printf="0x%t 0x%T" \$file))
|
||||||
if [[ "\$CURRENT_DEVICE" = "\$boot_device" ]]; then
|
if [[ "\$CURRENT_DEVICE" = "\$boot_device" ]]; then
|
||||||
boot_partition=\$file
|
boot_partition=\$file
|
||||||
break
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
bootfstype=\$(blkid -s TYPE -o value \$boot_partition)
|
||||||
|
if [ "\$bootfstype" = "vfat" ]; then
|
||||||
|
rm -f /boot/System.map* /boot/config* /boot/vmlinuz* /boot/$image_name /boot/uImage
|
||||||
fi
|
fi
|
||||||
done
|
}
|
||||||
bootfstype=\$(blkid -s TYPE -o value \$boot_partition)
|
mountpoint -q /boot && check_boot_dev
|
||||||
if [ "\$bootfstype" = "vfat" ]; then
|
exit 0
|
||||||
umount /boot
|
|
||||||
rm -f /boot/System.map* /boot/config* /boot/vmlinuz* /boot/$image_name /boot/uImage
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
mountpoint -q /boot && check_and_unmount
|
|
||||||
exit 0
|
|
||||||
EOT
|
EOT
|
||||||
|
|
||||||
create_package "$packagename" "$tmpdir"
|
create_package "$packagename" "$tmpdir"
|
||||||
|
|
@ -360,7 +362,7 @@ if [ "$ARCH" != "um" ]; then
|
||||||
create_package $libc_headers_packagename $libc_headers_dir
|
create_package $libc_headers_packagename $libc_headers_dir
|
||||||
|
|
||||||
if is_enabled CONFIG_MODULES; then
|
if is_enabled CONFIG_MODULES; then
|
||||||
if is_native ; then
|
if is_native; then
|
||||||
# echo "Skip scripts folder cleaning" >&2
|
# echo "Skip scripts folder cleaning" >&2
|
||||||
# echo "Skip creating postinst prerm scripts for headers" >&2
|
# echo "Skip creating postinst prerm scripts for headers" >&2
|
||||||
deploy_kernel_headers $kernel_headers_dir
|
deploy_kernel_headers $kernel_headers_dir
|
||||||
|
|
@ -368,7 +370,10 @@ if [ "$ARCH" != "um" ]; then
|
||||||
else
|
else
|
||||||
# Clean up the executables that are left over from
|
# Clean up the executables that are left over from
|
||||||
# cross-compilation for a different host architecture.
|
# cross-compilation for a different host architecture.
|
||||||
(cd $srctree; make M=scripts clean;)
|
(
|
||||||
|
cd $srctree
|
||||||
|
make M=scripts clean
|
||||||
|
)
|
||||||
deploy_kernel_headers $kernel_headers_dir
|
deploy_kernel_headers $kernel_headers_dir
|
||||||
create_package $kernel_headers_packagename $kernel_headers_dir "headers"
|
create_package $kernel_headers_packagename $kernel_headers_dir "headers"
|
||||||
fi
|
fi
|
||||||
|
|
@ -376,7 +381,7 @@ if [ "$ARCH" != "um" ]; then
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$BUILD_DEBUG" ] ; then
|
if [ -n "$BUILD_DEBUG" ]; then
|
||||||
# Build debug package
|
# Build debug package
|
||||||
# Different tools want the image in different locations
|
# Different tools want the image in different locations
|
||||||
# perf
|
# perf
|
||||||
|
|
|
||||||
|
|
@ -223,6 +223,7 @@ fi
|
||||||
|
|
||||||
if is_enabled CONFIG_DEBUG_INFO; then
|
if is_enabled CONFIG_DEBUG_INFO; then
|
||||||
cat <<EOF >> debian/control
|
cat <<EOF >> debian/control
|
||||||
|
|
||||||
Package: $dbg_packagename
|
Package: $dbg_packagename
|
||||||
Section: debug
|
Section: debug
|
||||||
Architecture: $debarch
|
Architecture: $debarch
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue