Build wayland/weston from source?


Haase, Juergen [ext]
 

Hi. I'm probably not exactly on topic in the yocto mailing list, but thought maybe someone can point me into the right direction.

What I want to do:
I've made a modification to weston and am planning to do some more, so I would like to integrate this modified version of wayland/weston into my Petalinux 2019.1 config (have to use that version).
At the moment my wayland branch is based on v9.0.0.

What I've tried so far (please do tell me if I'm doing something totally stupid):
Unfortunately I don't have very good understanding about petalinux/yocto, I tried to start with the following steps:

I began with trying to integrate the wayland recipes from openembedded:
http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-graphics/wayland

I copied this folder over into my petalinux recipes folder and ran

    $ petalinux-build -c wayland
    [INFO] building wayland
    [INFO] sourcing bitbake
    [INFO] generating user layers
    INFO: bitbake wayland
    Loading cache: 100% |############################################################| Time: 0:00:00
    Loaded 3826 entries from dependency cache.
    ERROR: ParseError at <my_petalinuxroot>/project-spec/meta-user/recipes-apps/wayland/weston_9.0.0.bb:22: Could not inherit file classes/features_check.bbclass
  
    Summary: There was 1 ERROR message shown, returning a non-zero exit code.
    ERROR: Failed to build wayland

I searched through my Petalinux project and didn't find any other *.bbclass files, so I don't know where this could be put if I copied it over from openembedded.
So I grepped for this and found:

    $ rg features_check
    weston_9.0.0.bb
    22:inherit meson pkgconfig useradd features_check
 
    weston-init.bb
    65:inherit update-rc.d features_check systemd useradd

Since it wasn't obvious to me if the inclusion of this even does anything, I removed it and ran the build again:

    $ petalinux-build -c wayland
    [INFO] building wayland
    [INFO] sourcing bitbake
    [INFO] generating user layers
    INFO: bitbake wayland
    Loading cache: 100% |############################################################| Time: 0:00:00
    Loaded 3826 entries from dependency cache.
    Parsing recipes: 100% |##########################################################| Time: 0:00:02
    Parsing of 2799 .bb files complete (2791 cached, 8 parsed). 3836 targets, 162 skipped, 0 masked, 0 errors.
    NOTE: Resolving any missing task queue dependencies
    Initialising tasks: 100% |#######################################################| Time: 0:00:00
    Checking sstate mirror object availability: 100% |###############################| Time: 0:00:03
    Sstate summary: Wanted 62 Found 18 Missed 88 Current 320 (29% match, 88% complete)
    NOTE: Executing SetScene Tasks
    NOTE: Executing RunQueue Tasks
    ERROR: wayland-native-1.19.0-r0 do_configure: meson failed
    ERROR: wayland-native-1.19.0-r0 do_configure: Function failed: do_configure (log file is located at <my_petalinuxroot>/build/tmp/work/x86_64-linux/wayland-native/1.19.0-r0/temp/log.do_configure.8492)
    ERROR: Logfile of failure stored in: <my_petalinuxroot>/build/tmp/work/x86_64-linux/wayland-native/1.19.0-r0/temp/log.do_configure.8492
    Log data follows:
    | DEBUG: Executing shell function do_configure
    | NOTE: Executing meson -Ddocumentation=false -Dlibraries=false -Ddtd_validation=true...
    | The Meson build system
    | Version: 0.47.2
    | Source dir: <my_petalinuxroot>/build/tmp/work/x86_64-linux/wayland-native/1.19.0-r0/wayland-1.19.0
    | Build dir: <my_petalinuxroot>/build/tmp/work/x86_64-linux/wayland-native/1.19.0-r0/build
    | Build type: native build
    |
    | meson.build:1:0: ERROR:  Meson version is 0.47.2 but project requires >= 0.52.1.
    |
    | A full log can be found at <my_petalinuxroot>/build/tmp/work/x86_64-linux/wayland-native/1.19.0-r0/build/meson-logs/meson-log.txt
    | ERROR: meson failed
    | WARNING: <my_petalinuxroot>/build/tmp/work/x86_64-linux/wayland-native/1.19.0-r0/temp/run.do_configure.8492:1 exit 1 from 'exit 1'
    | ERROR: Function failed: do_configure (log file is located at <my_petalinuxroot>/build/tmp/work/x86_64-linux/wayland-native/1.19.0-r0/temp/log.do_configure.8492)
    ERROR: Task (virtual:native:<my_petalinuxroot>/project-spec/meta-user/recipes-apps/wayland/wayland_1.19.0.bb:do_configure) failed with exit code '1'
    NOTE: Tasks Summary: Attempted 1328 tasks of which 1314 didn't need to be rerun and 1 failed.
 
    Summary: 1 task failed:
      virtual:native:<my_petalinuxroot>/project-spec/meta-user/recipes-apps/wayland/wayland_1.19.0.bb:do_configure
    Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
    ERROR: Failed to build wayland

