[OE-core] [PATCH 1/1] package_manager.py: fix for "Argument list too long"
Robert Yang
liezhi.yang at windriver.com
Thu Oct 13 09:45:38 UTC 2016
Fixed when len(TMPDIR) = 410:
$ bitbake core-image-sato-sdk
[snip]
Subprocess output:
/bin/sh: /bin/cp: Argument list too long
ERROR: core-image-sato-sdk-1.0-r0 do_rootfs: Function failed: do_rootfs
[snip]
This is because "copyhardlinktree(deploy_arch_dir, arch_channel)" does:
"cp -afl deploy_arch_dir/* arch_channel", while the deploy_arch_dir/* is
expanded to "deploy_arch_dir/pkg1 deploy_arch_dir/pkg2
deploy_arch_dir/pkg3 ..." which causes the "Argument list too long",
change cwd to deploy_arch_dir can avoid the error.
Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
---
meta/lib/oe/package_manager.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
index 3cee973..e0e203b 100644
--- a/meta/lib/oe/package_manager.py
+++ b/meta/lib/oe/package_manager.py
@@ -1024,7 +1024,11 @@ class RpmPM(PackageManager):
lockfilename = self.d.getVar('DEPLOY_DIR_RPM', True) + "/rpm.lock"
lf = bb.utils.lockfile(lockfilename, False)
- oe.path.copyhardlinktree(deploy_arch_dir, arch_channel)
+ # chdir() to deploy_arch_dir to avoid "Argument list too long" error
+ oldcwd = os.getcwd()
+ os.chdir(deploy_arch_dir)
+ oe.path.copyhardlinktree('.', arch_channel)
+ os.chdir(oldcwd)
bb.utils.unlockfile(lf)
if not arch in ch_already_added:
--
2.9.0
More information about the Openembedded-core
mailing list