From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7054083982638448640 X-Received: by 2002:a2e:964e:: with SMTP id z14mr8386294ljh.375.1642406914679; Mon, 17 Jan 2022 00:08:34 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6512:ac9:: with SMTP id n9ls7612167lfu.1.gmail; Mon, 17 Jan 2022 00:08:33 -0800 (PST) X-Google-Smtp-Source: ABdhPJwGs2NOhmc0m6rGLqLdV0FvC6SmQXDwJ4iTuSCyoZwzrSeUI8GNhjClu+X/JPoX2HGVpcxC X-Received: by 2002:ac2:5504:: with SMTP id j4mr16506455lfk.251.1642406913106; Mon, 17 Jan 2022 00:08:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642406913; cv=none; d=google.com; s=arc-20160816; b=y2vgIjzMOw8ntISMcT5CP8LG8MY72jiaVre2770hVdzgCqJaB9lAmGFGIDu8nsbv6q 0AempkOK2SelP6Kb0AJBIJbykz6SwsQcVxF8EvrfqPcvqi8GyW0rPjQ4R9v6P/XNCTPA ydWGIZ5muA71eGwiB267pRVWv7XC+6rq8zF3nlyKnVVbbG8mZkY35Kpos4lPOMBhB6et 6YRi9/ZjrUrD+ZIJIDXskg3Wfs7QhxPlYkUPXxU9R8Pdw0BfX41TIda/MfhmrzMub7Kp i/SR5KLI8BSL3KMJiS1b81sy3A+VMeRCL5Pc00zO3HKyzsmoeYb+ciRZ9a9myLpH4vm6 jX7g== 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=V2QnLQ1/BIMP9pfd94ZGkWNlHwFM+HzTfJbYNHQOQOM=; b=W6ZMZLFUuh/JO6tv0o/AEpOG/TyHkNKwRnjCJe4P4HIMVnlC3vEGhKzAvLt8zA+ZK/ DduQjBO4h2/4DX2oli/QipSBf8PQkmEk7Ba+cG7tLLGkArLCmByNV7GZquqPTEPLyj3z 8C+RSsd659nGMRIMTytA00zxZXIJDMy8i04Cm3Esiu9UCY+DL4o+iEtmfhhTkTaArIxh UF98aSf31p7vHijUQDr4ot3CLC/LGgkAXX76GNvvnLoKrTVUDRn3yWc+wCMyjavcqYgw /9mwNarm2mFs/Kg9PhxFKLNJYod8fKPqWZAlX43n/Lhqz2MRpeZJSta8ptLGDEjqpcqA +xEQ== 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 v18si597811ljb.6.2022.01.17.00.08.32 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 17 Jan 2022 00:08:33 -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 20H88VJ2016083 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 17 Jan 2022 09:08:32 +0100 From: Uladzimir Bely To: isar-users@googlegroups.com Subject: [PATCH v2 1/6] linux: Allow to use custom packages for linux headers and image Date: Mon, 17 Jan 2022 09:08:26 +0100 Message-Id: <20220117080831.13345-2-ubely@ilbers.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220117080831.13345-1-ubely@ilbers.de> References: <20220117080831.13345-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: fJSayHoR147O 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 3bbb42a9..95750f9d 100644 --- a/RECIPE-API-CHANGELOG.md +++ b/RECIPE-API-CHANGELOG.md @@ -314,3 +314,12 @@ The "NAME" used to be rather static and the TAG was always "latest", now the val ### Renamed variable CONTAINER_FORMATS to CONTAINER_IMAGE_FORMATS The meaning remains the same, just the name changed. + +### 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 a10f0d7b..c334f4bb 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