Ok, it seems I need a newer meson, so I copied this over too from openembedded and tried to build it:
http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-devtools/meson

    $ petalinux-build -c meson
    [INFO] building meson
    [INFO] sourcing bitbake
    [INFO] generating user layers
    INFO: bitbake meson
    Loading cache: 100% |############################################################| Time: 0:00:00
    Loaded 3835 entries from dependency cache.
    Parsing recipes: 100% |##########################################################| Time: 0:00:01
    Parsing of 2801 .bb files complete (2798 cached, 3 parsed). 3839 targets, 162 skipped, 0 masked, 0 errors.
    NOTE: Resolving any missing task queue dependencies
    ERROR: Nothing RPROVIDES 'python3-pkg-resources' (but <my_petalinuxroot>/project-spec/meta-user/recipes-apps/meson/meson_0.57.1.bb RDEPENDS on or otherwise requires it)
    NOTE: Runtime target 'python3-pkg-resources' is unbuildable, removing...
    Missing or unbuildable dependency chain was: ['python3-pkg-resources']
    ERROR: Required build target 'meson' has no buildable providers.
    Missing or unbuildable dependency chain was: ['meson', 'python3-pkg-resources']
 
    Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
    ERROR: Failed to build meson

And this is where I started to get stuck. Grepping the openembedded repo for 'python3-pkg-resources' didn't turn up anything. Googling it seeems to suggest it is part of python-setuptools.
So I tried to install python3-setuptools by copying it over again:
http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-devtools/python/python3-setuptools_54.1.1.bb

    $ petalinux-build -c python3-setuptools
    [INFO] building python3-setuptools
    [INFO] sourcing bitbake
    [INFO] generating user layers
    INFO: bitbake python3-setuptools
    Loading cache: 100% |############################################################| Time: 0:00:00
    Loaded 3838 entries from dependency cache.
    WARNING: <my_petalinuxroot>/project-spec/meta-user/recipes-apps/python3-setuptools/python3-setuptools_54.1.1.bb: Unable to get checksum for python3-setuptools-native SRC_URI entry 0001-conditionally-do-not-fetch-code-by-easy_install.patch: file could not be found
    Parsing recipes: 100% |##########################################################| Time: 0:00:01
    Parsing of 2802 .bb files complete (2800 cached, 2 parsed). 3842 targets, 162 skipped, 0 masked, 0 errors.
    NOTE: Resolving any missing task queue dependencies
    ERROR: Nothing RPROVIDES 'python3-pkg-resources-native' (but virtual:native:<my_petalinuxroot>/project-spec/meta-user/recipes-apps/python3-setuptools/python3-setuptools_54.1.1.bb RDEPENDS on or otherwise requires it)
    NOTE: Runtime target 'python3-pkg-resources-native' is unbuildable, removing...
    Missing or unbuildable dependency chain was: ['python3-pkg-resources-native']
    ERROR: Required build target 'python3-setuptools' has no buildable providers.
    Missing or unbuildable dependency chain was: ['python3-setuptools', 'python3-setuptools-native', 'python3-pkg-resources-native']
 
    Summary: There was 1 WARNING message shown.
    Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
    ERROR: Failed to build python3-setuptools

I couldn't find 'python3-setuptools-native' or 'python3-pkg-resources-native' in the openembedded repo, so here my journey is over for now.


Is this way I tried even the correct way to get wayland from source into my petalinux project? Or is there a better solution?

Any help would be really appreciated.

Rgeards,
Jürgen Haase

Join yocto@lists.yoctoproject.org to automatically receive all group messages.