Re: [yocto] [yocto-docs][PATCH] dev-manual: document CPU features and QB_CPU_KVM

2018-04-30 Thread Martin Kelly

On 04/30/2018 10:25 AM, Scott Rifenbark wrote:

Hi Martin,

See 
https://yoctoproject.org/docs/2.5/dev-manual/dev-manual.html#qemu-kvm-cpu-compatibility 
and let me know if this section works.  I took your patch and did some 
rewriting.


Thanks,
Scott



I like your changes; thanks!

On Fri, Apr 27, 2018 at 10:46 AM, Martin Kelly <mailto:mke...@xevo.com>> wrote:


As suggested in a recent mail thread by Martin Jansa, there are cases in
which QEMU under KVM will crash because of CPU feature incompatibilities
between compiled binaries and the host CPU under which qemu is run.
Although this is hard to fully escape, we should document the issue to
help people work around it.

Signed-off-by: Martin Kelly mailto:mke...@xevo.com>>
---
  documentation/dev-manual/dev-manual-qemu.xml | 22
++
  1 file changed, 22 insertions(+)

diff --git a/documentation/dev-manual/dev-manual-qemu.xml
b/documentation/dev-manual/dev-manual-qemu.xml
index f4719ebc3..1870a6a8d 100644
--- a/documentation/dev-manual/dev-manual-qemu.xml
+++ b/documentation/dev-manual/dev-manual-qemu.xml
@@ -343,6 +343,28 @@
          
      

+    
+        QEMU CPU Compatiblity under KVM
+
+        
+            By default, the QEMU build compiles for and targets
core2duo (for
+            64-bit x86) and pentium2 (for 32-bit x86). These CPUS
are chose to
+            have a broad range of CPU feature compatibility with
many commonly
+            used CPUs, but in some cases, they still support a CPU
feature that
+            your host CPU does not. Although this is not a problem
when QEMU
+            uses software emulation of the feature, it can be when
running with
+            KVM enabled. Specifically, software compiled with a
certain CPU
+            feature will crash when run on a CPU under KVM that
does not support
+            that feature. If this becomes a problem, you can
override QEMU's
+            runtime CPU setting by changing the
QB_CPU_KVM
+            variable in qemuboot.conf in the
image deploy
+            directory. This setting specifies a
-cpu option
+            passed into QEMU in the runqemu
script. Running
+            qemu -cpu help will give a list of
supported
+            CPU types available.
+        
+    
+
      
          QEMU Performance

-- 
2.11.0




--
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] [yocto-docs][PATCH] dev-manual: document CPU features and QB_CPU_KVM

2018-04-27 Thread Martin Kelly
As suggested in a recent mail thread by Martin Jansa, there are cases in
which QEMU under KVM will crash because of CPU feature incompatibilities
between compiled binaries and the host CPU under which qemu is run.
Although this is hard to fully escape, we should document the issue to
help people work around it.

Signed-off-by: Martin Kelly 
---
 documentation/dev-manual/dev-manual-qemu.xml | 22 ++
 1 file changed, 22 insertions(+)

diff --git a/documentation/dev-manual/dev-manual-qemu.xml 
b/documentation/dev-manual/dev-manual-qemu.xml
index f4719ebc3..1870a6a8d 100644
--- a/documentation/dev-manual/dev-manual-qemu.xml
+++ b/documentation/dev-manual/dev-manual-qemu.xml
@@ -343,6 +343,28 @@
 
 
 
+
+QEMU CPU Compatiblity under KVM
+
+
+By default, the QEMU build compiles for and targets core2duo (for
+64-bit x86) and pentium2 (for 32-bit x86). These CPUS are chose to
+have a broad range of CPU feature compatibility with many commonly
+used CPUs, but in some cases, they still support a CPU feature that
+your host CPU does not. Although this is not a problem when QEMU
+uses software emulation of the feature, it can be when running with
+KVM enabled. Specifically, software compiled with a certain CPU
+feature will crash when run on a CPU under KVM that does not 
support
+that feature. If this becomes a problem, you can override QEMU's
+runtime CPU setting by changing the QB_CPU_KVM
+variable in qemuboot.conf in the image deploy
+directory. This setting specifies a -cpu 
option
+passed into QEMU in the runqemu script. 
Running
+qemu -cpu help will give a list of supported
+CPU types available.
+
+
+
 
 QEMU Performance
 
