From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7054083982638448640 X-Received: by 2002:adf:e3c5:: with SMTP id k5mr4787060wrm.571.1642575545141; Tue, 18 Jan 2022 22:59:05 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:adf:a158:: with SMTP id r24ls715430wrr.3.gmail; Tue, 18 Jan 2022 22:59:04 -0800 (PST) X-Google-Smtp-Source: ABdhPJzLmIK5zQRPzDEgqpfEV2RcoXFSZQLu/9rYVaAYC1cl+GoHCg5EF57mEA5eu+jKXi6ijM7r X-Received: by 2002:adf:9f14:: with SMTP id l20mr5529688wrf.65.1642575544331; Tue, 18 Jan 2022 22:59:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642575544; cv=none; d=google.com; s=arc-20160816; b=hjTMG1xcKXXkTJrD+u6Aftd0ERMwpHTQQ7AfHZ8/SXZGwKyAqcnyhj9y1lQOJ/LZky Uxm05YDd74Pqd9p73sKrHCajzlHcChe8UcoxDXr4dDjp5LLdUic5C20dk0iJBVZbiHkx It9iDGHv+zjgV1oYEVf1xy4OG2ZNDBPLrpEI3j6F8n9U4ONUg/8Z6Qn96zV0OSJGToXJ iCY0qivWhURd620rS+Ug/Gs/cM2enCgMaHzrJ59wkx/3sJbVmINCxj8RgeJwVVWNde0f 3CtwwftRDp1yCqU5Ov82pfcFkcM53+mcOnPKcfTe9PNNWUIxQW5b+Z3Qf3BNOFNlM1BL XVOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from; bh=4ard7HK+44GR88hT0XnUzhzfe+Fc/m5psWA6EQMnkkI=; b=WlW6WsclaFnRbcF+hpNLmftgn4qM44MKyg0y/ZudPLwKRwNaJ/TVA3QyT530y5CD9d eKFZJ6NdaCWW61py6b7erKwWj6eA/vKfVO1yVYQGokjqTrYkaOjF0EIR/G+WQ6qINww2 eo5V4z1Bv/WGDAcmhYDuh6FCPW+k6mMTrp7/7OfO+YtWoL0fokcKV9w+5d9uvzJJeXMO rqYCxElk9cqxmL9IAdRVNiULnfwGOv40YmoGdFDz31IsDitToFb7LZJ7fPljMWUTfZ9Y 4dkttm0Ed4yUlXVJ47YlvMpjpQWvodvCr3tcev6syVIsFkgVgyAH8eDgAvtWVcdsVSuO 2RpA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id n1si406627wrs.7.2022.01.18.22.59.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 18 Jan 2022 22:59:04 -0800 (PST) Received-SPF: pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de Received: from baighyz.m.ilbers.de (host-80-81-17-52.static.customer.m-online.net [80.81.17.52]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8) with ESMTPSA id 20J6x2LZ024118 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 19 Jan 2022 07:59:03 +0100 From: Uladzimir Bely To: isar-users@googlegroups.com Subject: [PATCH v3 1/6] linux: Allow to use custom packages for linux headers and image Date: Wed, 19 Jan 2022 07:58:57 +0100 Message-Id: <20220119065902.13514-2-ubely@ilbers.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220119065902.13514-1-ubely@ilbers.de> References: <20220119065902.13514-1-ubely@ilbers.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-TUID: j/wKKprlZgn2 Some distros like recent Raspbian may not provide packages named 'linux-image-${KERNEL_NAME}' and 'linux-image-${KERNEL_NAME}' and use some custom namings. This patch adds support of such distro-provided package name for packages containing linux image and linux headers. Signed-off-by: Uladzimir Bely --- RECIPE-API-CHANGELOG.md | 9 +++++++++ meta/classes/image.bbclass | 3 ++- .../linux-module/files/debian/control.tmpl | 4 ++-- meta/recipes-kernel/linux-module/module.inc | 10 ++++++---- meta/recipes-kernel/linux/linux-distro.bb | 4 ++++ 5 files changed, 23 insertions(+), 7 deletions(-) diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md index b8f1d2ba..34b43985 100644 --- a/RECIPE-API-CHANGELOG.md +++ b/RECIPE-API-CHANGELOG.md @@ -322,3 +322,12 @@ share the same location for image *.manifest and *.dpkg_status files, so they are not owerwritten by last build ones anymore. Output file names now include distro name and architecture/machine name parts. + +### Using custom package name for linux kernel and headers + +Isar assumes that linux kernel is provided by linux-image-${KERNEL_NAME} +package, while headers are provided by linux-image-${KERNEL_NAME} package. +This naming may be different in other distributions like Raspberry Pi OS. + +KERNEL_IMAGE_PKG and KERNEL_HEADERS_PKG variables allow to use custom package +names for kernel/headers. diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 30e92555..6d77243c 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -15,7 +15,8 @@ IMAGE_INSTALL ?= "" IMAGE_FSTYPES ?= "${@ d.getVar("IMAGE_TYPE", True) if d.getVar("IMAGE_TYPE", True) else "ext4-img"}" IMAGE_ROOTFS ?= "${WORKDIR}/rootfs" -IMAGE_INSTALL += "${@ ("linux-image-" + d.getVar("KERNEL_NAME", True)) if d.getVar("KERNEL_NAME", True) else ""}" +KERNEL_IMAGE_PKG ??= "${@ ("linux-image-" + d.getVar("KERNEL_NAME", True)) if d.getVar("KERNEL_NAME", True) else ""}" +IMAGE_INSTALL += "${KERNEL_IMAGE_PKG}" # Name of the image including distro&machine names IMAGE_FULLNAME = "${PN}-${DISTRO}-${MACHINE}" diff --git a/meta/recipes-kernel/linux-module/files/debian/control.tmpl b/meta/recipes-kernel/linux-module/files/debian/control.tmpl index 3b3292d9..d3f4dfe9 100644 --- a/meta/recipes-kernel/linux-module/files/debian/control.tmpl +++ b/meta/recipes-kernel/linux-module/files/debian/control.tmpl @@ -2,10 +2,10 @@ Source: ${PN} Section: kernel Priority: optional Standards-Version: 3.9.6 -Build-Depends: linux-headers-${KERNEL_NAME} +Build-Depends: ${KERNEL_HEADERS_PKG} Maintainer: ISAR project Package: ${PN} Architecture: any -Depends: linux-image-${KERNEL_NAME}, kmod +Depends: ${KERNEL_IMAGE_PKG}, kmod Description: ${DESCRIPTION} diff --git a/meta/recipes-kernel/linux-module/module.inc b/meta/recipes-kernel/linux-module/module.inc index 0515621a..fecc5b3c 100644 --- a/meta/recipes-kernel/linux-module/module.inc +++ b/meta/recipes-kernel/linux-module/module.inc @@ -13,7 +13,9 @@ KERNEL_NAME ?= "" PN .= "-${KERNEL_NAME}" -DEPENDS += "linux-headers-${KERNEL_NAME}" +KERNEL_IMAGE_PKG ??= "linux-image-${KERNEL_NAME}" +KERNEL_HEADERS_PKG ??= "linux-headers-${KERNEL_NAME}" +DEPENDS += "${KERNEL_HEADERS_PKG}" SRC_URI += "file://debian/" @@ -23,7 +25,7 @@ inherit dpkg TEMPLATE_FILES = "debian/control.tmpl \ debian/changelog.tmpl" -TEMPLATE_VARS += "KERNEL_NAME" +TEMPLATE_VARS += "KERNEL_IMAGE_PKG KERNEL_HEADERS_PKG" do_prepare_build() { cp -r ${WORKDIR}/debian ${S}/ @@ -35,12 +37,12 @@ do_prepare_build() { dpkg_runbuild_prepend() { # Custom kernels contain the build folder directly. - export KDIR=$(dpkg -L --root=${BUILDCHROOT_DIR} linux-headers-${KERNEL_NAME} | \ + export KDIR=$(dpkg -L --root=${BUILDCHROOT_DIR} ${KERNEL_HEADERS_PKG} | \ grep "/lib/modules/.*/build") if [ -z "$KDIR" ]; then # Debian kernels install that folder indirectly via a dependency. KERNEL_DEP=$(dpkg-query -W -f '${Depends}' --admindir=${BUILDCHROOT_DIR}/var/lib/dpkg \ - linux-headers-${KERNEL_NAME} | sed 's/.*\(linux-headers-[[:graph:]]*\).*/\1/') + ${KERNEL_HEADERS_PKG} | sed 's/.*\(linux-headers-[[:graph:]]*\).*/\1/') export KDIR=$(dpkg -L --root=${BUILDCHROOT_DIR} ${KERNEL_DEP} | \ grep "/lib/modules/.*/build") fi diff --git a/meta/recipes-kernel/linux/linux-distro.bb b/meta/recipes-kernel/linux/linux-distro.bb index 2a248f80..bfc8be9f 100644 --- a/meta/recipes-kernel/linux/linux-distro.bb +++ b/meta/recipes-kernel/linux/linux-distro.bb @@ -10,4 +10,8 @@ python() { for kernel in distro_kernels.split(): d.appendVar('PROVIDES', ' linux-image-' + kernel) d.appendVar('PROVIDES', ' linux-headers-' + kernel) + if d.getVar('KERNEL_IMAGE_PKG', True): + d.appendVar('PROVIDES', ' ' + d.getVar('KERNEL_IMAGE_PKG', True)) + if d.getVar('KERNEL_HEADERS_PKG', True): + d.appendVar('PROVIDES', ' ' + d.getVar('KERNEL_HEADERS_PKG', True)) } -- 2.20.1