[Spice-devel] Questions about experimental Spice compositor rebase

Fabio Fantoni fabio.fantoni at m2r.biz
Sun Feb 28 14:36:58 UTC 2016



Il 27/02/2016 19:02, Fabio Fantoni ha scritto:
> Hi, long time ago I saw an interesting project for weston, the spice 
> compositor:
> https://github.com/ein-shved/compositor-spice
> It is now abandoned because the developer has been involved in another 
> project.
> As no other has continued it, despite my low knowledge and time I 
> would try to update, test and possibly improve it.
> I did a new branch with only 2 commit on top of latest upstream commit:
> https://github.com/Fantu/compositor-spice/commits/test
> and I tried to do a fast rebase on latest upstream commit (1.10) 
> instead of master (development branch) for decrease the risk 
> regression on first build/use tests:
> https://github.com/Fantu/compositor-spice/commits/rebase/spice-1.10
>
> Solving conflict about configure and makefile parts I have some doubts 
> (as also reported in the description of each commit):
> About first commit (Add Spice compositor) 
> https://github.com/Fantu/compositor-spice/commit/f589ab264e80d43fa0853770481b6ddcadf5505b
> - in configure.ac some changes seems strange, including LIBS and 
> CFLAGS that seems "double"
> - Makefile things seems fully changed, tried to adapt them and removed 
> src/spice/Makefile.am but I'm not sure if I did it correct.
> About the second commit (Monitor renderer) 
> https://github.com/Fantu/compositor-spice/commit/2632b8b8067e46ac69b5ad1bc2164d90ced5e19f
> - Makefile things seems fully changed, tried to adapt them but I'm not 
> sure if I did it correct.
> - Add -g to AM_CPPFLAGS in Makefile.am is really needed? not added for 
> now
> - add of "-Wl,--wrap=pixman_renderer_init" to LDFLAGS of many other 
> backend is really needed? not added for now, if needed is good 
> understand why to add it also to new things added since this start 
> commit done 3 years ago
> - src/compositor-rdp.c changes is really needed? if not I'll remove them
>
> I also searched documentation about api and/or internal weston 
> functions changed any versions but I not found them.
> I suppose that after 3 years many things are changed, can someone tell 
> me if there are any docs that can help me to found/replace the 
> removed/changed functions please?
> Any other advice that can help me is appreciated.

I did fast build tests, I fixed one my mistake in Makefile.am and after 
I had this error:
> src/spice/weston_basic_event_loop.h:27:31: fatal error: weston/compositor.h: No such file or directory
I fixed with this even if I'm not sure it is correct:
https://github.com/Fantu/compositor-spice/commit/92f8eeb50e593a489e23b5ddeb38edf0985603f2

Now I had these errors:
> src/spice/compositor-spice.c: In function 
> 'spice_output_start_repaint_loop':
> src/spice/compositor-spice.c:66:5: warning: 'start' is deprecated 
> [-Wdeprecated-declarations]
>      c->worker->start(c->worker);
>      ^
> In file included from /usr/include/spice-server/spice.h:26:0,
>                  from src/spice/compositor-spice.c:27:
> /usr/include/spice-server/spice-qxl.h:46:12: note: declared here
>      void (*start)(QXLWorker *worker) SPICE_GNUC_DEPRECATED;
>             ^
> src/spice/compositor-spice.c: In function 'on_wakeup':
> src/spice/compositor-spice.c:118:5: warning: 'wakeup' is deprecated 
> [-Wdeprecated-declarations]
>      c->worker->wakeup(c->worker);
>      ^
> In file included from /usr/include/spice-server/spice.h:26:0,
>                  from src/spice/compositor-spice.c:27:
> /usr/include/spice-server/spice-qxl.h:44:12: note: declared here
>      void (*wakeup)(QXLWorker *worker) SPICE_GNUC_DEPRECATED;
>             ^
> src/spice/compositor-spice.c:121:48: warning: passing argument 2 of 
> 'weston_output_finish_frame' makes pointer from integer without a cast 
> [-Wint-conversion]
>      weston_output_finish_frame (&output->base, msec);
>                                                 ^
> In file included from src/spice/compositor-spice.c:31:0:
> src/spice/../compositor.h:1227:1: note: expected 'const struct 
> timespec *' but argument is of type 'uint32_t {aka unsigned int}'
>  weston_output_finish_frame(struct weston_output *output,
>  ^
> src/spice/compositor-spice.c:121:5: error: too few arguments to 
> function 'weston_output_finish_frame'
>      weston_output_finish_frame (&output->base, msec);
>      ^
> In file included from src/spice/compositor-spice.c:31:0:
> src/spice/../compositor.h:1227:1: note: declared here
>  weston_output_finish_frame(struct weston_output *output,
>  ^
> src/spice/compositor-spice.c: In function 'spice_create_output':
> src/spice/compositor-spice.c:172:37: warning: assignment from 
> incompatible pointer type [-Wincompatible-pointer-types]
>      output->base.repaint            = spice_output_repaint;
>                                      ^
> src/spice/compositor-spice.c: In function 'spice_destroy':
> src/spice/compositor-spice.c:262:5: warning: 'stop' is deprecated 
> [-Wdeprecated-declarations]
>      c->worker->stop (c->worker);
>      ^
> In file included from /usr/include/spice-server/spice.h:26:0,
>                  from src/spice/compositor-spice.c:27:
> /usr/include/spice-server/spice-qxl.h:47:12: note: declared here
>      void (*stop)(QXLWorker *worker) SPICE_GNUC_DEPRECATED;
>             ^
> src/spice/compositor-spice.c: In function 'spice_compositor_create':
> src/spice/compositor-spice.c:296:9: warning: implicit declaration of 
> function 'weston_compositor_init' [-Wimplicit-function-declaration]
>      if (weston_compositor_init (&c->base, display, argc, argv, 
> config) < 0)
>          ^
> src/spice/compositor-spice.c:312:12: error: 'struct weston_compositor' 
> has no member named 'destroy'
>      c->base.destroy = spice_destroy;
>             ^
> src/spice/compositor-spice.c:313:12: error: 'struct weston_compositor' 
> has no member named 'restore'
>      c->base.restore = spice_restore;
>             ^
> src/spice/compositor-spice.c: At top level:
> src/spice/compositor-spice.c:340:1: error: conflicting types for 
> 'backend_init'
>  backend_init( struct wl_display *display, int *argc, char *argv[],
>  ^
> In file included from src/spice/compositor-spice.c:31:0:
> src/spice/../compositor.h:1665:1: note: previous declaration of 
> 'backend_init' was here
>  backend_init(struct weston_compositor *c,
>  ^
> src/spice/compositor-spice.c: In function 'backend_init':
> src/spice/compositor-spice.c:357:35: warning: implicit declaration of 
> function 'ARRAY_LENGTH' [-Wimplicit-function-declaration]
>      parse_options (spice_options, ARRAY_LENGTH (spice_options), argc, 
> argv);
>                                    ^
> Makefile:4811: recipe for target 
> 'src/spice/spice_backend_la-compositor-spice.lo' failed
About spice deprecated functions I did a fast search and I found 
spice-gtk api docs:
http://www.spice-space.org/spice-gtk.html
but not the spice-server one.
@Spice developers: can someone tell me where I can found needed 
spice-server api documentation to make update faster and easier as 
possible please?

@Weston developers: can someone tell me where I can found needed weston 
api documentation to make update faster and easier as possible please?



Thanks for any reply and sorry for my bad english.



More information about the Spice-devel mailing list