From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: openembedded-core <openembedded-core@lists.openembedded.org>
Subject: [PATCH] base/perlnative/pythonnative/gzipnative: Add a new variable to enable easier handling of native path issues
Date: Wed, 25 Jul 2012 22:09:43 +0100 [thread overview]
Message-ID: <1343250583.29991.1.camel@ted> (raw)
If something is listed in ASSUME_PROVIDED but also manually built (like bzip2-native and
bzip2-replacement-native), we need to ensure that the installed binaries are only accessed
for things which list the provider in DEPENDS.
This patch adds a generic mechanism to handle this instead of everything reinventing the
wheel. EXTRANATIVEPATH += "perl-native" will ensure that ${STAGING_BINDIR_NATIVE}/perl-native
is added to PATH.
This means that:
a) Such providers should install to ${bindir}/xxx-native
b) Should PROVIDE += "xxxx-replacement-native"
c) That users should DEPEND on xxx-replacement-native and have EXTRANATIVEPATH += "xxx-native"
This patch enables this at the core level, the bzip2 recipe still needs adjusting to work
like this along with adjustment of the users of bzip2-replacement-native (python-native?).
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index 6532d10..5fdb96c 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -74,6 +74,15 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", "${FILE_DIRNAME}/$
# in the context of the location its used (:=)
THISDIR = "${@os.path.dirname(d.getVar('FILE', True))}"
+def extra_path_elements(d):
+ path = ""
+ elements = (d.getVar('EXTRANATIVEPATH', True) or "").split()
+ for e in elements:
+ path = path + "${STAGING_BINDIR_NATIVE}/" + e + ":"
+ return path
+
+PATH_prepend = "${@extra_path_elements(d)}"
+
addtask fetch
do_fetch[dirs] = "${DL_DIR}"
do_fetch[file-checksums] = "${@bb.fetch.get_checksum_file_list(d)}"
diff --git a/meta/classes/gzipnative.bbclass b/meta/classes/gzipnative.bbclass
index 4a41143..007e32c 100644
--- a/meta/classes/gzipnative.bbclass
+++ b/meta/classes/gzipnative.bbclass
@@ -1,3 +1,3 @@
-PATH_prepend = "${STAGING_BINDIR_NATIVE}/pigz-native:${STAGING_BINDIR_NATIVE}/gzip-native:"
+EXTRANATIVEPATH += "pigz-native gzip-native"
DEPENDS += "gzip-native"
diff --git a/meta/classes/perlnative.bbclass b/meta/classes/perlnative.bbclass
index 2211b72..cc8de8b 100644
--- a/meta/classes/perlnative.bbclass
+++ b/meta/classes/perlnative.bbclass
@@ -1,3 +1,3 @@
-PATH_prepend = "${STAGING_BINDIR_NATIVE}/perl-native:"
+EXTRANATIVEPATH += "perl-native"
DEPENDS += "perl-native"
OECMAKE_PERLNATIVE_DIR = "${STAGING_BINDIR_NATIVE}/perl-native"
diff --git a/meta/classes/pythonnative.bbclass b/meta/classes/pythonnative.bbclass
index bc346da..7886207 100644
--- a/meta/classes/pythonnative.bbclass
+++ b/meta/classes/pythonnative.bbclass
@@ -1,3 +1,3 @@
PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python"
-PATH_prepend = "${STAGING_BINDIR_NATIVE}/python-native:"
+EXTRANATIVEPATH += "python-native"
DEPENDS += " python-native "
reply other threads:[~2012-07-25 21:21 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1343250583.29991.1.camel@ted \
--to=richard.purdie@linuxfoundation.org \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.