Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
thebunnyrules opened this issue Mar 16, 2018 · 3 comments

Comments

@thebunnyrules
Copy link

thebunnyrules commented Mar 16, 2018

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
@ZanderBrown
Copy link

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

@thebunnyrules
Copy link
Author

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

@thebunnyrules
Copy link
Author

thebunnyrules commented Mar 16, 2018

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants