From patchwork Mon Nov 10 07:22:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kiszka X-Patchwork-Id: 4569 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 10 Nov 2025 08:22:57 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-wr1-f59.google.com (mail-wr1-f59.google.com [209.85.221.59]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 5AA7Mu5S015496 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 10 Nov 2025 08:22:56 +0100 Received: by mail-wr1-f59.google.com with SMTP id ffacd0b85a97d-42b3c965ce5sf275890f8f.2 for ; Sun, 09 Nov 2025 23:22:56 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1762759366; cv=pass; d=google.com; s=arc-20240605; b=LNr6Mr5z3MARukqIZ7gh/T8BSLW8IE9Xf4O6LsqpW/iWbcBZLp0Bvqa24OfzS9MF9P JNNj0bWAHRu9/5bQfuRQyZgPbHdtVR87ZeDbNegJvC+Xf8EUz8GbYQ/LfvYDwpgZM4AX 2k2ACh9yQiYM47CvaQxpNZ/fUoHNTHF63uzC8XxwDbTq4sJ5tSR7Vv4yZ9WmNfaNXOWm TK6ZJwvn5yhVKNrV8tuOtPa1Jfmi4wDO/y2d2lPUJDVwOWd+MIFujFDMfeGbQIq9YjPJ 3duOueJls8k3GVBRcnGt+jWXTDyR88G6M+drnfXdmujY1SeUeEYobDwowrYvcpiJJiPF QlJg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:feedback-id:mime-version :references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=kq9wUTGc3kG1VKraWlky2NT+Lg3aenJmUteYKS/lI+4=; fh=UKr/zW3ueQII1sQuEDRCpPLawvGMUV2dZQ1D94rLb6I=; b=G+z6rzYuvOvRkSCPzkjxQhC+kerJjlgSjd87Sbym+ZdECjUPmCpcpscXwSTO1r706Q B5HL0bFHhaxFk+Vxdq3W2MND4v7I6jhLney6ICoxhZCsDECV3CAi26g3fAmZ0jVSLu5t rKq0u+axkno9zcGgqSsfqPcQoqw6Ib59Q6z9X5vzBDnygcOf2Z/bEKDHP25N2seQ3V2l M7n2nz2uV5e4pX/kC4zIZSBntEC+B+H0RkxBvBRIQcelzWx387aOA7MG/5ITQTzSGS6C ktM0CY/dYXHDrE1kYjaEBMrRjhgh6KXurVv9grxI6T2Z5XHZPi46bS+2WXpWw2EMjyyw TM6Q==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=aEx4Oetb; spf=pass (google.com: domain of fm-294854-202511100722410c7defb9c100020708-_bec_x@rts-flowmailer.siemens.com designates 185.136.65.226 as permitted sender) smtp.mailfrom=fm-294854-202511100722410c7defb9c100020708-_bEC_X@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1762759366; x=1763364166; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:to:from :from:to:cc:subject:date:message-id:reply-to; bh=kq9wUTGc3kG1VKraWlky2NT+Lg3aenJmUteYKS/lI+4=; b=uIlMZ9W2IBIJ2PeyWj8VwfSzSbChtBV/2E0FiLpc45ERSzOP7CQn1vYAbieqcugLOD Jnz+LiB86o0cMj371sIOC3YpRusULG21QaS5vVWobeGcudFYyrzKa7UtltLcn5le6I5r AbgPf0OjRug7Ral2GFIvohxlunXQ+y+LNmFH74cBIMqu3a0ZTwLaHKetC7zfHoVqwXdl U33s0qplNGcptMOtMh4BhdUne2OZDavZIZujiiq/MjDgP103Jvx1Ls+Ni3Xn5fK6ioKK ane/scEt1JjfqYxAeWaBd2VUXlUUg/OR20olPv2OZElYxf+wLEh5NOx+mi4Q9fyYlB/D 7ImQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762759366; x=1763364166; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:to:from :x-beenthere:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=kq9wUTGc3kG1VKraWlky2NT+Lg3aenJmUteYKS/lI+4=; b=m889MXS/lw6knJF7k5h0vI2VCmp84iZdSuRWaUuaU9sC0P2fEYtlTtHw+DpYGtZrFs qc1kB0ASOBuJV01xwU+WDszExT1HJatsXECPglgu+7Avr7M47ExkizrmB3c8mljvJ9oE ciH9UeJzdNAvTEgAK/PesuY1ovUjpf2eI4eM29UiC55viKEbH3Gxv7u1YrS50Amnvu/n uqxr7FM4probzLxsOz2daqnDW1Ssq70EPBspB2U7OGkXyEoTd6ECnI3tQ/hsWIbRGC0c EHYSJ5ghNP3YginDhuck6p+MC2gDm3xO/GGFcI3ChWu3UprKLgsdzUlWNgWEY3zGTwyg Juiw== X-Forwarded-Encrypted: i=2; AJvYcCUUmaXt0bjvj1Jh8mK128Jy3ejH/O6kZ3p5uBLKYIHOqp09Bcfg+FA7NHLWn1od6FCfc3kswT4=@isar-build.org X-Gm-Message-State: AOJu0YwvwBzp2gtlNguePJq3caFBGBLJouelEuB5EryEn3B2dyXrKOrX KB4YsoNUy6n9roawga6PTQjOSOmRshZhu2xitw5Npm8KpsLkR/HMf8L8 X-Google-Smtp-Source: AGHT+IFnKsQuRAJDcN9kwRA3JIaERpewhEK0F0lGy5K2sERtoRzn8ZHbphG1AEQyNHVFGppLfUAqRw== X-Received: by 2002:a7b:c84a:0:b0:477:7737:5652 with SMTP id 5b1f17b1804b1-47777375873mr26968845e9.20.1762759365724; Sun, 09 Nov 2025 23:22:45 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="Ae8XA+bKayBviJkKbUq7zHKsM1QyxRExG3IW6a449B/yR3OHAA==" Received: by 2002:a05:6000:1883:b0:425:686d:544f with SMTP id ffacd0b85a97d-429eb249602ls2174813f8f.1.-pod-prod-09-eu; Sun, 09 Nov 2025 23:22:42 -0800 (PST) X-Received: by 2002:a05:6000:2d12:b0:42b:2c61:86f1 with SMTP id ffacd0b85a97d-42b2dc7f5c0mr3907279f8f.35.1762759362395; Sun, 09 Nov 2025 23:22:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1762759362; cv=none; d=google.com; s=arc-20240605; b=In5Y1EDKNHffpeoEvCBVYExco85WFxLF7KpykSX3fqxS0HtjiUvLRHhC+iiUuGf/+C cg3s3BUyiW6KviVsQLvniVbYGK0Lg22w/sZ0uVOiZwWU5RLPDqsQF/3FZjhQNNcM/Ofc Qvc2cGuREjCJzfmze9poV0betewq66VpEZeVq+3Dxw2sEaiAU5Xs3OEkbqvXGesxbP8C rEjXns/vLqbxs1/58hBR124O+qvsNTMVLUiqDMnp4YYHIBnYbxxHjU3VlMB+G0UNJQQE Qo9Sck1LOHOloGytWQlVUyMM8QP0CzNs1CuMd5wMo9AcTO5G7vxLmdzgLYPJStL7Kk2j +umw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=feedback-id:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:to:from:dkim-signature; bh=+hR2M8rs1bN7R8akyxfyT9o4XmiiUA0ZqtLlih/whus=; fh=hOBXq6nisExkIRIwN8IDOmOCLKwX8PM0ANlxQbNMEqA=; b=GwBWL+B5qLysC/XODt+uNkSN34TeElCTtlbpUw4Y8aWOuRumfKvS7u1JTTiUtleeqO gPK/Qx3DAR1xzU3WOiDX4c+8a8zwo2jilUZb2YbuA+4CIalDxvh+NkZ9C1dzLb/8UT/8 i9tctNJga/hTzgkfig4cr5uQJDZoFtV/L6mOG+fB3ZaGf5kQPFNJHgAKpESa5v1KlHBA zfws9huCQNqRyPek+XFOhSKtX5WsZ3+gBg2IZmCEC8Doq9GklhThMfm4R15C6ejm44xu t7l5zgiCKNhbrTvHzuai2BqPecXPA1TOnKy83T0gGklv79H+lzdT1D/7819L+4OYiWvi 14+A==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=aEx4Oetb; spf=pass (google.com: domain of fm-294854-202511100722410c7defb9c100020708-_bec_x@rts-flowmailer.siemens.com designates 185.136.65.226 as permitted sender) smtp.mailfrom=fm-294854-202511100722410c7defb9c100020708-_bEC_X@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from mta-65-226.siemens.flowmailer.net (mta-65-226.siemens.flowmailer.net. [185.136.65.226]) by gmr-mx.google.com with ESMTPS id ffacd0b85a97d-42b294f39e3si153936f8f.3.2025.11.09.23.22.42 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 09 Nov 2025 23:22:42 -0800 (PST) Received-SPF: pass (google.com: domain of fm-294854-202511100722410c7defb9c100020708-_bec_x@rts-flowmailer.siemens.com designates 185.136.65.226 as permitted sender) client-ip=185.136.65.226; Received: by mta-65-226.siemens.flowmailer.net with ESMTPSA id 202511100722410c7defb9c100020708 for ; Mon, 10 Nov 2025 08:22:41 +0100 X-Patchwork-Original-From: "'Jan Kiszka' via isar-users" From: Jan Kiszka To: isar-users Subject: [PATCH v2 05/27] linux-custom: Migrate to a bbclass Date: Mon, 10 Nov 2025 08:22:18 +0100 Message-ID: <059e482b39c1a58885e059ad891d23d01cd23316.1762759360.git.jan.kiszka@siemens.com> In-Reply-To: References: MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-294854:519-21489:flowmailer X-Original-Sender: jan.kiszka@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=aEx4Oetb; spf=pass (google.com: domain of fm-294854-202511100722410c7defb9c100020708-_bec_x@rts-flowmailer.siemens.com designates 185.136.65.226 as permitted sender) smtp.mailfrom=fm-294854-202511100722410c7defb9c100020708-_bEC_X@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Jan Kiszka Reply-To: Jan Kiszka Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,RCVD_IN_RP_CERTIFIED, RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= From: Jan Kiszka "inherit linux-kernel" is shorter and a more common pattern compared to OE/yocto. Keep the original .inc file as transitional helper, issuing a warning when it's used with a migration suggestion. Signed-off-by: Jan Kiszka --- .../linux-kernel.bbclass} | 2 +- meta/recipes-kernel/linux/linux-custom.inc | 316 +----------------- 2 files changed, 7 insertions(+), 311 deletions(-) copy meta/{recipes-kernel/linux/linux-custom.inc => classes-recipe/linux-kernel.bbclass} (99%) diff --git a/meta/recipes-kernel/linux/linux-custom.inc b/meta/classes-recipe/linux-kernel.bbclass similarity index 99% copy from meta/recipes-kernel/linux/linux-custom.inc copy to meta/classes-recipe/linux-kernel.bbclass index 601908db..8bf26f62 100644 --- a/meta/recipes-kernel/linux/linux-custom.inc +++ b/meta/classes-recipe/linux-kernel.bbclass @@ -51,7 +51,7 @@ KERNEL_DEFCONFIG ??= "" HEADERS_INSTALL_EXTRA ??= "" # Add our template meta-data to the sources -FILESPATH:append := ":${FILE_DIRNAME}/files" +FILESPATH:append = ":${LAYERDIR_core}/recipes-kernel/linux/files" SRC_URI += "file://debian" # Variables and files that make our templates diff --git a/meta/recipes-kernel/linux/linux-custom.inc b/meta/recipes-kernel/linux/linux-custom.inc index 601908db..c372ec56 100644 --- a/meta/recipes-kernel/linux/linux-custom.inc +++ b/meta/recipes-kernel/linux/linux-custom.inc @@ -1,317 +1,13 @@ -# Custom kernel build +# Transitional include for linux-kernel.bbclass # # This software is a part of ISAR. -# Copyright (c) Siemens AG, 2022 -# Copyright (c) Mentor Graphics, a Siemens business, 2022 +# Copyright (c) Siemens AG, 2025 # # SPDX-License-Identifier: MIT -# Settings that would typically be done from the custom kernel recipe -# ------------------------------------------------------------------- +inherit linux-kernel -CHANGELOG_V = "${PV}+${PR}" -DESCRIPTION ?= "Custom kernel" -MAINTAINER ?= "isar-users " -DISTRIBUTOR ?= "ISAR" - -# pinned due to known or possible issues with compat 12 -DEBIAN_COMPAT:buster = "10" - -KBUILD_DEPENDS ?= "build-essential:native, \ - libelf-dev:native, \ - libncurses-dev:native, \ - libssl-dev:native, \ - bc, \ - bison, \ - cpio, \ - dwarves, \ - flex, \ - git, \ - kmod, \ - linux-image-${KERNEL_NAME_PROVIDED}:${DISTRO_ARCH} , \ - rsync," - -KERNEL_DEBIAN_DEPENDS ?= "initramfs-tools | linux-initramfs-tool, \ - kmod, \ - linux-base (>= 4.3~)," - -KERNEL_HEADERS_DEBIAN_DEPENDS ?= "" - -KERNEL_LIBC_DEV_ARCH_ALL = "0" -KERNEL_LIBC_DEV_ARCH_ALL:trixie = "1" -KERNEL_LIBC_DEV_DEPLOY ?= "0" - -# Settings that may be changed on a per distro, machine or layer basis -# -------------------------------------------------------------------- - -LINUX_VERSION_EXTENSION ?= "" - -KERNEL_DEFCONFIG ??= "" - -HEADERS_INSTALL_EXTRA ??= "" - -# Add our template meta-data to the sources -FILESPATH:append := ":${FILE_DIRNAME}/files" -SRC_URI += "file://debian" - -# Variables and files that make our templates -# ------------------------------------------- - -TEMPLATE_FILES += " \ - debian/control.tmpl \ - debian/isar/build.tmpl \ - debian/isar/clean.tmpl \ - debian/isar/common.tmpl \ - debian/isar/configure.tmpl \ - debian/isar/install.tmpl \ - debian/isar/version.cfg.tmpl \ - debian/linux-image.postinst.tmpl \ - debian/linux-image.postrm.tmpl \ - debian/linux-image.preinst.tmpl \ - debian/linux-image.prerm.tmpl \ - debian/rules.tmpl \ -" - -TEMPLATE_VARS += " \ - KBUILD_DEPENDS \ - KERNEL_ARCH \ - KERNEL_DEBIAN_DEPENDS \ - KERNEL_BUILD_DIR \ - KERNEL_FILE \ - KERNEL_HEADERS_DEBIAN_DEPENDS \ - KERNEL_LIBC_DEV_ARCH \ - LINUX_VERSION_EXTENSION \ - KERNEL_NAME_PROVIDED \ - KERNEL_CONFIG_FRAGMENTS \ - KCFLAGS \ - KAFLAGS \ - DISTRIBUTOR \ - KERNEL_EXTRA_BUILDARGS \ - HEADERS_INSTALL_EXTRA \ - ISAR_ENABLE_COMPAT_ARCH \ - COMPAT_DISTRO_ARCH \ - DEBIAN_COMPAT \ -" - -inherit dpkg -inherit kbuildtarget - -# Add custom cflags to the kernel build -KCFLAGS ?= "-fdebug-prefix-map=${CURDIR}=." -KAFLAGS ?= "-fdebug-prefix-map=${CURDIR}=." - -# Add extra arguments to the kernel build -KERNEL_EXTRA_BUILDARGS ??= "" - -# Derive name of the kernel packages from the name of this recipe -KERNEL_NAME_PROVIDED ?= "${@ d.getVar('BPN').partition('linux-')[2]}" - -# Determine cross-profile override -python() { - if d.getVar("DISTRO_ARCH") != d.getVar("HOST_ARCH") and bb.utils.to_boolean(d.getVar("ISAR_CROSS_COMPILE")) and "class-native" not in d.getVar("OVERRIDES").split(":"): - d.appendVar("OVERRIDES", ":cross-profile") -} - -# Default profiles and provides -BUILD_PROFILES = "kernel kbuild" - -# We only offer the -kbuildtarget variant when actually cross compiling -BBCLASSEXTEND:append:cross-profile = " kbuildtarget" - -# When cross-profile is active: -# build only kernel (including config) with the default variant of the recipe -BUILD_PROFILES:cross-profile = "kernel" - -# -native: kbuild package for host -BUILD_PROFILES:class-native = "kbuild" -RECIPE_PROVIDES:class-native = " \ - linux-headers-${KERNEL_NAME_PROVIDED} \ - linux-kbuild-${KERNEL_NAME_PROVIDED}" -# Use pseudo target to pull in the base variant of the recipe. -# Will be auto-extended with -native by multiarch.bbclass. -# Using DEPENDS instead of RDEPENDS to ensure creation of kernel including -# pregenerated kernel config before host specific linux-kbuild package build -DEPENDS:class-native += "${BPN}-pseudo" - -# -kbuildtarget: kbuild package for target, enforcing non-cross-build -BUILD_PROFILES:class-kbuildtarget = "kbuild" -RECIPE_PROVIDES:class-kbuildtarget = " \ - linux-headers-${KERNEL_NAME_PROVIDED} \ - linux-kbuild-${KERNEL_NAME_PROVIDED}" -# Using DEPENDS instead of RDEPENDS to ensure creation of kernel including -# pregenerated kernel config before target specific linux-kbuild package build -DEPENDS:class-kbuildtarget = "${BPN}" -ISAR_CROSS_COMPILE:class-kbuildtarget = "0" - -# Make bitbake know we will be producing linux-image and linux-headers packages -# Also make it know about other packages from control -RECIPE_PROVIDES = " \ - linux-image-${KERNEL_NAME_PROVIDED} \ - linux-headers-${KERNEL_NAME_PROVIDED} \ - linux-libc-dev \ - linux-libc-dev-${DISTRO_ARCH}-cross \ - linux-image-${KERNEL_NAME_PROVIDED}-dbg \ - linux-kbuild-${KERNEL_NAME_PROVIDED} \ - ${BPN}-pseudo-native \ -" -# When cross-profile is active: -# kbuild package is provided by -native or -kbuildtarget variant. Also headers -# provisioning moves over to ensure those variants are pulled, although the -# package itself is still built by the base recipe. -RECIPE_PROVIDES:remove:cross-profile = " \ - linux-headers-${KERNEL_NAME_PROVIDED} \ - linux-kbuild-${KERNEL_NAME_PROVIDED}" - -# As the multiarch class will not append -compat to -pseudo-native, we end up -# with two providers of it. Remove the wrong one. -RECIPE_PROVIDES:remove:class-compat = "${BPN}-pseudo-native" - -# Append headers depends -HEADERS_DEPENDS = ", linux-kbuild-${KERNEL_NAME_PROVIDED} | linux-kbuild-${KERNEL_NAME_PROVIDED}-${DISTRO_ARCH}-cross" -KERNEL_HEADERS_DEBIAN_DEPENDS:append = "${HEADERS_DEPENDS}" - -# Append provides -PROVIDES += "${RECIPE_PROVIDES}" - -# Append build profiles -DEB_BUILD_PROFILES += "${BUILD_PROFILES}" - -def get_kernel_arch(d): - distro_arch = d.getVar("DISTRO_ARCH") - if distro_arch in ["amd64", "i386"]: - kernel_arch = "x86" - elif distro_arch == "arm64": - kernel_arch = "arm64" - elif distro_arch == "armhf": - kernel_arch = "arm" - elif distro_arch == "mipsel": - kernel_arch = "mips" - elif distro_arch == "riscv64": - kernel_arch = "riscv" - else: - kernel_arch = "" - return kernel_arch - -KERNEL_ARCH ??= "${@get_kernel_arch(d)}" - -# set KERNEL_FILE without depending on package arch used in bitbake.conf -KERNEL_FILE:forcevariable = "${@ 'vmlinux' if d.getVar('KERNEL_ARCH') in ['mipsel', 'riscv', 'arm64'] else 'vmlinuz'}" - -def config_fragments(d): - fragments = [] - sources = d.getVar("SRC_URI").split() - for s in sources: - _, _, local, _, _, parm = bb.fetch.decodeurl(s) - apply = parm.get("apply") - if apply == "no": - continue - base, ext = os.path.splitext(os.path.basename(local)) - if ext and ext in (".cfg"): - fragments.append(local) - return fragments - -def get_additional_build_profiles(d): - profiles = d.getVar('BASE_DISTRO') - if not bb.utils.to_boolean(d.getVar('KERNEL_LIBC_DEV_DEPLOY')): - profiles += ' nolibcdev' - elif bb.utils.to_boolean(d.getVar('KERNEL_LIBC_DEV_ARCH_ALL')): - profiles += ' libcdev-arch-all' - return profiles - -KERNEL_LIBC_DEV_ARCH = "${@ bb.utils.contains('DEB_BUILD_PROFILES', 'libcdev-arch-all', 'all\nMulti-Arch: foreign', 'any', d) }" -DEB_BUILD_PROFILES += "${@get_additional_build_profiles(d)}" - -do_prepare_build:prepend() { - # copy meta-data over to source tree - rm -rf ${S}/debian - cp -r ${WORKDIR}/debian ${S}/ - - # remove templates from the source tree - find ${S}/debian -name *.tmpl | xargs rm -f - - # rename install/remove hooks to match user-specified name for our linux-image package - mv ${S}/debian/linux-image.postinst ${S}/debian/linux-image-${KERNEL_NAME_PROVIDED}.postinst - mv ${S}/debian/linux-image.postrm ${S}/debian/linux-image-${KERNEL_NAME_PROVIDED}.postrm - mv ${S}/debian/linux-image.preinst ${S}/debian/linux-image-${KERNEL_NAME_PROVIDED}.preinst - mv ${S}/debian/linux-image.prerm ${S}/debian/linux-image-${KERNEL_NAME_PROVIDED}.prerm - - # produce a changelog for our kernel build - deb_add_changelog - - # make sure user-specified directories do exist in ${S} - if [ -n "${HEADERS_INSTALL_EXTRA}" ]; then - for d in ${HEADERS_INSTALL_EXTRA}; do - [ -d ${S}/${d} ] || { - bbfatal "HEADERS_INSTALL_EXTRA: '${d}' not found in \${S}!" - } - done - fi -} - -# build directory for our "full" kernel build -KERNEL_BUILD_DIR = "build-full" - -def get_kernel_config_target(d): - kernel_defconfig = d.getVar('KERNEL_DEFCONFIG') - - config_target = kernel_defconfig - - if kernel_defconfig: - workdir=d.getVar('WORKDIR') - if os.path.isfile(workdir + "/" + kernel_defconfig): - config_target = "olddefconfig" - else: - config_target = "defconfig KBUILD_DEFCONFIG=" + kernel_defconfig - else: - config_target = "defconfig" - - return config_target - -def get_kernel_config_fragments(d): - src_frags = " ".join(config_fragments(d)) - out_frags = " ".join(map(lambda frag: 'debian/fragments/' + frag, config_fragments(d))) - - linux_version_extension = d.getVar('LINUX_VERSION_EXTENSION') - if linux_version_extension: - out_frags += " debian/isar/version.cfg" - - return out_frags - -KERNEL_CONFIG_FRAGMENTS = "${@get_kernel_config_fragments(d)}" - -dpkg_configure_kernel() { - grep -q "KERNEL_CONFIG_TARGET=" ${S}/debian/isar/configure || - cat << EOF | sed -i '/^do_configure() {/ r /dev/stdin' ${S}/debian/isar/configure - KERNEL_CONFIG_TARGET="${@get_kernel_config_target(d)}" -EOF - - rm -rf ${S}/${KERNEL_BUILD_DIR} && mkdir -p ${S}/${KERNEL_BUILD_DIR} - if [ -n "${KERNEL_DEFCONFIG}" ]; then - if [ -e "${WORKDIR}/${KERNEL_DEFCONFIG}" ]; then - cp ${WORKDIR}/${KERNEL_DEFCONFIG} ${S}/${KERNEL_BUILD_DIR}/.config - fi - fi - - # copy config fragments over to the kernel tree - src_frags="${@ " ".join(config_fragments(d)) }" - rm -rf ${S}/debian/fragments - for frag in ${src_frags}; do - basedir=$(dirname ${frag}) - mkdir -p ${S}/debian/fragments/${basedir} - cp ${WORKDIR}/${frag} ${S}/debian/fragments/${basedir}/ - done -} - -get_localversion_auto() { - if grep -q "^CONFIG_LOCALVERSION_AUTO=y" ${S}/${KERNEL_BUILD_DIR}/.config; then - cd ${S} - if 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 +do_warn_custom_inc() { + bbwarn "Please migrate from \"require recipes-kernel/linux/linux-custom.inc\" to \"inherit linux-kernel\"" } +addtask warn_custom_inc before do_unpack