maynard icon indicating copy to clipboard operation
maynard copied to clipboard

build-error during "make install" maynard: failed to validate desktop-shell.xml and missing weston/compositor.h

Open thebunnyrules opened this issue 7 years ago • 3 comments

I'm building Maynard for the pc. I managed to build or install all the dependencies. There was the wayland protocols that was missing from your build instructions but I simply found the git page and built it from there using:

git clone https://github.com/wayland-project/wayland-protocols.github
cd wayland-protocols
./autogen.sh --prefix $PREFIX
make install
cd ..

#I built it before Weston and just after Wayland. After which I did:
export PKG_CONFIG_PATH=$PREFIX/share/pkgconfig:$PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH

maynard autogen completed with no errors but when I tried to do make install, I got this error:

  GEN      desktop-shell-client-protocol.h
../protocol/desktop-shell.xml:104: element request: validity error : Element request content does not follow the DTD, expecting (description? , arg*), got (arg description )
*******************************************************
*                                                     *
* WARNING: XML failed validation against built-in DTD *
*                                                     *
*******************************************************
../protocol/desktop-shell.xml:49: warning: since version not increasing

  GEN      desktop-shell-protocol.c
../protocol/desktop-shell.xml:104: element request: validity error : Element request content does not follow the DTD, expecting (description? , arg*), got (arg description )
*******************************************************
*                                                     *
* WARNING: XML failed validation against built-in DTD *
*                                                     *
*******************************************************
../protocol/desktop-shell.xml:49: warning: since version not increasing

I searched for the error on google and found a thread from a different project that had the same issue and a fix which could be found here. The code in the patch was identical to the code found in my $PREFIX/share/wayland-protocols/stable/xdg-shell/xdg-shell.xml file (minus the patched code), so I took a chance and patched the xml by hand. This made the error go away but now I got this error:

make[2]: Entering directory '/home/lapinot/maynard/shell'
  CC       shell-helper.lo
shell-helper.c:29:10: fatal error: weston/compositor.h: No such file or directory
 #include <weston/compositor.h>
          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.

so I opened up /maynard/shell and made a link called weston to $PREFIX/include/libweston-4 which ( had a copy of compositor.h but that resulted in a whole bunch of errors and I get the impression that the compositor.h was the wrong version:

shell-helper.c: In function ‘configure_surface’:
shell-helper.c:82:42: error: ‘struct weston_surface’ has no member named ‘configure_private’; did you mean ‘committed_private’?
  struct weston_view *existing_view = es->configure_private;
                                          ^~~~~~~~~~~~~~~~~
                                          committed_private
shell-helper.c: In function ‘shell_helper_add_surface_to_layer’:
shell-helper.c:117:17: error: ‘struct weston_surface’ has no member named ‘configure’
  if (new_surface->configure) {
                 ^~
shell-helper.c:137:13: error: ‘struct weston_surface’ has no member named ‘configure’
  new_surface->configure = configure_surface;
             ^~
shell-helper.c:138:15: error: ‘struct weston_surface’ has no member named ‘configure_private’; did you mean ‘committed_private’?
  new_surface->configure_private = existing_view;
               ^~~~~~~~~~~~~~~~~
               committed_private
shell-helper.c: In function ‘configure_panel’:
shell-helper.c:149:36: error: ‘struct weston_surface’ has no member named ‘configure_private’; did you mean ‘committed_private’?
  struct shell_helper *helper = es->configure_private;
                                    ^~~~~~~~~~~~~~~~~
                                    committed_private
shell-helper.c: In function ‘shell_helper_set_panel’:
shell-helper.c:180:9: error: ‘struct weston_surface’ has no member named ‘configure’
  surface->configure(surface, 0, 0);
         ^~
shell-helper.c:193:9: error: ‘struct weston_surface’ has no member named ‘configure’
  surface->configure = configure_panel;
         ^~
shell-helper.c:194:11: error: ‘struct weston_surface’ has no member named ‘configure_private’; did you mean ‘committed_private’?
  surface->configure_private = helper;
           ^~~~~~~~~~~~~~~~~
           committed_private
shell-helper.c: In function ‘shell_helper_curtain’:
shell-helper.c:429:8: warning: passing argument 2 of ‘weston_layer_init’ from incompatible pointer type [-Wincompatible-pointer-types]
        &helper->panel_layer->link);
        ^

Do you guys have any ideas? Things I could try or way to trouble shoot? Maybe I screwed something up in the steps I listed?

Here are the versions of the things I built:

info gleamed from: $PREFIX/lib/pkgconfig
-----------------------------------------
Name: libweston API
Description: Header files for libweston compositors development
Version: 3.0.91

Name: libweston-desktop
Description: Desktop shells abstraction library for libweston compositors
Version: 3.0.91

Name: Wayland Client
Description: Wayland client side library
Version: 1.14.91

Name: Wayland Cursor
Description: Wayland cursor helper library
Version: 1.14.91

Name: wayland-egl-backend
Description: Backend wayland-egl interface
Version: 3

Name: wayland-egl
Description: Frontend wayland-egl library
Version: 17.4.0

Name: Wayland Scanner
Description: Wayland scanner
Version: 1.14.91

Name: Wayland Server
Description: Server side implementation of the Wayland protocol
Version: 1.14.91

Name: Weston Plugin API
Description: Header files for Weston plugin development
Version: 3.0.91

info gleamed from: $PREFIX/share/pkgconfig
-------------------------------------------
Name: Wayland Protocols
Description: Wayland protocol files
Version: 1.13

thebunnyrules avatar Mar 16 '18 18:03 thebunnyrules

Development here is essentially abandoned and doesn't support recent Raspbian releases

On other distros you may have better luck with this fork which successfully builds against newer Weston releases however you will find the Gtk styling is broken

ZanderBrown avatar Mar 16 '18 18:03 ZanderBrown

That's too bad, it look like a really nice alternative to Gnome and KDE wayland.

thebunnyrules avatar Mar 16 '18 18:03 thebunnyrules

Thanks for getting back to me so quickly. I'll give your suggestion a go.

thebunnyrules avatar Mar 16 '18 18:03 thebunnyrules