-- 
2.11.0

-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] CROPS status?

2017-12-18 Thread Martin Kelly

On 12/18/2017 07:05 AM, Joshua Lock wrote:

Hi Martin,

On 14/12/17 20:52, Martin Kelly wrote:

On 12/13/2017 12:44 PM, Avery, Brian wrote:

+ joshua.

I am no longer working on the YP, but Joshua is looking after CROPS. 
It is actually a family of containers, so some parts have been 
updated more recently.


-brian



Thanks Brian. Joshua, do you know the code status? Is the project 
still actively being worked on? Are there any related repositories I 
should be looking at?


We have relatively little time for feature development, but we are 
attempting to keep the container images up-to-date with new distro 
releases. There are Fedora 27 and Ubuntu 17.10 versions of the 
containers available on Docker Hub[1].


Thanks,
Joshua

1. https://hub.docker.com/r/crops/


OK, thanks for the information!
--
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] CROPS status?

2017-12-14 Thread Martin Kelly

On 12/13/2017 12:44 PM, Avery, Brian wrote:

+ joshua.

I am no longer working on the YP, but Joshua is looking after CROPS. It is 
actually a family of containers, so some parts have been updated more recently.

-brian



Thanks Brian. Joshua, do you know the code status? Is the project still 
actively being worked on? Are there any related repositories I should be 
looking at?



On 12/13/17, 10:26 AM, "Martin Kelly"  wrote:

 Hi,
 
 I recently discovered the CROPS project at

 https://github.com/crops/crops. It looks like a great idea, but I see it
 hasn't had a commit since June 23, 2016. Is the project still active?
 
 Thanks,

 Martin
 


--
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] CROPS status?

2017-12-13 Thread Martin Kelly

Hi,

I recently discovered the CROPS project at 
https://github.com/crops/crops. It looks like a great idea, but I see it 
hasn't had a commit since June 23, 2016. Is the project still active?


Thanks,
Martin
--
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] How should we handle GCC 6 and -isystem /usr/include?

2017-04-26 Thread Martin Kelly

On 04/25/2017 05:44 PM, Khem Raj wrote:



On 4/20/17 5:04 PM, Martin Kelly wrote:

Hi,

After compiling a package with GCC 6, I noticed the following error,
which is a known issue:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129

The problem is caused by adding -isystem /usr/include, which breaks the
GCC 6's #include_next. I see that Khem Raj already removed this for the
nativesdk [1], but it seems we need a similar fix for other packages, as
we are still adding -isystem in meta/conf/bitbake.conf:

[snip]
BUILDSDK_CPPFLAGS = "-isystem${STAGING_INCDIR}"
[snip]


You must be not using master since it has been fixed by
http://git.openembedded.org/openembedded-core/commit/meta/conf/bitbake.conf?id=88ec93d152762aedeaa231d2732e9d4b9843795a



The bug is referenced is actually exactly that commit (just in poky 
rather than oe-core); it looks like I mistyped, as I should have said:


[snip]
export BUILD_CPPFLAGS = "-isystem${STAGING_INCDIR_NATIVE}"
[snip]

That said, after further root causing the issue, I found that -isystem 
/usr/include was *not* coming from BUILD_CPPFLAGS but instead from QMake 
translating -I /usr/include into -isystem /usr/include, as is mentioned 
in this Qt bug:


https://bugreports.qt.io/browse/QTBUG-53375

So, AFAICT, what I referenced in bitbake is not really an issue, and the 
real problem is related to QMake.

--
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] Qt 5.8: do_rootfs: File 'qtdeclarative-plugins' not found

2017-04-25 Thread Martin Kelly

On 04/25/2017 07:41 AM, Malte Thiel wrote:

