Re: [yocto] internet radio

2017-06-23 Thread Riko Ho

Hi,


I tried to install mplayer and I got this message :

Loading cache: 100% 
|#| 
Time: 0:00:01

Loaded 2794 entries from dependency cache.
Parsing recipes: 100% 
|###| 
Time: 0:00:01
Parsing of 2041 .bb files complete (2040 cached, 1 parsed). 2794 
targets, 208 skipped, 0 masked, 0 errors.
WARNING: No bb files matched BBFILE_PATTERN_openembedded-layer 
'^/home/bianchi77/poky/meta-openembedded/meta-oe/'
WARNING: No bb files matched BBFILE_PATTERN_meta-python 
'^/home/bianchi77/poky/meta-openembedded/meta-python/'
WARNING: No bb files matched BBFILE_PATTERN_multimedia-layer 
'^/home/bianchi77/poky/meta-openembedded/meta-multimedia/'

NOTE: Resolving any missing task queue dependencies
ERROR: Nothing RPROVIDES 'mplayer' (but 
/home/bianchi77/poky/meta-openembedded/meta-xfce/recipes-core/images/core-image-minimal-xfce-browser.bb 
RDEPENDS on or otherwise requires it)

NOTE: Runtime target 'mplayer' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['mplayer']
ERROR: Required build target 'core-image-minimal-xfce-browser' has no 
buildable providers.
Missing or unbuildable dependency chain was: 
['core-image-minimal-xfce-browser', 'mplayer']


What do I miss here ?


bblayers :

BBLAYERS ?= " \
  /home/bianchi77/poky/meta \
  /home/bianchi77/poky/meta-poky \
  /home/bianchi77/poky/meta-yocto-bsp \
  /home/bianchi77/poky/openembedded-core \
  /home/bianchi77/poky/meta-openembedded \
  /home/bianchi77/poky/meta-openembedded/meta-oe \
  /home/bianchi77/poky/meta-openembedded/meta-xfce \
  /home/bianchi77/poky/meta-openembedded/meta-gnome \
  /home/bianchi77/poky/meta-openembedded/meta-python \
  /home/bianchi77/poky/meta-openembedded/meta-multimedia \
  /home/bianchi77/poky/meta-browser \
  "


and image .bb :

IMAGE_INSTALL += "linux-firmware"
IMAGE_INSTALL += "mplayer"
IMAGE_INSTALL += "strace nano firefox gstreamer"
IMAGE_FEATURES += "ssh-server-openssh"



On 23/06/17 21:42, Khem Raj wrote:

On Fri, Jun 23, 2017 at 1:18 AM, Riko Ho  wrote:

Hello everyone,

What do you suggest me using for internet radio / playing multimedia on GUI
? Which recipe is suitable for it ?


may be you could use mplayer or kodi


Thanks

--

/***/
Sent by Ubuntu LTS 16.04,
谢谢,
Regards,
Riko Ho
/***/


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



--
*

/***/
Sent by Ubuntu LTS 16.04,
谢谢,
Regards,
Riko Ho
/***/

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


Re: [yocto] internet radio

2017-06-23 Thread Riko Ho

and this one ?

http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-multimedia/mplayer

is it gui or text based ?


On 23/06/17 21:42, Khem Raj wrote:

On Fri, Jun 23, 2017 at 1:18 AM, Riko Ho  wrote:

Hello everyone,

What do you suggest me using for internet radio / playing multimedia on GUI
? Which recipe is suitable for it ?


may be you could use mplayer or kodi


Thanks

--

/***/
Sent by Ubuntu LTS 16.04,
谢谢,
Regards,
Riko Ho
/***/


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



--
*

/***/
Sent by Ubuntu LTS 16.04,
谢谢,
Regards,
Riko Ho
/***/

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


Re: [yocto] internet radio

2017-06-23 Thread Riko Ho

This one ?

http://layers.openembedded.org/layerindex/branch/master/layer/meta-multimedia/


On 23/06/17 21:42, Khem Raj wrote:

On Fri, Jun 23, 2017 at 1:18 AM, Riko Ho  wrote:

Hello everyone,

What do you suggest me using for internet radio / playing multimedia on GUI
? Which recipe is suitable for it ?


may be you could use mplayer or kodi


Thanks

--

/***/
Sent by Ubuntu LTS 16.04,
谢谢,
Regards,
Riko Ho
/***/


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



--
*

/***/
Sent by Ubuntu LTS 16.04,
谢谢,
Regards,
Riko Ho
/***/

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


Re: [yocto] Compiling meta-browser ==>chromium ? cleaning ?

2017-06-23 Thread Riko Ho
it can be compiled and image can be written to the board but chromium 
got error :


/usr/bin/chromium/chrome: error while loading shared libraries: 
libaccessibility.so: cannot open shared object file: No such file or 
directory


What do I miss here on compiling ? could it be a not complete library on 
my configuration ? any clues ?


thanks


On 21/06/17 15:37, Gunnar Andersson wrote:

On Wed, 2017-06-21 at 12:42 +0800, Riko Ho wrote:

did I put it wrongly ?

...

browser/chromium/chromium_54.0.2810.2.bb:7: unparsed line:
'EXTRA_OEGYP_prepend = " -Dcomponent=shared_library

Maybe your line break did not use a backslash?  It was lost, or just
assumed, in Khem's example.

See recipe syntax in Yocto manual [1].  Look for the item "Line
continuation".

HTH
- Gunnar

[1] http://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#un
derstanding-recipe-syntax

--
Gunnar Andersson 
Development Lead
GENIVI Alliance




--
*

/***/
Sent by Ubuntu LTS 16.04,
谢谢,
Regards,
Riko Ho
/***/

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


[yocto] RTL8192EU question ?

2017-06-23 Thread Riko Ho

Hello Everyone,

I tried to connect  rev B

But I got this message below repeating,

