diff options
author | Robert Yang <liezhi.yang@windriver.com> | 2022-01-20 14:29:04 +0800 |
---|---|---|
committer | Robert Yang <liezhi.yang@windriver.com> | 2022-01-20 07:01:22 +0000 |
commit | bb3ae8dbd929eac83394be5fe3284dd79c895e44 (patch) | |
tree | 3a586eb918048ab4bd32b1cd0a5a2b57a6b9aa7d /meta | |
parent | ecb61b36938754cf925bf58aad3edf7346deced0 (diff) | |
download | openembedded-core-contrib-rbt/network.tar.gz |
bitbake.conf: Add BB_TASK_NETWORK to enable task network globallyrbt/network
The NIS or icecc can't work when task network is dissable, add BB_TASK_NETWORK
to enable network globally for such exceptions.
Note, enable nscd on the build machine might be a solution, but that isn't
reliable since it depends on whether the network function has been cached or
not.
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/icecc.bbclass | 2 | ||||
-rw-r--r-- | meta/conf/bitbake.conf | 3 | ||||
-rw-r--r-- | meta/lib/oe/utils.py | 15 |
3 files changed, 20 insertions, 0 deletions
diff --git a/meta/classes/icecc.bbclass b/meta/classes/icecc.bbclass index 794e9930ad..c39c86458a 100644 --- a/meta/classes/icecc.bbclass +++ b/meta/classes/icecc.bbclass @@ -41,6 +41,8 @@ ICECC_ENV_EXEC ?= "${STAGING_BINDIR_NATIVE}/icecc-create-env" HOSTTOOLS_NONFATAL += "icecc patchelf" +BB_TASK_NETWORK ? = "1" + # This version can be incremented when changes are made to the environment that # invalidate the version on the compile nodes. Changing it will cause a new # environment to be created. diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index fba99e8f0c..bf5bcd5551 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -946,3 +946,6 @@ MULTILIB_VARIANTS ??= "" # what it would be anyway if the signature generator (e.g. OEEquivHash) doesn't # support unihashes. BB_UNIHASH ?= "${BB_TASKHASH}" + +# Enable task network for remote user such as NIS. +BB_TASK_NETWORK ??= "${@['1', '0'][oe.utils.is_local_uid()]}" diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py index 136650e6f7..c21f034aaf 100644 --- a/meta/lib/oe/utils.py +++ b/meta/lib/oe/utils.py @@ -595,3 +595,18 @@ def directory_size(root, blocksize=4096): total += sum(roundup(getsize(os.path.join(root, name))) for name in files) total += roundup(getsize(root)) return total + +def is_local_uid(uid=''): + """ + Check whether uid is a local one or not. + Can't use pwd module since it gets all UIDs, not local ones only. + """ + if not uid: + uid = os.getuid() + local_uids = set() + with open('/etc/passwd', 'r') as f: + for line in f.readlines(): + if not ':' in line: + continue + local_uids.add(line.split(':')[2]) + return uid in local_uids |