Hello,

I am trying to compile a Qt 5.8 application using the master branch
of meta-qt5/recipes-qt/qt5/ (For 5.8 support).

Within my recipe I have:

RDEPENDS_${PN} = "libgcc glibc qtbase [...] qtdeclarative"

My recipe (and therefore the application) compiles fine. However, in
do_rootfs I get the following error:


ERROR: my-image-1.0-r0 do_rootfs: Error executing a python function in
exec_python_func() autogenerated:

[...]

Exception: FileNotFoundError: [Errno 2] No such file or directory:
'/home/sec/sdk/build/0101301/tmp/sysroots/sm2-imx6/pkgdata/runtime-reverse/qtdeclarative-plugins'

ERROR: my-image-1.0-r0 do_rootfs: Function failed: license_create_manifest


It's true, there is no file 'qtdeclarative-plugins'.
However, qtdeclarative RPROVIDES qtdeclarative-plugins, so I expect that
this file should be generated somehow?

Any help is appreciated





Hi,

I actually hit this issue as well. I discovered that 
qtdeclarative-plugins wasn't being generated because it was empty, and 
by default, bitbake won't generate an empty package. You can fix it by 
adding:


ALLOW_EMPTY_${PN}-plugins = "1"

to the qtdeclarative_git.bb file. That said, I'm not sure if this is the 
right fix, or if there is some other reason why qtdeclarative-plugins is 
not being generated.

--
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] How should we handle GCC 6 and -isystem /usr/include?

2017-04-20 Thread Martin Kelly

Hi,

After compiling a package with GCC 6, I noticed the following error, 
which is a known issue:


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129

The problem is caused by adding -isystem /usr/include, which breaks the 
GCC 6's #include_next. I see that Khem Raj already removed this for the 
nativesdk [1], but it seems we need a similar fix for other packages, as 
we are still adding -isystem in meta/conf/bitbake.conf:


[snip]
BUILDSDK_CPPFLAGS = "-isystem${STAGING_INCDIR}"
[snip]

I experimented with a few options:

- Changing this to "-I${STAGING_INCDIR}". Although this works (and the 
poky repo will recompile with it), I believe it will break when a recipe 
does -Wall -Werror and hits an error in the standard include files 
(-isystem specifically ignores warnings for this reason.)


- Changing this to just "". This breaks at least pbzip2-native, which 
can no longer find bzlib.h, since it uses the system g++ to do so and 
bzlib-dev is not installed.


I'm guessing the right solution involves passing a --sysroot option to 
the native build instead of -isystem so that the builtin gcc/g++ 
/usr/include will find the right files.


Does this sound right, or do you have other ideas?

Thanks,
Martin

[1] poky 54d06c080393785270313878bc4a15a9915571ba
https://patchwork.openembedded.org/patch/122285/
--
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] Relicensing an Apache-licensed recipe as MIT

2017-04-12 Thread Martin Kelly

On 04/12/2017 09:43 AM, Martin Kelly wrote:

On 04/12/2017 03:50 AM, Jussi Kukkonen wrote:



On 12 April 2017 at 12:54, Paul Eggleton mailto:paul.eggle...@linux.intel.com>> wrote:

On Wednesday, 12 April 2017 7:14:00 PM NZST Jussi Kukkonen wrote:
> On 11 April 2017 at 23:52, Martin Kelly mailto:mke...@xevo.com>> wrote:
> > I'm thinking about integrating the open-vm-tools recipe from
openswitch[1]
> > into openembedded (it massively improves the performance of
VMWare guests)
> > but first I have a question about licensing. The openswitch
repository is
> > Apache-licensed while the openembedded layers are all MIT
licensed. I'm
> > not
> > a lawyer, but my understanding is that the Apache license is a
superset of
> > the MIT license (it includes a patent clause that the MIT
license lacks),
> > and therefore MIT code can be relicensed as Apache but not the
other way
> > around.
>
> The license of the layer refers to the licensing of the recipe
files
> themselves: the source code licenses of the projects the recipes
fetch and
> build are another thing. As long as the source code license is
an open
> source one there should be no complaints about integrating into an
> openembedded layer.
>
> To be completely clear: The LICENSE variable in a recipe refers
to the
> source code license of the project to be built and should be set
based on
> the licensing info found within the version of source code that
we fetch
> and build. The recipe files are licensed according to the
LICENSE and/or
> COPYING files of the layer it is in.
>
> By the way, a quick search on layers.openembedded.org
<http://layers.openembedded.org> reveals this:
>
http://git.openswitch.net/cgit/openswitch/ops-build/tree/yocto/openswitch/me