usb 1-1.1: This Realtek USB WiFi dongle (0x0bda:0x818b) is untested!
usb 1-1.1: Please report results to jes.soren...@gmail.com
usb 1-1.1: Vendor: Realtek
usb 1-1.1: Product: 802.11n NIC
usb 1-1.1: Serial: ���
usb 1-1.1: rtl8192eu_parse_efuse: dumping efuse (0x200 bytes):
usb 1-1.1: 00: 29 81 00 7c 01 40 03 00
usb 1-1.1: 08: 40 74 04 50 14 00 00 00
usb 1-1.1: 10: 2e 2e 2e 2e 2e 2e 2e 2e
usb 1-1.1: 18: 2e 2e 2e 02 ef ef ff ff
usb 1-1.1: 20: ff ff ff ff ff ff ff ff
usb 1-1.1: 28: ff ff ff ff ff ff ff ff
usb 1-1.1: 30: ff ff ff ff ff ff ff ff
usb 1-1.1: 38: ff ff 29 29 29 29 29 29
usb 1-1.1: 40: 2e 2e 2e 2e 2e 02 ef ef
usb 1-1.1: 48: ff ff ff ff ff ff ff ff
usb 1-1.1: 50: ff ff ff ff ff ff ff ff
usb 1-1.1: 58: ff ff ff ff ff ff ff ff
usb 1-1.1: 60: ff ff ff ff ff ff ff ff
usb 1-1.1: 68: ff ff ff ff ff ff ff ff
usb 1-1.1: 70: ff ff ff ff ff ff ff ff
usb 1-1.1: 78: ff ff ff ff ff ff ff ff
usb 1-1.1: 80: ff ff ff ff ff ff ff ff
usb 1-1.1: 88: ff ff ff ff ff ff ff ff
usb 1-1.1: 90: ff ff ff ff ff ff ff ff
usb 1-1.1: 98: ff ff ff ff ff ff ff ff
usb 1-1.1: a0: ff ff ff ff ff ff ff ff
usb 1-1.1: a8: ff ff ff ff ff ff ff ff
usb 1-1.1: b0: ff ff ff ff ff ff ff ff
usb 1-1.1: b8: 20 20 1a 00 00 00 ff ff
usb 1-1.1: c0: ff 01 00 10 00 00 00 ff
usb 1-1.1: c8: 00 00 ff ff ff ff ff ff
usb 1-1.1: d0: da 0b 8b 81 e6 47 02 00
usb 1-1.1: d8: 0b 81 a2 a5 60 09 03 52
usb 1-1.1: e0: 65 61 6c 74 65 6b 0d 03
usb 1-1.1: e8: 38 30 32 2e 31 31 6e 20
usb 1-1.1: f0: 4e 49 43 00 ff ff ff ff
usb 1-1.1: f8: ff ff ff ff ff ff ff ff
usb 1-1.1: 100: ff ff ff ff ff ff ff ff
usb 1-1.1: 108: ff ff ff ff ff ff ff ff
usb 1-1.1: 110: ff ff ff ff ff ff ff 0d
usb 1-1.1: 118: 03 00 05 00 30 00 00 00
usb 1-1.1: 120: 00 93 ff ff ff ff ff ff
usb 1-1.1: 128: ff ff ff ff ff ff ff ff
usb 1-1.1: 130: f6 a8 98 2d 03 92 98 00
usb 1-1.1: 138: fc 8c 00 11 9b 44 02 0a
usb 1-1.1: 140: ff ff ff ff ff ff ff ff
usb 1-1.1: 148: ff ff ff ff ff ff ff ff
usb 1-1.1: 150: ff ff ff ff ff ff ff ff
usb 1-1.1: 158: ff ff ff ff ff ff ff ff
usb 1-1.1: 160: ff ff ff ff ff ff ff ff
usb 1-1.1: 168: ff ff ff ff ff ff ff ff
usb 1-1.1: 170: ff ff ff ff ff ff ff ff
usb 1-1.1: 178: ff ff ff ff ff ff ff ff
usb 1-1.1: 180: ff ff ff ff ff ff ff ff
usb 1-1.1: 188: ff ff ff ff ff ff ff ff
usb 1-1.1: 190: ff ff ff ff ff ff ff ff
usb 1-1.1: 198: ff ff ff ff ff ff ff ff
usb 1-1.1: 1a0: ff ff ff ff ff ff ff ff
usb 1-1.1: 1a8: ff ff ff ff ff ff ff ff
usb 1-1.1: 1b0: ff ff ff ff ff ff ff ff
usb 1-1.1: 1b8: ff ff ff ff ff ff ff ff
usb 1-1.1: 1c0: ff ff ff ff ff ff ff ff
usb 1-1.1: 1c8: ff ff ff ff ff ff ff ff
usb 1-1.1: 1d0: ff ff ff ff ff ff ff ff
usb 1-1.1: 1d8: ff ff ff ff ff ff ff ff
usb 1-1.1: 1e0: ff ff ff ff ff ff ff ff
usb 1-1.1: 1e8: ff ff ff ff ff ff ff ff
usb 1-1.1: 1f0: ff ff ff ff ff ff ff ff
usb 1-1.1: 1f8: ff ff ff ff ff ff ff ff
usb 1-1.1: RTL8192EU rev B (SMIC) 2T2R, TX queues 3, WiFi=1, BT=0, 
GPS=0, HI PA=0

usb 1-1.1: RTL8192EU MAC: 00:0b:81:a2:a5:60
usb 1-1.1: rtl8xxxu: Loading firmware rtlwifi/rtl8192eu_nic.bin
usb 1-1.1: Firmware revision 19.0 (signature 0x92e1)


what issue do I get here?

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


Re: [yocto] using clang for one recipe

2017-06-23 Thread Khem Raj
On Fri, Jun 23, 2017 at 6:55 PM, Trevor Woerner  wrote:
> On Fri 2017-06-23 @ 03:57:06 PM, Khem Raj wrote:
>> On Fri, Jun 23, 2017 at 3:39 PM, Trevor Woerner  wrote:
>> > Adding that line, and adding meta-clang to bblayers.conf, did get the
>> > llvm/clang compiler built and installed to recipe-sysroot-native. But
>> > the moment it starts to build the package, it fails immediately with:
>> >
>> > | fatal error: 'string' file not found
>> > | #include 
>> > |  ^~~~
>> >
>> > Did I miss a step? That seems like a pretty basic thing that would be
>> > needed for using a toolchain. If feels like I'm missing something;
>> > like I need to add something else to my local.conf. Thoughts?
>> > Suggestions?
>>
>> which package is it ? it seems its missing proper -I paths.?
>
> I'm investigating moving chromium to a newer version, specifically something
> much closer to the current Linux stable (59.0.3071.109). My understanding is
> the chromium developers use clang, which would explain why it's always so much
> work to get it to compile with gcc. If I can get chromium to build with clang,
> I think it would make future maintenance much easier. Switching from gyp to gn
> was easy, but getting this newer version to build with gcc7 is a challenge.
>
> When I go to the recipe-sysroot-native, I find clang in usr/bin. But from that
> base location if I do a
>
> $ find . -name "*string*" -print
>
> I don't find any such include files. Should they not be installed to the
> native sysroot alongside clang itself?
>
> Here's one example of a failing compile:
>
> | [16/25529] CXX obj/base/allocator/tcmalloc/sysinfo.o
> | FAILED: obj/base/allocator/tcmalloc/sysinfo.o
> | ../../../recipe-sysroot-native/usr/bin/clang++ -MMD -MF 
> obj/base/allocator/tcmalloc/sysinfo.o.d -DNO_HEAP_CHECK 
> -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 
> -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DDISABLE_NACL 
> -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL 
> -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DFIELDTRIAL_TESTING_ENABLED 
> -DCR_CLANG_REVISION=\"299960-1\" -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE 
> -D_LARGEFILE64_SOURCE -DCOMPONENT_BUILD -D_DEBUG 
> -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 
> -DTCMALLOC_FOR_DEBUGALLOCATION -DTCMALLOC_DONT_REPLACE_SYSTEM_ALLOC 
> -I../../base/allocator -I../../third_party/tcmalloc/chromium/src/base 
> -I../../third_party/tcmalloc/chromium/src -I../.. -Igen -fno-strict-aliasing 
> --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined 
> -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe 
> -fcolor-diagnostics --target=arm-linux-gnueabihf -march=
 armv7-a -mfloat-abi=hard -mtune=generic-armv7-a -pthread -mfpu=neon -O0 
-fno-omit-frame-pointer -g2 
--sysroot=../../build/linux/debian_jessie_arm-sysroot -fvisibility=hidden 
-Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wall 
-Wno-unused-variable -Wno-missing-field-initializers -Wno-unused-parameter 
-Wno-c++11-narrowing -Wno-covered-switch-default 
-Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override 
-Wno-undefined-var-template -Wno-nonportable-include-path 
-Wno-address-of-packed-member -Wno-unused-lambda-capture 
-Wno-user-defined-warnings -Wno-reorder -Wno-unused-function 
-Wno-unused-local-typedefs -Wno-unused-private-field -Wno-sign-compare 
-Wno-unused-result -fvisibility-inlines-hidden -Wno-undefined-bool-conversion 
-Wno-tautological-undefined-compare -std=gnu++11 -fno-rtti -fno-exceptions 
-Wno-deprecated -c ../../third_party/tcmalloc/chromium/src/base/sysinfo.cc -o 
obj/base/allocator/tcmalloc/sysinfo.o
> | In file included from 
> ../../third_party/tcmalloc/chromium/src/base/sysinfo.cc:62:
> | In file included from 
> ../../third_party/tcmalloc/chromium/src/base/sysinfo.h:49:
> | In file included from 
> ../../third_party/tcmalloc/chromium/src/base/logging.h:49:
> | ../../third_party/tcmalloc/chromium/src/base/commandlineflags.h:52:10: 
> fatal error: 'string' file not found
> | #include 
> |  ^~~~
> | 1 error generated.
>
>
> I can send you the non-working, partial recipe if you're interested too.


Yes chrome uses clang primarily. I think whats missing it dependency
on C++ runtime. default is libstdc++ so I guess you have to add a
dependency on gcc-runtime
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] using clang for one recipe

2017-06-23 Thread Trevor Woerner
On Fri 2017-06-23 @ 03:57:06 PM, Khem Raj wrote:
> On Fri, Jun 23, 2017 at 3:39 PM, Trevor Woerner  wrote:
> > Adding that line, and adding meta-clang to bblayers.conf, did get the
> > llvm/clang compiler built and installed to recipe-sysroot-native. But
> > the moment it starts to build the package, it fails immediately with:
> >
> > | fatal error: 'string' file not found
> > | #include 
> > |  ^~~~
> >
> > Did I miss a step? That seems like a pretty basic thing that would be
> > needed for using a toolchain. If feels like I'm missing something;
> > like I need to add something else to my local.conf. Thoughts?
> > Suggestions?
> 
> which package is it ? it seems its missing proper -I paths.?

