envkernel.sh: Avoid changing local version based on Git repository state (!1844)

When git is installed, the Linux kernel build system appends suffixes
to the Linux kernel version based on the local repository state.
This means that we get different kernel versions when building the
package normally or with envkernel.sh.

This causes problems with Alpine's "installkernel" script,
which detects the kernel flavor based on the kernel version.
e.g. when building linux-postmarketos-qcom-msm8916 with git installed
the kernel image is installed to /boot/vmlinuz-g556e2c21dbac-dirty
where pmbootstrap (and anything else) cannot find it.

Two changes are necessary to prevent the kernel build system from
appending Git version information:

  1. Set LOCALVERSION= - this is done by this commit.
  2. Unset CONFIG_LOCALVERSION_AUTO
     - this needs to be done in each kernel config (when needed)
This commit is contained in:
Minecrell 2019-12-21 20:55:41 +01:00 committed by Oliver Smith
parent a790900e31
commit d45e88505d
No known key found for this signature in database
GPG Key ID: 5AE7F5513E0885CB
1 changed files with 6 additions and 0 deletions

View File

@ -195,6 +195,12 @@ set_alias_make() {
fi
cmd="$cmd make -C /mnt/linux O=/mnt/linux/.output"
cmd="$cmd CC=$cc HOSTCC=$hostcc"
# Avoid "+" suffix in kernel version if the working directory is dirty.
# (Otherwise we will generate a package that uses different paths...)
# Note: Set CONFIG_LOCALVERSION_AUTO=n in kernel config additionally
cmd="$cmd LOCALVERSION="
# shellcheck disable=SC2139
alias make="$cmd"
unset cmd