<http://git.openswitch.net/cgit/openswitch/ops-build/tree/yocto/openswitch/me>

>
ta-foss-openswitch/recipes-extended/open-vm-tools/open-vm-tools_10.0.5.bb
<http://open-vm-tools_10.0.5.bb>
> (it seems to think the correct license is GPL).

This is muddying the waters somewhat - the LICENSE variable has
nothing to do
with this. We're only concerned with the license of the recipe
itself.



Thanks Paul: I was indeed confused and did not understand this was about
an existing recipe even though it was clearly explained in the original
post. Sorry for the noise.

Jussi


Right, I should have clarified. The underlying code is LGPLv2/GPLv2, but
the recipe file itself is Apache licensed, which is my concern.

It sounds like I should ask openswitch for relicensing first. If they
say no, we can consider the situation further.


OK, Diego Dompe, the recipe's author, is amenable to relicensing, so I 
will go ahead and do that. Thanks for the help!

--
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] Relicensing an Apache-licensed recipe as MIT

2017-04-12 Thread Martin Kelly

On 04/12/2017 03:50 AM, Jussi Kukkonen wrote:



On 12 April 2017 at 12:54, Paul Eggleton mailto:paul.eggle...@linux.intel.com>> wrote:

On Wednesday, 12 April 2017 7:14:00 PM NZST Jussi Kukkonen wrote:
> On 11 April 2017 at 23:52, Martin Kelly mailto:mke...@xevo.com>> wrote:
> > I'm thinking about integrating the open-vm-tools recipe from 
openswitch[1]
> > into openembedded (it massively improves the performance of VMWare 
guests)
> > but first I have a question about licensing. The openswitch repository 
is
> > Apache-licensed while the openembedded layers are all MIT licensed. I'm
> > not
> > a lawyer, but my understanding is that the Apache license is a superset 
of
> > the MIT license (it includes a patent clause that the MIT license 
lacks),
> > and therefore MIT code can be relicensed as Apache but not the other way
> > around.
>
> The license of the layer refers to the licensing of the recipe files
> themselves: the source code licenses of the projects the recipes fetch and
> build are another thing. As long as the source code license is an open
> source one there should be no complaints about integrating into an
> openembedded layer.
>
> To be completely clear: The LICENSE variable in a recipe refers to the
> source code license of the project to be built and should be set based on
> the licensing info found within the version of source code that we fetch
> and build. The recipe files are licensed according to the LICENSE and/or
> COPYING files of the layer it is in.
>
> By the way, a quick search on layers.openembedded.org 
<http://layers.openembedded.org> reveals this:
> 
http://git.openswitch.net/cgit/openswitch/ops-build/tree/yocto/openswitch/me

<http://git.openswitch.net/cgit/openswitch/ops-build/tree/yocto/openswitch/me>
> ta-foss-openswitch/recipes-extended/open-vm-tools/open-vm-tools_10.0.5.bb
<http://open-vm-tools_10.0.5.bb>
> (it seems to think the correct license is GPL).

This is muddying the waters somewhat - the LICENSE variable has
nothing to do
with this. We're only concerned with the license of the recipe itself.



Thanks Paul: I was indeed confused and did not understand this was about
an existing recipe even though it was clearly explained in the original
post. Sorry for the noise.

Jussi


Right, I should have clarified. The underlying code is LGPLv2/GPLv2, but 
the recipe file itself is Apache licensed, which is my concern.


It sounds like I should ask openswitch for relicensing first. If they 
say no, we can consider the situation further.