I'm investigating moving chromium to a newer version, specifically something
much closer to the current Linux stable (59.0.3071.109). My understanding is
the chromium developers use clang, which would explain why it's always so much
work to get it to compile with gcc. If I can get chromium to build with clang,
I think it would make future maintenance much easier. Switching from gyp to gn
was easy, but getting this newer version to build with gcc7 is a challenge.

When I go to the recipe-sysroot-native, I find clang in usr/bin. But from that
base location if I do a

$ find . -name "*string*" -print

I don't find any such include files. Should they not be installed to the
native sysroot alongside clang itself?

Here's one example of a failing compile:

| [16/25529] CXX obj/base/allocator/tcmalloc/sysinfo.o
| FAILED: obj/base/allocator/tcmalloc/sysinfo.o
| ../../../recipe-sysroot-native/usr/bin/clang++ -MMD -MF 
obj/base/allocator/tcmalloc/sysinfo.o.d -DNO_HEAP_CHECK 
-DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 
-DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DDISABLE_NACL -DFULL_SAFE_BROWSING 
-DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD 
-DENABLE_MEDIA_ROUTER=1 -DFIELDTRIAL_TESTING_ENABLED 
-DCR_CLANG_REVISION=\"299960-1\" -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE 
-D_LARGEFILE64_SOURCE -DCOMPONENT_BUILD -D_DEBUG 
-DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 
-DTCMALLOC_FOR_DEBUGALLOCATION -DTCMALLOC_DONT_REPLACE_SYSTEM_ALLOC 
-I../../base/allocator -I../../third_party/tcmalloc/chromium/src/base 
-I../../third_party/tcmalloc/chromium/src -I../.. -Igen -fno-strict-aliasing 
--param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined 
-D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe 
-fcolor-diagnostics --target=arm-linux-gnueabihf -march=ar
 mv7-a -mfloat-abi=hard -mtune=generic-armv7-a -pthread -mfpu=neon -O0 
-fno-omit-frame-pointer -g2 
--sysroot=../../build/linux/debian_jessie_arm-sysroot -fvisibility=hidden 
-Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wall 
-Wno-unused-variable -Wno-missing-field-initializers -Wno-unused-parameter 
-Wno-c++11-narrowing -Wno-covered-switch-default 
-Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override 
-Wno-undefined-var-template -Wno-nonportable-include-path 
-Wno-address-of-packed-member -Wno-unused-lambda-capture 
-Wno-user-defined-warnings -Wno-reorder -Wno-unused-function 
-Wno-unused-local-typedefs -Wno-unused-private-field -Wno-sign-compare 
-Wno-unused-result -fvisibility-inlines-hidden -Wno-undefined-bool-conversion 
-Wno-tautological-undefined-compare -std=gnu++11 -fno-rtti -fno-exceptions 
-Wno-deprecated -c ../../third_party/tcmalloc/chromium/src/base/sysinfo.cc -o 
obj/base/allocator/tcmalloc/sysinfo.o
| In file included from 
../../third_party/tcmalloc/chromium/src/base/sysinfo.cc:62:
| In file included from 
../../third_party/tcmalloc/chromium/src/base/sysinfo.h:49:
| In file included from 
../../third_party/tcmalloc/chromium/src/base/logging.h:49:
| ../../third_party/tcmalloc/chromium/src/base/commandlineflags.h:52:10: fatal 
error: 'string' file not found
| #include 
|  ^~~~
| 1 error generated.


I can send you the non-working, partial recipe if you're interested too.
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] New meta-quirky layer imports 140 packages

2017-06-23 Thread Barry Kauler
Hi guys,
I am new to OE, only been using it about two months. I undertook the
challenge of building the entire Puppy Linux and Quirky Linux distro
from source in OE.

I had to import approximately 140 packages, there are some failures.
Some of those I can probably revisit, as my ability with OE has been
slowly moving up the learning curve.

Thanks to the guys who created those layers that I was able to use,
such as meta-office and meta-browser -- so have libreoffice and
firefox in my build.

See my blog announcement:

http://barryk.org/news/?viewDetailed=00576

And it is all on github, with a nice readme:

https://github.com/bkauler/oe-qky-src

Due to the fact that I am still somewhere low on the OE learning
curve, if anyone notices anything dumb in my layer, let me know. Or
any improvements or fixes.

Regards,
Barry Kauler
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] How do you remove an IMAGEFS?

2017-06-23 Thread Paul D. DeRocco
x86-base.inc adds "live" to IMAGE_FSTYPES. I have no need for a live
image, or an iso, so I thought adding IMAGE_FSTYPES_remove = "live iso" to
my image recipe might work, but it complained in do_bootimg that my recipe
"depends upon non-existent task do_image_ext4". On a hunch, I movved the
IMAGE_FSTYPES_remove to before inheriting core-image, and then it didn't
complain, but it didn't build ANY images.

So what's the right way to suppress live image and iso image generation,
where those things are included in some stock config file somewhere?

-- 

Ciao,   Paul D. DeRocco
Paulmailto:pdero...@ix.netcom.com

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


Re: [yocto] using clang for one recipe

2017-06-23 Thread Khem Raj
On Fri, Jun 23, 2017 at 3:39 PM, Trevor Woerner  wrote:
> I want to have one recipe build with clang instead of gcc (gcc is
> being used for the rest of the image). I thought this was as simple as
> adding the following line to the recipe:
>
> TOOLCHAIN = "clang"

yes thats what should do it.


>
> Adding that line, and adding meta-clang to bblayers.conf, did get the
> llvm/clang compiler built and installed to recipe-sysroot-native. But
> the moment it starts to build the package, it fails immediately with:
>
> | fatal error: 'string' file not found
> | #include 
> |  ^~~~
>
> Did I miss a step? That seems like a pretty basic thing that would be
> needed for using a toolchain. If feels like I'm missing something;
> like I need to add something else to my local.conf. Thoughts?
> Suggestions?

which package is it ? it seems its missing proper -I paths.?

>
> I went looking for examples of recipes using clang and found
> meta-openembedded/meta-oe/recipes-support/tbb.bb which includes:
>
> COMPILER ?= "gcc"
> COMPILER_toolchain-clang = "clang"
>
> Odd. Why "COMPILER" and not "TOOLCHAIN" like meta-clang's README mentions?

this is tbb specific variable not clang or gcc specific.

>
> Best regards,
> Trevor
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] using clang for one recipe

2017-06-23 Thread Trevor Woerner
I want to have one recipe build with clang instead of gcc (gcc is
being used for the rest of the image). I thought this was as simple as
adding the following line to the recipe:

TOOLCHAIN = "clang"

Adding that line, and adding meta-clang to bblayers.conf, did get the
llvm/clang compiler built and installed to recipe-sysroot-native. But
the moment it starts to build the package, it fails immediately with:

| fatal error: 'string' file not found
| #include 
|  ^~~~

Did I miss a step? That seems like a pretty basic thing that would be
needed for using a toolchain. If feels like I'm missing something;
like I need to add something else to my local.conf. Thoughts?
Suggestions?

I went looking for examples of recipes using clang and found
meta-openembedded/meta-oe/recipes-support/tbb.bb which includes:

COMPILER ?= "gcc"
COMPILER_toolchain-clang = "clang"

Odd. Why "COMPILER" and not "TOOLCHAIN" like meta-clang's README mentions?

Best regards,
Trevor
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] internet radio

2017-06-23 Thread Khem Raj
On Fri, Jun 23, 2017 at 1:18 AM, Riko Ho  wrote:
> Hello everyone,
>
> What do you suggest me using for internet radio / playing multimedia on GUI
> ? Which recipe is suitable for it ?
>

may be you could use mplayer or kodi

> Thanks
>
> --
>
> /***/
> Sent by Ubuntu LTS 16.04,
> 谢谢,
> Regards,
> Riko Ho
> /***/
>
>
> --
> ___
> 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] [PATCH][meta-gplv2] gnutls: make it independent on gnutls.inc from oe-core

