Message ID | 20241022115836.1395681-1-srinuvasan.a@siemens.com |
---|---|
State | Superseded, archived |
Headers | show |
Series | [RFC,v1] linux-custom: Add a provision to support CONFIG_LOCALVERSION_AUTO | expand |
On 22.10.24 13:58, srinuvasan.a@siemens.com wrote: > From: srinuvasan <srinuvasan.a@siemens.com> > > This change might be useful for downstream layers to set the CONFIG_LOCALVERSION_AUTO > in their base defconfig to append the version automatically to kernel release. > > Presently ISAR doesn't have this support, hence add this provision. > > Here we try to find the CONFIG_LOCALVERSION_AUTO availability and .git present during > build the kernel package, unfortunately we are not getting the .git directory in the dpkg_build stage > even if we are fetching the git repo, this is due to sbuild always uses the sources (dsc) file > to build the package, when we generate the dsc file it create the tar ball without .git, hence > during dpkg_build stage it is not possible to get the latest commit HEAD value using "git rev-parse --verify HEAD" > > To solve this issue we have base .config and .git available in the do_dpkg_source stage, here we try to find the > latest commit and write them into .scmversion file, later during the kernel build package stage > we are calling the kernelrelease target to set the localversion, this setlocalversion script > handle the availability of .scmversion file and append the string accordingly to the kernelrelease. > > Signed-off-by: srinuvasan <srinuvasan.a@siemens.com> > --- > .../linux/files/debian/isar/version.cfg.tmpl | 1 - > meta/recipes-kernel/linux/linux-custom.inc | 11 +++++++++++ > 2 files changed, 11 insertions(+), 1 deletion(-) > > diff --git a/meta/recipes-kernel/linux/files/debian/isar/version.cfg.tmpl b/meta/recipes-kernel/linux/files/debian/isar/version.cfg.tmpl > index 17effe52..1ab699f5 100644 > --- a/meta/recipes-kernel/linux/files/debian/isar/version.cfg.tmpl > +++ b/meta/recipes-kernel/linux/files/debian/isar/version.cfg.tmpl > @@ -1,2 +1 @@ > CONFIG_LOCALVERSION="${LINUX_VERSION_EXTENSION}" > -# CONFIG_LOCALVERSION_AUTO is not set > diff --git a/meta/recipes-kernel/linux/linux-custom.inc b/meta/recipes-kernel/linux/linux-custom.inc > index 0f23d6f0..d0787aad 100644 > --- a/meta/recipes-kernel/linux/linux-custom.inc > +++ b/meta/recipes-kernel/linux/linux-custom.inc > @@ -296,6 +296,17 @@ EOF > done > } > > +get_localversion_auto() { > + if grep -q "^CONFIG_LOCALVERSION_AUTO=y" ${S}/${KERNEL_BUILD_DIR}/.config; then > + cd ${S} > + if test -z "$(git rev-parse --show-cdup 2>/dev/null)" && This acts as a test whether is a git repo, or what is the role of this line? Why is testing for success of the next line not enough? > + head=$(git rev-parse --verify --short HEAD 2>/dev/null); then I would indent by one space more. > + echo "-g${head}" >${S}/.scmversion > + fi > + fi > +} > + > do_dpkg_source:prepend() { > dpkg_configure_kernel > + get_localversion_auto > } Is this already stressed by any of the existing kernel builds in isar? If not, can you make that happen? Jan
diff --git a/meta/recipes-kernel/linux/files/debian/isar/version.cfg.tmpl b/meta/recipes-kernel/linux/files/debian/isar/version.cfg.tmpl index 17effe52..1ab699f5 100644 --- a/meta/recipes-kernel/linux/files/debian/isar/version.cfg.tmpl +++ b/meta/recipes-kernel/linux/files/debian/isar/version.cfg.tmpl @@ -1,2 +1 @@ CONFIG_LOCALVERSION="${LINUX_VERSION_EXTENSION}" -# CONFIG_LOCALVERSION_AUTO is not set diff --git a/meta/recipes-kernel/linux/linux-custom.inc b/meta/recipes-kernel/linux/linux-custom.inc index 0f23d6f0..d0787aad 100644 --- a/meta/recipes-kernel/linux/linux-custom.inc +++ b/meta/recipes-kernel/linux/linux-custom.inc @@ -296,6 +296,17 @@ EOF done } +get_localversion_auto() { + if grep -q "^CONFIG_LOCALVERSION_AUTO=y" ${S}/${KERNEL_BUILD_DIR}/.config; then + cd ${S} + if test -z "$(git rev-parse --show-cdup 2>/dev/null)" && + head=$(git rev-parse --verify --short HEAD 2>/dev/null); then + echo "-g${head}" >${S}/.scmversion + fi + fi +} + do_dpkg_source:prepend() { dpkg_configure_kernel + get_localversion_auto }