mirror of
https://git.yoctoproject.org/poky
synced 2026-05-01 06:32:11 +02:00
serf: stop scons trying to create directories in hosts rootfs
* since 1522f09a4d serf: cleanup recipe
serf.do_install fails in builds with multilib enabled (with
libdir=/usr/lib64 on host where /usr/lib64 doesn't exist)
DEBUG: Executing shell function do_install
scons: Reading SConscript files ...
PermissionError: [Errno 13] Permission denied: '/usr/lib64':
File "TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/serf-1.3.9/SConstruct", line 158:
ENV = os.environ,
File "/TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/bin/../../usr/lib/python3.7/site-packages/SCons/Environment.py", line 965:
variables.Update(self)
File "/TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/bin/../../usr/lib/python3.7/site-packages/SCons/Variables/__init__.py", line 227:
option.validator(option.key, env.subst('${%s}'%option.key), env)
File "TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/serf-1.3.9/SConstruct", line 60:
return PathVariable.PathIsDirCreate(key, val, env)
File "/TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/bin/../../usr/lib/python3.7/site-packages/SCons/Variables/PathVariable.py", line 101:
os.makedirs(val)
File "TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/lib/python3.7/os.py", line 221:
mkdir(name, mode)
ERROR: scons install execution failed.
* I don't know how exactly --install-sandbox is supposed to work but
in this case it's trying to mkdir /usr/lib64 on the host rootfs
which is clearly wrong and if I set LIBDIR together with
--install-sandbox then the install paths are prefixed with $D twice
in some cases (not for includedir and empty libdir at the end).
So in the end I think it was an issue caused by the custom path
validator in serf's SConstruct, removing that stops touching host
and the installed paths (including the paths inside libserf*.pc)
look correct
(From OE-Core rev: 7ce8b1bc510cfe8b013430a3826ece6878d8568e)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
34750ea4b6
commit
107c5441aa
@@ -0,0 +1,71 @@
|
||||
stop scons trying to create directories in hosts rootfs
|
||||
|
||||
* since 1522f09a4d serf: cleanup recipe
|
||||
serf.do_install fails in builds with multilib enabled (with
|
||||
libdir=/usr/lib64 on host where /usr/lib64 doesn't exist)
|
||||
|
||||
DEBUG: Executing shell function do_install
|
||||
scons: Reading SConscript files ...
|
||||
PermissionError: [Errno 13] Permission denied: '/usr/lib64':
|
||||
File "TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/serf-1.3.9/SConstruct", line 158:
|
||||
ENV = os.environ,
|
||||
File "/TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/bin/../../usr/lib/python3.7/site-packages/SCons/Environment.py", line 965:
|
||||
variables.Update(self)
|
||||
File "/TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/bin/../../usr/lib/python3.7/site-packages/SCons/Variables/__init__.py", line 227:
|
||||
option.validator(option.key, env.subst('${%s}'%option.key), env)
|
||||
File "TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/serf-1.3.9/SConstruct", line 60:
|
||||
return PathVariable.PathIsDirCreate(key, val, env)
|
||||
File "/TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/bin/../../usr/lib/python3.7/site-packages/SCons/Variables/PathVariable.py", line 101:
|
||||
os.makedirs(val)
|
||||
File "TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/lib/python3.7/os.py", line 221:
|
||||
mkdir(name, mode)
|
||||
ERROR: scons install execution failed.
|
||||
|
||||
* I don't know how exactly --install-sandbox is supposed to work but
|
||||
in this case it's trying to mkdir /usr/lib64 on the host rootfs
|
||||
which is clearly wrong and if I set LIBDIR together with
|
||||
--install-sandbox then the install paths are prefixed with $D twice
|
||||
in some cases (not for includedir and empty libdir at the end).
|
||||
So in the end I think it was an issue caused by the custom path
|
||||
validator in serf's SConstruct, removing that stops touching host
|
||||
and the installed paths (including the paths inside libserf*.pc)
|
||||
look correct
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
|
||||
|
||||
--- serf-1.3.9/SConstruct 2019-06-18 15:49:19.968961108 +0000
|
||||
+++ serf-1.3.9b/SConstruct 2019-06-18 18:53:21.412337151 +0000
|
||||
@@ -51,17 +51,6 @@
|
||||
"""
|
||||
return (key, '%s' % (help), default, None, lambda val: _converter(val))
|
||||
|
||||
-# Custom path validator, creates directory when a specified option is set.
|
||||
-# To be used to ensure a PREFIX directory is only created when installing.
|
||||
-def createPathIsDirCreateWithTarget(target):
|
||||
- def my_validator(key, val, env):
|
||||
- build_targets = (map(str, BUILD_TARGETS))
|
||||
- if target in build_targets:
|
||||
- return PathVariable.PathIsDirCreate(key, val, env)
|
||||
- else:
|
||||
- return PathVariable.PathAccept(key, val, env)
|
||||
- return my_validator
|
||||
-
|
||||
# default directories
|
||||
if sys.platform == 'win32':
|
||||
default_incdir='..'
|
||||
@@ -77,11 +66,11 @@
|
||||
PathVariable('PREFIX',
|
||||
'Directory to install under',
|
||||
default_prefix,
|
||||
- createPathIsDirCreateWithTarget('install')),
|
||||
+ PathVariable.PathAccept),
|
||||
PathVariable('LIBDIR',
|
||||
'Directory to install architecture dependent libraries under',
|
||||
default_libdir,
|
||||
- createPathIsDirCreateWithTarget('install')),
|
||||
+ PathVariable.PathAccept),
|
||||
PathVariable('APR',
|
||||
"Path to apr-1-config, or to APR's install area",
|
||||
default_incdir,
|
||||
@@ -6,6 +6,7 @@ SRC_URI = "${APACHE_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
|
||||
file://0002-SConstruct-Fix-path-quoting-for-.def-generator.patch \
|
||||
file://0003-gen_def.patch \
|
||||
file://0004-Follow-up-to-r1811083-fix-building-with-scons-3.0.0-.patch \
|
||||
file://SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "370a6340ff20366ab088012cd13f2b57"
|
||||
|
||||
Reference in New Issue
Block a user