--
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] Relicensing an Apache-licensed recipe as MIT

2017-04-11 Thread Martin Kelly

Hi,

I'm thinking about integrating the open-vm-tools recipe from 
openswitch[1] into openembedded (it massively improves the performance 
of VMWare guests) but first I have a question about licensing. The 
openswitch repository is Apache-licensed while the openembedded layers 
are all MIT licensed. I'm not a lawyer, but my understanding is that the 
Apache license is a superset of the MIT license (it includes a patent 
clause that the MIT license lacks), and therefore MIT code can be 
relicensed as Apache but not the other way around. If that's the case, 
then there's two options here:


(1) - Include this recipe in openembedded with an Apache license, while 
the rest of the recipes are MIT-licensed. This sounds complicated, 
messy, and probably not feasible.


(2) - Ask openswitch for permission to relicense that one recipe as MIT 
with attributions.


I'm wondering if someone with a better understanding than I have could 
provide me me advice about the best way to proceed.


Thanks,
Martin

[1]: 
https://github.com/open-switch/ops-build/tree/master/yocto/openswitch/meta-foss-openswitch/recipes-extended/open-vm-tools

--
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] runqemu - "Could not initialize SDL(No available video device) - exiting"

2017-04-06 Thread Martin Kelly
I found the source of the issue (SDL must be compiled with X11 support) 
and sent a patch to OE-core to fix it:


https://patchwork.openembedded.org/series/6211

On 04/04/2017 03:41 PM, Martin Kelly wrote:

[This sender failed our fraud detection checks and may not be who they
appear to be. Learn about spoofing at http://aka.ms/LearnAboutSpoofing]

Hi,

I'm hitting an error on runqemu when I try to build an SDK and image on
one machine and run it on another, even when the build machine and
qemu-running machine match very closely (both running Debian Jessie on
Intel 64-bit hardware). Specifically, I get this error:

Could not initialize SDL(No available video device) - exiting

Interestingly, I don't get this when I do runqemu on the same machine
that built the image and SDK (in fact, it works on either machine, as
long as the image/SDK never leave the machine). Now, if I manually copy
and paste the runqemu command, but just use the Debian-provided qemu
instead of the one from the SDK, then again everything works fine. Note
also that libSDL-1.2.so.0 is installed on both systems. At this point
I'm pretty stumped.

Google says that, in the past, this occurred because of X11 ABI issues:

https://bugzilla.yoctoproject.org/show_bug.cgi?id=5040

However, the x11-native version I'm building through 1.6.3, and Debian
Jessie provides 1.6.2, so I would guess the ABI is OK between those two
versions. In addition, the fact that it works on the same machine that
built the SDK and image is strange.

Any ideas what might be wrong?

Thanks,
Martin
--
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

--
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] runqemu - "Could not initialize SDL(No available video device) - exiting"

2017-04-04 Thread Martin Kelly

Hi,

I'm hitting an error on runqemu when I try to build an SDK and image on 
one machine and run it on another, even when the build machine and 
qemu-running machine match very closely (both running Debian Jessie on 
Intel 64-bit hardware). Specifically, I get this error:


Could not initialize SDL(No available video device) - exiting

Interestingly, I don't get this when I do runqemu on the same machine 
that built the image and SDK (in fact, it works on either machine, as 
long as the image/SDK never leave the machine). Now, if I manually copy 
and paste the runqemu command, but just use the Debian-provided qemu 
instead of the one from the SDK, then again everything works fine. Note 
also that libSDL-1.2.so.0 is installed on both systems. At this point 
I'm pretty stumped.


Google says that, in the past, this occurred because of X11 ABI issues:

https://bugzilla.yoctoproject.org/show_bug.cgi?id=5040

However, the x11-native version I'm building through 1.6.3, and Debian 
Jessie provides 1.6.2, so I would guess the ABI is OK between those two 
versions. In addition, the fact that it works on the same machine that 
built the SDK and image is strange.


Any ideas what might be wrong?

Thanks,
Martin
--
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto