From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6748410215888060416 X-Received: by 2002:a5d:6250:: with SMTP id m16mr2102979wrv.322.1571304566680; Thu, 17 Oct 2019 02:29:26 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a5d:45c5:: with SMTP id b5ls236349wrs.12.gmail; Thu, 17 Oct 2019 02:29:26 -0700 (PDT) X-Google-Smtp-Source: APXvYqx1BqPXmFqeblXgKBbcK4n5zupcxHqy7KV3PueZmDqzmpm3PSGSUPYAUdz7Mm99gEvAZzNQ X-Received: by 2002:a5d:6787:: with SMTP id v7mr2196637wru.392.1571304566232; Thu, 17 Oct 2019 02:29:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571304566; cv=none; d=google.com; s=arc-20160816; b=n/Xpk/1bIzcGbJqiBdP6+gCexE/jx0o4ECD4w+h4BFn5pU/R7S8G4q1ywYmulNf+Nf mYfDZTQwyh9deBoqyANWtOMSWsEavV7N7wcqSQMHpnq3koukOyjgq1W244ScBW1qEEO+ 5UuKd2rgiZeU0GUDgjx+abZM+ilIRCQl7tOiGUQpeKdOB97IFtYEIxSO8l7roiiCFPuE CBdfXrtJlQ5s1XaqUQWP1nomjD1UbEhLipRDkMbMT3nKiTCZ32UJP6OQj6pPw5Fjt7KU lAAlden/Ir3w2GbElY9HW+nvzHD/eJONnpIiIl25Dd46VZO7sSyBN/5rjv7NBeDVI6hs nvcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=js4eSSPIm2zvbGM0S3fz0+BH6ygz9O1sHOfTr9C7hnQ=; b=JuzfFHgPSl/Z9dZpG07QWDSLMGWQsJcsP4SF6mZoM92ok7YhVwUm6b2TilHihN9quC 4bogIDFPULMWe3Df+Wqozbdob/2U2zdd1A1qWFillw6hb79R2hbe1GEDB0E64Lvp+ybf /UZYWgVNe+GR3nFMj9131fiwVvJ+Y/4z08XwqhJdctEYOzgX3UUrEU1IIAYo8AYj1mUj ml4zc6rXoAtofb56+6+5RdaVTMF25qSzXtdS0q9Eq7PHzW/DFQ3rf8v44/PO/X+fLyjA 6H0uvJ38gptknClPianotra0YpjD8hTlEjBIswMEYyFVTSa0ZfMYqBaNQC2s5VhLsJNI XKPQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=aZJvmRui; spf=pass (google.com: domain of vijaikumar.kanagarajan@gmail.com designates 2a00:1450:4864:20::42c as permitted sender) smtp.mailfrom=vijaikumar.kanagarajan@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com. [2a00:1450:4864:20::42c]) by gmr-mx.google.com with ESMTPS id 5si555439wmf.1.2019.10.17.02.29.26 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 17 Oct 2019 02:29:26 -0700 (PDT) Received-SPF: pass (google.com: domain of vijaikumar.kanagarajan@gmail.com designates 2a00:1450:4864:20::42c as permitted sender) client-ip=2a00:1450:4864:20::42c; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=aZJvmRui; spf=pass (google.com: domain of vijaikumar.kanagarajan@gmail.com designates 2a00:1450:4864:20::42c as permitted sender) smtp.mailfrom=vijaikumar.kanagarajan@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: by mail-wr1-x42c.google.com with SMTP id r5so1468753wrm.12 for ; Thu, 17 Oct 2019 02:29:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=js4eSSPIm2zvbGM0S3fz0+BH6ygz9O1sHOfTr9C7hnQ=; b=aZJvmRuidfXnNlKJ0r/YNl8BF0fxphra47+Jt2vvD0DMyyUahUtGi5iwi0XlwdtsmE YH5S9lvzzNVesGGOUG65R7xxJa2ELp190+u2ER8P8z9cQZBWTJbKunFHqF3tlIBBZ3Ip mt+ey+6OxUo/zFM8LdSuhEQLHGgzs6We2A6w6CzIh71SOlhgmFpdSC9o3s5zKgS6I8KC MUHLUdZRgJlkMalghrGkXeaSAMVoZy2wovGS+4a3SLISbtUaZqnjGU4oT3MqsiGddQLE m6X4ZDhJppR/JYdTeVJhR5bRmdLTzfuCwADs0QKhIPTW9HOhTxgygQFwF7/BbFB6Y2lu +m+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=js4eSSPIm2zvbGM0S3fz0+BH6ygz9O1sHOfTr9C7hnQ=; b=ZydykH6a0QsIW6Rw8K/jktZZs58DOtIAixwnc96/IEtALzeFrqUtJhZ0H79Hq6fLDh S3TafG2yvT1om0UtDFXQ1PjVQz2zjJ5q9xN9iyV76z3TRBe1oC3pnDXAV+Q6h01Ro294 fdaZF9dU0wgGbaTw5u4PmwyauY3p4aA7d0VIgnoGHcRPu+j7qWWtNKRIubTBPGqjC92h SJjaKgXMRHj14Bi8YPwk6ajENtwpVwX+rJdUu5IaidlRdtQqvxoD7GM4GnaQaLGxO/KF BZrR6dQLO7Vw9/+KZz6EWzTwktQwbXGRvDoLaxYzcj+vofB1UfHLPsb4EQYRKmBG+IYw BAIA== X-Gm-Message-State: APjAAAUxFWx+WCD8VdZR1Mn/1NlAnGxTF1Dd07QWy/GS3ItUwbmt1quy R40Rbkx3hUYKaeOq87fPQ4VpmRhhrS8= X-Received: by 2002:a5d:4047:: with SMTP id w7mr2116033wrp.270.1571304565600; Thu, 17 Oct 2019 02:29:25 -0700 (PDT) Return-Path: Received: from lightning.mgc.mentorg.com (nat-sch.mentorg.com. [139.181.36.34]) by smtp.gmail.com with ESMTPSA id h125sm2033843wmf.31.2019.10.17.02.29.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Oct 2019 02:29:25 -0700 (PDT) From: vijaikumar.kanagarajan@gmail.com X-Google-Original-From: Vijaikumar_Kangarajan@mentor.com To: isar-users@googlegroups.com, jan.kiszka@siemens.com, henning.schild@siemens.com Cc: Vijai Kumar K Subject: [PATCH v3 1/2] meta: Add support for FILESEXTRAPATHS Date: Thu, 17 Oct 2019 14:58:55 +0530 Message-Id: <20191017092856.27064-2-Vijaikumar_Kangarajan@mentor.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191017092856.27064-1-Vijaikumar_Kangarajan@mentor.com> References: <20191016190536.456075c5@md1za8fc.ad001.siemens.net> <20191017092856.27064-1-Vijaikumar_Kangarajan@mentor.com> X-TUID: q8Kqda2VmYF4 From: Vijai Kumar K OE-core provides FILESEXTRAPATHS to extend the search path for files and patches. This is particularly useful when you want to add more files or replace existing files using bbappend. Bring in support for FILESEXTRAPATHS from OE-core. Signed-off-by: Vijai Kumar K --- RECIPE-API-CHANGELOG.md | 10 ++++++++++ doc/user_manual.md | 2 ++ meta/classes/base.bbclass | 19 +++++++++++++++++++ meta/conf/bitbake.conf | 3 ++- 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md index bbef1a3..e9072d7 100644 --- a/RECIPE-API-CHANGELOG.md +++ b/RECIPE-API-CHANGELOG.md @@ -176,3 +176,13 @@ Otherwise set a encrypted root password like this: USERS += "root" USER_root[password] = "$6$rounds=10000$RXeWrnFmkY$DtuS/OmsAS2cCEDo0BF5qQsizIrq6jPgXnwv3PHqREJeKd1sXdHX/ayQtuQWVDHe0KIO0/sVH8dvQm1KthF0d/" ``` +### Use FILESEXTRAPATHS to add custom paths to FILESPATH + +Direct modification of FILESPATH variable is discouraged. Use FILESEXTRAPATHS +instead to add a custom search path for files and patches. This makes overriding +files and patches using bbappend a lot easier. + +For example: +``` +FILESEXTRAPATHS_prepend := "$THISDIR/files:" +``` diff --git a/doc/user_manual.md b/doc/user_manual.md index c2657da..e096c24 100644 --- a/doc/user_manual.md +++ b/doc/user_manual.md @@ -321,6 +321,8 @@ Some other variables include: - `HOST_DISTRO_BOOTSTRAP_KEYS` - Analogously to DISTRO_BOOTSTRAP_KEYS: List of gpg key URIs used to verify apt bootstrap repo for the host. - `DISTRO_APT_PREMIRRORS` - The preferred mirror (append it to the default URI in the format `ftp.debian.org my.preferred.mirror`. This variable is optional. - `THIRD_PARTY_APT_KEYS` - List of gpg key URIs used to verify apt repos for apt installation after bootstrapping + - `FILESEXTRAPATHS` - The default directories BitBake uses when it processes recipes are initially defined by the FILESPATH variable. You can extend FILESPATH variable by using FILESEXTRAPATHS. + - `FILESOVERRIDES` - A subset of OVERRIDES used by the build system for creating FILESPATH. The FILESOVERRIDES variable uses overrides to automatically extend the FILESPATH variable. --- diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 8c7b021..0670430 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -19,6 +19,7 @@ # OTHER DEALINGS IN THE SOFTWARE. THISDIR = "${@os.path.dirname(d.getVar('FILE', True))}" +FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${PF}","${FILE_DIRNAME}/${P}:${FILE_DIRNAME}/${PN}", "${FILE_DIRNAME}/files","${FILE_DIRNAME}"], d)}" def get_deb_host_arch(): import subprocess @@ -222,3 +223,21 @@ python do_cleanall() { except bb.fetch2.BBFetchException as e: bb.fatal(str(e)) } + +# Derived from OpenEmbedded Core: meta/classes/utils.bbclass +def base_set_filespath(path, d): + filespath = [] + extrapaths = (d.getVar("FILESEXTRAPATHS") or "") + # Remove default flag which was used for checking + extrapaths = extrapaths.replace("__default:", "") + # Don't prepend empty strings to the path list + if extrapaths != "": + path = extrapaths.split(":") + path + # The ":" ensures we have an 'empty' override + overrides = (":" + (d.getVar("FILESOVERRIDES") or "")).split(":") + overrides.reverse() + for o in overrides: + for p in path: + if p != "": + filespath.append(os.path.join(p, o)) + return ":".join(filespath) diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index bca1114..1f20c98 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -23,8 +23,8 @@ B = "${S}" CVSDIR = "${DL_DIR}/cvs" DEPENDS = "" DEPLOY_DIR = "${TMPDIR}/deploy" -FILESPATH = "${FILE_DIRNAME}/${PF}:${FILE_DIRNAME}/${P}:${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/files:${FILE_DIRNAME}" FILE_DIRNAME = "${@os.path.dirname(d.getVar('FILE', False))}" +FILESEXTRAPATHS ?= "__default:" GITDIR = "${DL_DIR}/git" P = "${PN}-${PV}" PF = "${PN}-${PV}-${PR}" @@ -58,6 +58,7 @@ SDKCHROOT_DIR = "${DEPLOY_DIR_SDKCHROOT}/${DISTRO}-${DISTRO_ARCH}" CACHE = "${TMPDIR}/cache" OVERRIDES = "${DISTRO_ARCH}:${MACHINE}:${DISTRO}:forcevariable" +FILESOVERRIDES = "${DISTRO_ARCH}:${MACHINE}" # Setting default QEMU_ARCH variables for different DISTRO_ARCH: QEMU_ARCH_amd64 = "x86_64" -- 2.17.1