<div dir="ltr">oe-core likes to mix them :)</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jun 18, 2019 at 9:14 PM Khem Raj &lt;<a href="mailto:raj.khem@gmail.com">raj.khem@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Tue, Jun 18, 2019 at 12:09 PM Martin Jansa &lt;<a href="mailto:martin.jansa@gmail.com" target="_blank">martin.jansa@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; * since 1522f09a4d serf: cleanup recipe<br>
&gt;   serf.do_install fails in builds with multilib enabled (with<br>
&gt;   libdir=/usr/lib64 on host where /usr/lib64 doesn&#39;t exist)<br>
&gt;<br>
&gt; DEBUG: Executing shell function do_install<br>
&gt; scons: Reading SConscript files ...<br>
&gt; PermissionError: [Errno 13] Permission denied: &#39;/usr/lib64&#39;:<br>
&gt;   File &quot;TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/serf-1.3.9/SConstruct&quot;, line 158:<br>
&gt;     ENV = os.environ,<br>
&gt;   File &quot;/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&quot;, line 965:<br>
&gt;     variables.Update(self)<br>
&gt;   File &quot;/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&quot;, line 227:<br>
&gt;     option.validator(option.key, env.subst(&#39;${%s}&#39;%option.key), env)<br>
&gt;   File &quot;TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/serf-1.3.9/SConstruct&quot;, line 60:<br>
&gt;     return PathVariable.PathIsDirCreate(key, val, env)<br>
&gt;   File &quot;/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&quot;, line 101:<br>
&gt;     os.makedirs(val)<br>
&gt;   File &quot;TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/lib/python3.7/os.py&quot;, line 221:<br>
&gt;     mkdir(name, mode)<br>
&gt; ERROR: scons install execution failed.<br>
&gt;<br>
&gt; * I don&#39;t know how exactly --install-sandbox is supposed to work but<br>
&gt;   in this case it&#39;s trying to mkdir /usr/lib64 on the host rootfs<br>
&gt;   which is clearly wrong and if I set LIBDIR together with<br>
&gt;   --install-sandbox then the install paths are prefixed with $D twice<br>
&gt;   in some cases (not for includedir and empty libdir at the end).<br>
&gt;   So in the end I think it was an issue caused by the custom path<br>
&gt;   validator in serf&#39;s SConstruct, removing that stops touching host<br>
&gt;   and the installed paths (including the paths inside libserf*.pc)<br>
&gt;   look correct<br>
&gt;<br>
&gt; Signed-off-by: Martin Jansa &lt;<a href="mailto:Martin.Jansa@gmail.com" target="_blank">Martin.Jansa@gmail.com</a>&gt;<br>
&gt; ---<br>
&gt;  ...ories.without.sandbox-install.prefix.patch | 34 +++++++++++++++++++<br>
&gt;  meta/recipes-support/serf/<a href="http://serf_1.3.9.bb" rel="noreferrer" target="_blank">serf_1.3.9.bb</a>       |  1 +<br>
&gt;  2 files changed, 35 insertions(+)<br>
&gt;  create mode 100644 meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch<br>
&gt;<br>
&gt; diff --git a/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch b/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch<br>
&gt; new file mode 100644<br>
&gt; index 0000000000..bfb2f5a2aa<br>
&gt; --- /dev/null<br>
&gt; +++ b/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch<br>
&gt; @@ -0,0 +1,34 @@<br>
&gt; +--- ../1.3.9-r0-bad-double/serf-1.3.9/SConstruct       2019-06-18 15:49:19.968961108 +0000<br>
&gt; ++++ serf-1.3.9/SConstruct      2019-06-18 18:53:21.412337151 +0000<br>
&gt; +@@ -51,17 +51,6 @@<br>
&gt; +     &quot;&quot;&quot;<br>
&gt; +     return (key, &#39;%s&#39; % (help), default, None, lambda val: _converter(val))<br>
&gt; +<br>
&gt; +-# Custom path validator, creates directory when a specified option is set.<br>
&gt; +-# To be used to ensure a PREFIX directory is only created when installing.<br>
&gt; +-def createPathIsDirCreateWithTarget(target):<br>
&gt; +-  def my_validator(key, val, env):<br>
&gt; +-    build_targets = (map(str, BUILD_TARGETS))<br>
&gt; +-    if target in build_targets:<br>
&gt; +-      return PathVariable.PathIsDirCreate(key, val, env)<br>
&gt; +-    else:<br>
&gt; +-      return PathVariable.PathAccept(key, val, env)<br>
&gt; +-  return my_validator<br>
&gt; +-<br>
&gt; + # default directories<br>
&gt; + if sys.platform == &#39;win32&#39;:<br>
&gt; +   default_incdir=&#39;..&#39;<br>
&gt; +@@ -77,11 +66,11 @@<br>
&gt; +   PathVariable(&#39;PREFIX&#39;,<br>
&gt; +                &#39;Directory to install under&#39;,<br>
&gt; +                default_prefix,<br>
&gt; +-               createPathIsDirCreateWithTarget(&#39;install&#39;)),<br>
&gt; ++               PathVariable.PathAccept),<br>
&gt; +   PathVariable(&#39;LIBDIR&#39;,<br>
&gt; +                &#39;Directory to install architecture dependent libraries under&#39;,<br>
&gt; +                default_libdir,<br>
&gt; +-               createPathIsDirCreateWithTarget(&#39;install&#39;)),<br>
&gt; ++               PathVariable.PathAccept),<br>
&gt; +   PathVariable(&#39;APR&#39;,<br>
&gt; +                &quot;Path to apr-1-config, or to APR&#39;s install area&quot;,<br>
&gt; +                default_incdir,<br>
&gt; diff --git a/meta/recipes-support/serf/<a href="http://serf_1.3.9.bb" rel="noreferrer" target="_blank">serf_1.3.9.bb</a> b/meta/recipes-support/serf/<a href="http://serf_1.3.9.bb" rel="noreferrer" target="_blank">serf_1.3.9.bb</a><br>
&gt; index 92cd5ca061..25ccd79e00 100644<br>
&gt; --- a/meta/recipes-support/serf/<a href="http://serf_1.3.9.bb" rel="noreferrer" target="_blank">serf_1.3.9.bb</a><br>
&gt; +++ b/meta/recipes-support/serf/<a href="http://serf_1.3.9.bb" rel="noreferrer" target="_blank">serf_1.3.9.bb</a><br>
&gt; @@ -6,6 +6,7 @@ SRC_URI = &quot;${APACHE_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \<br>
&gt;             file://0002-SConstruct-Fix-path-quoting-for-.def-generator.patch \<br>
&gt;             file://0003-gen_def.patch \<br>
&gt;             file://0004-Follow-up-to-r1811083-fix-building-with-scons-3.0.0-.patch \<br>
&gt; +    file://SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch \<br>
<br>
tabs or spaces mismatch I guess ?<br>
<br>
&gt;             &quot;<br>
&gt;<br>
&gt;  SRC_URI[md5sum] = &quot;370a6340ff20366ab088012cd13f2b57&quot;<br>
&gt; --<br>
&gt; 2.17.1<br>
&gt;<br>
&gt; --<br>
&gt; _______________________________________________<br>
&gt; Openembedded-core mailing list<br>
&gt; <a href="mailto:Openembedded-core@lists.openembedded.org" target="_blank">Openembedded-core@lists.openembedded.org</a><br>
&gt; <a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.org/mailman/listinfo/openembedded-core</a><br>
</blockquote></div>