2017-06-23 Thread Martin Jansa
* also remove correct_rpl_gettimeofday_signature.patch like in
  commit e01e7c543a559c8926d72159b5cd55db0c661434
  Author: Richard Purdie 
  Date:   Thu Jun 15 23:15:00 2017 +0100
  meta: Remove further uclibc remnants (inc. patches and site files)

Signed-off-by: Martin Jansa 
---
 recipes-support/gnutls/gnutls.inc   | 57 +
 recipes-support/gnutls/gnutls_3.3.27.bb |  8 +
 2 files changed, 58 insertions(+), 7 deletions(-)
 create mode 100644 recipes-support/gnutls/gnutls.inc

diff --git a/recipes-support/gnutls/gnutls.inc 
b/recipes-support/gnutls/gnutls.inc
new file mode 100644
index 000..4a5c3df
--- /dev/null
+++ b/recipes-support/gnutls/gnutls.inc
@@ -0,0 +1,57 @@
+SUMMARY = "GNU Transport Layer Security Library"
+HOMEPAGE = "http://www.gnu.org/software/gnutls/";
+BUGTRACKER = "https://savannah.gnu.org/support/?group=gnutls";
+
+LICENSE = "GPLv3+ & LGPLv2.1+"
+LICENSE_${PN} = "LGPLv2.1+"
+LICENSE_${PN}-xx = "LGPLv2.1+"
+LICENSE_${PN}-bin = "GPLv3+"
+LICENSE_${PN}-openssl = "GPLv3+"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=71391c8e0c1cfe68077e7fce3b586283 \
+file://doc/COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+
file://doc/COPYING.LESSER;md5=a6f89e2100d9b6cdffcea4f398e37343"
+
+DEPENDS = "nettle gmp virtual/libiconv"
+DEPENDS_append_libc-musl = " argp-standalone"
+
+SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
+
+SRC_URI = "ftp://ftp.gnutls.org/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar.xz";
+
+inherit autotools texinfo binconfig pkgconfig gettext lib_package gtk-doc
+
+PACKAGECONFIG ??= "libidn zlib"
+
+PACKAGECONFIG[libidn] = "--with-idn,--without-idn,libidn"
+PACKAGECONFIG[libtasn1] = 
"--with-included-libtasn1=no,--with-included-libtasn1,libtasn1"
+PACKAGECONFIG[p11-kit] = "--with-p11-kit,--without-p11-kit,p11-kit"
+PACKAGECONFIG[tpm] = "--with-tpm,--without-tpm,trousers"
+PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
+
+EXTRA_OECONF = " \
+--enable-doc \
+--disable-libdane \
+--disable-guile \
+--disable-rpath \
+--enable-local-libopts \
+--enable-openssl-compatibility \
+--with-libpthread-prefix=${STAGING_DIR_HOST}${prefix} \
+"
+
+LDFLAGS_append_libc-musl = " -largp"
+LDFLAGS_append_libc-uclibc = " -luargp -pthread"
+
+do_configure_prepend() {
+   for dir in . lib; do
+   rm -f ${dir}/aclocal.m4 ${dir}/m4/libtool.m4 ${dir}/m4/lt*.m4
+   done
+}
+
+PACKAGES =+ "${PN}-openssl ${PN}-xx"
+
+FILES_${PN}-dev += "${bindir}/gnutls-cli-debug"
+FILES_${PN}-openssl = "${libdir}/libgnutls-openssl.so.*"
+FILES_${PN}-xx = "${libdir}/libgnutlsxx.so.*"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/recipes-support/gnutls/gnutls_3.3.27.bb 
b/recipes-support/gnutls/gnutls_3.3.27.bb
index 9a8cd40..a1dcdb5 100644
--- a/recipes-support/gnutls/gnutls_3.3.27.bb
+++ b/recipes-support/gnutls/gnutls_3.3.27.bb
@@ -1,12 +1,9 @@
-require recipes-support/gnutls/gnutls.inc
+require gnutls.inc
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
 file://COPYING.LESSER;md5=a6f89e2100d9b6cdffcea4f398e37343"
 
-FILESEXTRAPATHS_prepend = 
"${THISDIR}/${BPN}:${COREBASE}/meta/recipes-support/${BPN}/${BPN}:"
-
 SRC_URI += " \
-file://correct_rpl_gettimeofday_signature.patch \
 file://configure.ac-fix-sed-command.patch \
 file://use-pkg-config-to-locate-zlib.patch \
 "
@@ -18,6 +15,3 @@ SRC_URI[sha256sum] = 
"8dfda16c158ef5c134010d51d1a91d02aa5d43b8cb711b1572650a7ffb
 PACKAGECONFIG[libidn] = ""
 # but it still has the libidn dependency, without this option
 EXTRA_OECONF += "--disable-crywrap"
-
-# This version doesn't support this option added in newer gnutls
-EXTRA_OECONF_remove = "--without-libunistring-prefix"
-- 
2.13.1

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


Re: [yocto] [PATCH][meta-gplv2] gnutls: add use-pkg-config-to-locate-zlib.patch

2017-06-23 Thread Martin Jansa
ERROR: gnutls-3.3.27-r0 do_fetch: Fetcher failure for URL:
'file://correct_rpl_gettimeofday_signature.patch'. Unable to fetch URL
from any source.


On Fri, Jun 23, 2017 at 11:25 AM, Martin Jansa 
wrote:

> Probably yes as it got broken again yesterday:
>
>
> On Mon, Jun 12, 2017 at 9:13 PM, Burton, Ross 
> wrote:
>
>>
>> On 12 June 2017 at 20:04, Andre McCurdy  wrote:
>>
>>> Would it be better to just make the meta-gplv2 gnutls recipe self
>>> contained and stop trying to share a .inc file and patches with
>>> oe-core?
>>>
>>
>> Yes.
>>
>> Ross
>>
>>
>
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] [PATCH][meta-gplv2] gnutls: add use-pkg-config-to-locate-zlib.patch

2017-06-23 Thread Martin Jansa
Probably yes as it got broken again yesterday:


On Mon, Jun 12, 2017 at 9:13 PM, Burton, Ross  wrote:

>
> On 12 June 2017 at 20:04, Andre McCurdy  wrote:
>
>> Would it be better to just make the meta-gplv2 gnutls recipe self
>> contained and stop trying to share a .inc file and patches with
>> oe-core?
>>
>
> Yes.
>
> Ross
>
>
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] internet radio

2017-06-23 Thread Riko Ho

Hello everyone,

What do you suggest me using for internet radio / playing multimedia on 
GUI ? Which recipe is suitable for it ?


Thanks

--
*

/***/
Sent by Ubuntu LTS 16.04,
谢谢,
Regards,
Riko Ho
/***/

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


[yocto] [layerindex-web][PATCH V5 10/10] update_layer.py: delete layerbranch for non-existed branch

2017-06-23 Thread Robert Yang
The branch is not needed any more when it has been removed from the repo, so we
also need remove its layerbranch, otherwise it still can be got from the web,
which causes confusions.

Note, we have to move the location of tinfiol's code to avoid creating tinfoil
when not needed, otherewise, if tinfoil is created (but not needed), and the
program exists earlier before "try ... finally" block, then tinfoil.shutdown()
doesn't run so that it is not shutdown. Move the code back, right before where
it is needed can fix the problem.

Signed-off-by: Robert Yang 
---
 layerindex/update_layer.py | 34 ++
 1 file changed, 18 insertions(+), 16 deletions(-)

diff --git a/layerindex/update_layer.py b/layerindex/update_layer.py
index b6c2f4a..7f0c08f 100644
--- a/layerindex/update_layer.py
+++ b/layerindex/update_layer.py
@@ -223,21 +223,6 @@ def main():
 
 bitbakepath = os.path.join(fetchdir, 'bitbake')
 
