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.
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