Re: [OE-core] [PATCH] serf: stop scons trying to create directories in hosts rootfs

2019-06-18 Thread Burton, Ross
No S-o-b in the patch, but more importantly no Upstream-Status.  Have
you reported this upstream?  Or compared what we're doing to what
other distros that package serf do?

Ross

On Tue, 18 Jun 2019 at 20:09, Martin Jansa  wrote:
>
> * 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
>
> Signed-off-by: Martin Jansa 
> ---
>  ...ories.without.sandbox-install.prefix.patch | 34 +++
>  meta/recipes-support/serf/serf_1.3.9.bb   |  1 +
>  2 files changed, 35 insertions(+)
>  create mode 100644 
> meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch
>
> 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
> new file mode 100644
> index 00..bfb2f5a2aa
> --- /dev/null
> +++ 
> b/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch
> @@ -0,0 +1,34 @@
> +--- ../1.3.9-r0-bad-double/serf-1.3.9/SConstruct   2019-06-18 
> 15:49:19.968961108 +
>  serf-1.3.9/SConstruct  2019-06-18 18:53:21.412337151 +
> +@@ -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,
> diff --git a/meta/recipes-support/serf/serf_1.3.9.bb 
> b/meta/recipes-support/serf/serf_1.3.9.bb
> index 92cd5ca061..25ccd79e00 100644
> --- a/meta/recipes-support/serf/serf_1.3.9.bb
> +++ b/meta/recipes-support/serf/serf_1.3.9.bb
> @@ -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-

Re: [OE-core] [PATCH] serf: stop scons trying to create directories in hosts rootfs

2019-06-18 Thread Martin Jansa
oe-core likes to mix them :)

On Tue, Jun 18, 2019 at 9:14 PM Khem Raj  wrote:

> On Tue, Jun 18, 2019 at 12:09 PM Martin Jansa 
> wrote:
> >
> > * 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
> >
> > Signed-off-by: Martin Jansa 
> > ---
> >  ...ories.without.sandbox-install.prefix.patch | 34 +++
> >  meta/recipes-support/serf/serf_1.3.9.bb   |  1 +
> >  2 files changed, 35 insertions(+)
> >  create mode 100644
> meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch
> >
> > 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
> > new file mode 100644
> > index 00..bfb2f5a2aa
> > --- /dev/null
> > +++
> b/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch
> > @@ -0,0 +1,34 @@
> > +--- ../1.3.9-r0-bad-double/serf-1.3.9/SConstruct   2019-06-18
> 15:49:19.968961108 +
> >  serf-1.3.9/SConstruct  2019-06-18 18:53:21.412337151 +
> > +@@ -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,
> > diff --git a/meta/recipes-support/serf/serf_1.3.9.bb
> b/meta/recipes-support/serf/serf_1.3.9.bb
> > index 92cd5ca061..25ccd79e00 100644
> > --- a/meta/recipes-support/serf/serf_1.3.9.bb
> > +++ b/meta/recipes-support/serf/serf_1.3.9.bb
> > @@ -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-

Re: [OE-core] [PATCH] serf: stop scons trying to create directories in hosts rootfs

2019-06-18 Thread Khem Raj
On Tue, Jun 18, 2019 at 12:09 PM Martin Jansa  wrote:
>
> * 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
>
> Signed-off-by: Martin Jansa 
> ---
>  ...ories.without.sandbox-install.prefix.patch | 34 +++
>  meta/recipes-support/serf/serf_1.3.9.bb   |  1 +
>  2 files changed, 35 insertions(+)
>  create mode 100644 
> meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch
>
> 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
> new file mode 100644
> index 00..bfb2f5a2aa
> --- /dev/null
> +++ 
> b/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch
> @@ -0,0 +1,34 @@
> +--- ../1.3.9-r0-bad-double/serf-1.3.9/SConstruct   2019-06-18 
> 15:49:19.968961108 +
>  serf-1.3.9/SConstruct  2019-06-18 18:53:21.412337151 +
> +@@ -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,
> diff --git a/meta/recipes-support/serf/serf_1.3.9.bb 
> b/meta/recipes-support/serf/serf_1.3.9.bb
> index 92cd5ca061..25ccd79e00 100644
> --- a/meta/recipes-support/serf/serf_1.3.9.bb
> +++ b/meta/recipes-support/serf/serf_1.3.9.bb
> @@ -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
>  \

tabs or spaces mismatch I gu

[OE-core] [PATCH] serf: stop scons trying to create directories in hosts rootfs

2019-06-18 Thread Martin Jansa
* 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

Signed-off-by: Martin Jansa 
---
 ...ories.without.sandbox-install.prefix.patch | 34 +++
 meta/recipes-support/serf/serf_1.3.9.bb   |  1 +
 2 files changed, 35 insertions(+)
 create mode 100644 
meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch

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
new file mode 100644
index 00..bfb2f5a2aa
--- /dev/null
+++ 
b/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch
@@ -0,0 +1,34 @@
+--- ../1.3.9-r0-bad-double/serf-1.3.9/SConstruct   2019-06-18 
15:49:19.968961108 +
 serf-1.3.9/SConstruct  2019-06-18 18:53:21.412337151 +
+@@ -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,
diff --git a/meta/recipes-support/serf/serf_1.3.9.bb 
b/meta/recipes-support/serf/serf_1.3.9.bb
index 92cd5ca061..25ccd79e00 100644
--- a/meta/recipes-support/serf/serf_1.3.9.bb
+++ b/meta/recipes-support/serf/serf_1.3.9.bb
@@ -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"
-- 
2.17.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core