-try:
-(tinfoil, tempdir) = recipeparse.init_parser(settings, branch, 
bitbakepath, nocheckout=options.nocheckout, logger=logger)
-except recipeparse.RecipeParseError as e:
-logger.error(str(e))
-sys.exit(1)
-# Clear the default value of SUMMARY so that we can use DESCRIPTION 
instead if it hasn't been set
-tinfoil.config_data.setVar('SUMMARY', '')
-# Clear the default value of DESCRIPTION so that we can see where it's not 
set
-tinfoil.config_data.setVar('DESCRIPTION', '')
-# Clear the default value of HOMEPAGE ('unknown')
-tinfoil.config_data.setVar('HOMEPAGE', '')
-# Set a blank value for LICENSE so that it doesn't cause the parser to die 
(e.g. with meta-ti -
-# why won't they just fix that?!)
-tinfoil.config_data.setVar('LICENSE', '')
-
 layer = utils.get_layer(options.layer)
 urldir = layer.get_fetch_dir()
 repodir = os.path.join(fetchdir, urldir)
@@ -261,12 +246,29 @@ def main():
 topcommit = repo.commit('origin/%s' % branchname)
 except:
 if layerbranch:
-logger.error("Failed update of layer %s - branch %s no longer 
exists" % (layer.name, branchdesc))
+logger.info("layer %s - branch %s no longer exists, removing it 
from database" % (layer.name, branchdesc))
+if not options.dryrun:
+layerbranch.delete()
 else:
 logger.info("Skipping update of layer %s - branch %s doesn't 
exist" % (layer.name, branchdesc))
 sys.exit(1)
 
 try:
+(tinfoil, tempdir) = recipeparse.init_parser(settings, branch, 
bitbakepath, nocheckout=options.nocheckout, logger=logger)
+except recipeparse.RecipeParseError as e:
+logger.error(str(e))
+sys.exit(1)
+# Clear the default value of SUMMARY so that we can use DESCRIPTION 
instead if it hasn't been set
+tinfoil.config_data.setVar('SUMMARY', '')
+# Clear the default value of DESCRIPTION so that we can see where it's not 
set
+tinfoil.config_data.setVar('DESCRIPTION', '')
+# Clear the default value of HOMEPAGE ('unknown')
+tinfoil.config_data.setVar('HOMEPAGE', '')
+# Set a blank value for LICENSE so that it doesn't cause the parser to die 
(e.g. with meta-ti -
+# why won't they just fix that?!)
+tinfoil.config_data.setVar('LICENSE', '')
+
+try:
 with transaction.atomic():
 newbranch = False
 if not layerbranch:
-- 
2.10.2

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


[yocto] [layerindex-web][PATCH V5 03/10] utils.py: add REMOVE_LAYER_DEPENDENCIES to remove dependencies

2017-06-23 Thread Robert Yang
Fixed:
  - set LAYERDEPENDS_openembedded-layer = "core"
  - $ "update.py -l meta-oe -b master"
Check from web, its dependency is "openembedded-core"
  - Change LAYERDEPENDS_openembedded-layer = "foo"
  - Run "update.py -l meta-oe -b master"
Check from web, its dependency is "openembedded-core and foo", this might
be incorrect, now if set REMOVE_LAYER_DEPENDENCIES to true, the old
dependency openembedded-core will be removed, the default is False which
prints warnings to notify users.

And also the existing checking should filter(required=required), otherwise it
can't work well when a layer is in both depends and recommends, this can't
happen in a normal case, but it would surprise the user when this happens.

Signed-off-by: Robert Yang 
---
 layerindex/utils.py | 19 ++-
 settings.py |  3 +++
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/layerindex/utils.py b/layerindex/utils.py
index 186d342..5acf35f 100644
--- a/layerindex/utils.py
+++ b/layerindex/utils.py
@@ -88,6 +88,7 @@ def _add_dependency(var, name, layerbranch, config_data, 
logger=None, required=T
 logger.debug('Error parsing %s_%s for %s\n%s' % (var, var_name, 
layer_name, str(vse)))
 return
 
+need_remove = None
 for dep, ver_list in list(dep_dict.items()):
 ver_str = None
 if ver_list:
@@ -106,8 +107,14 @@ def _add_dependency(var, name, layerbranch, config_data, 
logger=None, required=T
 logger.error('Cannot resolve %s %s (version %s) for %s' % 
(name, dep, ver_str, layer_name))
 continue
 
+# Preparing to remove obsolete ones
+if not need_remove:
+need_remove = 
LayerDependency.objects.filter(layerbranch=layerbranch).filter(required=required).exclude(dependency=dep_layer)
+else:
+need_remove = need_remove.exclude(dependency=dep_layer)
+
 # Skip existing entries.
-existing = 
list(LayerDependency.objects.filter(layerbranch=layerbranch).filter(dependency=dep_layer))
+existing = 
list(LayerDependency.objects.filter(layerbranch=layerbranch).filter(required=required).filter(dependency=dep_layer))
 if existing:
 logger.debug('Skipping %s - already a dependency for %s' % (dep, 
layer_name))
 continue
@@ -121,6 +128,16 @@ def _add_dependency(var, name, layerbranch, config_data, 
logger=None, required=T
 layerdep.required = required
 layerdep.save()
 
+if need_remove:
+import settings
+remove_layer_dependencies = getattr(settings, 
'REMOVE_LAYER_DEPENDENCIES', False)
+if remove_layer_dependencies:
+logger.info('Removing obsolete dependencies "%s" for layer %s' % 
(need_remove, layer_name))
+need_remove.delete()
+else:
+logger.warn('Dependencies "%s" is not in %s\'s conf/layer.conf' % 
(need_remove, layer_name))
+logger.warn('Either set REMOVE_LAYER_DEPENDENCIES to remove it 
from database or fix conf/layer.conf')
+
 def set_layerbranch_collection_version(layerbranch, config_data, logger=None):
 layerbranch.collection = config_data.getVar('BBFILE_COLLECTIONS', True)
 ver_str = "LAYERVERSION_"
diff --git a/settings.py b/settings.py
index 0ecf90b..3498e7a 100644
--- a/settings.py
+++ b/settings.py
@@ -214,6 +214,9 @@ CORE_LAYER_NAME = "openembedded-core"
 # Update records older than this number of days will be deleted every update
 UPDATE_PURGE_DAYS = 30
 
+# Remove layer dependencies if it is not in conf/layer.conf
+REMOVE_LAYER_DEPENDENCIES = False
+
 # Settings for layer submission feature
 SUBMIT_EMAIL_FROM = 'nore...@example.com'
 SUBMIT_EMAIL_SUBJECT = 'OE Layerindex layer submission'
-- 
2.10.2

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


[yocto] [layerindex-web][PATCH V5 09/10] update.py: add -p to git fetch

2017-06-23 Thread Robert Yang
-p, --prune
Before fetching, remove any remote-tracking references that no longer exist 
on the remote.

Fixed:
$ git push origin :test_branch
$ ./update.py

The test_branch was still in fetched local repo which was incorrect, it should
be gone since it has been removed by upstream.

Signed-off-by: Robert Yang 
---
 layerindex/update.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/layerindex/update.py b/layerindex/update.py
index f8e5a37..2d578df 100755
--- a/layerindex/update.py
+++ b/layerindex/update.py
@@ -264,7 +264,7 @@ def main():
 if not os.path.exists(repodir):
 out = utils.runcmd("git clone %s %s" % 
(layer.vcs_url, urldir), fetchdir, logger=logger, printerr=False)
 else:
-out = utils.runcmd("git fetch", repodir, 
logger=logger, printerr=False)
+out = utils.runcmd("git fetch -p", repodir, 
logger=logger, printerr=False)
 except subprocess.CalledProcessError as e:
 logger.error("Fetch of layer %s failed: %s" % 
(layer.name, e.output))
 failedrepos[layer.vcs_url] = e.output
@@ -279,7 +279,7 @@ def main():
 if not os.path.exists(bitbakepath):
 out = utils.runcmd("git clone %s %s" % 
(settings.BITBAKE_REPO_URL, 'bitbake'), fetchdir, logger=logger)
 else:
-out = utils.runcmd("git fetch", bitbakepath, logger=logger)
+out = utils.runcmd("git fetch -p", bitbakepath, 
logger=logger)
 
 if options.actual_branch:
 update_actual_branch(layerquery, fetchdir, branches[0], 
options, update_bitbake, bitbakepath)
-- 
2.10.2

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


[yocto] [layerindex-web][PATCH V5 08/10] update_layer.py: move the location of transaction.atomic()

2017-06-23 Thread Robert Yang
It doesn't need to be so ahead since we only need it when writing database, and
a following patch will remove layerbranch from database when the branch had
been removed from the repo, it's not easy to do the work in
transaction.atomic() block.

Signed-off-by: Robert Yang 
---
 layerindex/update_layer.py | 56 +++---
 1 file changed, 28 insertions(+), 28 deletions(-)

diff --git a/layerindex/update_layer.py b/layerindex/update_layer.py
index 1c33c78..b6c2f4a 100644
--- a/layerindex/update_layer.py
+++ b/layerindex/update_layer.py
@@ -238,36 +238,36 @@ def main():
 # why won't they just fix that?!)
 tinfoil.config_data.setVar('LICENSE', '')
 
+layer = utils.get_layer(options.layer)
+urldir = layer.get_fetch_dir()
+repodir = os.path.join(fetchdir, urldir)
+
+layerbranch = layer.get_layerbranch(options.branch)
+
+branchname = options.branch
+branchdesc = options.branch
+if layerbranch:
+if layerbranch.actual_branch:
+branchname = layerbranch.actual_branch
+branchdesc = "%s (%s)" % (options.branch, branchname)
+
+# Collect repo info
+repo = git.Repo(repodir)
+assert repo.bare == False
 try:
-with transaction.atomic():
-layer = utils.get_layer(options.layer)
-urldir = layer.get_fetch_dir()
-repodir = os.path.join(fetchdir, urldir)
-
-layerbranch = layer.get_layerbranch(options.branch)
-
-branchname = options.branch
-branchdesc = options.branch
-if layerbranch:
-if layerbranch.actual_branch:
-branchname = layerbranch.actual_branch
-branchdesc = "%s (%s)" % (options.branch, branchname)
-
-# Collect repo info
-repo = git.Repo(repodir)
-assert repo.bare == False
-try:
-if options.nocheckout:
-topcommit = repo.commit('HEAD')
-else:
-topcommit = repo.commit('origin/%s' % branchname)
-except:
-if layerbranch:
-logger.error("Failed update of layer %s - branch %s no 
longer exists" % (layer.name, branchdesc))
-else:
-logger.info("Skipping update of layer %s - branch %s 
doesn't exist" % (layer.name, branchdesc))
-sys.exit(1)
+if options.nocheckout:
+topcommit = repo.commit('HEAD')
+else:
+topcommit = repo.commit('origin/%s' % branchname)
+except:
+if layerbranch:
+logger.error("Failed update of layer %s - branch %s no longer 
exists" % (layer.name, branchdesc))
+else:
+logger.info("Skipping update of layer %s - branch %s doesn't 
exist" % (layer.name, branchdesc))
+sys.exit(1)
 
+try:
+with transaction.atomic():
 newbranch = False
 if not layerbranch:
 # LayerBranch doesn't exist for this branch, create it
-- 
2.10.2

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


[yocto] [layerindex-web][PATCH V5 07/10] update_layer.py: remove --update-dependencies

2017-06-23 Thread Robert Yang
It never works since it is in the middle of transaction.atomic() block, and
update.py doesn't need it any more, so remove it.

Signed-off-by: Robert Yang 
---
 layerindex/update_layer.py | 27 ---
 1 file changed, 27 deletions(-)

diff --git a/layerindex/update_layer.py b/layerindex/update_layer.py
index 7b945e7..1c33c78 100644
--- a/layerindex/update_layer.py
+++ b/layerindex/update_layer.py
@@ -182,9 +182,6 @@ def main():
 parser.add_option("-n", "--dry-run",
 help = "Don't write any data back to the database",
 action="store_true", dest="dryrun")
-parser.add_option("", "--update-dependencies",
-help = "Update layer dependencies only",
-action="store_true", dest="updatedeps")
 parser.add_option("", "--nocheckout",
 help = "Don't check out branches",
 action="store_true", dest="nocheckout")
@@ -256,30 +253,6 @@ def main():
 branchname = layerbranch.actual_branch
 branchdesc = "%s (%s)" % (options.branch, branchname)
 
-if options.updatedeps:
-# Update layer dependencies only
-if not layerbranch:
-logger.debug('Skipping dependency update for layer %s on 
branch %s - no layerbranch record' % (layer, branchdesc))
-sys.exit(0)
-if not options.nocheckout:
-utils.checkout_layer_branch(layerbranch, repodir, 
logger=logger)
-layerdir = os.path.join(repodir, layerbranch.vcs_subdir)
-if not os.path.exists(layerdir):
-# If this happens it was already flagged during the main 
update, so ignore it
-logger.debug('Skipping dependency update for layer %s on 
branch %s - layer directory not found' % (layer, branchdesc))
-sys.exit(0)
-
-layerconfparser = layerconfparse.LayerConfParse(logger=logger, 
bitbakepath=bitbakepath, tinfoil=tinfoil)
-config_data = layerconfparser.parse_layer(layerdir)
-if not config_data:
-logger.debug("Layer %s does not appear to be valid for 
branch %s" % (layer.name, branchdesc))
-sys.exit(0)
-
-utils.add_dependencies(layerbranch, config_data, logger=logger)
-utils.add_recommends(layerbranch, config_data, logger=logger)
-
-sys.exit(0)
-
 # Collect repo info
 repo = git.Repo(repodir)
 assert repo.bare == False
-- 
2.10.2

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


[yocto] [layerindex-web][PATCH V5 06/10] update.py: update layers orderly

2017-06-23 Thread Robert Yang
* Problems
The update.py couldn't handle new (not only new branch, in fact, but also
existing branches, see below for more info) branch well, for example, there are
3 layers: layer_A, layer_B and layer_C, and create new branch "branch_1" for
them, and they have depends:

layer_A -> layer_B -> layer_C

The "->" means depends on.

Then run "update.py -b branch_1", there would be errors like:

ERROR: Dependency layer_B of layer_A does not have branch record for branch 
branch_1

Though update.py runs "update_layer.py" twice, but it didn't help since
layerbranch was None when it was failed to create in the first run.

The reason is if update.py updates layer_A firstly, it would fail since it
can't find layer_B:branch_1 in database (not added to database yet), similarly,
if add layer_B before layer_C, it would also fail. Only layer_C can be added
(assume it has no dependencies). So we have to re-run update.py again and again
to make it work, here we may have to run update.py 3 times, and more runs are
needed if the dependency chain is longer.

* Solutions:
Make update.py pass layers orderly to update_layer.py according to dependencies
can fix the problem, we can get intial dependencies from tinfoil, add an option
"-i, --initial" to update_layer.py to get them.

Not only new branch, but also existing branches may have the problem, because
collections and dependencies maybe changed in the coming update, so we can't
trust database when the layer is going to be updated, for example, if there are
10 layers in database, and 3 of them will be updated (-l layer1,layer2,layer3),
then we can not use the 3 layers' collections data from database, we need get
them from tinfoil.

* Performance improvement:
  It should be the same as before in theory, I have tested it with 97 layers:
  - Before: 11m6.472s, but only 75 layers were added, 22 ones were failed, I
have to re-run update.py again and again (maybe 4 times to make all of
them added). So:
(11 * 60 + 6)/75*97/60 = 14m35s

  - Now 12m10.350s, all the layers are added in the first run.

   So about 2 minutes are saved.

Signed-off-by: Robert Yang 
---
 layerindex/update.py   | 113 ++---
 layerindex/update_layer.py |  10 +++-
 layerindex/utils.py|  41 
 3 files changed, 127 insertions(+), 37 deletions(-)

diff --git a/layerindex/update.py b/layerindex/update.py
index 1a0bbd0..f8e5a37 100755
--- a/layerindex/update.py
+++ b/layerindex/update.py
@@ -18,6 +18,8 @@ import signal
 from datetime import datetime, timedelta
 from distutils.version import LooseVersion
 import utils
+import operator
+import re
 
 import warnings
 warnings.filterwarnings("ignore", category=DeprecationWarning)
@@ -62,15 +64,13 @@ def run_command_interruptible(cmd):
 return process.returncode, buf
 
 
-def prepare_update_layer_command(options, branch, layer, updatedeps=False):
+def prepare_update_layer_command(options, branch, layer, initial=False):
 """Prepare the update_layer.py command line"""
 if branch.update_environment:
 cmdprefix = branch.update_environment.get_command()
 else:
 cmdprefix = 'python3'
 cmd = '%s update_layer.py -l %s -b %s' % (cmdprefix, layer.name, 
branch.name)
-if updatedeps:
-cmd += ' --update-dependencies'
 if options.reload:
 cmd += ' --reload'
 if options.fullreload:
@@ -79,6 +79,8 @@ def prepare_update_layer_command(options, branch, layer, 
updatedeps=False):
 cmd += ' --nocheckout'
 if options.dryrun:
 cmd += ' -n'
+if initial:
+cmd += ' -i'
 if options.loglevel == logging.DEBUG:
 cmd += ' -d'
 elif options.loglevel == logging.ERROR:
@@ -191,6 +193,13 @@ def main():
 logger.error("Please set LAYER_FETCH_DIR in settings.py")
 sys.exit(1)
 
+
+# We deliberately exclude status == 'X' ("no update") here
+layerquery_all = LayerItem.objects.filter(classic=False).filter(status='P')
+if layerquery_all.count() == 0:
+logger.info("No published layers to update")
+sys.exit(1)
+
 # For -a option to update bitbake branch
 update_bitbake = False
 if options.layers:
@@ -205,11 +214,7 @@ def main():
 sys.exit(1)
 layerquery = 
LayerItem.objects.filter(classic=False).filter(name__in=layers)
 else:
-# We deliberately exclude status == 'X' ("no update") here
-layerquery = LayerItem.objects.filter(classic=False).filter(status='P')
-if layerquery.count() == 0:
-logger.info("No published layers to update")
-sys.exit(1)
+layerquery = layerquery_all
 update_bitbake = True
 
 if options.actual_branch:
@@ -286,8 +291,72 @@ def main():
 # they never get used during normal operation).
 last_rev = {}
 for branch in branches:
+# If layer_A depends(or recommends) on layer_B, add layer_B 
before layer_A
+

[yocto] [layerindex-web][PATCH V5 05/10] recipeparse.py: restore cwd when the parsing is done

2017-06-23 Thread Robert Yang
Othewise it may cause troubles to the function who calls it.

Signed-off-by: Robert Yang 
---
 layerindex/recipeparse.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/layerindex/recipeparse.py b/layerindex/recipeparse.py
index dd85bc3..f2a5235 100644
--- a/layerindex/recipeparse.py
+++ b/layerindex/recipeparse.py
@@ -70,10 +70,13 @@ def init_parser(settings, branch, bitbakepath, 
enable_tracking=False, nocheckout
 if not os.path.exists(settings.TEMP_BASE_DIR):
 os.makedirs(settings.TEMP_BASE_DIR)
 tempdir = tempfile.mkdtemp(dir=settings.TEMP_BASE_DIR)
+saved_cwd = os.getcwd()
 os.chdir(tempdir)
 
 tinfoil = utils.setup_tinfoil(bitbakepath, enable_tracking)
 
+os.chdir(saved_cwd)
+
 # Ensure TMPDIR exists (or insane.bbclass will blow up trying to write to 
the QA log)
 oe_tmpdir = tinfoil.config_data.getVar('TMPDIR', True)
 if not os.path.exists(oe_tmpdir):
-- 
2.10.2

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


[yocto] [layerindex-web][PATCH V5 02/10] layerconfparse.py: remove unused layerbranch from parse_layer()

2017-06-23 Thread Robert Yang
The layerbranch is not used in parse_layer(), so remove it.

Signed-off-by: Robert Yang 
---
 layerindex/layerconfparse.py | 2 +-
 layerindex/tools/import_layer.py | 2 +-
 layerindex/update_layer.py   | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/layerindex/layerconfparse.py b/layerindex/layerconfparse.py
index d599ed5..526d2c2 100644
--- a/layerindex/layerconfparse.py
+++ b/layerindex/layerconfparse.py
@@ -32,7 +32,7 @@ class LayerConfParse:
 
 self.config_data_copy = bb.data.createCopy(self.tinfoil.config_data)
 
-def parse_layer(self, layerbranch, layerdir):
+def parse_layer(self, layerdir):
 
 # This is not a valid layer, parsing will cause exception.
 if not utils.is_layer_valid(layerdir):
diff --git a/layerindex/tools/import_layer.py b/layerindex/tools/import_layer.py
index ad16e40..a806dd1 100755
--- a/layerindex/tools/import_layer.py
+++ b/layerindex/tools/import_layer.py
@@ -377,7 +377,7 @@ def main():
 layerdep.save()
 layerconfparser = LayerConfParse(logger=logger)
 try:
-config_data = layerconfparser.parse_layer(layerbranch, 
layerdir)
+config_data = layerconfparser.parse_layer(layerdir)
 if config_data:
 utils.add_dependencies(layerbranch, config_data, 
logger=logger)
 utils.add_recommends(layerbranch, config_data, 
logger=logger)
diff --git a/layerindex/update_layer.py b/layerindex/update_layer.py
index 9fe96fb..05ab3e7 100644
--- a/layerindex/update_layer.py
+++ b/layerindex/update_layer.py
@@ -267,7 +267,7 @@ def main():
 sys.exit(0)
 
 layerconfparser = layerconfparse.LayerConfParse(logger=logger, 
bitbakepath=bitbakepath, tinfoil=tinfoil)
-config_data = layerconfparser.parse_layer(layerbranch, 
layerdir)
+config_data = layerconfparser.parse_layer(layerdir)
 if not config_data:
 logger.debug("Layer %s does not appear to be valid for 
branch %s" % (layer.name, branchdesc))
 sys.exit(0)
@@ -355,7 +355,7 @@ def main():
 logger.info("Collecting data for layer %s on branch %s" % 
(layer.name, branchdesc))
 
 layerconfparser = layerconfparse.LayerConfParse(logger=logger, 
tinfoil=tinfoil)
-layer_config_data = layerconfparser.parse_layer(layerbranch, 
layerdir)
+layer_config_data = layerconfparser.parse_layer(layerdir)
 if not layer_config_data:
 logger.info("Skipping update of layer %s for branch %s - 
conf/layer.conf may have parse issues" % (layer.name, branchdesc))
 layerconfparser.shutdown()
-- 
2.10.2

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


[yocto] [layerindex-web][PATCH V5 01/10] update.py: update actual branch for layer and bitbake

2017-06-23 Thread Robert Yang
Add an option "-a" to update actual branch for layer and bitbake, it is
useful when there are many layers and need update actual branches
frequently. We only can update them via website without this patch,
which is not fun and easy to make mistakes.

* It works with "-l", and "-l bitbake" means update bitbake branch.
* It requires "-b" to work, and only one branch is supported in a run.

For example:
$ update.py -b master -a branch_20170526
All the layers which have branch master and actual_branch branch_20170526
will be updated to branch_20170526.

$ update.py -b master -l meta-oe -a branch_20170526
Only meta-oe layer will be updated.

$ update.py -b master -l bitbake -a branch_20170526
The bitbake's bitbake_branch will be updated.

Signed-off-by: Robert Yang 
---
 layerindex/update.py | 71 
 layerindex/utils.py  | 11 
 2 files changed, 77 insertions(+), 5 deletions(-)

diff --git a/layerindex/update.py b/layerindex/update.py
index d5c56cd..1a0bbd0 100755
--- a/layerindex/update.py
+++ b/layerindex/update.py
@@ -85,6 +85,43 @@ def prepare_update_layer_command(options, branch, layer, 
updatedeps=False):
 cmd += ' -q'
 return cmd
 
+def update_actual_branch(layerquery, fetchdir, branch, options, 
update_bitbake, bitbakepath):
+"""Update actual branch for layers and bitbake in database"""
+to_save = set()
+actual_branch = options.actual_branch
+if update_bitbake:
+branchobj = utils.get_branch(branch)
+if actual_branch != branchobj.bitbake_branch:
+if utils.is_branch_valid(bitbakepath, actual_branch):
+logger.info("bitbake: %s.bitbake_branch: %s -> %s" % (branch, 
branchobj.bitbake_branch, actual_branch))
+branchobj.bitbake_branch = actual_branch
+to_save.add(branchobj)
+else:
+logger.info("Skipping update bitbake_branch for bitbake - 
branch %s doesn't exist" % actual_branch)
+else:
+logger.info("bitbake: %s.bitbake_branch is already %s, so no 
change" % (branch, actual_branch))
+
+for layer in layerquery:
+urldir = layer.get_fetch_dir()
+repodir = os.path.join(fetchdir, urldir)
+if not utils.is_branch_valid(repodir, actual_branch):
+logger.info("Skipping update actual_branch for %s - branch %s 
doesn't exist" % (layer.name, actual_branch))
+continue
+layerbranch = layer.get_layerbranch(branch)
+if not layerbranch:
+logger.info("Skipping update actual_branch for %s - layerbranch %s 
doesn't exist" % (layer.name, branch))
+continue
+if actual_branch != layerbranch.actual_branch:
+logger.info("%s: %s.actual_branch: %s -> %s" % (layer.name, 
branch, layerbranch.actual_branch, actual_branch))
+layerbranch.actual_branch = actual_branch
+to_save.add(layerbranch)
+else:
+logger.info("%s: %s.actual_branch is already %s, so no change" % 
(layer.name, branch, actual_branch))
+
+# At last, do the save
+if not options.dryrun:
+for s in to_save:
+s.save()
 
 def main():
 if LooseVersion(git.__version__) < '0.3.1':
@@ -117,6 +154,9 @@ def main():
 parser.add_option("", "--nocheckout",
 help = "Don't check out branches",
 action="store_true", dest="nocheckout")
+parser.add_option("-a", "--actual-branch",
+help = "Update actual branch for layer and bitbake",
+action="store", dest="actual_branch", default='')
 parser.add_option("-d", "--debug",
 help = "Enable debug output",
 action="store_const", const=logging.DEBUG, dest="loglevel", 
default=logging.INFO)
@@ -151,17 +191,34 @@ def main():
 logger.error("Please set LAYER_FETCH_DIR in settings.py")
 sys.exit(1)
 
+# For -a option to update bitbake branch
+update_bitbake = False
 if options.layers:
-layerquery = 
LayerItem.objects.filter(classic=False).filter(name__in=options.layers.split(','))
-if layerquery.count() == 0:
-logger.error('No layers matching specified query "%s"' % 
options.layers)
-sys.exit(1)
+layers = options.layers.split(',')
+if 'bitbake' in layers:
+update_bitbake = True
+layers.remove('bitbake')
+for layer in layers:
+layerquery = 
LayerItem.objects.filter(classic=False).filter(name=layer)
+if layerquery.count() == 0:
+logger.error('No layers matching specified query "%s"' % layer)
+sys.exit(1)
+layerquery = 
LayerItem.objects.filter(classic=False).filter(name__in=layers)
 else:
 # We deliberately exclude status == 'X' ("no update") here
 layerquery = LayerItem.objects.filter(classic=False).filter(status='P')
 if layerquery.count() == 0:
 logger.info("No published

[yocto] [layerindex-web][PATCH V5 04/10] update_layer.py: set layerbranch's collection before add_dependencies

2017-06-23 Thread Robert Yang
The _add_dependency() uses:
if layerbranch.collection:
var_name = layerbranch.collection

The layerbranch.collection is none if it is newly created, thus it can't get
LAYERDEPENDS, because what defined in layer.conf is LAYERDEPENDS_,
but what it would get is LAYERDEPENDS_, this patch can fix the
problem.

Reproducer:
$ python3 update_layer.py -l mete-xfce -b  --fullreload -d

It would get None LAYERDEPENDS.

Signed-off-by: Robert Yang 
---
 layerindex/update_layer.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/layerindex/update_layer.py b/layerindex/update_layer.py
index 05ab3e7..bcf7056 100644
--- a/layerindex/update_layer.py
+++ b/layerindex/update_layer.py
@@ -360,9 +360,9 @@ def main():
 logger.info("Skipping update of layer %s for branch %s - 
conf/layer.conf may have parse issues" % (layer.name, branchdesc))
 layerconfparser.shutdown()
 sys.exit(1)
+utils.set_layerbranch_collection_version(layerbranch, 
layer_config_data, logger=logger)
 utils.add_dependencies(layerbranch, layer_config_data, 
logger=logger)
 utils.add_recommends(layerbranch, layer_config_data, 
logger=logger)
-utils.set_layerbranch_collection_version(layerbranch, 
layer_config_data, logger=logger)
 layerbranch.save()
 
 try:
-- 
2.10.2

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


[yocto] [layerindex-web][PATCH V5 00/10] Several fixes for layerindex

2017-06-23 Thread Robert Yang
* V5
  - Fix Paul's comments
  - Add REMOVE_LAYER_DEPENDENCIES = False to settings, the
_add_dependency() will check and remove dependencies which is not in
conf/layer.conf when True (WARN when False)..

* V4
  - Add an option -i to update_layer.py to get initial layer value 
(dependencies,
versions and so on), update.py doesn't use tinfoil any more since tinfoil
before morty can't be shutdown totally if the process is not exited, this 
was
why splitted update_layer.py from update.py.
  - Squash 11 patches (v3) into 10, since two of them have overlap.

* V3:
  - Better error messages when required collections not found
  - Delete layerbranch for non-existed branch
  - update_layer.py: remove --update-dependencies

* V2:
  - Remove "import bb" from update.py to avoid causing confusions when switch 
branches.

* V1:
  - The "-a ACTUAL_BRANCH" is a litle different from what we had talked, now it
respects "-l" and "-b", we can use -l to specify layers or default to all,
and it requires "-b" to work, only one branch is supported in a run, for 
example:

$ update.py -b master -a branch_20170526
All the layers which have branch master and actual_branch branch_20170526
will be updated to branch_20170526.

$ update.py -b master -l meta-oe -a branch_20170526
Only meta-oe layer will be updated.

$ update.py -b master -l bitbake -a branch_20170526
The bitbake's bitbake_branch will be updated.

// Robert

The following changes since commit b958a991caa947fde2ccb073e3cb7924e162562d:

  layerindex/views: support querying by layer name (2017-06-15 16:04:14 +0200)

are available in the git repository at:

  git://git.pokylinux.org/poky-contrib rbt/layerindex-10fixes
  http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=rbt/layerindex-10fixes

Robert Yang (10):
  update.py: update actual branch for layer and bitbake
  layerconfparse.py: remove unused layerbranch from parse_layer()
  utils.py: add REMOVE_LAYER_DEPENDENCIES to remove dependencies
  update_layer.py: set layerbranch's collection before add_dependencies
  recipeparse.py: restore cwd when the parsing is done
  update.py: update layers orderly
  update_layer.py: remove --update-dependencies
  update_layer.py: move the location of transaction.atomic()
  update.py: add -p to git fetch
  update_layer.py: delete layerbranch for non-existed branch

 layerindex/layerconfparse.py |   2 +-
 layerindex/recipeparse.py|   3 +
 layerindex/tools/import_layer.py |   2 +-
 layerindex/update.py | 186 ++-
 layerindex/update_layer.py   |  99 +
 layerindex/utils.py  |  71 ++-
 settings.py  |   3 +
 7 files changed, 263 insertions(+), 103 deletions(-)

-- 
2.10.2

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


Re: [yocto] [PATCH V4 03/10] utils.py: remove obsolete dependencies

2017-06-23 Thread Paul Eggleton
On Friday, 23 June 2017 5:22:35 AM CEST Robert Yang wrote:
> On 06/23/2017 11:03 AM, Robert Yang wrote:
> > On 06/22/2017 07:54 PM, Paul Eggleton wrote:
> >> How about this - could we start with a setting in the configuration that
> >> specifies that dependencies should be updated automatically, and if not
> >> set just gives a warning if the dependencies are not the same? We can
> >> then decide how to handle it when we see the warnings we're getting in
> >> the OE index.
> >
> > Sounds good to me, I will fix it in V5.
> 
> After more thinking, I will use:
> # Remove layer dependencies if it is not in conf/layer.conf
> REMOVE_LAYER_DEPENDENCIES = False
> 
> Currently it does can add dependencies from conf/layer.conf, but no remove,
> so use REMOVE_LAYER_DEPENDENCIES makes it more clear.

Sounds good to me.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto