Merge ~paelzer/ubuntu/+source/spice:eoan-go-to-0.14.2 into ubuntu/+source/spice:ubuntu/eoan-devel
- Git
- lp:~paelzer/ubuntu/+source/spice
- eoan-go-to-0.14.2
- Merge into ubuntu/eoan-devel
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Christian Ehrhardt | ||||
Approved revision: | 321b446e5087604b5747294a2358397475e708ef | ||||
Merged at revision: | 321b446e5087604b5747294a2358397475e708ef | ||||
Proposed branch: | ~paelzer/ubuntu/+source/spice:eoan-go-to-0.14.2 | ||||
Merge into: | ubuntu/+source/spice:ubuntu/eoan-devel | ||||
Diff against target: |
74636 lines (+26621/-11371) 298 files modified
.tarball-version (+1/-1) .version (+1/-1) AUTHORS (+6/-0) ChangeLog (+3924/-19) INSTALL (+159/-161) Makefile.am (+5/-2) Makefile.in (+19/-10) NEWS (+53/-0) README (+4/-4) aclocal.m4 (+125/-105) build-aux/meson/check-spice-common (+5/-0) compile (+7/-6) config.guess (+297/-283) config.h.in (+10/-4) config.sub (+172/-162) configure (+400/-303) configure.ac (+22/-30) debian/changelog (+19/-0) debian/control (+1/-1) debian/libspice-server1.symbols (+2/-0) debian/patches/disable-failing-test-listen.patch (+46/-0) debian/patches/fix-test-qxl-parsing-on-ppc64el-and-armhf.patch (+45/-0) debian/patches/series (+2/-5) depcomp (+5/-5) dev/null (+0/-11) docs/Makefile.am (+2/-1) docs/Makefile.in (+15/-8) docs/manual/Makefile.am (+1/-0) docs/manual/Makefile.in (+13/-6) docs/manual/manual.chunked/apa.html (+2/-2) docs/manual/manual.chunked/ar01s05.html (+1/-1) docs/manual/manual.chunked/ar01s06.html (+23/-17) docs/manual/manual.chunked/ar01s07.html (+17/-28) docs/manual/manual.chunked/ar01s08.html (+28/-80) docs/manual/manual.chunked/ar01s09.html (+80/-15) docs/manual/manual.chunked/ar01s10.html (+15/-22) docs/manual/manual.chunked/ar01s11.html (+22/-19) docs/manual/manual.chunked/ar01s12.html (+19/-33) docs/manual/manual.chunked/ar01s13.html (+33/-17) docs/manual/manual.chunked/ar01s14.html (+17/-37) docs/manual/manual.chunked/ar01s15.html (+37/-37) docs/manual/manual.chunked/ar01s16.html (+41/-0) docs/manual/manual.chunked/index.html (+1/-1) docs/manual/manual.html (+117/-52) docs/manual/manual.txt (+64/-3) docs/manual/meson.build (+18/-0) docs/meson.build (+14/-0) docs/spice_style.html (+133/-40) docs/spice_style.txt (+80/-3) docs/spice_threading_model.html (+9/-5) docs/spice_threading_model.txt (+1/-1) install-sh (+32/-15) ltmain.sh (+4/-2) m4/spice-compile-warnings.m4 (+0/-3) meson.build (+226/-0) meson_options.txt (+51/-0) missing (+8/-8) server/Makefile.am (+19/-14) server/Makefile.in (+281/-129) server/agent-msg-filter.c (+9/-13) server/agent-msg-filter.h (+7/-0) server/cache-item.tmpl.c (+3/-3) server/char-device.c (+50/-49) server/char-device.h (+8/-4) server/common-graphics-channel.c (+17/-24) server/cursor-channel-client.c (+5/-9) server/cursor-channel-client.h (+8/-2) server/cursor-channel.c (+31/-15) server/cursor-channel.h (+5/-26) server/dcc-private.h (+2/-2) server/dcc-send.c (+39/-41) server/dcc.c (+62/-67) server/dcc.h (+9/-9) server/dispatcher.c (+69/-45) server/dispatcher.h (+16/-0) server/display-channel-private.h (+13/-13) server/display-channel.c (+176/-58) server/display-channel.h (+8/-15) server/display-limits.h (+4/-1) server/event-loop.c (+15/-5) server/glib-compat.h (+1/-1) server/glz-encode.tmpl.c (+7/-21) server/glz-encoder-dict.c (+2/-1) server/glz-encoder.c (+2/-2) server/gstreamer-encoder.c (+10/-10) server/image-cache.c (+3/-3) server/image-encoders.c (+24/-23) server/image-encoders.h (+1/-0) server/inputs-channel-client.c (+6/-10) server/inputs-channel-client.h (+1/-1) server/inputs-channel.c (+109/-59) server/inputs-channel.h (+1/-3) server/jpeg-encoder.c (+9/-21) server/jpeg-encoder.h (+1/-2) server/lz4-encoder.c (+7/-7) server/main-channel-client.c (+89/-49) server/main-channel-client.h (+4/-1) server/main-channel.c (+21/-26) server/main-channel.h (+4/-1) server/main-dispatcher.c (+18/-50) server/main-dispatcher.h (+1/-1) server/memslot.c (+16/-20) server/memslot.h (+2/-2) server/meson.build (+188/-0) server/mjpeg-encoder.c (+21/-19) server/net-utils.c (+8/-3) server/pixmap-cache.c (+3/-3) server/red-channel-capabilities.c (+0/-1) server/red-channel-client.c (+90/-99) server/red-channel-client.h (+3/-18) server/red-channel.c (+154/-60) server/red-channel.h (+34/-33) server/red-client.c (+4/-4) server/red-client.h (+1/-12) server/red-common.h (+8/-7) server/red-parse-qxl.c (+291/-145) server/red-parse-qxl.h (+29/-24) server/red-pipe-item.c (+1/-1) server/red-pipe-item.h (+6/-6) server/red-qxl.c (+95/-159) server/red-qxl.h (+3/-0) server/red-record-qxl.c (+25/-60) server/red-record-qxl.h (+9/-9) server/red-replay-qxl.c (+35/-38) server/red-stream-device.c (+822/-0) server/red-stream-device.h (+68/-0) server/red-stream.c (+301/-329) server/red-stream.h (+102/-0) server/red-worker.c (+83/-316) server/red-worker.h (+10/-48) server/reds-private.h (+3/-1) server/reds.c (+523/-415) server/reds.h (+7/-7) server/smartcard-channel-client.c (+14/-17) server/smartcard-channel-client.h (+1/-1) server/smartcard.c (+51/-75) server/smartcard.h (+1/-11) server/sound.c (+89/-39) server/spice-bitmap-utils.h (+2/-2) server/spice-core.h (+6/-0) server/spice-qxl.h (+58/-20) server/spice-server-enums.c (+1/-5) server/spice-server-enums.h (+1/-2) server/spice-server.syms (+5/-0) server/spice-version.h (+1/-1) server/spicevmc.c (+62/-114) server/stat-file.c (+3/-4) server/stream-channel.c (+616/-0) server/stream-channel.h (+84/-0) server/tests/Makefile.am (+14/-7) server/tests/Makefile.in (+312/-135) server/tests/basic-event-loop.c (+4/-2) server/tests/meson.build (+91/-0) server/tests/pki/ca-cert.pem (+16/-11) server/tests/pki/server-cert.pem (+14/-9) server/tests/pki/server-key.pem (+25/-13) server/tests/replay.c (+31/-23) server/tests/stat-test.c (+10/-8) server/tests/test-agent-msg-filter.c (+10/-0) server/tests/test-channel.c (+7/-18) server/tests/test-codecs-parsing.c (+12/-0) server/tests/test-display-base.c (+53/-59) server/tests/test-display-resolution-changes.c (+2/-2) server/tests/test-display-streaming.c (+7/-5) server/tests/test-display-width-stride.c (+2/-2) server/tests/test-glib-compat.h (+9/-0) server/tests/test-gst.c (+9/-9) server/tests/test-leaks.c (+103/-1) server/tests/test-listen.c (+382/-0) server/tests/test-playback.c (+6/-11) server/tests/test-qxl-parsing.c (+68/-31) server/tests/test-record.c (+100/-0) server/tests/test-sasl.c (+665/-0) server/tests/test-stat-file.c (+2/-2) server/tests/test-stream-device.c (+592/-0) server/tests/test-stream.c (+13/-12) server/tests/test-vdagent.c (+0/-5) server/tests/valgrind/glib.supp (+92/-1) server/tree.c (+4/-4) server/utils.c (+87/-7) server/utils.h (+8/-7) server/video-stream.c (+136/-117) server/video-stream.h (+41/-39) server/zlib-encoder.c (+1/-1) subprojects/spice-common/Makefile.am (+2/-1) subprojects/spice-common/Makefile.in (+15/-8) subprojects/spice-common/aclocal.m4 (+96/-110) subprojects/spice-common/build-aux/ar-lib (+2/-2) subprojects/spice-common/build-aux/compile (+7/-6) subprojects/spice-common/build-aux/config.guess (+297/-283) subprojects/spice-common/build-aux/config.sub (+172/-162) subprojects/spice-common/build-aux/depcomp (+5/-5) subprojects/spice-common/build-aux/install-sh (+32/-15) subprojects/spice-common/build-aux/ltmain.sh (+4/-2) subprojects/spice-common/build-aux/missing (+8/-8) subprojects/spice-common/build-aux/test-driver (+5/-5) subprojects/spice-common/common/Makefile.am (+30/-35) subprojects/spice-common/common/Makefile.in (+179/-142) subprojects/spice-common/common/backtrace.c (+4/-2) subprojects/spice-common/common/backtrace.h (+3/-3) subprojects/spice-common/common/canvas_base.c (+81/-127) subprojects/spice-common/common/canvas_base.h (+4/-10) subprojects/spice-common/common/canvas_utils.c (+8/-144) subprojects/spice-common/common/canvas_utils.h (+2/-28) subprojects/spice-common/common/client_marshallers.h (+3/-8) subprojects/spice-common/common/demarshallers.h (+10/-7) subprojects/spice-common/common/draw.h (+3/-3) subprojects/spice-common/common/generated_client_demarshallers.c (+853/-1221) subprojects/spice-common/common/generated_client_marshallers.c (+12/-186) subprojects/spice-common/common/generated_client_marshallers.h (+5/-18) subprojects/spice-common/common/generated_messages.h (+304/-472) subprojects/spice-common/common/generated_server_demarshallers.c (+263/-760) subprojects/spice-common/common/generated_server_marshallers.c (+50/-139) subprojects/spice-common/common/generated_server_marshallers.h (+1/-9) subprojects/spice-common/common/lines.c (+1/-1) subprojects/spice-common/common/lines.h (+3/-3) subprojects/spice-common/common/log.c (+73/-0) subprojects/spice-common/common/log.h (+16/-10) subprojects/spice-common/common/lz.c (+48/-29) subprojects/spice-common/common/lz.h (+4/-3) subprojects/spice-common/common/lz_common.h (+3/-3) subprojects/spice-common/common/lz_compress_tmpl.c (+5/-17) subprojects/spice-common/common/lz_config.h (+3/-3) subprojects/spice-common/common/lz_decompress_tmpl.c (+9/-16) subprojects/spice-common/common/macros.h (+11/-3) subprojects/spice-common/common/marshaller.c (+64/-30) subprojects/spice-common/common/marshaller.h (+5/-5) subprojects/spice-common/common/mem.c (+2/-3) subprojects/spice-common/common/mem.h (+2/-6) subprojects/spice-common/common/meson.build (+182/-0) subprojects/spice-common/common/messages.h (+82/-0) subprojects/spice-common/common/pixman_utils.c (+2/-5) subprojects/spice-common/common/pixman_utils.h (+3/-3) subprojects/spice-common/common/quic.c (+58/-347) subprojects/spice-common/common/quic.h (+3/-2) subprojects/spice-common/common/quic_config.h (+2/-2) subprojects/spice-common/common/quic_family_tmpl.c (+5/-5) subprojects/spice-common/common/quic_tmpl.c (+668/-0) subprojects/spice-common/common/recorder.h (+74/-0) subprojects/spice-common/common/recorder/recorder.c (+2472/-0) subprojects/spice-common/common/recorder/recorder.h (+1034/-0) subprojects/spice-common/common/recorder/recorder_ring.c (+286/-0) subprojects/spice-common/common/recorder/recorder_ring.h (+349/-0) subprojects/spice-common/common/rect.h (+2/-2) subprojects/spice-common/common/region.c (+0/-378) subprojects/spice-common/common/region.h (+2/-2) subprojects/spice-common/common/ring.h (+8/-19) subprojects/spice-common/common/rop3.c (+0/-1) subprojects/spice-common/common/rop3.h (+2/-2) subprojects/spice-common/common/snd_codec.c (+9/-9) subprojects/spice-common/common/snd_codec.h (+2/-2) subprojects/spice-common/common/ssl_verify.c (+6/-5) subprojects/spice-common/common/ssl_verify.h (+3/-3) subprojects/spice-common/common/sw_canvas.c (+0/-29) subprojects/spice-common/common/sw_canvas.h (+2/-13) subprojects/spice-common/common/utils.c (+68/-0) subprojects/spice-common/common/utils.h (+13/-10) subprojects/spice-common/common/verify.h (+13/-9) subprojects/spice-common/config.h.in (+21/-16) subprojects/spice-common/configure (+513/-262) subprojects/spice-common/configure.ac (+10/-9) subprojects/spice-common/docs/Makefile.am (+27/-0) subprojects/spice-common/docs/Makefile.in (+25/-11) subprojects/spice-common/docs/meson.build (+12/-0) subprojects/spice-common/docs/spice_protocol.txt (+38/-31) subprojects/spice-common/docs/spice_uri_scheme.txt (+131/-0) subprojects/spice-common/m4/spice-deps.m4 (+80/-26) subprojects/spice-common/meson.build (+175/-0) subprojects/spice-common/meson_options.txt (+48/-0) subprojects/spice-common/python_modules/Makefile.am (+2/-2) subprojects/spice-common/python_modules/Makefile.in (+12/-7) subprojects/spice-common/python_modules/codegen.py (+1/-1) subprojects/spice-common/python_modules/demarshal.py (+71/-106) subprojects/spice-common/python_modules/marshal.py (+6/-19) subprojects/spice-common/python_modules/meson.build (+6/-0) subprojects/spice-common/python_modules/ptypes.py (+130/-132) subprojects/spice-common/spice.proto (+458/-534) subprojects/spice-common/spice_codegen.py (+88/-30) subprojects/spice-common/tests/Makefile.am (+79/-9) subprojects/spice-common/tests/Makefile.in (+330/-50) subprojects/spice-common/tests/generated_test_demarshallers.c (+544/-0) subprojects/spice-common/tests/generated_test_enums.h (+38/-0) subprojects/spice-common/tests/generated_test_marshallers.c (+50/-1) subprojects/spice-common/tests/generated_test_marshallers.h (+4/-0) subprojects/spice-common/tests/meson.build (+48/-0) subprojects/spice-common/tests/test-dummy-recorder.c (+29/-11) subprojects/spice-common/tests/test-logging.c (+11/-111) subprojects/spice-common/tests/test-marshallers.c (+164/-0) subprojects/spice-common/tests/test-marshallers.h (+31/-0) subprojects/spice-common/tests/test-marshallers.proto (+21/-0) subprojects/spice-common/tests/test-quic.c (+256/-0) subprojects/spice-common/tests/test-region.c (+418/-0) subprojects/spice-common/tests/test-ssl-verify.c (+135/-0) test-driver (+5/-5) tools/Makefile.am (+4/-0) tools/Makefile.in (+30/-13) tools/meson.build (+4/-0) tools/reds_stat.c (+8/-8) |
||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Christian Ehrhardt (community) | Approve | ||
Rafael David Tinoco (community) | Needs Fixing | ||
Canonical Server | Pending | ||
git-ubuntu developers | Pending | ||
Review via email: mp+369222@code.launchpad.net |
Commit message
Description of the change
Christian Ehrhardt (paelzer) wrote : | # |
Christian Ehrhardt (paelzer) wrote : | # |
Dependency versions are:
qemu*
libspice-server1 (>= 0.13.1)
xserver-
libspice-server1 (>= 0.13.2)
Does the rebuild pick up anything newer?
=> No it stays at this dependency which we already have fulfilled.
No need for explicit rebuilds.
Christian Ehrhardt (paelzer) wrote : | # |
I checked rebuilds (in he PPA) of the reverse dependencies to be sure.
=> https:/
The one thing we need is spice-gtk which would become a FTBFS for a rebuild due to changes in the headers.
So overall we need:
1. spice-protocol
2. spice
3. spice-gtk
Note: I have imported spice-gtk into my own trees to create MPs for now.
Christian Ehrhardt (paelzer) wrote : | # |
Did some tests on the PPA which pulled in the set of:
Get:1 http://
spice-client-
libspice-
libspice-
gir1.2-
gir1.2-
libspice-server1 amd64 0.14.2-
Testing connection to a local qemu with (and some I/O on the console)
- virt-manager
- virt-viewer
- spice-client-gtk (spice)
All were ok.
Further I tried to install a desktop in guest to have qxl drivers from the guest running.
Note: I stripped the vnc config off a guest to see if all can connect with only spice using the new libs. That all worked well in my tests.
Rafael David Tinoco (rafaeldtinoco) wrote : | # |
Looks like Build-Depends for this package should have:
libspice-
orelse you might get:
----
configure:11599: $PKG_CONFIG --exists --print-errors "spice-protocol >= $SPICE_
Package spice-protocol was not found in the pkg-config search path.
Perhaps you should add the directory containing `spice-protocol.pc'
to the PKG_CONFIG_PATH environment variable
No package 'spice-protocol' found
configure:11602: $? = 1
configure:11616: result: no
No package 'spice-protocol' found
configure:11632: error: Package requirements (spice-protocol >= 0.14.0) were not met:
No package 'spice-protocol' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables SPICE_PROTOCOL_
and SPICE_PROTOCOL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
----
even after satisfying build-dep needs, during dh_autoreconf phase.
####
After fixing it, when trying to satisfy the needs (without having 0.14.0 in the archive):
----
The following packages have unmet dependencies:
builddeps:. : Depends: libspice-
E: Unable to correct problems, you have held broken packages.
----
and after installing it manually:
----
$ apt-get build-dep .
Note, using directory '.' to get the build dependencies
Reading package lists... Done
Building dependency tree
Reading state information... Done
Starting pkgProblemResolver with broken count: 0
Starting 2 pkgProblemResolver with broken count: 0
Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
----
And dh_autoreconf phase works correctly.
Rafael David Tinoco (rafaeldtinoco) wrote : | # |
* this is super minor
I asked for some help of @ahasenack to identify where the test-listen failure was coming from. My initial doubt was if, before the merge was done, the automated tests were running in a jenkins or somewhere. He explained to me about dh_auto_test and I realized that Makefile "check" would dive into test execution from server/tests directory during compilation time.
After that, it was clear to me what you mentioned, but, during this conversation we realized that there was an upstream commit removing the "--enable-
commit 6517ea5cbb07b14
Author: Frediano Ziglio <email address hidden>
Date: Sun Sep 3 07:08:04 2017
test-
There's no need to not compile this feature, it just enable
a parameters which must be passed in order to change test
behaviour.
Signed-off-by: Frediano Ziglio <email address hidden>
Acked-by: Christophe Fergeau <email address hidden>
so, inside file debian/
"--enable-
can be dropped (but I guess this would come have to come from Debian as well, and it is really tiny).
Rafael David Tinoco (rafaeldtinoco) wrote : | # |
Despite previous commits, I have compiled the source package and tested against EOAN qemu-kvm and it worked well, including the other (to be reviewed together) package spice-client-gtk.
I'm +1 after, at least, the build-depends fix.
Christian Ehrhardt (paelzer) wrote : | # |
ack on the build-depends - added
Christian Ehrhardt (paelzer) wrote : | # |
FYI: To build against a PPA (for cases like that needing multiple packages together) I recommend (if you use sbuild) something like:
DEB_BUILD_OPTIONS=3 sbuild -Adcosmic-amd64 --extra-
Christian Ehrhardt (paelzer) wrote : | # |
re-added the canonical-server slot
Christian Ehrhardt (paelzer) wrote : | # |
requested changes done, thanks for catching the Bdep
Settign to approved
Christian Ehrhardt (paelzer) : | # |
Preview Diff
1 | diff --git a/.tarball-version b/.tarball-version |
2 | index a803cc2..e867cc2 100644 |
3 | --- a/.tarball-version |
4 | +++ b/.tarball-version |
5 | @@ -1 +1 @@ |
6 | -0.14.0 |
7 | +0.14.2 |
8 | diff --git a/.version b/.version |
9 | index bdfb04f..e867cc2 100644 |
10 | --- a/.version |
11 | +++ b/.version |
12 | @@ -1 +1 @@ |
13 | -0.13.91 |
14 | +0.14.2 |
15 | diff --git a/AUTHORS b/AUTHORS |
16 | index 99f6c18..43bdf2a 100644 |
17 | --- a/AUTHORS |
18 | +++ b/AUTHORS |
19 | @@ -27,6 +27,7 @@ Patches also contributed by |
20 | Axel Lin <axel.lin@ingics.com> |
21 | 소병철 <byungchul.so@samsung.com> |
22 | Cédric Bosdonnat <cbosdonnat@suse.com> |
23 | + Changqing Li <changqing.li@windriver.com> |
24 | Christian Ruppert <idl0r@qasl.de> |
25 | Christophe de Dinechin <dinechin@redhat.com> |
26 | Cole Robinson <crobinso@redhat.com> |
27 | @@ -47,6 +48,7 @@ Patches also contributed by |
28 | Jürg Billeter <j@bitron.ch> |
29 | Li Zhijian <lizhijian@cn.fujitsu.com> |
30 | Liang Guo <bluestonechina@gmail.com> |
31 | + Lukáš Hrázký <lhrazky@redhat.com> |
32 | Lukas Venhoda <lvenhoda@redhat.com> |
33 | Michal Privoznik <mprivozn@redhat.com> |
34 | Michael Tokarev <mjt@tls.msk.ru> |
35 | @@ -64,5 +66,9 @@ Patches also contributed by |
36 | Wang Qiang <wangqiang.hunan@gmail.com> |
37 | Yann E. MORIN <yann.morin.1998@free.fr> |
38 | Zeeshan Ali (Khattak) <zeeshanak@gnome.org> |
39 | + Douglas Paul <doug@bogon.ca> |
40 | + 谢 昆明 <kunming.xie@hotmail.com> |
41 | + Benjamin Tissoires <benjamin.tissoires@redhat.com> |
42 | + Olivier Fourdan <ofourdan@redhat.com> |
43 | |
44 | ....send patches to get your name here... |
45 | diff --git a/ChangeLog b/ChangeLog |
46 | index 8c26339..5e6bd43 100644 |
47 | --- a/ChangeLog |
48 | +++ b/ChangeLog |
49 | @@ -1,3 +1,3906 @@ |
50 | +2019-04-30 Frediano Ziglio <fziglio@redhat.com> |
51 | + |
52 | + build: Prepare for 0.14.2 release |
53 | + Acked-by: Victor Toso <victortoso@redhat.com> |
54 | + |
55 | +2019-04-30 Benjamin Tissoires <benjamin.tissoires@redhat.com> |
56 | + |
57 | + inputs-channel: Attempt to have a reliable led state |
58 | + We can not consider the qemu led state to be reliable. It by default has |
59 | + 50ms of delay, so if we want to achieve something reliable, this won't do. |
60 | + |
61 | + We need to keep our own internal state, and consider it as reliable. |
62 | + We update it immediately after receiving the key presses, meaning that this |
63 | + is now the future state of the guest. |
64 | + |
65 | + When we receive a keymap event, we check against this 'ideal' state and |
66 | + only update the guest if we 'counted' that it won't have the correct state. |
67 | + |
68 | + When the guest notifies its change, the modifiers_watch is supposed to |
69 | + fix any wrong state. |
70 | + |
71 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
72 | + |
73 | +2019-04-26 Frediano Ziglio <fziglio@redhat.com> |
74 | + |
75 | + Update spice-protocol version |
76 | + We require version after 0.12.15 which was released as 0.14.0. |
77 | + Check against a valid released instead of checking for a non existing one. |
78 | + |
79 | + Acked-by: Victor Toso <victortoso@redhat.com> |
80 | + |
81 | + meson: Bump libcacard requirement to 2.5.1 |
82 | + This had already been done for Meson in commit |
83 | + afb2ec312bde342b8538451c6ae15a7f3bdd494f. |
84 | + |
85 | + Acked-by: Victor Toso <victortoso@redhat.com> |
86 | + |
87 | +2019-04-11 Francois Gouget <fgouget@codeweavers.com> |
88 | + |
89 | + video-stream: use the dcc local variable |
90 | + In update_client_playback_delay() |
91 | + |
92 | + Acked-by: Victor Toso <victortoso@redhat.com> |
93 | + |
94 | +2019-04-05 Frediano Ziglio <fziglio@redhat.com> |
95 | + |
96 | + Fix meson build importing spice-common fix |
97 | + This brings in the following changes: |
98 | + |
99 | + Eduardo Lima (Etrunko) (1): |
100 | + meson: Make targets list store dictionaries instead of lists |
101 | + |
102 | + Frediano Ziglio (2): |
103 | + meson: Fix dependency of generated files |
104 | + meson: Do not build generated files twice |
105 | + |
106 | + Acked-by: Victor Toso <victortoso@redhat.com> |
107 | + |
108 | +2019-04-03 Frediano Ziglio <fziglio@redhat.com> |
109 | + |
110 | + Update spice-common submodule |
111 | + This brings in the following changes: |
112 | + |
113 | + Christophe Fergeau (8): |
114 | + canvas_base: Fix variable shadowing warning |
115 | + backtrace: Add missing include |
116 | + lz: Don't try to print uninitialized variable |
117 | + build: Add missing G_GNUC_PRINTF annotations |
118 | + build: Update verify.h to latest version |
119 | + test-marshallers: Fix header guard |
120 | + quic: Fix QUIC_VERSION definition |
121 | + log: Let gcc know about the logging macros which abort |
122 | + |
123 | + Frediano Ziglio (13): |
124 | + codegen: Rename --prefix parameter to --suffix |
125 | + ci: Remove dependencies from copr build |
126 | + build: Remove snd_codec.h from EXTRA_DIST |
127 | + test-ssl-verify: Improve subject_to_x509_name coverage |
128 | + meson: Remove some useless checks |
129 | + codegen: Factor out a function to write output file |
130 | + codegen: Generate headers while generating code |
131 | + codegen: Allows to generate C declarations automatically |
132 | + Allow to generate C declarations for spice.proto |
133 | + Generate automatically most C message declarations |
134 | + recorder: Update |
135 | + build: Add new check for recorder library |
136 | + proto: Fix typo in message name |
137 | + |
138 | + Acked-by: Victor Toso <victortoso@redhat.com> |
139 | + |
140 | +2019-03-29 Frediano Ziglio <fziglio@redhat.com> |
141 | + |
142 | + red-worker: Remove unused definitions |
143 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
144 | + |
145 | + red-worker: Use bool for driver_cap_monitors_config |
146 | + Easier to understand. |
147 | + |
148 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
149 | + |
150 | + red-channel: Small comment on "core" field |
151 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
152 | + |
153 | +2019-03-28 Frediano Ziglio <fziglio@redhat.com> |
154 | + |
155 | + display-channel: Inline red_migrate_display function |
156 | + The only caller only called that function. |
157 | + |
158 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
159 | + |
160 | + Move image_compression field from RedWorker to DisplayChannel |
161 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
162 | + |
163 | + Check image compression value earlier |
164 | + Do not check it after assigning to reds->config->image_compression, |
165 | + check the value as soon as possible. |
166 | + This prevent potential invalid settings. |
167 | + |
168 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
169 | + |
170 | + red-worker: Remove only assigned fields |
171 | + DisplayChannelClient get them directly from reds (they are changed |
172 | + only during initialisation so they can be read freely from any |
173 | + thread). |
174 | + |
175 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
176 | + |
177 | +2019-03-28 Jonathon Jongsma <jjongsma@redhat.com> |
178 | + |
179 | + Make channel client callbacks virtual functions |
180 | + Rather than having an API to register client callbacks for each channel |
181 | + type, make them vfuncs. |
182 | + |
183 | + Since the client callbacks are registered identically for each channel |
184 | + of the same type, it doesn't make sense for to require these to be |
185 | + registered separately for each object. It's cleaner to have these be |
186 | + per-class properties, so they've been converted to virtual functions. |
187 | + |
188 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
189 | + |
190 | +2019-03-28 Frediano Ziglio <fziglio@redhat.com> |
191 | + |
192 | + Check running state in red_qxl_set_client_capabilities |
193 | + No reasons to expose red_qxl_is_running, this was used to not |
194 | + send capability is the state was not running. |
195 | + |
196 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
197 | + |
198 | + Move DisplayChannel callbacks from RedWorker to DisplayChannel |
199 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
200 | + |
201 | +2019-03-28 Jonathon Jongsma <jjongsma@redhat.com> |
202 | + |
203 | + Save running property in QXLState |
204 | + This is a preparatory patch that states the running property in QXLState |
205 | + and provides accessor functions that allows us to check whether the QXL |
206 | + device is running from different threads. |
207 | + |
208 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
209 | + |
210 | +2019-03-28 Frediano Ziglio <fziglio@redhat.com> |
211 | + |
212 | + Move thread/dispatching handling to RedChannel |
213 | + Currently channel threading/handling is spread between RedQxl, |
214 | + RedWorker and RedChannel. |
215 | + Move more to RedChannel simplify RedQxl and RedWorker. |
216 | + |
217 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
218 | + |
219 | + dispatcher: Allows to manage messages without registering them |
220 | + The only way to add new message to Dispatcher was to register |
221 | + using a number. These numbers corresponded to array indexes. |
222 | + This is good if the list of messages is allocated statically |
223 | + and contiguously, on the contrary this method is not that |
224 | + flexible. |
225 | + Writing a header of 4 or 16 bytes using system call does not |
226 | + make much difference so pass all message information in the |
227 | + payload header. |
228 | + A new dispatcher_send_message_custom function allows to send |
229 | + a message passing all message information, including the |
230 | + pointer to the handler. |
231 | + This will allow for instance a Dispatcher associate to a given |
232 | + thread to be reused by different classes. |
233 | + |
234 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
235 | + |
236 | +2019-03-27 Frediano Ziglio <fziglio@redhat.com> |
237 | + |
238 | + docs: Fix typo |
239 | + Acked-by: Uri Lublin <uril@redhat.com> |
240 | + |
241 | +2019-03-26 Frediano Ziglio <fziglio@redhat.com> |
242 | + |
243 | + build: Clean a generated file |
244 | + Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> |
245 | + |
246 | +2019-03-22 谢 昆明 <kunming.xie@hotmail.com> |
247 | + |
248 | + Remove a duplicated line |
249 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
250 | + |
251 | +2019-03-21 Francois Gouget <fgouget@codeweavers.com> |
252 | + |
253 | + Consistently check if drm_dma_buf_fd is greater or lower than zero |
254 | + Based on a patch by Frediano Ziglio. |
255 | + |
256 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
257 | + |
258 | + dcc: Remove a redundant NULL pointer check in dcc_create_surface() |
259 | + dcc_create_surface() already returns immediately if dcc is NULL. |
260 | + |
261 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
262 | + |
263 | +2019-03-21 Christophe Fergeau <cfergeau@redhat.com> |
264 | + |
265 | + worker: Fix potential sprintf overflow |
266 | + If worker->qxl->id is bigger than 0x7ffffff (in other words, it's a |
267 | + negative signed int) then |
268 | + printf(worker_str, "display[%d]", worker->qxl->id); |
269 | + will need: |
270 | + |
271 | + "display[]" -> 9 bytes |
272 | + %d -> 11 bytes |
273 | + |
274 | + The trailing \0 will thus overflow our 20 bytes destination. |
275 | + As QXLInstance::id should be an unsigned int, this commit changes the |
276 | + format string to use %u. This also switches to snprintf. |
277 | + |
278 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
279 | + |
280 | +2019-03-21 Frediano Ziglio <fziglio@redhat.com> |
281 | + |
282 | + red-worker: Use mnemonic for statistic buffer |
283 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
284 | + |
285 | +2019-03-20 Frediano Ziglio <fziglio@redhat.com> |
286 | + |
287 | + main-dispatcher: Use reds as opaque for dispatcher |
288 | + No reason to pass through MainDispatcher, the purpose of |
289 | + MainDispatcher is to call reds functions from the right thread. |
290 | + |
291 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
292 | + |
293 | + main-dispatcher: Inline main_dispatcher_self_handle_channel_event |
294 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
295 | + |
296 | + dispatcher: Use NULL for pointer check |
297 | + handler is a pointer, check for NULL, not 0. |
298 | + |
299 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
300 | + |
301 | + reds: Check we don't register a channel twice in reds_register_channel |
302 | + To avoid potential regressions, check it only if extra checks are |
303 | + enabled. |
304 | + This allows to check previous "Move channel registration to constructed |
305 | + vfunc" commit. |
306 | + |
307 | + Acked-by: Snir Sheriber <ssheribe@redhat.com> |
308 | + |
309 | +2019-03-19 Frediano Ziglio <fziglio@redhat.com> |
310 | + |
311 | + test-stream-device: Remove interface before next loop |
312 | + We should not reuse the same interface twice as doing so will |
313 | + cause dangling pointers. |
314 | + Unregister it at every iteration. |
315 | + |
316 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
317 | + |
318 | +2019-03-18 Frediano Ziglio <fziglio@redhat.com> |
319 | + |
320 | + Remove support for 64 bit pointers on protocol |
321 | + Import "codegen: Remove support for --ptrsize" change from spice-common |
322 | + and update code accordingly. |
323 | + |
324 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
325 | + |
326 | + Update spice-common submodule |
327 | + This brings in the following changes: |
328 | + |
329 | + Frediano Ziglio (11): |
330 | + codegen: Document ptr_array attribute |
331 | + codegen: Use a better type for pointer converted to integer |
332 | + codegen: Reduce indentation |
333 | + codegen: Fix c_type result for TypeAlias |
334 | + codegen: Check wrong attribute |
335 | + codegen: Add a test for attribute combination |
336 | + mem: Fix compile error if alignment-checks option is used |
337 | + log: Remove useless includes |
338 | + proto: Remove obsolete TunnelChannel |
339 | + protocol: Add a dummy TunnelChannel |
340 | + messages: Remove fields not used by the protocol |
341 | + |
342 | + Marc-André Lureau (1): |
343 | + docs: add spice URI scheme |
344 | + |
345 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
346 | + |
347 | + syntax-check: Add missing contributors names to AUTHORS |
348 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
349 | + |
350 | +2019-03-18 Douglas Paul <doug@bogon.ca> |
351 | + |
352 | + video-stream: prevent crash on stream reattach |
353 | + I experienced some crashes with qemu 3.1.0 compiled with libspice-server |
354 | + 0.14.0 on Gentoo. |
355 | + |
356 | + The problem reproduced reliably with a guest running Ubuntu 18.04.2 LTS. |
357 | + If I connect a viewer at system startup, I would get a crash just after |
358 | + the fade-in of the login prompt in GDM. |
359 | + |
360 | + Interestingly, I usually was unable to reproduce the issue if I waited |
361 | + to connect until after the greeter was fully displayed. |
362 | + |
363 | + The patch I used to correct the issue for me applies to the master |
364 | + branch cleanly, so I suspect the problem may still exist. |
365 | + |
366 | + The only other references to this issue I could find were two abrt |
367 | + reports in CentOS: |
368 | + https://bugs.centos.org/view.php?id=15171 |
369 | + https://bugs.centos.org/view.php?id=15441 |
370 | + |
371 | + I'm not sure if the agent->video_encoder is supposed to be guaranteed to |
372 | + exist when this function is called. |
373 | + |
374 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
375 | + |
376 | +2019-03-15 Jonathon Jongsma <jjongsma@redhat.com> |
377 | + |
378 | + Move channel registration to constructed vfunc |
379 | + For the Display Channel and the Cursor channel, move the call to |
380 | + reds_register_channel() to the _constructed() vfunc rather than calling |
381 | + it explicitly from RedWorker. This matches what other channels do. |
382 | + |
383 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
384 | + |
385 | +2019-03-11 Victor Toso <me@victortoso.com> |
386 | + |
387 | + display-channel: monitors config debug: add head number |
388 | + The difference is subtle but compared to what client receives, this |
389 | + could help identify values set to the wrong head, e.g: |
390 | + |
391 | + First we received: |
392 | + | display-channel.c:180:monitors_config_debug: monitors config count:2 max:4 |
393 | + | display-channel.c:184:monitors_config_debug: +0+0 1015x805 |
394 | + | display-channel.c:184:monitors_config_debug: +1015+0 1024x740 |
395 | + |
396 | + And then: |
397 | + | display-channel.c:180:monitors_config_debug: monitors config count:3 max:4 |
398 | + | display-channel.c:184:monitors_config_debug: +0+0 1015x805 |
399 | + | display-channel.c:184:monitors_config_debug: +0+0 0x0 |
400 | + | display-channel.c:184:monitors_config_debug: +1015+0 1024x740 |
401 | + |
402 | + In the first debug it would be helpful to have "head 0" and "head 1", |
403 | + to point out the temporary error in monitor's config message. |
404 | + |
405 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
406 | + |
407 | +2019-03-06 Jonathon Jongsma <jjongsma@redhat.com> |
408 | + |
409 | + Switch some boolean fields to 'bool' type |
410 | + For coding style consistency, use 'bool' when we want to represent a |
411 | + boolean value. |
412 | + |
413 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
414 | + |
415 | + Only send device display info to supported agents |
416 | + Only send the graphics device display info to agents that advertise the |
417 | + VD_AGENT_CAP_GRAPHICS_DEVICE_INFO capability |
418 | + |
419 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
420 | + |
421 | + Refactor agent_adjust_capabilities() function |
422 | + Make this a RedsState member function rather than a standalone function. |
423 | + This means that we simply pass RedsState* as an argument rather than the |
424 | + internal member variables of RedsState. This enables the following |
425 | + commit which handles the VD_AGENT_CAP_GRAPHICS_DEVICE_INFO capability to |
426 | + avoid sending graphics device info to agents that do not support it. |
427 | + |
428 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
429 | + |
430 | +2019-03-06 Frediano Ziglio <fziglio@redhat.com> |
431 | + |
432 | + test-stat: Adjust delay checks |
433 | + usleep under Windows does not seem to have the required precision. |
434 | + Use milliseconds and adjust check times according. |
435 | + |
436 | + Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> |
437 | + |
438 | +2019-03-05 Frediano Ziglio <fziglio@redhat.com> |
439 | + |
440 | + Use proper format strings for spice_log |
441 | + Formatting string should be compatible with GLib. |
442 | + GLib uses formatting types compatible with GNU. |
443 | + For Linux this is not an issue as both systems (like a printf) and |
444 | + GLib one uses the same formatting type. However on Windows they |
445 | + differs potentially causing issues. |
446 | + This is also make worse as GLib 2.58 changed format attribute from |
447 | + __printf__ to gnu_printf (Microsoft compatibility formats like %I64d |
448 | + are still supported but you'll get warnings using GCC/Clang |
449 | + compilers). |
450 | + |
451 | + Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> |
452 | + |
453 | +2019-02-23 Frediano Ziglio <fziglio@redhat.com> |
454 | + |
455 | + red-pipe-item: Removed some not necessary headers inclusions |
456 | + RedPipeItem is not using the Ring structures anymore. |
457 | + Also is not using GLib functionality. |
458 | + Just include base headers. |
459 | + |
460 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
461 | + |
462 | +2019-02-14 Frediano Ziglio <fziglio@redhat.com> |
463 | + |
464 | + reds: Check QXL ID registering interface |
465 | + Avoid to register multiple interface with the same ID. |
466 | + This would result in issues as 2 channels would have the same |
467 | + (channel_type, channel_id) which must be unique. |
468 | + Qemu always allocates QXL interface with IDs starting from 0. |
469 | + |
470 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
471 | + |
472 | + reds: Reuse agent_dev local variable |
473 | + The field is only assigned in do_spice_init, surely won't change |
474 | + in the meanwhile. |
475 | + |
476 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
477 | + |
478 | + reds: Use proper enumeration for read_state field |
479 | + Allows the compiler to catch some additional errors. |
480 | + |
481 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
482 | + |
483 | +2019-02-13 Eduardo Lima (Etrunko) <etrunko@redhat.com> |
484 | + |
485 | + meson: switch smartcard option to auto feature |
486 | + Make it compatible with spice-common. |
487 | + |
488 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
489 | + |
490 | + meson: Bump libcacard requirement to 2.5.1 |
491 | + This had already been done for autotools in spice-common commit |
492 | + 924f47a653bd87fbd50229ee34b58d7b9a3f1ec8. |
493 | + |
494 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
495 | + |
496 | + meson: Use gnu_symbol_visibility keyword introduced in meson 0.48 |
497 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
498 | + |
499 | +2019-02-12 Frediano Ziglio <fziglio@redhat.com> |
500 | + |
501 | + Remove core parameter from main_dispatcher_new |
502 | + This was added in bd8771adbcf3ff34d14333cf874191e8d105f612. |
503 | + There's no reason to not use reds function instead. |
504 | + MainDispatcher needs to listen in the main thread that is the |
505 | + one provided by reds_core_* functions. |
506 | + |
507 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
508 | + |
509 | + test-stream-device: Check monitor ID messages |
510 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
511 | + |
512 | + reds: Factor out a function to marshal VDAgentGraphicsDeviceInfo message |
513 | + Instead of scanning the monitor twice (one to compute the size |
514 | + and another to build the message) use a single function to |
515 | + marshal the message. |
516 | + This also fixes big endian machines (which are not supported). |
517 | + Marshal function is exported to make easier to test (see following |
518 | + patch). |
519 | + |
520 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
521 | + |
522 | + agent-msg-filter: Simplify code |
523 | + Most of the time result is set to AGENT_MSG_FILTER_OK, set at |
524 | + the beginning and change if necessary. |
525 | + |
526 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
527 | + |
528 | +2019-02-11 Frediano Ziglio <fziglio@redhat.com> |
529 | + |
530 | + reds: Fix typo in comment |
531 | + |
532 | + reds: Fix typos in comments |
533 | + Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> |
534 | + |
535 | + agent-msg-filter: Add some comments to AgentMsgFilter structure |
536 | + Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> |
537 | + |
538 | + smartcard-channel-client: Update usage of GObject private structures |
539 | + This finished the work of 90ff154b36b3ab80350cb4a4d391db330bed2a76 |
540 | + (cfr "Update usage of GObject private structures"). |
541 | + Removes last call to g_type_class_add_private. |
542 | + |
543 | + Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> |
544 | + |
545 | +2019-02-11 Christophe Fergeau <cfergeau@redhat.com> |
546 | + |
547 | + smartcard: Improve on_message_from_device readability |
548 | + This removes a not really useful switch/case, and changes the function |
549 | + to exit early on error cases, rather than exiting early in the nominal |
550 | + case. |
551 | + |
552 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
553 | + |
554 | + smartcard: Rework smartcard_get_vsc_msg_item a bit |
555 | + This renames the method to smartcard_new_vsc_msg_item as this creates a |
556 | + new object. This also removes the creation of a temporary VHeader which |
557 | + is then going to be duplicated. |
558 | + |
559 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
560 | + |
561 | + smartcard: Remove redundant test in smartcard_char_device_on_message_from_device() |
562 | + The function returns NULL if vheader->type is VSC_Init so no need to |
563 | + check it a second time. |
564 | + |
565 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
566 | + |
567 | + smartcard: Remove unused smartcard_get_vsc_msg_item argument |
568 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
569 | + |
570 | +2019-02-08 Christophe Fergeau <cfergeau@redhat.com> |
571 | + |
572 | + char-device: Make send_tokens_to_client() optional |
573 | + Only RedCharDeviceVDIPortClass implements this vfunc, rather than |
574 | + forcing every classes deriving from RedCharDeviceClass to implement it, |
575 | + red_char_device_send_tokens_to_client() can deal with it. |
576 | + |
577 | + Acked-by: Uri Lublin <uril@redhat.com> |
578 | + |
579 | + doc: Document G_MESSAGES_DEBUG use |
580 | + Explain how to get more verbose logs out of spice-server |
581 | + |
582 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
583 | + |
584 | +2019-02-08 Eduardo Lima (Etrunko) <etrunko@redhat.com> |
585 | + |
586 | + Update usage of GObject private structures |
587 | + New functions and macros have been added in glib 2.38 to better handle |
588 | + this case. |
589 | + |
590 | + https://gitlab.gnome.org/GNOME/glib/blob/c8de2b11bbbf5705ee20bf68d0c11e455b441312/NEWS |
591 | + |
592 | + G_TYPE_INSTANCE_GET_PRIVATE will be deprecated in GLib 2.58. |
593 | + |
594 | + https://gitlab.gnome.org/GNOME/glib/merge_requests/7/commits |
595 | + |
596 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
597 | + |
598 | +2019-02-07 Christophe Fergeau <cfergeau@redhat.com> |
599 | + |
600 | + ssl: Dump OpenSSL error stack on errors |
601 | + Bugs such as https://bugzilla.redhat.com/show_bug.cgi?id=1651882 can be |
602 | + quite tricky to figure out without the detailed OpenSSL error. This |
603 | + commit adds a detailed dump of the OpenSSL error stack when an OpenSSL |
604 | + failure happens. |
605 | + |
606 | + In the bug above, this would have displayed: |
607 | + (process:13154): Spice-WARNING **: 05:43:10.139: reds.c:2816:reds_init_ssl: Could not load certificates from /etc/pki/libvirt-spice/server-cert.pem |
608 | + |
609 | + (process:13154): Spice-WARNING **: 05:43:10.140: error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small |
610 | + |
611 | + Acked-by: Uri Lublin <uril@redhat.com> |
612 | + |
613 | +2019-02-05 Christophe Fergeau <cfergeau@redhat.com> |
614 | + |
615 | + memslot: Fix off-by-one error in group/slot boundary check |
616 | + RedMemSlotInfo keeps an array of groups, and each group contains an |
617 | + array of slots. Unfortunately, these checks are off by 1, they check |
618 | + that the index is greater or equal to the number of elements in the |
619 | + array, while these arrays are 0 based. The check should only check for |
620 | + strictly greater than the number of elements. |
621 | + |
622 | + For the group array, this is not a big issue, as these memslot groups |
623 | + are created by spice-server users (eg QEMU), and the group ids used to |
624 | + index that array are also generated by the spice-server user, so it |
625 | + should not be possible for the guest to set them to arbitrary values. |
626 | + |
627 | + The slot id is more problematic, as it's calculated from a QXLPHYSICAL |
628 | + address, and such addresses are usually set by the guest QXL driver, so |
629 | + the guest can set these to arbitrary values, including malicious values, |
630 | + which are probably easy to build from the guest PCI configuration. |
631 | + |
632 | + This patch fixes the arrays bound check, and adds a test case for this. |
633 | + This fixes CVE-2019-3813. |
634 | + |
635 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
636 | + |
637 | + build-sys: Raise glib requirement to 2.38 |
638 | + meson is already using 2.38, and most distros have a newer version: |
639 | + - Fedora 28 has 2.56 |
640 | + - CentOS 7 has 2.46 |
641 | + - Debian 9 has 2.50 |
642 | + |
643 | + This also matches what spice-common requires. |
644 | + |
645 | + Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> |
646 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
647 | + |
648 | +2019-02-04 Frediano Ziglio <fziglio@redhat.com> |
649 | + |
650 | + red-stream-device: Constify stream_device_get_device_display_info result |
651 | + There should be no reason for the caller to modify the internal |
652 | + structure. |
653 | + |
654 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
655 | + |
656 | +2019-02-01 Eduardo Lima (Etrunko) <etrunko@redhat.com> |
657 | + |
658 | + meson: Use underscorify() instead of split() |
659 | + |
660 | + m4: Remove repeated warnings suppression |
661 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
662 | + |
663 | +2019-01-31 Frediano Ziglio <fziglio@redhat.com> |
664 | + |
665 | + event-loop: Port to Windows |
666 | + Use g_io_channel_win32_new_socket instead of g_io_channel_unix_new |
667 | + |
668 | + Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> |
669 | + |
670 | + replay: Port to Windows |
671 | + Client process termination did not work for Windows, used Win32 |
672 | + APIs. |
673 | + |
674 | + Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> |
675 | + |
676 | + test-listen: Exclude Unix sockets part under Windows |
677 | + Windows does not support Unix sockets. |
678 | + |
679 | + Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> |
680 | + |
681 | + reds: Explicitly include inttypes.h |
682 | + MingW does not include this header while including stdint.h so |
683 | + on Windows you need to include it. |
684 | + |
685 | + Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> |
686 | + |
687 | + windows: Do not include headers not available on Windows |
688 | + This is a preparatory patch for next portability patches |
689 | + |
690 | + Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> |
691 | + |
692 | + red-qxl: Use proper formatting string for size_t |
693 | + Avoids issues with LLP64 systems. |
694 | + |
695 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
696 | + |
697 | +2019-01-30 Frediano Ziglio <fziglio@redhat.com> |
698 | + |
699 | + display-channel: Remove unused includes |
700 | + display-channel.h is not using any of the definition from |
701 | + these headers. |
702 | + Adding a missing include to red-worker.c. |
703 | + |
704 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
705 | + |
706 | + red-stream-device: Fix "make syntax-check" |
707 | + Avoid using strncpy, considered not secure. |
708 | + In this case a simple memcpy is used, we are going to terminate |
709 | + the string in any case on the next line. |
710 | + |
711 | + Acked-by: Lukáš Hrázký <lhrazky@redhat.com> |
712 | + |
713 | + image-encoders: Initialize Zlib lazily |
714 | + Zlib structure take up more than 1MB and it is rarely used nowadays |
715 | + as it is not much effective. |
716 | + Initialise it only when necessary saving some memory in the normal |
717 | + case. |
718 | + |
719 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
720 | + |
721 | +2019-01-30 Uri Lublin <uril@redhat.com> |
722 | + |
723 | + smartcard: do not keep weak ref when device is NULL |
724 | + When a client disconnects, smartcard_channel_client_set_char_device |
725 | + is called with a NULL "device" argument. In that case there is |
726 | + no need to take a weak reference to the device. |
727 | + |
728 | + Without this patch the server complains: |
729 | + g_object_add_weak_pointer: assertion 'G_IS_OBJECT (object)' failed |
730 | + |
731 | + and aborts when a second client attempts to connect. |
732 | + |
733 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
734 | + |
735 | +2019-01-29 Lukáš Hrázký <lhrazky@redhat.com> |
736 | + |
737 | + Send the graphics device info from streaming agent to the vd_agent |
738 | + Adds the graphics device info from the streaming device(s) to the |
739 | + VDAgentGraphicsDeviceInfo message sent to the vd_agent. |
740 | + |
741 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
742 | + |
743 | + Receive the GraphicsDeviceInfo message from the streaming agent |
744 | + Receives the GraphicsDeviceInfo message from the streaming agent and |
745 | + stores the data in a list on the streaming device. |
746 | + |
747 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
748 | + |
749 | + Send the graphics device info to the vd_agent |
750 | + Sends the device address and device display IDs to the vdagent. The |
751 | + message is sent either in reaction to the SPICE_MSGC_MAIN_AGENT_START |
752 | + message or when the graphics device info changes. |
753 | + |
754 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
755 | + |
756 | +2019-01-28 Lukáš Hrázký <lhrazky@redhat.com> |
757 | + |
758 | + QXL interface: improve the spice_qxl_set_device_info documentation |
759 | + Instead of one unsupported example, present two real world examples. |
760 | + |
761 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
762 | + |
763 | +2019-01-26 Lukáš Hrázký <lhrazky@redhat.com> |
764 | + |
765 | + QXL interface: deprecate spice_qxl_set_max_monitors |
766 | + Replace it by spice_qxl_set_device_info. Note we can't use |
767 | + monitors_count for what's stored in max_monitors, because monitors_count |
768 | + denotes the length of the device_display_ids array, which |
769 | + spice_qxl_set_max_monitors doesn't touch. |
770 | + |
771 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
772 | + |
773 | + QXL interface: add a function to identify monitors in the guest |
774 | + Adds a function to let QEMU provide information to identify graphics |
775 | + devices and their monitors in the guest. The function |
776 | + (spice_qxl_set_device_info) sets the device address (e.g. a PCI path) |
777 | + and monitor ID -> device display ID mapping of displays exposed by given |
778 | + QXL interface. |
779 | + |
780 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
781 | + |
782 | +2019-01-23 Frediano Ziglio <fziglio@redhat.com> |
783 | + |
784 | + red-worker: Remove obsolete type definition |
785 | + AsyncCommand was removed in eb6c8ba025. |
786 | + |
787 | + Acked-by: Victor Toso <victortoso@redhat.com> |
788 | + |
789 | + ci: Remove dependencies from copr build |
790 | + Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> |
791 | + |
792 | + Trace streaming device data using recorder |
793 | + Trace when data is received from the guest and when is sent |
794 | + to the client. |
795 | + |
796 | + Acked-by: Victor Toso <victortoso@redhat.com> |
797 | + |
798 | + Allows to enable recorder integration |
799 | + recorder library will be used to collect some statistics during |
800 | + development. |
801 | + |
802 | + Acked-by: Victor Toso <victortoso@redhat.com> |
803 | + |
804 | + Update spice-common submodule |
805 | + This brings in the following changes: |
806 | + |
807 | + Frediano Ziglio (11): |
808 | + Update --enable-celt051 help string |
809 | + test-marshaller: Make test_overflow static |
810 | + test-marshaller: Make main declaration easier |
811 | + test-region: Add missing dependencies |
812 | + ci: Run tests on Windows using wine |
813 | + Use a single copy of subject string |
814 | + log: Use proper format attribute for spice_log |
815 | + marshaller: Provide spice_marshaller_fill_iovec for Windows |
816 | + test: Add a test for subject_to_x509_name function |
817 | + lz: Avoid buffer reading overflow checking for image type |
818 | + lz: More checks on image sizes |
819 | + |
820 | + Jonathon Jongsma (1): |
821 | + Fix some additional typos |
822 | + |
823 | + Marc-André Lureau (5): |
824 | + Bump libcacard requirement to 2.5.1 |
825 | + Add a .gitpublish |
826 | + build-sys: improve asciidoc rules to allow multiple targets |
827 | + quic: fix sign-compare warning |
828 | + meson: fix building for big-endian host |
829 | + |
830 | + Acked-by: Victor Toso <victortoso@redhat.com> |
831 | + |
832 | +2019-01-17 Frediano Ziglio <fziglio@redhat.com> |
833 | + |
834 | + Reuse SPICE_UPCAST instead of SPICE_CONTAINEROF where possible |
835 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
836 | + |
837 | +2019-01-15 Christophe Fergeau <cfergeau@redhat.com> |
838 | + |
839 | + sasl: Simplify red_stream_write_u32_le call with '0' serveroutlen |
840 | + Instead of |
841 | + if (serveroutlen) { |
842 | + ... |
843 | + } else { |
844 | + red_stream_write_u32_le(stream, serveroutlen); |
845 | + } |
846 | + |
847 | + use 'red_stream_write_u32_le(stream, 0);' in the else block as it's |
848 | + slightly more obvious. |
849 | + |
850 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
851 | + |
852 | +2019-01-08 Frediano Ziglio <fziglio@redhat.com> |
853 | + |
854 | + red-replay-qxl: Use PRIxPTR constant for string formatting |
855 | + These constants are meant to be used in format string for pointers |
856 | + types. Use them for portability. |
857 | + |
858 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
859 | + |
860 | +2019-01-03 Frediano Ziglio <fziglio@redhat.com> |
861 | + |
862 | + test-display-base: Remove error from "make syntax-check" |
863 | + Due to previous commit "make syntax-check" command reports: |
864 | + |
865 | + prohibit_signal_without_use |
866 | + server/tests/test-display-base.c |
867 | + maint.mk: the above files include signal.h but don't use it |
868 | + make: *** [maint.mk:639: sc_prohibit_signal_without_use] Error 1 |
869 | + |
870 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
871 | + |
872 | + test-display-base: Port to Windows |
873 | + Use GLib function to launch and wait process exit. |
874 | + |
875 | + Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> |
876 | + |
877 | + replay: Force binary mode on input on Windows |
878 | + If input contains the binary record we can't have it modified |
879 | + during read. |
880 | + |
881 | + Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> |
882 | + |
883 | +2018-12-25 Frediano Ziglio <fziglio@redhat.com> |
884 | + |
885 | + test-playback: Simplify wave generation formulae |
886 | + Split level computation, make clear is a sine wave on both channels. |
887 | + |
888 | + Acked-by: Uri Lublin <uril@redhat.com> |
889 | + |
890 | + test-playback: Remove obsolete debug |
891 | + Acked-by: Uri Lublin <uril@redhat.com> |
892 | + |
893 | + test-playback: Update misleading comments |
894 | + We are waiting for a client connection, channel is already there |
895 | + |
896 | + Acked-by: Uri Lublin <uril@redhat.com> |
897 | + |
898 | + test-playback: Remove useless check for "frame" |
899 | + We just fill it up, can't be NULL. |
900 | + |
901 | + Acked-by: Uri Lublin <uril@redhat.com> |
902 | + |
903 | +2018-12-23 Frediano Ziglio <fziglio@redhat.com> |
904 | + |
905 | + reds_stat: Use EXIT_SUCCESS/EXIT_FAILURE for program result |
906 | + -1 is not much portable and standard. |
907 | + |
908 | + Acked-by: Snir Sheriber <ssheribe@redhat.com> |
909 | + |
910 | + reds_stat: Print errors on standard error, not standard output |
911 | + Acked-by: Snir Sheriber <ssheribe@redhat.com> |
912 | + |
913 | +2018-12-07 Frediano Ziglio <fziglio@redhat.com> |
914 | + |
915 | + tests/pki: Use CA/certificate valid until 2048 and with 2048 bits |
916 | + This changes tests/pki/server-cert.pem and tests/pki/ca-cert.pem to have |
917 | + 2048 bits. These certificates were generated using the |
918 | + instructions on https://www.spice-space.org/spice-user-manual.html |
919 | + The -subj args were omitted, and the defaults suggested by openssl used. |
920 | + The -days parameter was changed to -days 10950, the bits to 2048. |
921 | + |
922 | + This fixes https://gitlab.freedesktop.org/spice/spice/issues/27. |
923 | + |
924 | + Some distros are starting to use stricter settings for their openssl |
925 | + configuration, which forbids 1024 bit keys, and causes test suite |
926 | + failures. |
927 | + |
928 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
929 | + |
930 | +2018-12-06 Christophe Fergeau <cfergeau@redhat.com> |
931 | + |
932 | + qxl: Release QXL resources in red_put_surface_cmd |
933 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
934 | + |
935 | + display-channel: Store full RedSurfaceCmd, not just QXLReleaseInfoExt |
936 | + Now that we have a refcounted RedSurfaceCmd, we can store the command |
937 | + itself in DisplayChannel rather than copying QXLReleaseInfoExt. This |
938 | + will let us move the release of the QXL guest resources in red-parse-qxl |
939 | + in the next commit. |
940 | + |
941 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
942 | + |
943 | + qxl: Add red_surface_cmd_{new, ref, unref} helpers |
944 | + Currently, RedWorker is using stack-allocated variables for RedSurfaceCmd. |
945 | + Surface commands are rare enough that we can dynamically allocate them |
946 | + instead, and make the API in red-parse-qxl.h consistent with how other |
947 | + QXL commands are handled. |
948 | + |
949 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
950 | + |
951 | + qxl: Add red_update_cmd_{new, ref, unref} helpers |
952 | + Currently, RedUpdateCmd are allocated on the stack, and then |
953 | + initialized/uninitialized with red_{get,put}_update_cmd |
954 | + This makes the API inconsistent with what is being done for RedDrawable, |
955 | + RedCursor and RedMessage. QXLUpdateCmd are not occurring very often, |
956 | + we can dynamically allocate them instead, and get a consistent API. |
957 | + |
958 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
959 | + |
960 | + qxl: Release QXL resources in red_put_update_cmd |
961 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
962 | + |
963 | + qxl: Add red_message_{new, ref, unref} helpers |
964 | + Currently, RedMessage are allocated on the stack, and then |
965 | + initialized/uninitialized with red_{get,put}_message |
966 | + This makes the API inconsistent with what is being done for RedDrawable |
967 | + and RedCursor. Since QXLMessage is just a (mostly unused/unsecure) debugging tool, |
968 | + we can dynamically allocate it instead, and get a consistent API. |
969 | + |
970 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
971 | + |
972 | + qxl: Release QXL resource in red_put_message |
973 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
974 | + |
975 | + qxl: Add red_cursor_cmd_{new, ref, unref} helpers |
976 | + Currently, the cursor channel is allocating RedCursorCmd instances itself, and then |
977 | + calling into red-parse-qxl.h to initialize it, and doing something |
978 | + similar when releasing the data. This commit moves this common code to |
979 | + red-parse-qxl.[ch] |
980 | + The ref/unref are not strictly needed, red_cursor_cmd_free() would |
981 | + currently be enough, but this makes the API consistent with |
982 | + red_drawable_{new,ref,unref}. |
983 | + |
984 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
985 | + |
986 | + qxl: Fix guest resources release in red_put_drawable() |
987 | + At the moment, we'll unconditionally release the guest QXL resources in |
988 | + red_put_drawable() even if red_get_drawable() failed and did not |
989 | + initialize drawable->release_info_ext properly. |
990 | + This commit only sets RedDrawable::qxl once the guest resource have been |
991 | + successfully retrieved, and only free the guest QXL resources when |
992 | + RedDrawable::qxl is set. |
993 | + |
994 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
995 | + |
996 | + qxl: Make red_{get, put}_drawable static |
997 | + Rather than needing to call red_drawable_new() and then initialize it |
998 | + with red_get_drawable(), we can improve slightly red_drawable new so |
999 | + that red_drawable_{new,ref,unref} is all which is used by code out of |
1000 | + red-parse-qxl.c. |
1001 | + |
1002 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1003 | + |
1004 | + qxl: Move red_drawable_unref/red_drawable_new |
1005 | + RedDrawable really is a RedDrawCmd which is parsed by red-parse-qxl.h |
1006 | + Moreover, red_drawable_ref() is already defined inline in |
1007 | + red-parse-qxl.h, and red_drawable_unref() is declared there too even if |
1008 | + its code is still in red-worker.c |
1009 | + This commit moves them close to the other functions creating/unref'ing |
1010 | + QXL commands parsed by red-parse-qxl.h. |
1011 | + |
1012 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1013 | + |
1014 | +2018-12-04 Frediano Ziglio <fziglio@redhat.com> |
1015 | + |
1016 | + tests: Use g_assert_(non)null instead of g_assert |
1017 | + Just a style change, on more recent GLib would print a more |
1018 | + friendly error report. |
1019 | + |
1020 | + Acked-by: Uri Lublin <uril@redhat.com> |
1021 | + Acked-by: Victor Toso <victortoso@redhat.com> |
1022 | + |
1023 | +2018-12-03 Marc-André Lureau <marcandre.lureau@redhat.com> |
1024 | + |
1025 | + smartcard: set char device state |
1026 | + Follow all other char devices implementation (spicevmc, agent, |
1027 | + stream-device) and set the char device state when |
1028 | + connected/disconnected. This allows qemu to discard writes, optimize a |
1029 | + bit the source polling, and will trigger HUP events. |
1030 | + |
1031 | + See related qemu "char/spice: discard write() if backend is |
1032 | + disconnected". |
1033 | + |
1034 | + Note: sif->state() should probably be handled at the char-device |
1035 | + level. I am not sure what the smartcard channel really brings over |
1036 | + plain spicevmc... |
1037 | + |
1038 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1039 | + |
1040 | +2018-11-26 Christophe Fergeau <cfergeau@redhat.com> |
1041 | + |
1042 | + dcc: Add debug log when setting compression |
1043 | + Without this it's not obvious that a compression setting took effect. |
1044 | + |
1045 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1046 | + |
1047 | +2018-11-16 Frediano Ziglio <fziglio@redhat.com> |
1048 | + |
1049 | + tests: Add a small test for red_record_ APIs |
1050 | + Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> |
1051 | + |
1052 | + test-leaks: Avoid clashing with test-display-base ports |
1053 | + Is possible that port 5913 is already in use as tests that uses |
1054 | + test_new will attempt to use ports from 5912 to 5921 so use a port |
1055 | + not in that range. |
1056 | + |
1057 | + Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> |
1058 | + |
1059 | + test-display-base: Fix warning message avoidance |
1060 | + test_new function attempts to detect attempts to listen to tcp ports |
1061 | + already in listening state detecting some messages during |
1062 | + spice_server_init. However the check is wrong (broken in recent |
1063 | + 34a44d3e940bcc "test-display-base: Avoid spurious errors due to listen |
1064 | + failures") and incomplete (missing message). |
1065 | + |
1066 | + To better test this conditions put some of the ports in listening |
1067 | + state (like with a "nc -l 5912 & nc -l 5913 &" command) and run |
1068 | + tests in parallel (like with a "make check -j" command). |
1069 | + |
1070 | + Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> |
1071 | + |
1072 | + ci: Ignore leak from GnuTLS p11 call |
1073 | + Fix Fedora 29 one-time leak. |
1074 | + |
1075 | + Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> |
1076 | + |
1077 | + ci: Merge new glib.supp file |
1078 | + Merge from GLib master repository. |
1079 | + |
1080 | + Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> |
1081 | + |
1082 | + red-replay-qxl: Remove useless end of line |
1083 | + Spice log functions already add an end of line. |
1084 | + |
1085 | + Acked-by: Victor Toso <victortoso@redhat.com> |
1086 | + |
1087 | +2018-11-10 Frediano Ziglio <fziglio@redhat.com> |
1088 | + |
1089 | + test-display-base: Avoid spurious errors due to listen failures |
1090 | + To set up a listening socket usually you call in sequence: |
1091 | + - socket; |
1092 | + - bind; |
1093 | + - listen. |
1094 | + If you try to bind() to a port when another socket is already |
1095 | + listening on that port, the bind() will fail. |
1096 | + However, it is possible that the bind() may succeed and the listen() |
1097 | + will fail, as demonstrated in the following sequence: |
1098 | + - socket() create socket 1; |
1099 | + - bind() to port N on socket 1; |
1100 | + - socket() create socket 2; |
1101 | + - bind() to port N on socket 2; |
1102 | + - listen() on socket 1; |
1103 | + - listen() on socket 2 <-- failure. |
1104 | + |
1105 | + When running tests (especially multiple tests running in parallel), it |
1106 | + may sometimes happen that there are other tests already listening on |
1107 | + the port that we are trying to use. In this case, we want to ignore |
1108 | + this error and simply try to listen on a different port. We already |
1109 | + attempted to handle this scenario, but we were only ignoring bind() |
1110 | + errors and not listen() errors. So in the scenario mentioned above, |
1111 | + the listen() error was causing the entire test to fail instead of |
1112 | + allowing us to try to listen on another port. |
1113 | + |
1114 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
1115 | + |
1116 | +2018-11-08 Frediano Ziglio <fziglio@redhat.com> |
1117 | + |
1118 | + ci: Do not try to downgrade asciidoc anymore |
1119 | + Is not more necessary to downgrade asciidoc, the issue was fixed |
1120 | + in Fedora 29, now used by CI. |
1121 | + |
1122 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
1123 | + |
1124 | + char-device: Remove initial underscores from __red_char_device_write_buffer_get |
1125 | + Just cosmetic changes, the static function had underscores to |
1126 | + distinguish from the exported one which was recently renamed. |
1127 | + |
1128 | + Acked-by: Lukáš Hrázký <lhrazky@redhat.com> |
1129 | + |
1130 | +2018-11-08 Lukáš Hrázký <lhrazky@redhat.com> |
1131 | + |
1132 | + reds: move vdagent write buffer creation into a function |
1133 | + Adds a function to create a write buffer for sending a message to |
1134 | + vdagent from the server to prevent code duplication. |
1135 | + |
1136 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1137 | + |
1138 | + char-device: separate functions to get write buffer for client and server |
1139 | + Instead of having a single red_char_device_write_buffer_get function to |
1140 | + get both client and server buffers and decide by testing client == NULL, |
1141 | + have separate function for a client and for a server. The situation |
1142 | + should always be clear (you're either on the client or on the server |
1143 | + side) and you shouldn't need to parametrize that. |
1144 | + |
1145 | + For the server case, add a use_token parameter instead of a separate |
1146 | + red_char_device_write_buffer_get_server_no_token function, as you may |
1147 | + want to parametrize that. |
1148 | + |
1149 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1150 | + |
1151 | +2018-10-30 Frediano Ziglio <fziglio@redhat.com> |
1152 | + |
1153 | + reds: Use monotonic time for ticket expiration |
1154 | + Avoid time adjustment issues. |
1155 | + For instance ticket validity can change when daylight time changes. |
1156 | + |
1157 | + Acked-by: Lukáš Hrázký <lhrazky@redhat.com> |
1158 | + |
1159 | +2018-10-15 Frediano Ziglio <fziglio@redhat.com> |
1160 | + |
1161 | + Use new common demarshallers.h |
1162 | + Avoids mismatching duplicate declarations causing potentially |
1163 | + ABI incompatibilities. |
1164 | + |
1165 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1166 | + |
1167 | +2018-10-09 Frediano Ziglio <fziglio@redhat.com> |
1168 | + |
1169 | + utils: Get monotonic time in a coherent way |
1170 | + Use a single function to get monotonic time. |
1171 | + |
1172 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1173 | + |
1174 | + display-channel: Remove useless parenthesis |
1175 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1176 | + |
1177 | + red-stream: Propagate RedStreamSslStatus type |
1178 | + Do not convert RedStreamSslStatus enumeration type back to int. |
1179 | + This allows compilers to perform some more type safe checks. |
1180 | + |
1181 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1182 | + |
1183 | +2018-10-08 Christophe Fergeau <cfergeau@redhat.com> |
1184 | + |
1185 | + utils: Remove spice_get_monotonic_time_ms |
1186 | + This is a thin wrapper over g_get_monotonic_time_ms, and is called only |
1187 | + once, so we can call directly g_get_monotonic_time_ms instead. |
1188 | + |
1189 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1190 | + |
1191 | +2018-09-28 Frediano Ziglio <fziglio@redhat.com> |
1192 | + |
1193 | + ci: Use release build with Meson |
1194 | + Some compiler warnings are triggered only if optimisations are |
1195 | + turned on. By default with debug build optimisations are disabled. |
1196 | + |
1197 | + Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> |
1198 | + |
1199 | +2018-09-26 Eduardo Lima (Etrunko) <etrunko@redhat.com> |
1200 | + |
1201 | + Bump meson requirement to 0.47.2 |
1202 | + This new version ships the fix for the issue where 'check' keyword could |
1203 | + not be used in project definition, so we had to run that command again |
1204 | + only to check if it succeeded. |
1205 | + |
1206 | + https://github.com/mesonbuild/meson/issues/3944 |
1207 | + |
1208 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1209 | + Acked-by: Victor Toso <victortoso@redhat.com> |
1210 | + |
1211 | +2018-09-25 Lukáš Hrázký <lhrazky@redhat.com> |
1212 | + |
1213 | + red-qxl: remove an unnecessary level of indirection in create/destroy surface |
1214 | + Acked-by: Victor Toso <victortoso@redhat.com> |
1215 | + |
1216 | +2018-09-21 Lukáš Hrázký <lhrazky@redhat.com> |
1217 | + |
1218 | + Count display channels for tablet mode check |
1219 | + Having a single QXL interface is not enough, there can be other (e.g. |
1220 | + streaming) display channels that make the tablet unusable. Add a check for the |
1221 | + number of display channels also being equal to 1. We still need the check for |
1222 | + QXL interaces, because the tablet only works with QXL. |
1223 | + |
1224 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1225 | + |
1226 | +2018-09-19 Frediano Ziglio <fziglio@redhat.com> |
1227 | + |
1228 | + syntax-check: Add missing contributors names to AUTHORS |
1229 | + Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> |
1230 | + |
1231 | +2018-09-19 Changqing Li <changqing.li@windriver.com> |
1232 | + |
1233 | + spice: fix compile error |
1234 | + fix below compile error: |
1235 | + format '%d' expects argument of type 'int', but argument 6 has |
1236 | + type 'long unsigned int' [-Werror=format=] |
1237 | + |
1238 | + spice compile failed on 32bit system, since upstream commit |
1239 | + 9541cd2fe change %ld to %PRIdPTR, %PRIdPTR is %d, but argument |
1240 | + strm.total_out is uLong. |
1241 | + |
1242 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1243 | + |
1244 | +2018-09-03 Eduardo Lima (Etrunko) <etrunko@redhat.com> |
1245 | + |
1246 | + meson: Fix usage of add_project_arguments() |
1247 | + This function does accept a list of arguments, so there is no need to |
1248 | + iterate over it. |
1249 | + |
1250 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1251 | + |
1252 | +2018-08-31 Eduardo Lima (Etrunko) <etrunko@redhat.com> |
1253 | + |
1254 | + ci: Workaround asciidoc failure |
1255 | + Since commit e5a93d7a30f71f01052392d13e33e0373bccee8f asciidoc has been |
1256 | + failing. Frediano noticed that there is no such problem with Fedora 27, |
1257 | + and it looks like asciidoc version 8.6.10 in Fedora 28 is causing |
1258 | + the problem. Downgrading it to 8.6.8 seems to fix it while we don't |
1259 | + find the definite solution. |
1260 | + |
1261 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1262 | + |
1263 | +2018-08-30 Eduardo Lima (Etrunko) <etrunko@redhat.com> |
1264 | + |
1265 | + Update gitlab-ci to use meson |
1266 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1267 | + |
1268 | + Add support for building with meson/ninja |
1269 | + In a comparison with current autotools build system, meson/ninja |
1270 | + provides a huge improvement in build speed, while keeping the same |
1271 | + functionalities currently available and being considered more user |
1272 | + friendly. |
1273 | + |
1274 | + The new system coexists within the same repository with the current one, |
1275 | + so we can do more extensive testing of its functionality before deciding |
1276 | + if the old system can be removed, or for some reason, has to stay for |
1277 | + good. |
1278 | + |
1279 | + - Meson: https://mesonbuild.com |
1280 | + |
1281 | + This is the equivalent of autogen/configure step in autotools. It |
1282 | + generates the files that will be used by ninja to actually build the |
1283 | + source code. |
1284 | + |
1285 | + The project has received lots of traction recently, with many GNOME |
1286 | + projects willing to move to this new build system. The following wiki |
1287 | + page has more details of the status of the many projects being ported: |
1288 | + |
1289 | + https://wiki.gnome.org/Initiatives/GnomeGoals/MesonPorting |
1290 | + |
1291 | + Meson has a python-like syntax, easy to read, and the documentation |
1292 | + on the project is very complete, with a dedicated page on how to port |
1293 | + from autotools, explaining how most common use cases can be |
1294 | + implemented using meson. |
1295 | + |
1296 | + http://mesonbuild.com/Porting-from-autotools.html |
1297 | + |
1298 | + Other important sources of information: |
1299 | + |
1300 | + http://mesonbuild.com/howtox.html |
1301 | + http://mesonbuild.com/Syntax.html |
1302 | + http://mesonbuild.com/Reference-manual.html |
1303 | + |
1304 | + - Ninja: https://ninja-build.org |
1305 | + |
1306 | + Ninja is the equivalent of make in an autotools setup, which actually |
1307 | + builds the source code. It has being used by large and complex |
1308 | + projects such as Google Chrome, Android and LLVM. There is not much to |
1309 | + say about ninja (other than it is much faster than make) because we |
1310 | + won't interact directly with it as much, as meson does the middle man |
1311 | + job here. The reasoning for creating ninja in the first place is |
1312 | + explained on the following post: |
1313 | + |
1314 | + http://neugierig.org/software/chromium/notes/2011/02/ninja.html |
1315 | + |
1316 | + Also its manual provides more in-depth information about the design |
1317 | + principles: |
1318 | + |
1319 | + https://ninja-build.org/manual.html |
1320 | + |
1321 | + - Basic workflow: |
1322 | + |
1323 | + Meson package is available for most if not all distros, so, taking |
1324 | + Fedora as an example, we only need to run: |
1325 | + |
1326 | + # dnf -y install meson ninja-build. |
1327 | + |
1328 | + With Meson, building in-tree is not possible at all, so we need to |
1329 | + pass a directory as argument to meson where we want the build to be |
1330 | + done. This has the advantage of creating builds with different options |
1331 | + under the same parent directory, e.g.: |
1332 | + |
1333 | + $ meson ./build --prefix=/usr |
1334 | + $ meson ./build-extra -Dextra-checks=true -Dalignment-checks=true |
1335 | + |
1336 | + After configuration is done, we call ninja to actually do the build. |
1337 | + |
1338 | + $ ninja -C ./build |
1339 | + $ ninja -C ./build install |
1340 | + |
1341 | + Ninja defaults to parallel builds, and this can be changed with the -j |
1342 | + flag. |
1343 | + |
1344 | + $ ninja -j 10 -C ./build |
1345 | + |
1346 | + - Hacking: |
1347 | + |
1348 | + * meson.build: Mandatory for the project root and usually found under |
1349 | + each directory you want something to be built. |
1350 | + |
1351 | + * meson_options.txt: Options that can interfere with the result of the |
1352 | + build. |
1353 | + |
1354 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1355 | + Acked-by: Victor Toso <victortoso@redhat.com> |
1356 | + |
1357 | +2018-08-22 Snir Sheriber <ssheribe@redhat.com> |
1358 | + |
1359 | + Support h265 in stream-channel |
1360 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1361 | + |
1362 | +2018-08-22 Christophe Fergeau <cfergeau@redhat.com> |
1363 | + |
1364 | + build: Prepare for 0.14.1 release |
1365 | + |
1366 | + Revert "Support h265 in stream-channel" |
1367 | + This commit needs an unreleased version of spice-protocol. |
1368 | + The revert is temporary in order to get the spice-server 0.14.1 release |
1369 | + out. |
1370 | + |
1371 | + This reverts commit 9f5859c3ba5e1885dec78f131f96c93bbc37bc80. |
1372 | + |
1373 | +2018-08-17 Christophe Fergeau <cfergeau@redhat.com> |
1374 | + |
1375 | + docs: Add documentation for the streaming device |
1376 | + |
1377 | +2018-08-16 Frediano Ziglio <fziglio@redhat.com> |
1378 | + |
1379 | + Update spice-common submodule |
1380 | + This brings in the following changes: |
1381 | + |
1382 | + Eduardo Lima (Etrunko) (5): |
1383 | + ci: Fix typo: celt501 -> celt051 |
1384 | + meson: Make options accessible through parent project |
1385 | + meson: Fix checking for python |
1386 | + Meson: Make use of dictionary type introduced in version 0.47 |
1387 | + Meson: Make use of 'feature' option type introduced in version 0.47 |
1388 | + |
1389 | + Frediano Ziglio (2): |
1390 | + ci: Fix Meson feature option |
1391 | + Fix flexible array buffer overflow |
1392 | + |
1393 | + Lukáš Hrázký (1): |
1394 | + spice*.proto: Replace tabs with the appropriate number of spaces |
1395 | + |
1396 | + Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> |
1397 | + |
1398 | +2018-08-09 Uri Lublin <uril@redhat.com> |
1399 | + |
1400 | + Remove unused structs QXLDrawArea and QXLDevInfo |
1401 | + The structure usage was removed from commit |
1402 | + 2ba69f9f8819daaa3d166c4c1c7e03b121b88a95 |
1403 | + ("libspice: add surface 0 support"). |
1404 | + |
1405 | + They were never used by Qemu. |
1406 | + |
1407 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1408 | + |
1409 | +2018-08-09 Lukáš Hrázký <lhrazky@redhat.com> |
1410 | + |
1411 | + test-stream-device: Expect the g_log warning about invalid message |
1412 | + Fixes test-stream-device after adding a log warning about an invalid |
1413 | + message received on the stream device, glib tests fail on unexpected |
1414 | + warning messages. |
1415 | + |
1416 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1417 | + |
1418 | +2018-08-09 Christophe Fergeau <cfergeau@redhat.com> |
1419 | + |
1420 | + build: Fix build from tarballs |
1421 | + Following commit fcaf8d1a1, build from tarballs/make distcheck is broken |
1422 | + as spice-server-enums.h is not regenerated when building from tarballs, |
1423 | + and we don't have a -I$(top_srcdir) in our build flags, just |
1424 | + -I$(srcdir). This commit changes #include <server/spice-server-enums.h> |
1425 | + to #include <spice-server-enums.h> which avoids the problem fixed by |
1426 | + commit fcaf8d1a1 without breaking make distcheck. |
1427 | + |
1428 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1429 | + |
1430 | +2018-08-08 Lukáš Hrázký <lhrazky@redhat.com> |
1431 | + |
1432 | + Log the invalid message from the stream device |
1433 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1434 | + |
1435 | +2018-08-08 Christophe Fergeau <cfergeau@redhat.com> |
1436 | + |
1437 | + build: Use <> rather than "" for including spice-server-enums.h |
1438 | + When using #include "spice-server-enums.h", it will be looked up first |
1439 | + in the directory containing the file being build, which is going to be |
1440 | + $srcdir when dcc.c includes it. However, spice-server-enums.h is a |
1441 | + generated file, so it will be in $builddir, not in $srcdir. This most of |
1442 | + the time won't be causing any problems, except when you happen to have |
1443 | + an invalid spice-server-enums.h in $srcdir and you are doing an |
1444 | + out-of-tree build. |
1445 | + Using #include <spice-server-enums.h> instead allows the correct |
1446 | + spice-server-enums.h file to be looked up. |
1447 | + |
1448 | + Acked-by: Lukáš Hrázký <lhrazky@redhat.com> |
1449 | + |
1450 | +2018-08-06 Victor Toso <me@victortoso.com> |
1451 | + |
1452 | + README: Report bugs to gitlab issue tracker |
1453 | + Acked-by: Snir Sheriber <ssheribe@redhat.com> |
1454 | + |
1455 | +2018-07-23 Eduardo Lima (Etrunko) <etrunko@redhat.com> |
1456 | + |
1457 | + build: Move spice-common to subprojects/ directory |
1458 | + The reason for this commit is that Meson expects all submodules to be |
1459 | + placed in this subdirectory, and since autotools build is more flexible |
1460 | + in this case, we make some small adjustments to configure.ac and |
1461 | + Makefile.am files to accommodate for this change. |
1462 | + |
1463 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1464 | + |
1465 | +2018-07-23 Christophe Fergeau <cfergeau@redhat.com> |
1466 | + |
1467 | + dcc: Rework COMPRESS_DEBUG macro |
1468 | + Rather than using |
1469 | + #ifdef COMPRESS_DEBUG |
1470 | + spice_info(...); |
1471 | + #endif |
1472 | + |
1473 | + we can #define COMPRESS_DEBUG to spice_debug() or to do nothing for a |
1474 | + slight readability improvement. This opportunity is used to replace |
1475 | + these spice_debug() calls with g_debug(). The "do nothing" macro is a bit |
1476 | + convoluted to ensure that we will have a compile-time check for our |
1477 | + g_debug args. |
1478 | + |
1479 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1480 | + |
1481 | +2018-07-20 Christophe Fergeau <cfergeau@redhat.com> |
1482 | + |
1483 | + dcc: Fix QUIC fallback in get_compression_for_bitmap() |
1484 | + There was a small regression introduced in get_compression_for_bitmap() |
1485 | + by f401eb07f dcc: Rewrite dcc_image_compress. |
1486 | + If SPICE_IMAGE_COMPRESSION_AUTO_GLZ is specified, and the bitmap has a |
1487 | + stride which is bigger than its width (ie it has padding), then |
1488 | + get_compression_for_bitmap() will return SPICE_IMAGE_COMPRESSION_OFF |
1489 | + while in that case, we used to use QUIC for compression. |
1490 | + |
1491 | + This happens because that function in the AUTO_GLZ case first checks if |
1492 | + QUIC should be used, if not, it decides to use GLZ, but then decides it |
1493 | + can't because of the stride, so falls back to OFF, while it used to |
1494 | + fall back to QUIC. |
1495 | + |
1496 | + This commit only slightly reworks a preexisting if (!can_lz_compress()) |
1497 | + check so that it's unconditional rather than depending on the previous |
1498 | + checks having been unsuccessful. |
1499 | + |
1500 | + This issue could be observed by using a spice-html5 without support for |
1501 | + uncompressed bitmaps with end-of-line padding by simply starting a f28 |
1502 | + VM and connecting to it/moving the mouse cursor in it. |
1503 | + |
1504 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1505 | + |
1506 | + dcc: Improve can_lz_compress() comment |
1507 | + Both glz_encode and lz_encode error out if the bitmap stride does not |
1508 | + match the bitmap width. |
1509 | + |
1510 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1511 | + |
1512 | + worker: Fix 'seemless' typo in comment |
1513 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1514 | + |
1515 | +2018-07-19 Frediano Ziglio <fziglio@redhat.com> |
1516 | + |
1517 | + test-stream-device: Check data are sent together |
1518 | + Check that data sent to device are collapsed in a single message. |
1519 | + The StreamChannel object is mocked in the test. |
1520 | + This checks that commit dcc3f995d9f5575e319adcfe530c477a7c294ff3 |
1521 | + ("stream-device: handle_data: send whole message") is doing the |
1522 | + right thing. |
1523 | + |
1524 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1525 | + |
1526 | + test-stream-device: Factor out a function to start the test |
1527 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1528 | + |
1529 | + test-stream-device: Put common parts in setup/teardown functions |
1530 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1531 | + |
1532 | + test-stream-device: Check server detect and signal huge data |
1533 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1534 | + |
1535 | + red-stream-device: Fix and check empty data messages |
1536 | + If guest sent an empty data message this was not parsed correctly. |
1537 | + |
1538 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1539 | + |
1540 | +2018-07-18 Lukáš Hrázký <lhrazky@redhat.com> |
1541 | + |
1542 | + Rename SpiceHead::id to monitor_id in the protocol |
1543 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1544 | + |
1545 | +2018-07-18 Frediano Ziglio <fziglio@redhat.com> |
1546 | + |
1547 | + Update spice-common submodule |
1548 | + This brings in the following changes: |
1549 | + |
1550 | + Christophe Fergeau (20): |
1551 | + build: Update git.mk to latest version |
1552 | + build: Remove docs/.gitignore |
1553 | + build: Add __pycache__/*.pyc to DISTCLEANFILES |
1554 | + log: Only install glib log handler if SPICE_DEBUG_LEVEL is set |
1555 | + test-logging: Improve debug level tests |
1556 | + test-region: Use GTest API |
1557 | + test-region: Replace direct printf with g_debug() calls |
1558 | + test-region: Don't call region_dump() by default |
1559 | + test-region: Remove unneeded printf |
1560 | + test-region: Replace spice_assert() with g_assert_true() |
1561 | + test-region: Add g_assert() checks |
1562 | + snd: Replace spice_printerr() use with g_warning |
1563 | + swcanvas: Remove canvas_create() |
1564 | + meson: Remove '(default: xxx)' from option description |
1565 | + log: Remove SPICE_DISABLE_ABORT |
1566 | + common: Remove spice_abort() |
1567 | + build: Remove spice_common.h |
1568 | + pixman: Use g_error() rather than g_abort() |
1569 | + build: Define GLIB_VERSION_MIN_REQUIRED/GLIB_VERSION_MAX_ALLOWED |
1570 | + quic: Wrap declaration/call of quic method in macros |
1571 | + |
1572 | + Christophe de Dinechin (1): |
1573 | + Add SPICE_ATTR_NORETURN on prototype of error functions |
1574 | + |
1575 | + Eduardo Lima (Etrunko) (5): |
1576 | + Add .gitlab-ci.yml file |
1577 | + meson: Enable '-std=c99' build flag |
1578 | + meson: Cleanup optional dependency checks |
1579 | + Update gitlab-ci to use meson |
1580 | + test-region: Decrease loop count by a factor of 10 |
1581 | + |
1582 | + Frediano Ziglio (36): |
1583 | + test-quic: Allows to specify multiple images to test |
1584 | + canvas_base: Rework DUMP_JPEG debugging |
1585 | + test-quic: Increase test timeout using Meson |
1586 | + ssl_verify: Fix build for newer LibreSSL |
1587 | + Revert "ssl_verify: Fix build for newer LibreSSL" |
1588 | + ssl_verify: Fix build for newer LibreSSL |
1589 | + test-region: Create proper test for region from source code |
1590 | + marshaller: Fix a possible leak |
1591 | + canvas_base: Make sure top_down is a boolean |
1592 | + marshal: Fix a bug with zero attribute |
1593 | + ptypes: Improve some attribute documentation |
1594 | + build: Reuse TEST_MARSHALLERS macro |
1595 | + build: Reindent macros |
1596 | + log: Remove spice_printerr macro |
1597 | + test-marshallers: Check for "zero" attribute |
1598 | + quic: Call encode from golomb_coding |
1599 | + canvas_base: Fix minor indentation issues |
1600 | + canvas_base: Avoid misaligned access decoding LZ4 data |
1601 | + meson: Remove -std=c99 |
1602 | + quic: Add UPDATE_MODEL_COMP macro to iterate over channels |
1603 | + quic: Rework PIXEL_A/PIXEL_B macros |
1604 | + quic: Add SAME_PIXEL macro |
1605 | + quic: Make {UN, }COMPRESS_xx macros closer |
1606 | + quic: Add missing #undef SET_a/GET_a |
1607 | + quic: Call directly encode_state_run from templates. |
1608 | + quic: Add CORRELATE*/DECORRELATE* macros |
1609 | + quic: Add APPLY_ALL_COMP macro to iterate over channels |
1610 | + quic: Move all golomb decoding macros in a single place |
1611 | + quic: Add DECLARE_*_VARIABLES macros |
1612 | + quic: Introduce COPY_PIXEL macro |
1613 | + quic: Reorder macro declarations |
1614 | + quic: Unify rgb/non-rgb macro declarations |
1615 | + quic: Remove duplicate file |
1616 | + canvas_base: Check for overflows decoding LZ4 |
1617 | + canvas_base: Change spice_warning to g_warning |
1618 | + tests: Join test-overflow and test-marshallers |
1619 | + |
1620 | + Snir Sheriber (1): |
1621 | + protocol: Add support for h265 video codec |
1622 | + |
1623 | + Acked-by: Lukáš Hrázký <lhrazky@redhat.com> |
1624 | + |
1625 | +2018-07-13 Frediano Ziglio <fziglio@redhat.com> |
1626 | + |
1627 | + red-stream-device: Fix leaks in dispose and finalize chaining parent |
1628 | + dispose and finalize methods have to call parent relative |
1629 | + cleanup method to avoid leaking resources. |
1630 | + |
1631 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1632 | + |
1633 | +2018-07-12 Frediano Ziglio <fziglio@redhat.com> |
1634 | + |
1635 | + reds: Free device chain in spice_server_destroy to avoid leaks |
1636 | + Leak detectors did not manage to find leaks, possibly as double list |
1637 | + have all elements likely with a pointer to them. |
1638 | + The reference from the agent is necessary for inserting it into |
1639 | + the list. |
1640 | + |
1641 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1642 | + |
1643 | +2018-07-11 Frediano Ziglio <fziglio@redhat.com> |
1644 | + |
1645 | + glz-encoder-dict: Remove a warning compiling with CentOS 7 |
1646 | + CentOS 7 compiler generate this warning: |
1647 | + |
1648 | + glz-encoder-dict.c: In function 'glz_dictionary_pre_encode': |
1649 | + glz-encoder-dict.c:516:30: error: 'prev_seg_id' may be used uninitialized in this function [-Werror=maybe-uninitialized] |
1650 | + dict->window.segs[prev_seg_id].next = seg_id; |
1651 | + ^ |
1652 | + glz-encoder-dict.c:492:22: note: 'prev_seg_id' was declared here |
1653 | + uint32_t seg_id, prev_seg_id; |
1654 | + ^ |
1655 | + |
1656 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1657 | + |
1658 | + ci: Run an additional make check using Centos |
1659 | + Make sure we can compile and run base tests using latest Centos. |
1660 | + |
1661 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1662 | + |
1663 | +2018-07-08 Christophe Fergeau <cfergeau@redhat.com> |
1664 | + |
1665 | + tests: Add G_PID_FORMAT to glib compat header |
1666 | + G_PID_FORMAT was only added in glib 2.50. |
1667 | + |
1668 | + Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> |
1669 | + |
1670 | +2018-07-08 Uri Lublin <uril@redhat.com> |
1671 | + |
1672 | + stream-device: handle_data: send whole message |
1673 | + SPICE expects to have each frame in a single message. |
1674 | + So far the stream-device did not do that. |
1675 | + That works fine for H264 streams but not for MJPEG. |
1676 | + |
1677 | + The client handles by itself MJPEG streams, and not via |
1678 | + gstreamer, and is assuming that a message contains the |
1679 | + whole frame. Since it currently not, using spice-streaming-agent |
1680 | + with MJPEG plugin, confuses the client which burns CPU |
1681 | + till it fails and keeps complaining: |
1682 | + "GSpice-CRITICAL **: 15:53:36.984: need more input data" |
1683 | + |
1684 | + This patch fixes that, by reading the whole message from the |
1685 | + device (the streaming agent) and sending it over to the client. |
1686 | + |
1687 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1688 | + |
1689 | +2018-07-06 Christophe Fergeau <cfergeau@redhat.com> |
1690 | + |
1691 | + build: Remove unneeded spice_common.h includes |
1692 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
1693 | + |
1694 | +2018-07-05 Christophe Fergeau <cfergeau@redhat.com> |
1695 | + |
1696 | + red-record-qxl: Change license header to LGPLv2+ |
1697 | + It's currently using a GPLv2+ header, which was probably a mistake given |
1698 | + the project overall license. It was created by a Red Hat employee, and |
1699 | + only modified by Red Hat employees since then, so the (c) Red Hat is |
1700 | + correct, and there are no other copyright holders to contact. |
1701 | + |
1702 | +2018-07-03 Frediano Ziglio <fziglio@redhat.com> |
1703 | + |
1704 | + red-parse-qxl: Avoid invalid flag usage |
1705 | + self_bitmap flag is used for some complex drawing not possible |
1706 | + by QXL_DRAW_COPY commands. Having this flag set causes |
1707 | + spice-server do draw part of the screen, copy that part on new |
1708 | + allocated image and reduce network optimisations with no visual |
1709 | + changes. |
1710 | + Some drivers (like Windows 10 DOD) set this flag by mistake for |
1711 | + this command so reset it. |
1712 | + |
1713 | + More details follow. |
1714 | + |
1715 | + The self_bitmap flag is used for some drawing command requiring to mix |
1716 | + the frame buffer with some other image. For this specific |
1717 | + QXL_DRAW_COPY command self_bitmap is used by spice-server code during |
1718 | + cachine/sending (the reason for the cache is to cache images sent to |
1719 | + client so the relationship between the two parts of the code). |
1720 | + However the self_bitmap_image (an image created in spice-server if |
1721 | + this flags is set) is used only if src_bitmap of SpiceCopy structure |
1722 | + (the structure used to store the QXL_DRAW_COPY command inside |
1723 | + spice-server) is NULL. But in red_get_copy_ptr (red-parse-qxl.c, the |
1724 | + function that parse the QXL_DRAW_COPY command form the QXL device) |
1725 | + not having a src_bitmap is considered an error so the |
1726 | + self_bitmap_image won't be used. |
1727 | + |
1728 | + Why this flag affects network performance? |
1729 | + When spice-server see this flag it update the frame buffer according |
1730 | + to the pending commands (commands to be sent or still to be drawn on |
1731 | + frame buffer). spice-server maintain a tree of commands used to reduce |
1732 | + rendering and command to send. More or less if a command is covering |
1733 | + other commands (for instance filling the entire screen with a single |
1734 | + color) the pending commands can be removed from the queue and not sent |
1735 | + to the client. However when an update of the frame buffer is requested |
1736 | + spice-server update the frame buffer removing the commands from the |
1737 | + tree but not from the client queue. |
1738 | + |
1739 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1740 | + |
1741 | + memslot: Remove error parameter from memslot_get_virt |
1742 | + Pointers to memory allocated in user space are never NULL. |
1743 | + The only exception can be if you explicitly map memory at zero. |
1744 | + There is however no reasons for such requirement and this practise |
1745 | + was also removed from Linux due to security reasons. |
1746 | + This API looks copied from a kernel environment where valid virtual |
1747 | + addresses can be NULL. |
1748 | + |
1749 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1750 | + |
1751 | + reds: Fix one case parsing invalid codec string |
1752 | + In case we pass something like "spice:mjpeg$%*" the last part is |
1753 | + ignore making the string parse correctly. |
1754 | + A single pair should end by either string terminator or pair terminator. |
1755 | + |
1756 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1757 | + |
1758 | + test-codecs-parsing: Add test case |
1759 | + Check if encoder contains an invalid character. |
1760 | + |
1761 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1762 | + |
1763 | +2018-07-02 Jonathon Jongsma <jjongsma@redhat.com> |
1764 | + |
1765 | + Rename parse_video_codecs() to parse_next_video_codec() |
1766 | + The new name describes the function more accurately. Also add |
1767 | + documentation for the function. |
1768 | + |
1769 | +2018-06-29 Frediano Ziglio <fziglio@redhat.com> |
1770 | + |
1771 | + reds: Reuse strspn and strcspn functions |
1772 | + These functions are in the standard C library, not well known |
1773 | + but quite useful for parsing strings. |
1774 | + |
1775 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
1776 | + |
1777 | +2018-06-28 Christophe Fergeau <cfergeau@redhat.com> |
1778 | + |
1779 | + test-agent-msg-filter: Adjust for recent logging changes |
1780 | + Now warnings are printed through g_warning which causes the test to |
1781 | + fail. We need to use g_test_expect_message() to prevent that failure. |
1782 | + |
1783 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1784 | + |
1785 | + qxl: Remove red_channel_printerr() |
1786 | + It was only used twice, for what looks like adhoc debugging. This commit |
1787 | + removes it, similarly to what was done for some spice_printerr() calls. |
1788 | + |
1789 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1790 | + |
1791 | + Replace remaining spice_printerr() with g_warning() |
1792 | + The remaining occurrences of spice_printerr() are warnings when |
1793 | + something unexpected happens, they can be replaced with g_warning() so |
1794 | + that users of spice-server can redirect them with |
1795 | + g_log_set_default_handler(). |
1796 | + |
1797 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1798 | + |
1799 | + Replace spice_printerr() use with red_channel_{debug, warning} |
1800 | + Depending on the context, we want to output a warning or just a debug |
1801 | + log. |
1802 | + |
1803 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1804 | + |
1805 | + Remove unneeded spice_printerr() calls |
1806 | + These calls seem to have been added for debugging for a very specific |
1807 | + purpose. At the very least, they should have been using g_debug() rather |
1808 | + than spice_printerr(). This commit removes these. |
1809 | + |
1810 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1811 | + |
1812 | +2018-06-27 Frediano Ziglio <fziglio@redhat.com> |
1813 | + |
1814 | + glz: Inline GET_{r,g,b} macros |
1815 | + With last changes are just used once and are straight forward. |
1816 | + |
1817 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
1818 | + |
1819 | + glz: Optimize SAME_PIXEL for RGB16 |
1820 | + Do not extract all components and compare one by one, can be easily |
1821 | + compared together. |
1822 | + |
1823 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
1824 | + |
1825 | + glz: Move some macros to a common place |
1826 | + The macros for both depth are the same, reuse the definition. |
1827 | + |
1828 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
1829 | + |
1830 | +2018-06-27 Christophe Fergeau <cfergeau@redhat.com> |
1831 | + |
1832 | + sound: Don't mute recording when client reconnects |
1833 | + When a new record channel is added, the code relies on a snd_send() call |
1834 | + in record_channel_client_constructed() to send RECORD_START to the |
1835 | + client. However, at this point, snd_send() is non-functional because |
1836 | + the red_channel_client_pipe_add() call it makes is a no-op because |
1837 | + prepare_pipe_add() makes a connection check through |
1838 | + red_channel_client_is_connected() queueing the item. This connection |
1839 | + check returns FALSE at ::constructed() time as the channel client will |
1840 | + only become connected towards the end of |
1841 | + red_channel_client_initable_init() which runs after the object |
1842 | + instantiation is complete. |
1843 | + |
1844 | + This causes a bug where starting recording and then |
1845 | + disconnecting/reconnecting the client does not successfully reenable |
1846 | + recording. This is a regression introduced by commit d8dc09 |
1847 | + 'sound: Convert SndChannelClient to RedChannelClient' |
1848 | + |
1849 | + This commit solves this issue by making PlaybackChannelClient and |
1850 | + RecordChannelClient implement GInitable, and move the code interacting |
1851 | + with the client in their _initable_init() function, as at this point the |
1852 | + objects will be able to send data. |
1853 | + |
1854 | + https://bugzilla.redhat.com/show_bug.cgi?id=1549132 |
1855 | + |
1856 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1857 | + |
1858 | +2018-06-26 Frediano Ziglio <fziglio@redhat.com> |
1859 | + |
1860 | + memslot: Return void* from memslot_get_virt |
1861 | + The result of this function is always cast to a pointer, there |
1862 | + is no reason to return an integer. |
1863 | + This API looks copied from a kernel environment where virtual |
1864 | + addresses can have different sizes compare to pointers. |
1865 | + |
1866 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1867 | + |
1868 | + jpeg-encoder: Remove JPEG_IMAGE_TYPE_RGB24 |
1869 | + Never used. |
1870 | + |
1871 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1872 | + |
1873 | + jpeg-encoder: Avoid useless conversions |
1874 | + Define JpegEncoderContext as an abstract structure. |
1875 | + This allows to reduce casts. |
1876 | + Also remove some alignment warnings on some architecture like mips. |
1877 | + |
1878 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1879 | + |
1880 | + red-record-qxl: Remove potential leak |
1881 | + On some systems you need to call g_spawn_close_pid after |
1882 | + spawning a process to avoid leaks (currently Windows). |
1883 | + |
1884 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1885 | + |
1886 | + replay: Use GPid and G_PID_FORMAT for portability |
1887 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1888 | + |
1889 | + Add possibly missing headers for pthread.h |
1890 | + In some environment pthread.h is not defined but its definitions |
1891 | + are used in some headers. |
1892 | + Actually happens using MingW. |
1893 | + |
1894 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1895 | + |
1896 | +2018-06-25 Frediano Ziglio <fziglio@redhat.com> |
1897 | + |
1898 | + stat-file: Exit earlier to reduce indentation |
1899 | + Just style change. Invert the if to exit earlier. |
1900 | + |
1901 | + Acked-by: Christophe de Dinechin <dinechin@redhat.com> |
1902 | + |
1903 | + dispatcher: Define pollfd variable only if needed |
1904 | + Acked-by: Christophe de Dinechin <dinechin@redhat.com> |
1905 | + |
1906 | + Do not use bzero |
1907 | + Not defined in MingW. |
1908 | + |
1909 | + Acked-by: Christophe de Dinechin <dinechin@redhat.com> |
1910 | + |
1911 | + Use PRIxPTR constant for string formatting |
1912 | + These constants are meant to be used in format string for size_t |
1913 | + types. Use them for portability. |
1914 | + |
1915 | + Acked-by: Snir Sheriber <ssheribe@redhat.com> |
1916 | + |
1917 | +2018-06-21 Christophe Fergeau <cfergeau@redhat.com> |
1918 | + |
1919 | + channel: Remove unused 3rd red_channel_register_client_cbs() arg |
1920 | + It was probably meant to be used as a "user_data" argument for the |
1921 | + various callbacks, but turns out not to be used. |
1922 | + |
1923 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1924 | + |
1925 | +2018-06-21 Frediano Ziglio <fziglio@redhat.com> |
1926 | + |
1927 | + sound: Do not pass unused pointer |
1928 | + Client callbacks in sound channels do not use registered |
1929 | + data so don't pass a valid pointer making clear from |
1930 | + source that the parameter is not used. |
1931 | + |
1932 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1933 | + |
1934 | +2018-06-20 Christophe Fergeau <cfergeau@redhat.com> |
1935 | + |
1936 | + ssl: Allow to use ECDH ciphers with OpenSSL 1.0 |
1937 | + Without an explicit call to SSL_CTX_set_ecdh_auto(reds->ctx, 1), OpenSSL |
1938 | + 1.0 (still used by el7) would not use ECDH ciphers (this is now |
1939 | + automatic with OpenSSL 1.1.0). This commit adds this missing call. It's |
1940 | + based on a suggestion from David Jasa |
1941 | + |
1942 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1943 | + |
1944 | + https://bugzilla.redhat.com/show_bug.cgi?id=1566597 |
1945 | + |
1946 | +2018-06-20 Frediano Ziglio <fziglio@redhat.com> |
1947 | + |
1948 | + red-worker: Remove not used include |
1949 | + poll is not used anymore by this file. |
1950 | + |
1951 | + Acked-by: Lukáš Hrázký <lhrazky@redhat.com> |
1952 | + |
1953 | + sound: Reduce conditional compilation |
1954 | + Acked-by: Lukáš Hrázký <lhrazky@redhat.com> |
1955 | + |
1956 | +2018-06-20 Uri Lublin <uril@redhat.com> |
1957 | + |
1958 | + spice-common submodule: update url (add .git at the end) |
1959 | + With the move to gitlab.freedesktop.org the spice-common submodule |
1960 | + url changed, and now ends with .git |
1961 | + |
1962 | + Update .gitmodules to reflect that. |
1963 | + |
1964 | + Without this patch git submodule update (and ./autogen.sh) |
1965 | + fails on RHEL-7 (git version 1.8.3). |
1966 | + On Fedora 28 (git version 2.17.1) it succeeds as it's successfully |
1967 | + redirecting to spice-common.git url. |
1968 | + |
1969 | + With git version 1.8.3: |
1970 | + $ git submodule update |
1971 | + Cloning into 'spice-common'... |
1972 | + error: RPC failed; result=22, HTTP code = 404 |
1973 | + fatal: The remote end hung up unexpectedly |
1974 | + Clone of 'https://gitlab.freedesktop.org/spice/spice-common' into submodule path 'spice-common' failed |
1975 | + |
1976 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
1977 | + |
1978 | +2018-06-20 Christophe Fergeau <cfergeau@redhat.com> |
1979 | + |
1980 | + build: Use SPICE_CHECK_CELT051 in configure.ac |
1981 | + spice-common provides a m4 macro to check for celt, but spice-server is |
1982 | + not using it. With the recent disabling of celt in spice-common, the |
1983 | + default in spice-server got out of sync. It's better to use the same check |
1984 | + everywhere, even though in spice-server its only use is to show |
1985 | + --enable-celt051 in --help output. |
1986 | + |
1987 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1988 | + |
1989 | +2018-06-20 Snir Sheriber <ssheribe@redhat.com> |
1990 | + |
1991 | + Support h265 in stream-channel |
1992 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
1993 | + |
1994 | +2018-06-19 Frediano Ziglio <fziglio@redhat.com> |
1995 | + |
1996 | + ci: Add make distcheck test |
1997 | + Acked-by: Snir Sheriber <ssheribe@redhat.com> |
1998 | + |
1999 | +2018-06-18 Frediano Ziglio <fziglio@redhat.com> |
2000 | + |
2001 | + build: Remove unsupported --enable-automated-tests option on make distcheck |
2002 | + --enable-automated-tests option was removed in commit 6517ea5cbb07b |
2003 | + ("test-display-base: Always compile with AUTOMATED_TESTS enabled"). |
2004 | + |
2005 | + Acked-by: Christophe de Dinechin <dinechin@redhat.com> |
2006 | + |
2007 | +2018-06-18 Christophe Fergeau <cfergeau@redhat.com> |
2008 | + |
2009 | + Update spice-common submodule |
2010 | + This brings in the following changes: |
2011 | + |
2012 | + Christophe Fergeau (21): |
2013 | + quic: Remove configurable RLE_PRED |
2014 | + quic: Remove configurable PRED |
2015 | + quic: Get rid of QUIC_RGB #define |
2016 | + quic: Get rid of RLE_STAT #define |
2017 | + quic: Get rid of RLE #define |
2018 | + quic: Factor common code |
2019 | + quic: Introduce CommonState *state variable in templates |
2020 | + quic: s/decorrelate_drow/correlate_row |
2021 | + quic: Add macros to make quic_tmpl.c much closer to quic_rgb_tmpl.c |
2022 | + quic: Remove unused argument in uncompress_row{0, } |
2023 | + quic: Use channel->correlate_row in macros |
2024 | + quic: Add test case for compression/decompression |
2025 | + build: Ensure we link with -lm if needed |
2026 | + build: Disable celt 0.5.1 by default |
2027 | + build: By default, error out if Opus is missing |
2028 | + build: Use AM_COND_IF |
2029 | + build: Remove checks for functions which are never called |
2030 | + build: Remove bitops.h |
2031 | + build: Move client sources to libspice_common_client_la_SOURCES |
2032 | + meson: Support auto/true/false for optional dependencies |
2033 | + meson: Remove check for vfork |
2034 | + |
2035 | + Eduardo Lima (Etrunko) (7): |
2036 | + build: Remove FIXME_SERVER_SMARTCARD hack |
2037 | + Fix demarshaller code generator |
2038 | + Fix field names for Smartcard protocol structures |
2039 | + Fix cast to spice_marshaller_item_free_func function |
2040 | + Bump glib requirements to 2.38 |
2041 | + test-quic: Fix -Wsign-compare warning |
2042 | + Add support for building with meson/ninja |
2043 | + |
2044 | + Frediano Ziglio (19): |
2045 | + codegen: Add some comments |
2046 | + codegen: Removed unused get_type methods |
2047 | + protocol: Use a typedef to specify stream_id type |
2048 | + lz: Move ENCODE_PIXEL for RGB24 and RGB32 to a common place |
2049 | + Fix integer overflows computing sizes |
2050 | + Write a small test to test possible crash |
2051 | + Avoid integer overflow computing image sizes |
2052 | + Fix generation of Smartcard channel |
2053 | + test-overflow: Remove a leak in the test |
2054 | + marshaller: Remove initial underscore from static function |
2055 | + codegen: Remove duplicate client and server code from ChannelType::resolve |
2056 | + Check for messages with duplicate names inside a channel |
2057 | + Check for messages with duplicate values inside a channel |
2058 | + lz: Optimise SAME_PIXEL for RGB16 |
2059 | + lz: Inline GET_{r,g,b} macros |
2060 | + quic: Remove 'no-inline' hack |
2061 | + quic: Remove some too strict asserts in hot paths |
2062 | + quic: Fix endianness encoding |
2063 | + quic: Use __builtin_clz if available |
2064 | + |
2065 | + Jonathon Jongsma (2): |
2066 | + Remove extra self parameter from member function |
2067 | + miLineArc(): initialize edge1, edge2 |
2068 | + |
2069 | + Victor Toso (1): |
2070 | + messages: document limitation of id in StreamCreate |
2071 | + |
2072 | + build: Explicitly disable celt051 when running make distcheck |
2073 | + With spice-common commit 72b0d603e12, SPICE_CHECK_CELT051 will error out |
2074 | + if celt051-devel is installed, but neither --enable-celt051 nor |
2075 | + --disable-celt051 are specified. This could be a problem when running |
2076 | + make distcheck, so this commit adds --disable-celt051 so that we never |
2077 | + hit that error. |
2078 | + |
2079 | + Acked-by: Victor Toso <victortoso@redhat.com> |
2080 | + |
2081 | +2018-06-18 Frediano Ziglio <fziglio@redhat.com> |
2082 | + |
2083 | + Use "base" as pipe item base field name |
2084 | + Most of pipe items use this name for the base field. |
2085 | + This also allows to use SPICE_UPCAST macros instead of a long |
2086 | + SPICE_CONTAINEROF. |
2087 | + |
2088 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2089 | + |
2090 | + reds: Remove possible alignment warning using Clang |
2091 | + Although capabilities inside link message are handled as arrays |
2092 | + of 4 bytes unsigned integers we don't need capabilities to be |
2093 | + aligned to 4 bytes just to call g_memdup so use a pointer to |
2094 | + uint8_t instead. |
2095 | + |
2096 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2097 | + |
2098 | + red-channel-client: Do not allocate iovec array statically in the class |
2099 | + This array is just used locally in red_channel_client_handle_outgoing |
2100 | + so declare it there. |
2101 | + |
2102 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2103 | + |
2104 | +2018-06-14 Christophe Fergeau <cfergeau@redhat.com> |
2105 | + |
2106 | + ci: Pass --enable-celt051 to configure |
2107 | + It's now mandatory to explicitly enable/disable CELT at configure time |
2108 | + if celt051-devel is installed. |
2109 | + |
2110 | + Acked-by: Victor Toso <victortoso@redhat.com> |
2111 | + |
2112 | +2018-06-08 Lukáš Hrázký <lhrazky@redhat.com> |
2113 | + |
2114 | + Remove excessive logging of an area being drawn |
2115 | + Removes debug messages that are logged on every draw, spamming the log |
2116 | + excessively when debugging. |
2117 | + |
2118 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2119 | + |
2120 | +2018-06-05 Frediano Ziglio <fziglio@redhat.com> |
2121 | + |
2122 | + ci: Add some needed Valgrind suppression rule |
2123 | + From Gitlab CI: |
2124 | + |
2125 | + =17955== 16 bytes in 1 blocks are possibly lost in loss record 725 of 2,079 |
2126 | + ==17955== at 0x4C2DBAB: malloc (vg_replace_malloc.c:299) |
2127 | + ==17955== by 0x4011D17: tls_get_addr_tail.isra.0 (in /usr/lib64/ld-2.27.so) |
2128 | + ==17955== by 0x4017997: __tls_get_addr (in /usr/lib64/ld-2.27.so) |
2129 | + ==17955== by 0xEE4534B: gnutls_rnd (in /usr/lib64/libgnutls.so.30.20.2) |
2130 | + ==17955== by 0xEE1F254: ??? (in /usr/lib64/libgnutls.so.30.20.2) |
2131 | + ==17955== by 0xEE1F947: ??? (in /usr/lib64/libgnutls.so.30.20.2) |
2132 | + ==17955== by 0xEE231B5: ??? (in /usr/lib64/libgnutls.so.30.20.2) |
2133 | + ==17955== by 0xEE24D67: gnutls_handshake (in /usr/lib64/libgnutls.so.30.20.2) |
2134 | + ==17955== by 0xEBD4FEA: ??? (in /usr/lib64/gio/modules/libgiognutls.so) |
2135 | + ==17955== by 0x7463936: g_task_thread_pool_thread (gtask.c:1331) |
2136 | + ==17955== by 0x7A3E932: g_thread_pool_thread_proxy (gthreadpool.c:307) |
2137 | + ==17955== by 0x7A3DF29: g_thread_proxy (gthread.c:784) |
2138 | + ==17955== by 0x8284563: start_thread (in /usr/lib64/libpthread-2.27.so) |
2139 | + ==17955== by 0x859631E: clone (in /usr/lib64/libc-2.27.so) |
2140 | + ==17955== |
2141 | + ==17955== 32 bytes in 1 blocks are possibly lost in loss record 1,234 of 2,079 |
2142 | + ==17955== at 0x4C2DBAB: malloc (vg_replace_malloc.c:299) |
2143 | + ==17955== by 0x4011D17: tls_get_addr_tail.isra.0 (in /usr/lib64/ld-2.27.so) |
2144 | + ==17955== by 0x4017997: __tls_get_addr (in /usr/lib64/ld-2.27.so) |
2145 | + ==17955== by 0xCAA5173: __cxa_get_globals (in /usr/lib64/libstdc++.so.6.0.25) |
2146 | + ==17955== by 0xCAA6186: __cxa_throw (in /usr/lib64/libstdc++.so.6.0.25) |
2147 | + ==17955== by 0xC601457: ??? (in /usr/lib64/libproxy.so.1.0.0) |
2148 | + ==17955== by 0xC5F6BB6: ??? (in /usr/lib64/libproxy.so.1.0.0) |
2149 | + ==17955== by 0xC5F7089: ??? (in /usr/lib64/libproxy.so.1.0.0) |
2150 | + ==17955== by 0xC5F7470: px_proxy_factory_get_proxies (in /usr/lib64/libproxy.so.1.0.0) |
2151 | + ==17955== by 0xC3E64E3: ??? (in /usr/lib64/gio/modules/libgiolibproxy.so) |
2152 | + ==17955== by 0x7463936: g_task_thread_pool_thread (gtask.c:1331) |
2153 | + ==17955== by 0x7A3E932: g_thread_pool_thread_proxy (gthreadpool.c:307) |
2154 | + ==17955== by 0x7A3DF29: g_thread_proxy (gthread.c:784) |
2155 | + ==17955== by 0x8284563: start_thread (in /usr/lib64/libpthread-2.27.so) |
2156 | + ==17955== by 0x859631E: clone (in /usr/lib64/libc-2.27.so) |
2157 | + |
2158 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2159 | + |
2160 | + ci: Merge new Valgrind suppression rule from official glib.supp |
2161 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2162 | + |
2163 | + glz-encoder: Avoid double byte swap sending image magic |
2164 | + encode_32 already deals with endian, don't swap twice. |
2165 | + Tested with a ppc64 server machine and a x64 client. |
2166 | + |
2167 | + This looks the reverse of a previous patch (59c6c82) supposed to fix big |
2168 | + endian machine. encode_32 has been always: |
2169 | + |
2170 | + static inline void encode_32(Encoder *encoder, unsigned int word) |
2171 | + { |
2172 | + encode(encoder, (uint8_t)(word >> 24)); |
2173 | + encode(encoder, (uint8_t)(word >> 16) & 0x0000ff); |
2174 | + encode(encoder, (uint8_t)(word >> 8) & 0x0000ff); |
2175 | + encode(encoder, (uint8_t)(word & 0x0000ff)); |
2176 | + } |
2177 | + |
2178 | + while encode basically is similar to a putc on a FILE stream so is writing |
2179 | + numbers from host endian to big endian order. |
2180 | + The "main" endian (the one more tested since ever) is host/guest being |
2181 | + little endian. So if you call encode_32 with a 0x01020304 you get 4 bytes |
2182 | + in the order 1, 2, 3, 4. |
2183 | + Before and after 59c6c82 LZ_MAGIC was defined as: |
2184 | + #define LZ_MAGIC (*(uint32_t *)"LZ ") |
2185 | + so on little endian this was 0x4c, 0x5a, 0x20, 0x20 that is 0x20205a4c |
2186 | + which written through encode_32 become 0x20, 0x20, 0x5a, 0x4c so we can say |
2187 | + that at the end on the network we must have 0x20, 0x20, 0x5a, 0x4c. |
2188 | + On big endian however LZ_MAGIC got the value 0x4c5a2020 which written |
2189 | + through encode_32 get 0x4c, 0x5a, 0x20, 0x20 which is the opposite |
2190 | + expected. So patch 59c6c82 reverted the order having again 0x20, 0x20, |
2191 | + 0x5a, 0x4c on the network. |
2192 | + However commit 5a7e587 (spice-common), in an attempt to avoid double |
2193 | + swapping on LZ, changed LZ_MAGIC to |
2194 | + #define LZ_MAGIC 0x20205a4c |
2195 | + breaking endianness again for GLZ code. |
2196 | + |
2197 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2198 | + |
2199 | + README: Update required spice protocol version |
2200 | + |
2201 | +2018-05-24 Christophe Fergeau <cfergeau@redhat.com> |
2202 | + |
2203 | + worker: Remove display_is_connected() |
2204 | + It's only called once, and when it's called, we will have dereferenced |
2205 | + worker->display_channel a few lines before in |
2206 | + display_channel_set_monitors_config_to_primary(), so this cannot be |
2207 | + NULL. The 'if (worker->display_channel)' check can thus be removed, so |
2208 | + display_is_connected() becomes just red_channel_is_connected(). |
2209 | + |
2210 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
2211 | + |
2212 | + worker: Use more local vars in dev_create_primary_surface |
2213 | + There's already a 'display' variable equal to worker->display_channel |
2214 | + which is not consistently used. This commit also adds a new 'channel' |
2215 | + local variable to limit the number of upcasts to RedChannel. |
2216 | + |
2217 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
2218 | + |
2219 | +2018-05-10 Frediano Ziglio <fziglio@redhat.com> |
2220 | + |
2221 | + char-device: Avoid possible invalid function pointer cast |
2222 | + This is reported by GCC 8.0.1 (Fedora 28). |
2223 | + Instead of doing a possible invalid cast destroy and create the |
2224 | + queue again. |
2225 | + |
2226 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
2227 | + |
2228 | + red-channel: Avoid possible invalid function pointer type cast |
2229 | + Avoid casting function pointer with different argument providing |
2230 | + a proper utility instead. |
2231 | + |
2232 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
2233 | + |
2234 | + event-loop: Avoid possible compiler warning |
2235 | + With GCC 8.0.1 (Fedora 28), cast to different function pointer |
2236 | + can lead to warnings, like: |
2237 | + |
2238 | + event-loop.c: In function ‘watch_update_mask’: |
2239 | + event-loop.c:146:42: error: cast between incompatible function types from ‘gboolean (*)(GIOChannel *, GIOCondition, void *)’ {aka ‘int (*)(struct _GIOChannel *, enum <anonymous>, void *)’} to ‘gboolean (*)(void *)’ {aka ‘int (*)(void *)’} [-Werror=cast-function-type] |
2240 | + g_source_set_callback(watch->source, (GSourceFunc)watch_func, watch, NULL); |
2241 | + ^ |
2242 | + cc1: all warnings being treated as errors |
2243 | + |
2244 | + As g_source_set_callback expect a function pointer which type |
2245 | + changes based on the type of source (so is expected) silent |
2246 | + the possible warning. |
2247 | + |
2248 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
2249 | + |
2250 | +2018-05-10 Snir Sheriber <ssheribe@redhat.com> |
2251 | + |
2252 | + docs: Update links in README and manual |
2253 | + Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> |
2254 | + |
2255 | +2018-04-24 Frediano Ziglio <fziglio@redhat.com> |
2256 | + |
2257 | + glz-encoder: Do not discard top bits of lower part sending 64 bit ints |
2258 | + When GLZ code attempts to send a 64 bit integer the 8 top bit of |
2259 | + the lower (32 bits) part of the number are stripped due to a bug. |
2260 | + |
2261 | + This was discovered by Zhongqiang Huang <useprxf@gmail.com> |
2262 | + |
2263 | + Reported-by: Zhongqiang Huang <useprxf@gmail.com> |
2264 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
2265 | + |
2266 | +2018-04-20 Frediano Ziglio <fziglio@redhat.com> |
2267 | + |
2268 | + stream-channel: Implements monitors_config |
2269 | + Although not necessary for a single monitor DisplayChannel implementation |
2270 | + this make the DisplayChannels more coherent from the client |
2271 | + point of view. |
2272 | + |
2273 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
2274 | + |
2275 | +2018-04-19 Victor Toso <me@victortoso.com> |
2276 | + |
2277 | + tests: add test-listen executable to gitignore |
2278 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
2279 | + |
2280 | +2018-04-17 Christophe Fergeau <cfergeau@redhat.com> |
2281 | + |
2282 | + qxl: Remove 'blackness' and 'invers' put/get methods |
2283 | + SpiceWhiteness/SpiceBlackness/SpiceInvers are 3 typedef for the same |
2284 | + type, no need to have 3 identical red_put_xxx/red_get_xxx methods. |
2285 | + |
2286 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
2287 | + |
2288 | + qxl: Remove red_put_blend() |
2289 | + SpiceBlend is a typedef to SpiceCopy, and red_put_blend() and |
2290 | + red_put_copy() are identical, so we can add a #define red_put_blend |
2291 | + red_put_copy similar to the one we already have for red_get_blend. |
2292 | + |
2293 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
2294 | + |
2295 | +2018-04-17 Frediano Ziglio <fziglio@redhat.com> |
2296 | + |
2297 | + common-graphics-channel: Use manual flushing on stream to decrease packet fragmentation |
2298 | + In order to use the new TCP_CORK feature, disable auto flush. |
2299 | + |
2300 | + Depending on channel implementation and purpose of the channel enabling |
2301 | + blindly for all channels could cause performance issues, specifically if |
2302 | + flush is not done at the right time. |
2303 | + CommonGraphicsChannel channels were tested to make sure is not that case. |
2304 | + |
2305 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2306 | + |
2307 | + red-stream: Implements flush using TCP_CORK |
2308 | + Cork is a system interface implemented by Linux and some *BSD systems to |
2309 | + tell the system that other data are expected to be written to a socket. |
2310 | + This allows the system to reduce network fragmentation waiting for network |
2311 | + packets to be complete. |
2312 | + |
2313 | + Using some replay capture and some instrumentation resulted in a |
2314 | + bandwith reduction of 11% and a packet reduction of 56%. |
2315 | + |
2316 | + The tests was done using replay utility so results could be a bit different |
2317 | + from real cases as: |
2318 | + - replay goes as fast as it can, for instance packets could |
2319 | + be merged by the kernel decreasing packet numbers and a bit |
2320 | + byte spent (this actually make the following improves worse); |
2321 | + - there are fewer channels (no much cursor, sound, etc). |
2322 | + The following tests shows count packet and total bytes from server to |
2323 | + client using a real network. I used a direct cable connection using 1gb |
2324 | + connection and 2 laptops. |
2325 | + |
2326 | + cork: 537 1582240 |
2327 | + cork: 681 1823754 |
2328 | + cork: 524 1583287 |
2329 | + cork: 538 1582350 |
2330 | + no cork: 1329 1834630 |
2331 | + no cork: 1290 1829094 |
2332 | + no cork: 1289 1830164 |
2333 | + no cork: 1317 1833589 |
2334 | + no cork: 1320 1835705 |
2335 | + |
2336 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2337 | + |
2338 | + red-stream: Define interface for manual flush |
2339 | + The writing to network was always immediate. |
2340 | + Every write in the stream causes a write to the OS. |
2341 | + This can have some penalty if you don't write large data as network |
2342 | + packets can be more fragmented or you encrypt data in smaller chunks |
2343 | + (when data are encrypted some padding is added then data is split in |
2344 | + multiple of encryption block which is usually the size of encryption |
2345 | + key and this is done for every write). |
2346 | + Define an interface to allow higher levels code to tell low level when |
2347 | + data should be sent to remote or when can wait more data. |
2348 | + |
2349 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2350 | + |
2351 | + ci: Workaround bug in Valgrind detecting memcpy instead of memmove |
2352 | + Due to a bug in current packaged Valgrind in the CI (1:3.13.0-13.fc27) |
2353 | + check-valgrind is failing with: |
2354 | + |
2355 | + ==17986== Source and destination overlap in memcpy_chk(0x72c060, 0x72c068, 33) |
2356 | + ==17986== at 0x4C344F0: __memcpy_chk (vg_replace_strmem.c:1581) |
2357 | + ==17986== by 0x40E7E9: check_vmc_error_message (test-stream-device.c:166) |
2358 | + ==17986== by 0x40EFD4: test_stream_device_format_after_data (test-stream-device.c:349) |
2359 | + ==17986== by 0x7A012E9: test_case_run (gtestutils.c:2157) |
2360 | + ==17986== by 0x7A012E9: g_test_run_suite_internal (gtestutils.c:2241) |
2361 | + ==17986== by 0x7A0121A: g_test_run_suite_internal (gtestutils.c:2253) |
2362 | + ==17986== by 0x7A014C1: g_test_run_suite (gtestutils.c:2329) |
2363 | + ==17986== by 0x7A014E0: g_test_run (gtestutils.c:1594) |
2364 | + ==17986== by 0x40951A: main (test-stream-device.c:410) |
2365 | + ==17986== |
2366 | + |
2367 | + By default during CI build _FORTIFY_SOURCE is enabled, which turns memmove |
2368 | + into __memmove_chk, which is wrongly turned into __memcpy_chk when running |
2369 | + under Valgrind. |
2370 | + Setting _FORTIFY_SOURCE to 0 prevents the use of __memmove_chk, and avoids |
2371 | + triggering the Valgrind bug. |
2372 | + |
2373 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2374 | + |
2375 | +2018-04-16 Christophe Fergeau <cfergeau@redhat.com> |
2376 | + |
2377 | + Slight simplification of red_channel_client_push() logic |
2378 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
2379 | + |
2380 | + cursor: Rename cursor_marshall to red_marshall_cursor |
2381 | + The name is more consistent with red_marshall_cursor_init. |
2382 | + |
2383 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
2384 | + |
2385 | + cursor: Delay release of QXL guest cursor resources |
2386 | + There's an implicit API/ABI contract between QEMU and SPICE that SPICE |
2387 | + will keep the guest QXL resources alive as long as QEMU can hold a |
2388 | + pointer to them. This implicit contract was broken in 1c6e7cf7 "Release |
2389 | + cursor as soon as possible", causing crashes at migration time. |
2390 | + While the proper fix would be in QEMU so that spice-server does not need |
2391 | + to have that kind of knowledge regarding QEMU internal implementation, |
2392 | + this commit reverts to the pre-1c6e7cf7 behaviour to avoid a regression |
2393 | + while QEMU is being fixed. |
2394 | + |
2395 | + This version of the fix is based on a suggestion from Frediano Ziglio. |
2396 | + |
2397 | + https://bugzilla.redhat.com/show_bug.cgi?id=1540919 |
2398 | + |
2399 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
2400 | + |
2401 | +2018-04-11 Frediano Ziglio <fziglio@redhat.com> |
2402 | + |
2403 | + test-stream-device: Test we can read empty capabilities |
2404 | + Code can have problems reading empty messages, check we can |
2405 | + handle it. |
2406 | + |
2407 | + Acked-by: Christophe de Dinechin <dinechin@redhat.com> |
2408 | + |
2409 | + stream-device: Handle capabilities |
2410 | + Handle capabilities from guest device. |
2411 | + Send capability to the guest when device is opened. |
2412 | + Currently there's no capabilities set on the message sent. |
2413 | + On the tests we need to discard the capability message before |
2414 | + reading the error. |
2415 | + |
2416 | + Acked-by: Christophe de Dinechin <dinechin@redhat.com> |
2417 | + |
2418 | + stream-device: Factor out function to fill message headers |
2419 | + This function will be reused to initialise different message |
2420 | + headers. |
2421 | + |
2422 | + Acked-by: Christophe de Dinechin <dinechin@redhat.com> |
2423 | + |
2424 | +2018-04-10 Frediano Ziglio <fziglio@redhat.com> |
2425 | + |
2426 | + red-parse-qxl: Remove unused device_data field |
2427 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2428 | + |
2429 | +2018-04-10 Christophe Fergeau <cfergeau@redhat.com> |
2430 | + |
2431 | + cursor: Consistently use g_memdup() for cursor data |
2432 | + Currently, red-parse-qxl.c uses g_malloc+memcpy to duplicate the cursor |
2433 | + data when it could use g_memdup() instead. red-stream-device.c does the |
2434 | + same thing but uses spice_memdup(). This commit makes use of g_memdup() |
2435 | + in both cases so that this memory is consistently allocated through |
2436 | + glib. |
2437 | + |
2438 | +2018-04-06 Frediano Ziglio <fziglio@redhat.com> |
2439 | + |
2440 | + syntax-check: Add missing contributors names to AUTHORS |
2441 | + Acked-by: Victor Toso <victortoso@redhat.com> |
2442 | + |
2443 | +2018-04-05 Lukáš Hrázký <lhrazky@redhat.com> |
2444 | + |
2445 | + Rename the virtio port for streaming |
2446 | + The name 'com.redhat.stream.0' is too generic and in no way denotes it |
2447 | + belongs to SPICE. It is preferred to have the project's domain in the |
2448 | + name and Red Hat doesn't own the project. Rename it to |
2449 | + org.spice-space.stream.0. |
2450 | + |
2451 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
2452 | + |
2453 | +2018-03-19 Frediano Ziglio <fziglio@redhat.com> |
2454 | + |
2455 | + video-stream: Improve RedUpgradeItem documentation |
2456 | + Artifacts are due to lossy compression of streaming |
2457 | + |
2458 | + Acked-by: Uri Lublin <uril@redhat.com> |
2459 | + |
2460 | + Use --enable-extra-checks option provided by spice-common |
2461 | + Reuse option from common code. |
2462 | + Also reuse spice_extra_checks constant instead of using the preprocessor |
2463 | + macro directly. |
2464 | + |
2465 | + Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> |
2466 | + |
2467 | +2018-03-14 Frediano Ziglio <fziglio@redhat.com> |
2468 | + |
2469 | + valgrind: Ignore some library leaks |
2470 | + Ignore getaddrinfo and libproxy leaks. |
2471 | + |
2472 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2473 | + |
2474 | + test-listen: Increase failure timeout |
2475 | + The timeout is too short when the test run under Valgrind |
2476 | + |
2477 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2478 | + |
2479 | + ci: Add glib-networking package |
2480 | + This is required by the new test-listen test to connect using |
2481 | + TLS. |
2482 | + |
2483 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2484 | + |
2485 | +2018-03-13 Frediano Ziglio <fziglio@redhat.com> |
2486 | + |
2487 | + video-stream: Document the usage of RedUpgradeItem structure |
2488 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
2489 | + |
2490 | + test-listen: Fix some use after free |
2491 | + Do not dereference thread_data after has been freed. |
2492 | + |
2493 | + Acked-by: Victor Toso <victortoso@redhat.com> |
2494 | + |
2495 | +2018-03-13 Eduardo Lima (Etrunko) <etrunko@redhat.com> |
2496 | + |
2497 | + Rename stream-device.[ch] to red-stream-device.[ch] |
2498 | + In order to avoid confusion with file named stream-device.h, from |
2499 | + spice-protocol. |
2500 | + |
2501 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
2502 | + |
2503 | +2018-03-13 Christophe Fergeau <cfergeau@redhat.com> |
2504 | + |
2505 | + test-listen: Add Unix socket test |
2506 | + |
2507 | + test-listen: Add TLS test |
2508 | + |
2509 | + test-listen: Add event loop helpers |
2510 | + These factor a bit of common code, and more importantly, help with |
2511 | + freeing all event loop related data at the end of each test. |
2512 | + |
2513 | + test-listen: Add test case for port/address configuration |
2514 | + This test case will be testing the external spice-server API to |
2515 | + configure the address/port it's listening on. For now it sets up a |
2516 | + listening server, spawns a thread which is going to connect to that |
2517 | + port, and check it gets the REDQ magic upon connection. It will be |
2518 | + extended to test for Unix sockets, TLS sockets, ... |
2519 | + |
2520 | + tests: basic-event-loop: Silence debug message |
2521 | + There is currently a debug printf which is always shown when a mainloop |
2522 | + event is triggered. This is unlikely to be useful unless one is |
2523 | + debugging the event loop code. |
2524 | + |
2525 | + build: Bump glib version |
2526 | + From spice-gtk b312ca08 commit: |
2527 | + " At the moment: |
2528 | + - Fedora 26 has 2.52 |
2529 | + - Fedora 25 has 2.50 |
2530 | + - Fedora 24 has 2.48 |
2531 | + - CentOS 7 has 2.46 |
2532 | + - Debian 9 has 2.50" |
2533 | + |
2534 | + RHEL6 only have 2.28, but glib 2.32 is only used in a test case at the |
2535 | + moment. |
2536 | + |
2537 | + reds: Close sockets when failing to watch them |
2538 | + Currently if we fail to set up the watch waiting for accept() to be |
2539 | + called on the socket, we still keep the network socket(s) open even if we |
2540 | + are not going to be able to use it. This commit makes sure it's closed a |
2541 | + set to -1 when such a failure occurs rather than having a half |
2542 | + initialized spice-server instance. |
2543 | + |
2544 | +2018-03-12 Frediano Ziglio <fziglio@redhat.com> |
2545 | + |
2546 | + red-record-qxl: fix clang warning |
2547 | + Fix clang warning: |
2548 | + |
2549 | + red-record-qxl.c:893:13: error: variable 'fd_in' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] |
2550 | + if (ret) |
2551 | + |
2552 | + This is technically impossible but is not on a hot path. |
2553 | + |
2554 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2555 | + |
2556 | +2018-03-11 Frediano Ziglio <fziglio@redhat.com> |
2557 | + |
2558 | + dcc: Remove unused channel parameter |
2559 | + Acked-by: Snir Sheriber <ssheribe@redhat.com> |
2560 | + |
2561 | +2018-03-09 Frediano Ziglio <fziglio@redhat.com> |
2562 | + |
2563 | + ci: Fix compiling of some functions |
2564 | + Address sanitizer use a larger stack than normal compiled programs |
2565 | + making the build fails. This causes this error on GitLab CI system: |
2566 | + |
2567 | + stream-device.c: In function 'stream_device_partial_read': |
2568 | + stream-device.c:182:1: error: the frame size of 32992 bytes is larger than 20460 bytes [-Werror=frame-larger-than=] |
2569 | + |
2570 | + Allow larger stack on "makecheck" to avoid this issue. |
2571 | + |
2572 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2573 | + |
2574 | +2018-03-08 Frediano Ziglio <fziglio@redhat.com> |
2575 | + |
2576 | + stream-device: Create channels before first non-main channel connection |
2577 | + Due to ticket expiration, it is possible that the streaming channels for |
2578 | + the client are created after the ticket expires. Currently, streaming |
2579 | + channels are created dynamically when the guest starts streaming to the |
2580 | + server, which can happen at any time (for instance if you decide to start |
2581 | + the graphic server manually). |
2582 | + If the ticket has expired before the streaming channel is created, |
2583 | + authentication will fail and the client will not be able to connect. |
2584 | + To avoid this, create the channels when the first main channel connection |
2585 | + is made. This ensures that client will connect to all streaming channels. |
2586 | + This could be considered a temporary solution. There may be other |
2587 | + situations where it would be useful to connect new channels after the |
2588 | + ticket has expired, but enabling this behavior would require protocol |
2589 | + changes and a careful analysis of security implications. |
2590 | + |
2591 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2592 | + |
2593 | + stream-device: Separate declaration in a separate header |
2594 | + Move public declaration (stream_device_connect) from char-device.h |
2595 | + to a new stream-device.h. |
2596 | + Add type declaration for StreamDevice. |
2597 | + This allows to use the type outside the implementation file and makes it |
2598 | + easier to extend the interface without changing char-device.h header. |
2599 | + |
2600 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2601 | + |
2602 | +2018-03-07 Eduardo Lima (Etrunko) <etrunko@redhat.com> |
2603 | + |
2604 | + build: Rename spice-server-enums.tmpl.[ch] to spice-server-enums.[ch].tmpl |
2605 | + This is a preparation for meson build, which has built-in support for |
2606 | + generating enums, but requires the template files to be renamed. It uses |
2607 | + the basename of template files to generate the output, and in this case |
2608 | + it would be the same file for both '.c' and '.h'. Ideally meson would |
2609 | + let us specify the name of the output files, but this is not the case. |
2610 | + |
2611 | + Without renaming, the following error happens: |
2612 | + |
2613 | + Meson encountered an error in file server/meson.build, line 30, column 0: |
2614 | + Tried to create target "spice-server-enums.tmpl", but a target of that |
2615 | + name already exists. |
2616 | + |
2617 | + Reference: http://mesonbuild.com/Gnome-module.html#gnomemkenums |
2618 | + |
2619 | + Note that by the time of this commit, the documentation is not accurate |
2620 | + and does not mention the fact that output files will get the base name |
2621 | + of the template files if they are specified, I submitted a pull request |
2622 | + to meson fixing this detail in docs: |
2623 | + |
2624 | + https://github.com/mesonbuild/meson/pull/3191 |
2625 | + |
2626 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2627 | + |
2628 | +2018-03-06 Frediano Ziglio <fziglio@redhat.com> |
2629 | + |
2630 | + test-stream-device: Check we don't read past data message |
2631 | + Test case for the issue fixed by previous commit. |
2632 | + |
2633 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2634 | + |
2635 | + stream-device: Do not read past data message |
2636 | + If data message is followed by another message, it's theoretically |
2637 | + possible that device loses the sync with the guest. |
2638 | + The actual Qemu and streaming agent implementation avoids it, but better to |
2639 | + make sure this can't happen in the server code too. |
2640 | + |
2641 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2642 | + |
2643 | + stream-device: Workaround Qemu bug closing device |
2644 | + Previous patch causes a bug in Qemu if the patch |
2645 | + 46764fe09ca2e0f15c0981a672c166ed8cf57e72 ("virtio-serial: fix segfault |
2646 | + on disconnect") is not included in that version of Qemu (patch present in |
2647 | + version 2.10.0). |
2648 | + This crash happens when device is closed during a write operation. |
2649 | + For SPICE character device, spice_server_char_device_wakeup is called |
2650 | + to write data which handles both read and write pending operations. |
2651 | + As we want to close the device but we can't do it inside the handler |
2652 | + without causing a crash, this commit schedules a timer that will close the |
2653 | + guest device outside this callback. |
2654 | + The proper solution would be to patch Qemu but making sure of this is not |
2655 | + so easy, hence this workaround in spice-server. |
2656 | + Code is marked with some comments to remember to remove this |
2657 | + hack in a safe future. |
2658 | + |
2659 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2660 | + |
2661 | + stream-device: Disable guest device on errors |
2662 | + Once the device is an error state, we don't want the guest to keep |
2663 | + reading/writing to it, especially as this could put the device in an |
2664 | + inconsistent state. This commit disables the device when an error occurs to |
2665 | + prevent further unintended use of the device by the guest. |
2666 | + |
2667 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2668 | + |
2669 | + stream-device: Implement properly device reset on open/close |
2670 | + Due to the way Qemu handle the device, when an error occurs we must consume |
2671 | + all pending data inside the callback which reads data from the device. |
2672 | + If we don't flush this data, the next time spice-server tries to read from |
2673 | + the device (after the guest closes/reopens it), we'll be getting stale |
2674 | + data. This can happen because we cannot prevent the guest from writing to |
2675 | + the device even after it got in an error state. |
2676 | + This needs to be done within this callback, as QEMU returns 0 if you call |
2677 | + SpiceCharDeviceInterface::read() outside of it. QEMU invokes this callback |
2678 | + through a call to spice_server_char_device_wakeup. |
2679 | + On the test now we must test that we receive an error from the device. |
2680 | + Previously we checked that last part of the data was not read. Now |
2681 | + potentially all data are read, so we need another way to check the device |
2682 | + detected the error. |
2683 | + |
2684 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2685 | + |
2686 | +2018-02-28 Frediano Ziglio <fziglio@redhat.com> |
2687 | + |
2688 | + build: Update spice-common submodule |
2689 | + This includes some rendering fixes. |
2690 | + |
2691 | + Frediano Ziglio (19): |
2692 | + proto: Add some documentation to stream_report message |
2693 | + protocol: Allow to specify a surface will be streamed |
2694 | + canvas-base: Fix width computation for palette images |
2695 | + canvas: Simplify code using spice_memdup |
2696 | + canvas: Remove possible leak on LZ decompression failure |
2697 | + lz: Avoid temporary variable |
2698 | + lz: Simplify code |
2699 | + lz: Remove unused encode_level and only assigned io_start |
2700 | + canvas: Move PixmanData to C file |
2701 | + canvas: Remove mutex field from PixmanData |
2702 | + canvas: Remove Windows bitmap allocation |
2703 | + canvas: Remove unused dc parameter from surface_create |
2704 | + canvas: Remove dc parameter from SwCanvas::put_image |
2705 | + canvas: Remove dc fields from CanvasBase and LzDecodeUsrData |
2706 | + canvas: Unify __surface_create_stride and surface_create_stride |
2707 | + canvas: Remove unused include header |
2708 | + canvas: Prevent some error compiling spice-gtk |
2709 | + canvas: Fix some semi transparent drawing |
2710 | + canvas: Use SPICE_UNALIGNED_CAST to avoid -Wcast-align warnings |
2711 | + |
2712 | + Pavel Grunt (1): |
2713 | + Remove GDI canvas |
2714 | + |
2715 | + Paweł Pękala (1): |
2716 | + Fix build with LibreSSL |
2717 | + |
2718 | + Acked-by: Snir Sheriber <ssheribe@redhat.com> |
2719 | + |
2720 | +2018-02-27 Frediano Ziglio <fziglio@redhat.com> |
2721 | + |
2722 | + test-stream-device: Test batched multiple messages |
2723 | + Test all batched (send together) messages are handled correctly |
2724 | + and device is not stuck. |
2725 | + |
2726 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2727 | + |
2728 | + test-stream-device: Better Qemu emulation for data reading |
2729 | + Qemu does not trigger a new data read if we don't read all data in |
2730 | + the buffer. |
2731 | + |
2732 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2733 | + |
2734 | +2018-02-16 Frediano Ziglio <fziglio@redhat.com> |
2735 | + |
2736 | + stream-device: Implement mouse movement |
2737 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
2738 | + |
2739 | + stream-device: handle cursor from device |
2740 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
2741 | + |
2742 | + stream-device: Avoid device to get stuck if multiple messages are batched |
2743 | + If messages are sent together by the agent the device is reading |
2744 | + only part of the data. This cause Qemu to not poll for new data and |
2745 | + stream_device_read_msg_from_dev won't be called again. |
2746 | + This can cause a stall. To avoid this continue handling data |
2747 | + after a full message was processed. |
2748 | + |
2749 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
2750 | + |
2751 | +2018-02-12 Frediano Ziglio <fziglio@redhat.com> |
2752 | + |
2753 | + reds: Disable TLS 1.0 |
2754 | + TLS 1.0 is considered now insecure. |
2755 | + TLS 1.1 was introduced in 2006. |
2756 | + Our SPICE clients uses OpenSSL to use TLS and the support for TLS 1.1 |
2757 | + in OpenSSL was introduced in 2006 too so even in systems like |
2758 | + Windows XP which are not officially supporting TLS 1.0 will work |
2759 | + with SPICE and TLS 1.1. |
2760 | + This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1521053. |
2761 | + |
2762 | + Acked-by: Victor Toso <victortoso@redhat.com> |
2763 | + |
2764 | +2018-02-09 Christophe de Dinechin <dinechin@redhat.com> |
2765 | + |
2766 | + Add mention of fall-through comments |
2767 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
2768 | + |
2769 | + Add mention of header guards |
2770 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
2771 | + |
2772 | +2018-02-08 Frediano Ziglio <fziglio@redhat.com> |
2773 | + |
2774 | + style: Update style to include some C++ element |
2775 | + This style is used by other SPICE projects like spice-streaming-agent. |
2776 | + See discussion "Coding style and naming conventions for C++" at |
2777 | + https://lists.freedesktop.org/archives/spice-devel/2018-January/041562.html. |
2778 | + |
2779 | + Acked-by: Lukáš Hrázký <lhrazky@redhat.com> |
2780 | + |
2781 | +2018-02-07 Christophe de Dinechin <dinechin@redhat.com> |
2782 | + |
2783 | + Fix indentation in macro example |
2784 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
2785 | + |
2786 | + Fix grammatical error |
2787 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
2788 | + |
2789 | + Update copyright date |
2790 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
2791 | + |
2792 | +2018-01-31 Frediano Ziglio <fziglio@redhat.com> |
2793 | + |
2794 | + utils: Avoid possible unaligned access |
2795 | + Code in rgb32_data_has_alpha possibly generate this warning using |
2796 | + clang: |
2797 | + |
2798 | + utils.c:35:16: error: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Werror,-Wcast-align] |
2799 | + line = (uint32_t *)data; |
2800 | + ^~~~~~~~~~~~~~~~ |
2801 | + |
2802 | + Although the images are expected to be all aligned in this respect |
2803 | + use byte access on the data instead. This, beside fixing the alignment |
2804 | + issue also avoid problem with big endian machines (images in SPICE are |
2805 | + expected to have the alpha channel as the forth byte). |
2806 | + |
2807 | + Acked-by: Victor Toso <victortoso@redhat.com> |
2808 | + |
2809 | + red-common: Avoid some not used warning using clang |
2810 | + clang reports lot of warnings like: |
2811 | + |
2812 | + spicevmc.c:47:1: error: unused function 'RED_CHAR_DEVICE_SPICEVMC_CLASS' [-Werror,-Wunused-function] |
2813 | + SPICE_DECLARE_TYPE(RedCharDeviceSpiceVmc, red_char_device_spicevmc, CHAR_DEVICE_SPICEVMC); |
2814 | + ^ |
2815 | + ./red-common.h:110:43: note: expanded from macro 'SPICE_DECLARE_TYPE' |
2816 | + static inline ModuleObjName ## Class *G_PASTE(G_PASTE(RED_,OBJ_NAME),_CLASS)(void *klass) \ |
2817 | + ^ |
2818 | + |
2819 | + They are all static inline function and usually should not generate |
2820 | + warnings but for some reasons they do. |
2821 | + |
2822 | + Acked-by: Victor Toso <victortoso@redhat.com> |
2823 | + |
2824 | + sound: Avoid cast that could cause alignment problems |
2825 | + clang is reporting: |
2826 | + |
2827 | + sound.c:292:16: error: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Werror,-Wcast-align] |
2828 | + data = (uint32_t *)packet->data; |
2829 | + ^~~~~~~~~~~~~~~~~~~~~~~~ |
2830 | + |
2831 | + however we are using memcpy to access "data" pointer so there's no |
2832 | + need to use uint32_t pointer. Also considering we don't do math with |
2833 | + that pointer. |
2834 | + |
2835 | + Acked-by: Victor Toso <victortoso@redhat.com> |
2836 | + |
2837 | + Avoid some alignment warnings using clang |
2838 | + clang reports may warnings like: |
2839 | + |
2840 | + test-display-base.c:252:11: error: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Werror,-Wcast-align] |
2841 | + dst = (uint32_t *)bitmap; |
2842 | + ^~~~~~~~~~~~~~~~~~ |
2843 | + |
2844 | + Use SPICE_ALIGNED_CAST/SPICE_UNALIGNED_CAST macros in common/mem.h to |
2845 | + mark the cast safe or possibly unsafe. |
2846 | + |
2847 | + Acked-by: Victor Toso <victortoso@redhat.com> |
2848 | + |
2849 | + tests: Avoid some possible not initialized warning from Clang |
2850 | + Not really possible but clang raise these warnings: |
2851 | + |
2852 | + test-sasl.c:555:13: error: variable 'is_ok' is uninitialized when used here [-Werror,-Wuninitialized] |
2853 | + if (is_ok) { |
2854 | + ^~~~~ |
2855 | + test-sasl.c:553:22: note: initialize the variable 'is_ok' to silence this warning |
2856 | + uint8_t is_ok; |
2857 | + ^ |
2858 | + = '\0' |
2859 | + |
2860 | + test-gst.c:792:18: error: variable 'height' is used uninitialized whenever '&&' condition is false [-Werror,-Wsometimes-uninitialized] |
2861 | + spice_assert(gst_structure_get_int(s, "width", &width) && |
2862 | + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
2863 | + ../../spice-common/common/log.h:91:17: note: expanded from macro 'spice_assert' |
2864 | + if G_LIKELY(x) { } else { \ |
2865 | + ^ |
2866 | + /usr/include/glib-2.0/glib/gmacros.h:376:60: note: expanded from macro 'G_LIKELY' |
2867 | + ^~~~ |
2868 | + /usr/include/glib-2.0/glib/gmacros.h:370:8: note: expanded from macro '_G_BOOLEAN_EXPR' |
2869 | + if (expr) \ |
2870 | + ^~~~ |
2871 | + test-gst.c:799:17: note: uninitialized use occurs here |
2872 | + bitmap->y = height; |
2873 | + ^~~~~~ |
2874 | + test-gst.c:792:18: note: remove the '&&' if its condition is always true |
2875 | + spice_assert(gst_structure_get_int(s, "width", &width) && |
2876 | + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
2877 | + ../../spice-common/common/log.h:91:17: note: expanded from macro 'spice_assert' |
2878 | + if G_LIKELY(x) { } else { \ |
2879 | + ^ |
2880 | + /usr/include/glib-2.0/glib/gmacros.h:376:60: note: expanded from macro 'G_LIKELY' |
2881 | + ^ |
2882 | + /usr/include/glib-2.0/glib/gmacros.h:370:8: note: expanded from macro '_G_BOOLEAN_EXPR' |
2883 | + if (expr) \ |
2884 | + ^ |
2885 | + test-gst.c:791:23: note: initialize the variable 'height' to silence this warning |
2886 | + gint width, height; |
2887 | + ^ |
2888 | + = 0 |
2889 | + |
2890 | + Acked-by: Victor Toso <victortoso@redhat.com> |
2891 | + |
2892 | + replay: Do not use obsolete set_mm_time callback |
2893 | + Marked as obsolete with clang and some options is detected as |
2894 | + error. |
2895 | + |
2896 | + Acked-by: Victor Toso <victortoso@redhat.com> |
2897 | + |
2898 | + char-device: Avoid to use unaligned memory |
2899 | + This causes some warnings with clang: |
2900 | + |
2901 | + char-device.c:898:29: error: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Werror,-Wcast-align] |
2902 | + write_to_dev_size_ptr = (uint32_t *)spice_marshaller_reserve_space(m, sizeof(uint32_t)); |
2903 | + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
2904 | + char-device.c:899:31: error: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Werror,-Wcast-align] |
2905 | + write_to_dev_tokens_ptr = (uint32_t *)spice_marshaller_reserve_space(m, sizeof(uint32_t)); |
2906 | + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
2907 | + |
2908 | + This also fixes some minor endianness issue (on big endian machine |
2909 | + integers were not properly encoded). |
2910 | + |
2911 | + Acked-by: Victor Toso <victortoso@redhat.com> |
2912 | + |
2913 | +2018-01-30 Frediano Ziglio <fziglio@redhat.com> |
2914 | + |
2915 | + reds: Remove stream watch handling link in a single place |
2916 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
2917 | + |
2918 | + stream-channel: Tell client we are just streaming data |
2919 | + This give an hint to client which can optimise rendering. |
2920 | + |
2921 | + Acked-by: Christophe de Dinechin <dinechin@redhat.com> |
2922 | + |
2923 | + red-stream: Handle reading of 0 bytes in red_stream_async_read |
2924 | + Currently red_stream_async_read cannot handle read of 0 bytes. |
2925 | + This would cause a wrong assert in async_read_handler. |
2926 | + Fixing the assert would just make the code wrongly detect a |
2927 | + disconnection (usually a return of 0 from read is handled that |
2928 | + way but happens also if you try to read 0 bytes). |
2929 | + Current callers of these function does not pass 0 as size however |
2930 | + handling data protocols having data_length+data this can happen |
2931 | + and is handled manually in red_sasl_handle_auth_steplen. |
2932 | + Avoid needing manually to check for this condition. |
2933 | + |
2934 | + Acked-by: Christophe de Dinechin <dinechin@redhat.com> |
2935 | + |
2936 | + lz4-encoder: Remove useless header include |
2937 | + After 497b8042dcc135f4c5f6b77a971cc6aaa661c094 |
2938 | + ("lz4-encoder: Use GUINT32_TO_BE instead of htonl") patch this header |
2939 | + is not needed. |
2940 | + |
2941 | + Acked-by: Victor Toso <victortoso@redhat.com> |
2942 | + |
2943 | +2018-01-29 Frediano Ziglio <fziglio@redhat.com> |
2944 | + |
2945 | + dcc-send: Avoid to use unaligned memory |
2946 | + This causes some warnings with clang: |
2947 | + |
2948 | + dcc-send.c:1799:28: error: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Werror,-Wcast-align] |
2949 | + num_surfaces_created = (uint32_t *)spice_marshaller_reserve_space(m2, sizeof(uint32_t)); |
2950 | + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
2951 | + This also fixes some endianness issue (on big endian machine integers |
2952 | + were not properly encoded). |
2953 | + |
2954 | + Acked-by: Victor Toso <victortoso@redhat.com> |
2955 | + |
2956 | + lz4-encoder: Use GUINT32_TO_BE instead of htonl |
2957 | + Just a style change, almost of the code use similar macros for such |
2958 | + tasks. |
2959 | + |
2960 | + Acked-by: Victor Toso <victortoso@redhat.com> |
2961 | + |
2962 | + utils: Use const for rgb32_data_has_alpha data argument |
2963 | + There's no reason to change data passed, the function just check |
2964 | + the alpha channel of the image. |
2965 | + |
2966 | + Acked-by: Victor Toso <victortoso@redhat.com> |
2967 | + |
2968 | +2018-01-16 Frediano Ziglio <fziglio@redhat.com> |
2969 | + |
2970 | + tests: Remove test-just-sockets-no-ssl |
2971 | + This call sequence is included in test-display-base used in different |
2972 | + tests, no reason to have this test. |
2973 | + Also this test is not actually used for automated tests. |
2974 | + |
2975 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2976 | + |
2977 | + red-stream: Remove AsyncRead::stream |
2978 | + AsyncRead is always included in RedStream and there are only |
2979 | + a possible operation pending on a RedStream. |
2980 | + |
2981 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2982 | + |
2983 | + red-stream: Reuse red_stream_disable_writev function |
2984 | + The same function is used to reset writev field in SASL code. |
2985 | + |
2986 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2987 | + |
2988 | + basic-event-loop: Document why code does not use default GLib context |
2989 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
2990 | + |
2991 | +2018-01-15 Frediano Ziglio <fziglio@redhat.com> |
2992 | + |
2993 | + Minor compatibility with FreeBSD system |
2994 | + Some additional header are needed to avoid undefined types. |
2995 | + SOL_TCP and IPPROTO_TCP have the same value in Linux but SOL_TCP |
2996 | + is not defined in FreeBSD. |
2997 | + Provide pthread_setname_np using pthread_set_name_np (same parameters). |
2998 | + |
2999 | + Patch is based on a patch from Oleg Ginzburg <olevole@olevole.ru> |
3000 | + |
3001 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3002 | + |
3003 | +2018-01-13 Frediano Ziglio <fziglio@redhat.com> |
3004 | + |
3005 | + red-parse-qxl: Copy correctly brush position |
3006 | + This issue caused the glitches using the rectangular selection |
3007 | + tool in PaintShop 6. |
3008 | + |
3009 | + The line was removed accidentally by "red_parse_qxl: fix throwing |
3010 | + away drawables that have masks" (812b65984d286414170c6243bd3323b73a405ec3) |
3011 | + |
3012 | + Acked-by: Pavel Grunt <pavelgrunt@gmail.com> |
3013 | + |
3014 | +2018-01-10 Frediano Ziglio <fziglio@redhat.com> |
3015 | + |
3016 | + test-display-base: Do not use obsolete set_mm_time callback |
3017 | + Marked as obsolete with clang and some options is detected as |
3018 | + error. |
3019 | + |
3020 | + Acked-by: Uri Lublin <uril@redhat.com> |
3021 | + |
3022 | +2018-01-09 Frediano Ziglio <fziglio@redhat.com> |
3023 | + |
3024 | + red-stream: Encapsulate all authentication state in RedSASLAuth |
3025 | + Instead of having half state in RedSASL and half in RedSASLAuth |
3026 | + move everything in RedSASLAuth. This also reduces memory usage |
3027 | + when we are using SASL but we finish the authentication step. |
3028 | + |
3029 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3030 | + |
3031 | + red-stream: Unify start and step passes |
3032 | + Most of these function are identical. |
3033 | + Only difference were basically debugging message but now |
3034 | + with a proper tests are less important. |
3035 | + The mechname field is used to differentiate between first step and |
3036 | + following ones. |
3037 | + |
3038 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3039 | + |
3040 | + red-stream: Handle properly endianness in SASL code |
3041 | + All SPICE protocol is little endian, there's no agreement on other |
3042 | + endian and currently we support only little endian so make sure |
3043 | + this will work even possibly running on a big endian machine. |
3044 | + |
3045 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3046 | + |
3047 | + Handle SASL initialisation mainly in red-stream.c |
3048 | + Asynchronous code jumping from a file to another is tedious to read |
3049 | + also having code handling the same stuff in two files does not look |
3050 | + a good design. |
3051 | + |
3052 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3053 | + |
3054 | + test-sasl: Test how to server reports the failure |
3055 | + The server on failure can just disconnect the client or report the |
3056 | + error. The error report can be done using new protocol 2 or just |
3057 | + a number (like protocol 1). |
3058 | + Detect the failure report to make possible to check it. |
3059 | + |
3060 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3061 | + |
3062 | + test-sasl: Add tests for different failures and cases |
3063 | + Use some flags to specify which behaviour to change and different test |
3064 | + cases to test them. |
3065 | + Some cases specify when client stop sending data at different steps of |
3066 | + the process. |
3067 | + |
3068 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3069 | + |
3070 | + test-sasl: Add tests for different mechanism names |
3071 | + Try different connections with different tricky names. |
3072 | + |
3073 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3074 | + |
3075 | + test-sasl: Base test, connect using SASL |
3076 | + Create a thread that emulates a client and starts SASL authentication |
3077 | + |
3078 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3079 | + |
3080 | + test-sasl: Add code to mocking functions to test state |
3081 | + Check some functions are called in a given sequence. |
3082 | + |
3083 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3084 | + |
3085 | + test-sasl: Initial SASL test |
3086 | + Not currently working, is defining SASL functions used by the code. |
3087 | + As the symbols defined in the objects have more priority than the ones |
3088 | + defined by the libraries these function take precedence compared to |
3089 | + system library. |
3090 | + |
3091 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3092 | + |
3093 | + tests: Avoid cast from integer of wrong size |
3094 | + These cast causes warnings if a 32 bit target is used. |
3095 | + |
3096 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3097 | + |
3098 | + test-channel: Use correct endianness for ack message |
3099 | + Network fields should be encoded as little endian. |
3100 | + This was discovered using an emulated MIPS machine. |
3101 | + |
3102 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3103 | + |
3104 | +2018-01-08 Victor Toso <me@victortoso.com> |
3105 | + |
3106 | + clang: remove double promotion |
3107 | + > test-display-resolution-changes.c:55:60: error: implicit conversion |
3108 | + > increases floating-point precision: 'float' to 'double' |
3109 | + > command->create_primary.width = 800 + sin((float)count / 6) * 200; |
3110 | + > ~~~ ~~~~~~~~~~~~~^~~ |
3111 | + > test-display-resolution-changes.c:56:61: error: implicit conversion |
3112 | + > increases floating-point precision: 'float' to 'double' |
3113 | + > command->create_primary.height = 600 + cos((float)count / 6) * 200; |
3114 | + > ~~~ ~~~~~~~~~~~~~^~~ |
3115 | + |
3116 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3117 | + |
3118 | + clang: Don't compute absolute value of unsigned |
3119 | + Clang's warning on absolute-value. |
3120 | + |
3121 | + > red-record-qxl.c:297:39: error: taking the absolute value of unsigned |
3122 | + > type 'uint32_t' (aka 'unsigned int') has no effect |
3123 | + > bitmap_size = qxl->bitmap.y * abs(qxl->bitmap.stride); |
3124 | + > ^ |
3125 | + > red-record-qxl.c:297:39: note: remove the call to 'abs' since unsigned |
3126 | + > values cannot be negative |
3127 | + > bitmap_size = qxl->bitmap.y * abs(qxl->bitmap.stride); |
3128 | + > ^~~ |
3129 | + |
3130 | + > red-replay-qxl.c:471:39: error: taking the absolute value of unsigned type |
3131 | + > 'uint32_t' (aka 'unsigned int') has no effect |
3132 | + > bitmap_size = qxl->bitmap.y * abs(qxl->bitmap.stride); |
3133 | + > ^ |
3134 | + > red-replay-qxl.c:471:39: note: remove the call to 'abs' since unsigned |
3135 | + > values cannot be negative |
3136 | + > bitmap_size = qxl->bitmap.y * abs(qxl->bitmap.stride); |
3137 | + > ^~~ |
3138 | + |
3139 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3140 | + |
3141 | +2018-01-08 Frediano Ziglio <fziglio@redhat.com> |
3142 | + |
3143 | + display-channel: Limit number of surfaces to 1024 |
3144 | + Qemu never used more than this number and today surfaces are not |
3145 | + much used so there's no reason to keep this limit so high. |
3146 | + This reduces quite a lot some internal structure |
3147 | + (DisplayChannelPrivate and DisplayChannelClientPrivate). |
3148 | + |
3149 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3150 | + |
3151 | +2018-01-04 Frediano Ziglio <fziglio@redhat.com> |
3152 | + |
3153 | + red-stream: Avoid infinite loop on sasl_encode/decode failure |
3154 | + These functions do not set errno so it is possible that errno has a |
3155 | + stale value which happens to be EAGAIN. |
3156 | + This would cause an infinite loop in functions like red_stream_write_all |
3157 | + (or potentially using the event loop). |
3158 | + |
3159 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3160 | + |
3161 | +2018-01-02 Frediano Ziglio <fziglio@redhat.com> |
3162 | + |
3163 | + red-stream: Avoid to specify 2 mech names during SASL |
3164 | + Acked-by: Snir Sheriber <ssheribe@redhat.com> |
3165 | + |
3166 | + red-stream: Simplify mechname matching |
3167 | + Avoid over complicated matching using quoting and a simple strstr |
3168 | + operation. |
3169 | + The mech names are separated and quoted with the same chararacter (',') |
3170 | + making possible to search for ",MECHNAME," instead of manually check for |
3171 | + prefix and suffix after the search for "MECHNAME". |
3172 | + |
3173 | + Acked-by: Snir Sheriber <ssheribe@redhat.com> |
3174 | + |
3175 | +2017-12-19 Frediano Ziglio <fziglio@redhat.com> |
3176 | + |
3177 | + main-channel-client: Do not call red_channel_client_begin_send_message if we are not sending a message |
3178 | + In case mcc->priv->initial_channels_list_sent is false we didn't |
3179 | + marshall any message so we should not call |
3180 | + red_channel_client_begin_send_message. |
3181 | + |
3182 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3183 | + |
3184 | + red-stream: Use mechname for mechname |
3185 | + There's no reason to copy mechname into mechlist to use mechlist |
3186 | + instead of mechname. |
3187 | + |
3188 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3189 | + |
3190 | + red-stream: Remove SASL "data" field leak |
3191 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3192 | + |
3193 | + reds: Remove argument from reds_handle_link |
3194 | + RedLinkInfo stores reds in it no need to pass every time. |
3195 | + |
3196 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3197 | + |
3198 | + inputs-channel: Move spice_server_kbd_leds to InputsChannel |
3199 | + This avoids to expose some detail about the channel. |
3200 | + Like other APIs implement it move close to the part that handle |
3201 | + it instead of have everything in reds.c. |
3202 | + |
3203 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3204 | + |
3205 | + display-channel: Reuse GLIST_FOREACH macro in drawable_remove_from_pipes |
3206 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3207 | + |
3208 | + red-pipe-item: Move typedef at the top to avoid a "struct RedPipeItem" |
3209 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3210 | + |
3211 | + dcc: Remove obsolete comment |
3212 | + RedPipeItem does not contain a link anymore. |
3213 | + |
3214 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3215 | + |
3216 | + stat-file: Protect flags field with atomic operation |
3217 | + Coverity complaint that this field should be protected by |
3218 | + a mutex as other accesses are with the mutex locked. |
3219 | + Use atomic operation. Not in an hot path in any case. |
3220 | + |
3221 | + Acked-by: Uri Lublin <uril@redhat.com> |
3222 | + |
3223 | +2017-12-17 Frediano Ziglio <fziglio@redhat.com> |
3224 | + |
3225 | + build-sys: Ignore generated test-channel and test-stream-device files |
3226 | + Acked-by: Uri Lublin <uril@redhat.com> |
3227 | + |
3228 | +2017-12-14 Frediano Ziglio <fziglio@redhat.com> |
3229 | + |
3230 | + reds: Remove unused SASL_DATA_MAX_LEN define |
3231 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3232 | + |
3233 | + reds: Remove possible leak during SASL authentication |
3234 | + We need to free the connection if the mechanism name is wrong |
3235 | + |
3236 | + Acked-by: Uri Lublin <uril@redhat.com> |
3237 | + |
3238 | +2017-12-13 Frediano Ziglio <fziglio@redhat.com> |
3239 | + |
3240 | + display-channel: Remove unused parameter from drawable_remove_dependencies |
3241 | + It's not used since its introduction at 4e8f24e3510ce8cb3fa6b. |
3242 | + |
3243 | + Acked-by: Victor Toso <victortoso@redhat.com> |
3244 | + |
3245 | +2017-12-12 Frediano Ziglio <fziglio@redhat.com> |
3246 | + |
3247 | + Move RedUpgradeItem declaration in video-stream.h |
3248 | + This structure is used to send a message related to streams. |
3249 | + There are already other items defined in video-stream.h so |
3250 | + move the declaration. |
3251 | + |
3252 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3253 | + |
3254 | + video-stream: Simplify update_client_playback_delay |
3255 | + Avoid one step to retrieve reds pointer. |
3256 | + |
3257 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3258 | + |
3259 | + Simplify sending stream report activation message |
3260 | + Store information directly in the RedStreamActivateReportItem |
3261 | + making easier to marshall the message. |
3262 | + |
3263 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3264 | + |
3265 | + video-stream: Reuse display variable |
3266 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3267 | + |
3268 | + video-stream: Initialise VideoStreamClipItem directly |
3269 | + Instead of just allocating in video_stream_clip_item_new and |
3270 | + than have to setup properly in dcc_video_stream_agent_clip |
3271 | + do all in video_stream_clip_item_new which is more consistent |
3272 | + with other part of the code. |
3273 | + |
3274 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3275 | + |
3276 | +2017-12-12 Uri Lublin <uril@redhat.com> |
3277 | + |
3278 | + sound: fix params order when calling snd_desired_audio_mode |
3279 | + Make sure client_can_celt is passed before client_can_opus |
3280 | + |
3281 | + The bug was present since introduction of opus in ce9b714137a767b81f2 |
3282 | + |
3283 | + Found by Coverity. |
3284 | + |
3285 | + Acked-by: Victor Toso <victortoso@redhat.com> |
3286 | + |
3287 | +2017-12-12 Frediano Ziglio <fziglio@redhat.com> |
3288 | + |
3289 | + reds: Fix typo in declaration |
3290 | + recs -> reds |
3291 | + |
3292 | + build-sys: Remove useless definition |
3293 | + The default LDADD already include libserver.la. |
3294 | + |
3295 | + Acked-by: Victor Toso <victortoso@redhat.com> |
3296 | + |
3297 | +2017-12-11 Uri Lublin <uril@redhat.com> |
3298 | + |
3299 | + test-stream: initialize msg.msg_flags |
3300 | + Coverity complains the field is not initialized. |
3301 | + That's true but man recvmsg specifies that this |
3302 | + field is set by recvmsg. |
3303 | + |
3304 | + To make coverity happy, initialize this field. |
3305 | + |
3306 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3307 | + |
3308 | + reds_init_socket: do not leak slisten on error |
3309 | + Found by Coverity. |
3310 | + |
3311 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3312 | + |
3313 | +2017-12-08 Christophe Fergeau <cfergeau@redhat.com> |
3314 | + |
3315 | + ssl: Drop support for older OpenSSL versions |
3316 | + SSL_OP_NO_COMPRESSION was introduced in OpenSSL_0_9_8k, which is no |
3317 | + longer supported. This commit raises the minimum OpenSSL version to |
3318 | + 1.0.0, which is also out of support. |
3319 | + |
3320 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3321 | + |
3322 | + worker: Remove unneeded include |
3323 | + Nothing seems to be using openssl in red-worker.c |
3324 | + |
3325 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3326 | + |
3327 | + build: Use $(srcdir) when it makes sense |
3328 | + There are a few places which use $(top_srcdir) when $(srcdir) would be |
3329 | + equally valid. |
3330 | + |
3331 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3332 | + |
3333 | + build: Rebuild shared library when symbol file changes |
3334 | + At the moment, changing spice-server.syms to add/remove a new symbol to |
3335 | + be exported does not regenerate spice-server.so. This commit added the |
3336 | + needed dependency for this to work. |
3337 | + |
3338 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3339 | + |
3340 | +2017-12-07 Frediano Ziglio <fziglio@redhat.com> |
3341 | + |
3342 | + Do not compute stream_id more that necessary |
3343 | + Reuse already computed value and avoid to compute in every |
3344 | + iterations. |
3345 | + |
3346 | + Acked-by: Victor Toso <victortoso@redhat.com> |
3347 | + |
3348 | + reds: Remove RedVDIReadBuf pooling code |
3349 | + Originally this pool was used to avoid allocation/deallocations. |
3350 | + However the introduction of GList cause the code to do dynamic |
3351 | + allocations in order to update the list making this pooling |
3352 | + something useless. |
3353 | + The buffers limitation is now implemented with a simple counter. |
3354 | + |
3355 | + Acked-by: Victor Toso <victortoso@redhat.com> |
3356 | + |
3357 | +2017-12-05 Frediano Ziglio <fziglio@redhat.com> |
3358 | + |
3359 | + test-vdagent: Remove useless MIN definition |
3360 | + Already defined by GLib headers. |
3361 | + |
3362 | + Maybe this check should just be removed? |
3363 | + |
3364 | + Handle SPICE_MSGC_DISCONNECTING message in RedChannelClient |
3365 | + There's no reason to handle this message in a different |
3366 | + way in MainChannel and InputsChannel, the default handling |
3367 | + will return true in any case. |
3368 | + |
3369 | + Maybe this check should just be removed? |
3370 | + |
3371 | + reds: Fix wrong assert |
3372 | + RedVDIReadBuf::data is a static allocated buffer so checking for |
3373 | + NULL on it is useless. It would be NULL only if RedVDIReadBuf |
3374 | + pointer would be the opposite, in value, of the offset of |
3375 | + data field into it. |
3376 | + |
3377 | + Acked-by: Victor Toso <victortoso@redhat.com> |
3378 | + |
3379 | + main-channel: Put all migration message handling together |
3380 | + Acked-by: Victor Toso <victortoso@redhat.com> |
3381 | + |
3382 | + main-channel: Remove brackets if not needed |
3383 | + Acked-by: Victor Toso <victortoso@redhat.com> |
3384 | + |
3385 | + main-channel: Remove useless check |
3386 | + If there is a channel client there's surely a related channel. |
3387 | + |
3388 | + Acked-by: Victor Toso <victortoso@redhat.com> |
3389 | + |
3390 | + reds: Remove leak of agent_dev |
3391 | + This object was not freed. |
3392 | + Also free object buffers. |
3393 | + |
3394 | + Acked-by: Victor Toso <victortoso@redhat.com> |
3395 | + |
3396 | + reds: Use GLib memory functions for RedVDIReadBuf |
3397 | + Acked-by: Victor Toso <victortoso@redhat.com> |
3398 | + |
3399 | +2017-12-05 Jonathon Jongsma <jjongsma@redhat.com> |
3400 | + |
3401 | + StreamDevice: assert preconditions in parsing functions |
3402 | + Be a bit more defensive about handling incoming messages from the stream |
3403 | + device. This also makes these functions consistent with |
3404 | + handle_msg_format(). These assertions are only enabled if |
3405 | + ENABLE_EXTRA_CHECKS is defined. |
3406 | + |
3407 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3408 | + |
3409 | +2017-12-01 Frediano Ziglio <fziglio@redhat.com> |
3410 | + |
3411 | + inputs-channel: Prefer channel core over global core interface |
3412 | + Potentially a channel can run with a different core interface |
3413 | + than the global one attached to RedsState so instead of calling |
3414 | + reds_core_* functions use the code interface attached to the |
3415 | + channel. |
3416 | + |
3417 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3418 | + |
3419 | + inputs-channel: Encapsulate SpiceTabletState |
3420 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3421 | + |
3422 | + Use verify instead of G_STATIC_ASSERT |
3423 | + verify guarantee that the condition is always a compile |
3424 | + time constant. |
3425 | + |
3426 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3427 | + |
3428 | + tests: Use GLib memory functions |
3429 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3430 | + |
3431 | + Reduce dependencies from red-qxl.h |
3432 | + This header is mainly exporting functions to handle public |
3433 | + interface for the QXL devices. |
3434 | + Avoid spreading its inclusion including this header in other |
3435 | + headers. |
3436 | + |
3437 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3438 | + |
3439 | + red-channel-client: Rename item_in_pipe to item_sent |
3440 | + The name is more consistent with the value of the flag and |
3441 | + the function red_channel_client_wait_pipe_item_sent where |
3442 | + the MarkerPipeItem structure is used. |
3443 | + |
3444 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3445 | + |
3446 | + stream: Remove unused display parameter |
3447 | + Acked-by: Victor Toso <victortoso@redhat.com> |
3448 | + |
3449 | +2017-11-30 Jonathon Jongsma <jjongsma@redhat.com> |
3450 | + |
3451 | + DisplayChannel: Use NSEC_PER_MILLISEC |
3452 | + Instead of using 1000*1000 |
3453 | + |
3454 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3455 | + |
3456 | + Rename RedStreamClipItem to VideoStreamClipItem |
3457 | + Avoid confusion with RedStream which is a totally unrelated object. |
3458 | + |
3459 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3460 | + |
3461 | + Rename StreamAgent to VideoStreamAgent |
3462 | + Just to avoid confusion between different uses of the word Stream (e.g. |
3463 | + RedStream) clarify that it's related to video streams |
3464 | + |
3465 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3466 | + |
3467 | + Rename Stream to VideoStream |
3468 | + To prevent confusion between Stream (a video stream) and RedStream (a |
3469 | + generic data stream between client and server), change the name to |
3470 | + VideoStream to be more explicit about what it is. |
3471 | + |
3472 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3473 | + |
3474 | +2017-11-29 Frediano Ziglio <fziglio@redhat.com> |
3475 | + |
3476 | + red-channel-client: Simplify red_channel_client_wait_pipe_item_sent |
3477 | + Currently, red_channel_client_wait_pipe_item_sent() inserts a MarkerItem |
3478 | + which will sent after the item we want to wait for: the tail of the |
3479 | + queue is the first item to send, and the function uses |
3480 | + red_channel_client_pipe_add_after_pos(). Then, if the marker has been |
3481 | + successfully sent, the function calls |
3482 | + red_channel_client_wait_outgoing_item to wait for 'item' to be sent. |
3483 | + |
3484 | + Instead of doing this, we can add the MarkerItem to the queue so that |
3485 | + it's sent after 'item' (ie, insert it _before_ 'item' in the queue). |
3486 | + This way, when the marker is marked as having been sent, we'll also know |
3487 | + that 'item' has been sent. |
3488 | + |
3489 | + This avoids having to call red_channel_client_wait_outgoing_item and |
3490 | + possibly the case where the item was not queued and |
3491 | + red_channel_client_wait_outgoing_item returning TRUE even if the item |
3492 | + was not sent as required. |
3493 | + |
3494 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3495 | + |
3496 | + red-channel-client: Simplify red_channel_client_wait_pipe_item_sent loop |
3497 | + Avoid repeating the same code twice. |
3498 | + |
3499 | + red_channel_client_send sends the pending item (or a part of it). If |
3500 | + there are no item pending, the function does nothing (so checking for |
3501 | + blocked channel is useless). Also red_channel_client_send is already |
3502 | + called from red_channel_client_push which has a check for blocked |
3503 | + channels, so having calls to both red_channel_client_send() and |
3504 | + red_channel_client_push() is redundant. |
3505 | + |
3506 | + The function on its overall tries to wait for a given item to be sent. |
3507 | + The call for red_channel_client_receive is mainly needed to support the |
3508 | + cases were to send data messages from the client should be processed |
3509 | + (like if "handle-acks" is requested). |
3510 | + |
3511 | + Moving the loop iteration check inside the for loop instead allows to |
3512 | + avoid some duplication. |
3513 | + |
3514 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3515 | + |
3516 | + red-channel-client: Avoid weird memory references using MarkerPipeItem |
3517 | + Instead of having MarkerPipeItem pointing to an external variable with |
3518 | + the possibility to forget to reset it and have a dangling pointer, this |
3519 | + commit takes a reference on the item to keep it alive after it was sent. |
3520 | + This item is placed into the queue to understand when it was sent. The |
3521 | + current implementation detects the unqueue when the item is destroyed so |
3522 | + we currently store a pointer to an external variable in the item, this |
3523 | + way we can use a variable which will still be alive after the item is |
3524 | + released/destroyed. |
3525 | + This change updates the variable (stored in the item) when we try to |
3526 | + send the item, rather than at destruction time. The destruction happened |
3527 | + at the end of red_channel_client_send_item(), so we don't mark |
3528 | + item_in_pipe much earlier than before. |
3529 | + |
3530 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3531 | + |
3532 | + mjpeg-encoder: Fix some typos |
3533 | + unexected -> unexpected |
3534 | + esitimation -> estimation |
3535 | + |
3536 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3537 | + |
3538 | +2017-11-28 Frediano Ziglio <fziglio@redhat.com> |
3539 | + |
3540 | + ci: Detect if code compile with SASL disabled |
3541 | + Acked-by: Snir Sheriber <ssheribe@redhat.com> |
3542 | + |
3543 | +2017-11-27 Frediano Ziglio <fziglio@redhat.com> |
3544 | + |
3545 | + test-stream-device: Check incomplete reads of StreamMsgFormat |
3546 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3547 | + |
3548 | +2017-11-27 Jonathon Jongsma <jjongsma@redhat.com> |
3549 | + |
3550 | + StreamDevice: Handle incomplete reads of StreamMsgFormat |
3551 | + This is currently unlikely to happen since we communicate over a pipe |
3552 | + and the pipe buffer is sufficiently large to avoid splitting the |
3553 | + message. But for completeness, we should handle this scenario. |
3554 | + |
3555 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3556 | + |
3557 | +2017-11-27 Uri Lublin <uril@redhat.com> |
3558 | + |
3559 | + red-stream: fix build without SASL |
3560 | + put red_stream_disable_writev in an #ifdef HAVE_SASL block. |
3561 | + red_stream_disable_writev is only called from functions |
3562 | + that are already in an #ifdef HAVE_SASL block. |
3563 | + |
3564 | + Currently when building with SASL disabled, I get: |
3565 | + CC red-stream.lo |
3566 | + red-stream.c:441:13: error: 'red_stream_disable_writev' |
3567 | + defined but not used [-Werror=unused-function] |
3568 | + |
3569 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3570 | + |
3571 | +2017-11-27 Frediano Ziglio <fziglio@redhat.com> |
3572 | + |
3573 | + inputs-channel: Remove reds argument from inputs_channel_set_tablet |
3574 | + All other inputs_channel_set_* functions do not have this |
3575 | + parameter and get it from the channel. |
3576 | + |
3577 | + Acked-by: Uri Lublin <uril@redhat.com> |
3578 | + |
3579 | +2017-11-22 Frediano Ziglio <fziglio@redhat.com> |
3580 | + |
3581 | + inputs-channels: Remove leak using tablet device |
3582 | + Current code does not free allocated tablet resources. |
3583 | + When a tablet is added some resources are allocated. |
3584 | + Resources should be released either removing the tablet or |
3585 | + freeing spice server object. |
3586 | + Added a test to check these conditions. |
3587 | + |
3588 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3589 | + |
3590 | + reds: Do not get time if not needed |
3591 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3592 | + |
3593 | +2017-11-21 Frediano Ziglio <fziglio@redhat.com> |
3594 | + |
3595 | + tests: Add a test for streaming devices |
3596 | + Currently create device, open it and pass some messages checking |
3597 | + they are handled. |
3598 | + |
3599 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3600 | + |
3601 | + Reuse SPICE_DECLARE_TYPE macro |
3602 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3603 | + |
3604 | + Remove common/mem.h includes |
3605 | + common/mem.h contains mainly memory allocation functions. |
3606 | + As we decided to move to Glib calls directly avoid to include |
3607 | + function declaration we should not use anymore. |
3608 | + |
3609 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3610 | + |
3611 | +2017-11-09 Frediano Ziglio <fziglio@redhat.com> |
3612 | + |
3613 | + utils: Check we list all channel names |
3614 | + This prevent future problems supporting new channels. |
3615 | + |
3616 | + Acked-by: Victor Toso <victortoso@redhat.com> |
3617 | + |
3618 | +2017-11-08 Frediano Ziglio <fziglio@redhat.com> |
3619 | + |
3620 | + Use constant variables for image operations |
3621 | + This reduce the attack surface moving some data into read-only |
3622 | + sections. |
3623 | + |
3624 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3625 | + |
3626 | + build: Update spice-common submodule |
3627 | + Frediano Ziglio (6): |
3628 | + Make the compiler work out better way to write unaligned memory |
3629 | + test-marshallers: Use unaligned structure |
3630 | + test-marshallers: Test demarshalling |
3631 | + ring: Remove __ring_remove function |
3632 | + ring: Remove short living temporary variable |
3633 | + canvas_base: Allow to specify constant operations |
3634 | + |
3635 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3636 | + |
3637 | + utils: Fill in all possible channel names |
3638 | + Missing some names cause some debugging messages to be |
3639 | + generated and some of our tests to fail. |
3640 | + |
3641 | + This patch was written by Christophe Fergeau. |
3642 | + |
3643 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3644 | + |
3645 | +2017-11-07 Frediano Ziglio <fziglio@redhat.com> |
3646 | + |
3647 | + ci: Install python3 packages to fix compile on new Fedora |
3648 | + Fedora 26 removed dependency from python-pyparsing/python-six |
3649 | + to python but we require the executable to run some scripts |
3650 | + |
3651 | + Acked-by: Uri Lublin <uril@redhat.com> |
3652 | + |
3653 | +2017-10-31 Jonathon Jongsma <jjongsma@redhat.com> |
3654 | + |
3655 | + StreamDevice: Fix incomplete header reads |
3656 | + The code for reading a StreamDevice message from the streaming agent has |
3657 | + code to handle a situation where you only read a part of the header. If |
3658 | + we've read only a part of the header, we will try to read the remaining |
3659 | + n bytes of the header within a loop until the full header is read. |
3660 | + However, when we try to read the last n bytes, we store it at beginning |
3661 | + of the header struct, which will overwrite the first part of the header. |
3662 | + |
3663 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3664 | + |
3665 | +2017-10-30 Jonathon Jongsma <jjongsma@redhat.com> |
3666 | + |
3667 | + Make stream-channel.h self-contained |
3668 | + Include protocol header file defining StreamMsgFormat which is used in a |
3669 | + function signature in this header. |
3670 | + |
3671 | + Acked-by: Victor Toso <victortoso@redhat.com> |
3672 | + Reviewed-by: Frediano Ziglio <fziglio@redhat.com> |
3673 | + |
3674 | +2017-10-23 Christophe Fergeau <cfergeau@redhat.com> |
3675 | + |
3676 | + channel: Introduce logging helpers |
3677 | + This commit adds red_channel_{debug,warning,printerr}() helpers which |
3678 | + will prepend the log message with "channel-name:id (%p)". It also |
3679 | + changes various locations which were doing this manually. |
3680 | + |
3681 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3682 | + |
3683 | + utils: Introduce helpers to map channel types to names |
3684 | + spice_server_set_channel_security() is already mostly doing that. We can |
3685 | + make its code more generic, and introduce a red_channel_get_name() |
3686 | + method. This method will then be used to make debug messages more |
3687 | + readable by showing the actual channel name rather than its type as |
3688 | + an int. |
3689 | + |
3690 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3691 | + |
3692 | +2017-10-21 Jonathon Jongsma <jjongsma@redhat.com> |
3693 | + |
3694 | + Use standard "Red" namespace |
3695 | + The objects RedsStream and RedsSASL are currently using the namespace |
3696 | + "Reds" rather than the standard "Red" namespace used throughout the rest |
3697 | + of the project. Change these to be consistent. This also means changing |
3698 | + method names and some related enumeration types. |
3699 | + |
3700 | + The files were also renamed to reflect the change: |
3701 | + reds-stream.[ch] -> red-stream.[ch] |
3702 | + |
3703 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3704 | + |
3705 | +2017-10-19 Jonathon Jongsma <jjongsma@redhat.com> |
3706 | + |
3707 | + RedsStream: make some functions static |
3708 | + These were not used outside of reds-stream.c, so make them static and |
3709 | + remove them from the header. |
3710 | + |
3711 | + Acked-by: Frediano Ziglio <fziglio@redhat.com> |
3712 | + |
3713 | +2017-10-18 Frediano Ziglio <fziglio@redhat.com> |
3714 | + |
3715 | + reds-stream: Remove useless debug |
3716 | + There are already other debugging code showing channel closure. |
3717 | + Not closed file descriptors can easily be detected with other |
3718 | + tools (like netstat or /proc file system). |
3719 | + |
3720 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3721 | + |
3722 | + reds-stream: Removed unused "username" field |
3723 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3724 | + |
3725 | +2017-10-17 Frediano Ziglio <fziglio@redhat.com> |
3726 | + |
3727 | + red-qxl: Enforce boolean for QXLDevSurfaceCreate::mouse_mode |
3728 | + In some cases mouse_mode is a bit field. |
3729 | + However for this structure is used always as a boolean |
3730 | + value. |
3731 | + |
3732 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3733 | + |
3734 | + red-qxl: Remove surface_create field |
3735 | + This field was used just to store a value and retrieve again |
3736 | + while we can just pass it instead. |
3737 | + |
3738 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3739 | + |
3740 | +2017-10-16 Frediano Ziglio <fziglio@redhat.com> |
3741 | + |
3742 | + stream-channel: Activate streaming report from client |
3743 | + Setting the capability is not enough, each stream must be enabled |
3744 | + so do so if client support them. |
3745 | + |
3746 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3747 | + |
3748 | + stream-device: Limit sending queue from guest to server |
3749 | + Do not allow the guest to fill host memory. |
3750 | + Also having a huge queue mainly cause to have a higher video |
3751 | + latency. |
3752 | + |
3753 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3754 | + |
3755 | + stream-device: Create channel when needed |
3756 | + This allows a better id allocation as devices are created after |
3757 | + fixed ones. |
3758 | + Also will allow to support more easily multiple monitor. |
3759 | + |
3760 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3761 | + |
3762 | + stream-device: Start supporting resetting device when close/open on guest |
3763 | + When guest close the device the host device has to be reset too. |
3764 | + This make easier to restart the guest device which can happen in case |
3765 | + of reboot, agent issues or if we want to update the agent. |
3766 | + |
3767 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3768 | + |
3769 | + char-device: Do not stop and clear interface on reset |
3770 | + Currently, red_char_device_reset() stops the device, clears all pending |
3771 | + messages, and clears its device instance. After this function is called, |
3772 | + the char device will not work again until it is assigned a new device |
3773 | + instance and restarted. This is fine for the vdagent char device, which |
3774 | + is currently the only user of this function. But for the stream device, |
3775 | + we want to be able to reset the char device to a working state (e.g. |
3776 | + clear all pending messages, etc) without stopping or disabling the char |
3777 | + device. So this function will now only reset the char device to a clean |
3778 | + working state, and the _stop() and _reset_dev_instance() calls will be |
3779 | + moved up to the caller. |
3780 | + |
3781 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3782 | + |
3783 | + stream-channel: Do not show an empty blank screen on start |
3784 | + Start showing something when we have a surface and stream |
3785 | + instead of showing a blank screen which is now not useful. |
3786 | + Was useful for debugging purposes to understand that the |
3787 | + new channel was sending messages correctly to client and |
3788 | + client could handle them. |
3789 | + |
3790 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3791 | + |
3792 | + stream-channel: Support client connection/disconnection |
3793 | + When a new client is connected we must restart the stream so new |
3794 | + clients can receive correct data without having to wait for the |
3795 | + next full screen (which on idle screen could take ages). |
3796 | + On disconnection we should tell the guest to stop streaming |
3797 | + not wasting resources to stream not needed data. |
3798 | + |
3799 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3800 | + |
3801 | + stream-channel: Allows to register callback to get new stream request |
3802 | + The channel needs to communicate when it receive a new |
3803 | + stream request from the guest. |
3804 | + |
3805 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3806 | + |
3807 | + stream-channel: Allows not fixed size |
3808 | + Remove the fixed size stream and support any display size. |
3809 | + |
3810 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3811 | + |
3812 | + stream-device: Handle streaming data from device to channel |
3813 | + Handle stream data from device sending to the channel. |
3814 | + The StreamChannel will forward the data to the clients using standard |
3815 | + DisplayChannel messages, and will create and destroy streams as |
3816 | + necessary. |
3817 | + |
3818 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3819 | + |
3820 | + stream-device: Create channel for stream device |
3821 | + So can be used by the device to communicate with the clients. |
3822 | + |
3823 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3824 | + |
3825 | + stream-channel: Start implementing DisplayChannel properly |
3826 | + Handle messages from clients. |
3827 | + Send some messages to clients. |
3828 | + |
3829 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3830 | + |
3831 | + stream-channel: Write a base channel to implement the streaming |
3832 | + Currently only compile, not used and not much sense |
3833 | + |
3834 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3835 | + |
3836 | + stream-device: Start parsing new protocol from guest |
3837 | + Parse the data sent from the guest to the streaming device. |
3838 | + At the moment, the data is simply discarded after it is parsed. |
3839 | + |
3840 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3841 | + |
3842 | + stream-device: Add device to handle streaming |
3843 | + Add a stub device in guest. |
3844 | + The aim of this device is to make it possible for the guest to send a |
3845 | + stream through a DisplayChannel (in the sense of protocol channel). |
3846 | + This stub allows the guest to send some data and you can see some debug |
3847 | + lines of data arrived on host logs. |
3848 | + |
3849 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3850 | + |
3851 | + Notify client of the creation of new channels dynamically |
3852 | + This allows the server to add channels after the client is connected. |
3853 | + |
3854 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3855 | + |
3856 | +2017-10-13 Frediano Ziglio <fziglio@redhat.com> |
3857 | + |
3858 | + tests: Check leaks registering migration interface |
3859 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3860 | + |
3861 | + reds: Remove leak allocating migration state |
3862 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3863 | + |
3864 | +2017-10-12 Frediano Ziglio <fziglio@redhat.com> |
3865 | + |
3866 | + red-channel: Remove red_channel_init_outgoing_messages_window |
3867 | + This function does not make much sense anymore. |
3868 | + Is called by RedVmcChannel which doesn't use RedChannelClient ACKs |
3869 | + so the variable changed are not used. |
3870 | + Moreover, at red_vmc_channel_constructed() time, there will be no |
3871 | + clients yet, so red_channel_init_outgoing_messages() will be a no-op. |
3872 | + |
3873 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3874 | + |
3875 | + inputs-channel: Check message size handling migration data |
3876 | + Prevent possible buffer reading overflow. |
3877 | + Note that message pointer must be valid and data are checked |
3878 | + value by value so even on overflow you just get an error. |
3879 | + |
3880 | + Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3881 | + |
3882 | +2017-10-11 Frediano Ziglio <fziglio@redhat.com> |
3883 | + |
3884 | + red-pipe-item: Use GLib memory functions |
3885 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3886 | + |
3887 | + parse-qxl: Use GLib memory functions |
3888 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3889 | + |
3890 | + pixmap-cache: Use GLib memory functions |
3891 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3892 | + |
3893 | + image-cache: Use GLib memory functions |
3894 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3895 | + |
3896 | + inputs-channel: Use GLib memory functions |
3897 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3898 | + |
3899 | + tree: Use GLib memory functions |
3900 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3901 | + |
3902 | + worker: Use GLib memory functions |
3903 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3904 | + |
3905 | + replay-qxl: Use GLib memory functions |
3906 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3907 | + |
3908 | + display-channel: Use GLib memory functions |
3909 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3910 | + |
3911 | + dcc: Use GLib memory functions |
3912 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3913 | + |
3914 | + reds: Use GLib memory functions for ChannelSecurityOptions |
3915 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3916 | + |
3917 | + reds: Use GLib memory functions for link message |
3918 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3919 | + |
3920 | + Use GLib memory functions for SpiceChannelEventInfo |
3921 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3922 | + |
3923 | + dispatcher: Use GLib memory functions |
3924 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3925 | + |
3926 | + event-loop: Use GLib memory functions |
3927 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3928 | + |
3929 | + char-device: Use GLib memory functions |
3930 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3931 | + |
3932 | + gstreamer-encoder: Use GLib memory functions |
3933 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3934 | + |
3935 | + spicevmc: Use GLib memory functions |
3936 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3937 | + |
3938 | + stream: Use GLib memory functions |
3939 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3940 | + |
3941 | + smartcard: Use GLib memory functions |
3942 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3943 | + |
3944 | + reds-stream: Use GLib memory functions |
3945 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3946 | + |
3947 | + mjpeg: Use GLib memory functions |
3948 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3949 | + |
3950 | + lz4-encoder: Use GLib memory functions |
3951 | + Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3952 | + |
3953 | 2017-10-11 Christophe Fergeau <cfergeau@redhat.com> |
3954 | |
3955 | spice-server 0.14.0 release |
3956 | @@ -2400,6 +6303,8 @@ |
3957 | |
3958 | Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3959 | |
3960 | +2017-02-28 Frediano Ziglio <fziglio@redhat.com> |
3961 | + |
3962 | display-channel: Clean more stuff on finalize |
3963 | Release surfaces, cache and monitor configurations. |
3964 | |
3965 | @@ -2410,8 +6315,6 @@ |
3966 | |
3967 | Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3968 | |
3969 | -2017-02-28 Frediano Ziglio <fziglio@redhat.com> |
3970 | - |
3971 | reds: Check that we do not free the wrong agent device |
3972 | Do not assume the device passed as an argument to |
3973 | spice_server_char_device_remove_interface() is the same as the current |
3974 | @@ -3658,7 +7561,7 @@ |
3975 | |
3976 | Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3977 | |
3978 | -2016-12-06 Frediano Ziglio <fziglio@redhat.com> |
3979 | +2016-12-05 Frediano Ziglio <fziglio@redhat.com> |
3980 | |
3981 | Support QXL remove on spice_server_remove_interface |
3982 | Allow to dynamically remove QXL interfaces. This could be used to |
3983 | @@ -6134,7 +10037,7 @@ |
3984 | |
3985 | Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
3986 | |
3987 | -2016-06-16 Frediano Ziglio <fziglio@redhat.com> |
3988 | +2016-06-15 Frediano Ziglio <fziglio@redhat.com> |
3989 | |
3990 | Remove message_buf from EncoderData |
3991 | This buffer was just written and then used, no reason to store into |
3992 | @@ -6142,7 +10045,7 @@ |
3993 | |
3994 | Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
3995 | |
3996 | -2016-06-16 Eduardo Lima (Etrunko) <etrunko@redhat.com> |
3997 | +2016-06-15 Eduardo Lima (Etrunko) <etrunko@redhat.com> |
3998 | |
3999 | configure: Better wording hasn't -> has not |
4000 | Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
4001 | @@ -6380,7 +10283,7 @@ |
4002 | Add a structure to hold ImageEncoders shared data |
4003 | Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
4004 | |
4005 | -2016-06-14 snir sheriber <ssheribe@redhat.com> |
4006 | +2016-06-13 snir sheriber <ssheribe@redhat.com> |
4007 | |
4008 | LZ4 compression is now available at the Spicevmc channel |
4009 | Compressed message type is CompressedData which contains compression |
4010 | @@ -6509,6 +10412,8 @@ |
4011 | |
4012 | Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
4013 | |
4014 | +2016-06-07 Frediano Ziglio <fziglio@redhat.com> |
4015 | + |
4016 | Move dcc glz field initialization into dcc_new |
4017 | There is no reason to initialize these fields in two different places. |
4018 | Note that an usage between dcc_new and the function where these |
4019 | @@ -6516,8 +10421,6 @@ |
4020 | |
4021 | Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
4022 | |
4023 | -2016-06-07 Frediano Ziglio <fziglio@redhat.com> |
4024 | - |
4025 | record: Make red_record_cursor_cmd static |
4026 | This function is never used outside this compile unit. |
4027 | |
4028 | @@ -7098,6 +11001,8 @@ |
4029 | Extend it's usage. |
4030 | This for instance leads to the removal of release_item callback. |
4031 | |
4032 | +2016-05-17 Frediano Ziglio <fziglio@redhat.com> |
4033 | + |
4034 | Use reference counting for RedPipeItem |
4035 | Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
4036 | |
4037 | @@ -7190,8 +11095,6 @@ |
4038 | Remove unused refs field |
4039 | Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
4040 | |
4041 | -2016-05-17 Frediano Ziglio <fziglio@redhat.com> |
4042 | - |
4043 | remove only written num_mig_target_clients field in RedsState |
4044 | Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
4045 | |
4046 | @@ -8652,6 +12555,8 @@ |
4047 | |
4048 | Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
4049 | |
4050 | +2016-02-11 Frediano Ziglio <fziglio@redhat.com> |
4051 | + |
4052 | CommonChannel: hold a reference to QXLInstance instead of RedWorker |
4053 | CommonChannel does not need to know about RedWorker. |
4054 | This reduce a bit dependencies between objects. |
4055 | @@ -8807,8 +12712,6 @@ |
4056 | |
4057 | Acked-by: Jonathon Jongsma <jjongsma at redhat.com> |
4058 | |
4059 | -2016-02-11 Frediano Ziglio <fziglio@redhat.com> |
4060 | - |
4061 | dispatcher: remove unused async_commands ring |
4062 | The only usage of this ring was to have a message when there was no |
4063 | commands on the list. |
4064 | @@ -9477,6 +13380,8 @@ |
4065 | |
4066 | Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
4067 | |
4068 | +2016-01-19 Frediano Ziglio <fziglio@redhat.com> |
4069 | + |
4070 | tests: test removed triggered timers are not called |
4071 | This could happen for instance if a given timer remove all clients |
4072 | which have associated timers. |
4073 | @@ -10220,7 +14125,7 @@ |
4074 | Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
4075 | Acked-by: Fabiano Fidêncio <fidencio@redhat.com> |
4076 | |
4077 | -2015-12-04 Frediano Ziglio <fziglio@redhat.com> |
4078 | +2015-12-03 Frediano Ziglio <fziglio@redhat.com> |
4079 | |
4080 | server: rename files |
4081 | Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
4082 | @@ -11830,7 +15735,7 @@ |
4083 | Acked-by: Frediano Ziglio <fziglio@redhat.com> |
4084 | Acked-by: Jonathon Jongsma <jjongsma@redhat.com> |
4085 | |
4086 | -2015-08-28 Frediano Ziglio <fziglio@redhat.com> |
4087 | +2015-08-27 Frediano Ziglio <fziglio@redhat.com> |
4088 | |
4089 | Simplify set_surface_release_info |
4090 | Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
4091 | @@ -13861,12 +17766,12 @@ |
4092 | |
4093 | Release 0.12.4 |
4094 | |
4095 | +2013-07-16 Uri Lublin <uril@redhat.com> |
4096 | + |
4097 | Update spice-common submodule (get spice-protocol 0.12.6) |
4098 | |
4099 | syntax-check: trailing whitespaces -- ignore binary files |
4100 | |
4101 | -2013-07-16 Uri Lublin <uril@redhat.com> |
4102 | - |
4103 | syntax-check: remove trailing whitespaces |
4104 | Only whitespace changes in this commit. |
4105 | |
4106 | @@ -17090,7 +20995,7 @@ |
4107 | Also fixup the header of server/red_parse_qxl.c, which still contained |
4108 | some GPL (program rather then library) text in its header. |
4109 | |
4110 | -2011-12-14 Marc-André Lureau <marcandre.lureau@redhat.com> |
4111 | +2011-12-13 Marc-André Lureau <marcandre.lureau@redhat.com> |
4112 | |
4113 | spelling: s/cupture/capture |
4114 | |
4115 | @@ -22475,14 +26380,14 @@ |
4116 | |
4117 | Still some room to improvment but later... |
4118 | |
4119 | +2010-04-05 Izik Eidus <ieidus@redhat.com> |
4120 | + |
4121 | spice server: remove surface_id and surfaces_dest[3] from guest mem |
4122 | Validate the surface_ids just once and keep them in safe |
4123 | memory area |
4124 | |
4125 | Make things simpler |
4126 | |
4127 | -2010-04-05 Izik Eidus <ieidus@redhat.com> |
4128 | - |
4129 | spice: common: gdi_canvas fix gdi objects leak |
4130 | BitmapMask was used by the draw_text function as well |
4131 | therefore we need to mark from_surface = 0 if we want |
4132 | diff --git a/INSTALL b/INSTALL |
4133 | index 2099840..8865734 100644 |
4134 | --- a/INSTALL |
4135 | +++ b/INSTALL |
4136 | @@ -1,8 +1,8 @@ |
4137 | Installation Instructions |
4138 | ************************* |
4139 | |
4140 | -Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, |
4141 | -Inc. |
4142 | + Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software |
4143 | +Foundation, Inc. |
4144 | |
4145 | Copying and distribution of this file, with or without modification, |
4146 | are permitted in any medium without royalty provided the copyright |
4147 | @@ -12,97 +12,96 @@ without warranty of any kind. |
4148 | Basic Installation |
4149 | ================== |
4150 | |
4151 | - Briefly, the shell command `./configure && make && make install' |
4152 | + Briefly, the shell command './configure && make && make install' |
4153 | should configure, build, and install this package. The following |
4154 | -more-detailed instructions are generic; see the `README' file for |
4155 | +more-detailed instructions are generic; see the 'README' file for |
4156 | instructions specific to this package. Some packages provide this |
4157 | -`INSTALL' file but do not implement all of the features documented |
4158 | +'INSTALL' file but do not implement all of the features documented |
4159 | below. The lack of an optional feature in a given package is not |
4160 | necessarily a bug. More recommendations for GNU packages can be found |
4161 | in *note Makefile Conventions: (standards)Makefile Conventions. |
4162 | |
4163 | - The `configure' shell script attempts to guess correct values for |
4164 | + The 'configure' shell script attempts to guess correct values for |
4165 | various system-dependent variables used during compilation. It uses |
4166 | -those values to create a `Makefile' in each directory of the package. |
4167 | -It may also create one or more `.h' files containing system-dependent |
4168 | -definitions. Finally, it creates a shell script `config.status' that |
4169 | +those values to create a 'Makefile' in each directory of the package. |
4170 | +It may also create one or more '.h' files containing system-dependent |
4171 | +definitions. Finally, it creates a shell script 'config.status' that |
4172 | you can run in the future to recreate the current configuration, and a |
4173 | -file `config.log' containing compiler output (useful mainly for |
4174 | -debugging `configure'). |
4175 | +file 'config.log' containing compiler output (useful mainly for |
4176 | +debugging 'configure'). |
4177 | |
4178 | - It can also use an optional file (typically called `config.cache' |
4179 | -and enabled with `--cache-file=config.cache' or simply `-C') that saves |
4180 | -the results of its tests to speed up reconfiguring. Caching is |
4181 | -disabled by default to prevent problems with accidental use of stale |
4182 | -cache files. |
4183 | + It can also use an optional file (typically called 'config.cache' and |
4184 | +enabled with '--cache-file=config.cache' or simply '-C') that saves the |
4185 | +results of its tests to speed up reconfiguring. Caching is disabled by |
4186 | +default to prevent problems with accidental use of stale cache files. |
4187 | |
4188 | If you need to do unusual things to compile the package, please try |
4189 | -to figure out how `configure' could check whether to do them, and mail |
4190 | -diffs or instructions to the address given in the `README' so they can |
4191 | +to figure out how 'configure' could check whether to do them, and mail |
4192 | +diffs or instructions to the address given in the 'README' so they can |
4193 | be considered for the next release. If you are using the cache, and at |
4194 | -some point `config.cache' contains results you don't want to keep, you |
4195 | +some point 'config.cache' contains results you don't want to keep, you |
4196 | may remove or edit it. |
4197 | |
4198 | - The file `configure.ac' (or `configure.in') is used to create |
4199 | -`configure' by a program called `autoconf'. You need `configure.ac' if |
4200 | -you want to change it or regenerate `configure' using a newer version |
4201 | -of `autoconf'. |
4202 | + The file 'configure.ac' (or 'configure.in') is used to create |
4203 | +'configure' by a program called 'autoconf'. You need 'configure.ac' if |
4204 | +you want to change it or regenerate 'configure' using a newer version of |
4205 | +'autoconf'. |
4206 | |
4207 | The simplest way to compile this package is: |
4208 | |
4209 | - 1. `cd' to the directory containing the package's source code and type |
4210 | - `./configure' to configure the package for your system. |
4211 | + 1. 'cd' to the directory containing the package's source code and type |
4212 | + './configure' to configure the package for your system. |
4213 | |
4214 | - Running `configure' might take a while. While running, it prints |
4215 | + Running 'configure' might take a while. While running, it prints |
4216 | some messages telling which features it is checking for. |
4217 | |
4218 | - 2. Type `make' to compile the package. |
4219 | + 2. Type 'make' to compile the package. |
4220 | |
4221 | - 3. Optionally, type `make check' to run any self-tests that come with |
4222 | + 3. Optionally, type 'make check' to run any self-tests that come with |
4223 | the package, generally using the just-built uninstalled binaries. |
4224 | |
4225 | - 4. Type `make install' to install the programs and any data files and |
4226 | + 4. Type 'make install' to install the programs and any data files and |
4227 | documentation. When installing into a prefix owned by root, it is |
4228 | recommended that the package be configured and built as a regular |
4229 | - user, and only the `make install' phase executed with root |
4230 | + user, and only the 'make install' phase executed with root |
4231 | privileges. |
4232 | |
4233 | - 5. Optionally, type `make installcheck' to repeat any self-tests, but |
4234 | + 5. Optionally, type 'make installcheck' to repeat any self-tests, but |
4235 | this time using the binaries in their final installed location. |
4236 | This target does not install anything. Running this target as a |
4237 | - regular user, particularly if the prior `make install' required |
4238 | + regular user, particularly if the prior 'make install' required |
4239 | root privileges, verifies that the installation completed |
4240 | correctly. |
4241 | |
4242 | 6. You can remove the program binaries and object files from the |
4243 | - source code directory by typing `make clean'. To also remove the |
4244 | - files that `configure' created (so you can compile the package for |
4245 | - a different kind of computer), type `make distclean'. There is |
4246 | - also a `make maintainer-clean' target, but that is intended mainly |
4247 | + source code directory by typing 'make clean'. To also remove the |
4248 | + files that 'configure' created (so you can compile the package for |
4249 | + a different kind of computer), type 'make distclean'. There is |
4250 | + also a 'make maintainer-clean' target, but that is intended mainly |
4251 | for the package's developers. If you use it, you may have to get |
4252 | all sorts of other programs in order to regenerate files that came |
4253 | with the distribution. |
4254 | |
4255 | - 7. Often, you can also type `make uninstall' to remove the installed |
4256 | + 7. Often, you can also type 'make uninstall' to remove the installed |
4257 | files again. In practice, not all packages have tested that |
4258 | uninstallation works correctly, even though it is required by the |
4259 | GNU Coding Standards. |
4260 | |
4261 | - 8. Some packages, particularly those that use Automake, provide `make |
4262 | + 8. Some packages, particularly those that use Automake, provide 'make |
4263 | distcheck', which can by used by developers to test that all other |
4264 | - targets like `make install' and `make uninstall' work correctly. |
4265 | + targets like 'make install' and 'make uninstall' work correctly. |
4266 | This target is generally not run by end users. |
4267 | |
4268 | Compilers and Options |
4269 | ===================== |
4270 | |
4271 | Some systems require unusual options for compilation or linking that |
4272 | -the `configure' script does not know about. Run `./configure --help' |
4273 | +the 'configure' script does not know about. Run './configure --help' |
4274 | for details on some of the pertinent environment variables. |
4275 | |
4276 | - You can give `configure' initial values for configuration parameters |
4277 | -by setting variables in the command line or in the environment. Here |
4278 | -is an example: |
4279 | + You can give 'configure' initial values for configuration parameters |
4280 | +by setting variables in the command line or in the environment. Here is |
4281 | +an example: |
4282 | |
4283 | ./configure CC=c99 CFLAGS=-g LIBS=-lposix |
4284 | |
4285 | @@ -113,21 +112,21 @@ Compiling For Multiple Architectures |
4286 | |
4287 | You can compile the package for more than one kind of computer at the |
4288 | same time, by placing the object files for each architecture in their |
4289 | -own directory. To do this, you can use GNU `make'. `cd' to the |
4290 | +own directory. To do this, you can use GNU 'make'. 'cd' to the |
4291 | directory where you want the object files and executables to go and run |
4292 | -the `configure' script. `configure' automatically checks for the |
4293 | -source code in the directory that `configure' is in and in `..'. This |
4294 | -is known as a "VPATH" build. |
4295 | +the 'configure' script. 'configure' automatically checks for the source |
4296 | +code in the directory that 'configure' is in and in '..'. This is known |
4297 | +as a "VPATH" build. |
4298 | |
4299 | - With a non-GNU `make', it is safer to compile the package for one |
4300 | + With a non-GNU 'make', it is safer to compile the package for one |
4301 | architecture at a time in the source code directory. After you have |
4302 | -installed the package for one architecture, use `make distclean' before |
4303 | +installed the package for one architecture, use 'make distclean' before |
4304 | reconfiguring for another architecture. |
4305 | |
4306 | On MacOS X 10.5 and later systems, you can create libraries and |
4307 | executables that work on multiple system types--known as "fat" or |
4308 | -"universal" binaries--by specifying multiple `-arch' options to the |
4309 | -compiler but only a single `-arch' option to the preprocessor. Like |
4310 | +"universal" binaries--by specifying multiple '-arch' options to the |
4311 | +compiler but only a single '-arch' option to the preprocessor. Like |
4312 | this: |
4313 | |
4314 | ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ |
4315 | @@ -136,105 +135,104 @@ this: |
4316 | |
4317 | This is not guaranteed to produce working output in all cases, you |
4318 | may have to build one architecture at a time and combine the results |
4319 | -using the `lipo' tool if you have problems. |
4320 | +using the 'lipo' tool if you have problems. |
4321 | |
4322 | Installation Names |
4323 | ================== |
4324 | |
4325 | - By default, `make install' installs the package's commands under |
4326 | -`/usr/local/bin', include files under `/usr/local/include', etc. You |
4327 | -can specify an installation prefix other than `/usr/local' by giving |
4328 | -`configure' the option `--prefix=PREFIX', where PREFIX must be an |
4329 | + By default, 'make install' installs the package's commands under |
4330 | +'/usr/local/bin', include files under '/usr/local/include', etc. You |
4331 | +can specify an installation prefix other than '/usr/local' by giving |
4332 | +'configure' the option '--prefix=PREFIX', where PREFIX must be an |
4333 | absolute file name. |
4334 | |
4335 | You can specify separate installation prefixes for |
4336 | architecture-specific files and architecture-independent files. If you |
4337 | -pass the option `--exec-prefix=PREFIX' to `configure', the package uses |
4338 | +pass the option '--exec-prefix=PREFIX' to 'configure', the package uses |
4339 | PREFIX as the prefix for installing programs and libraries. |
4340 | Documentation and other data files still use the regular prefix. |
4341 | |
4342 | In addition, if you use an unusual directory layout you can give |
4343 | -options like `--bindir=DIR' to specify different values for particular |
4344 | -kinds of files. Run `configure --help' for a list of the directories |
4345 | -you can set and what kinds of files go in them. In general, the |
4346 | -default for these options is expressed in terms of `${prefix}', so that |
4347 | -specifying just `--prefix' will affect all of the other directory |
4348 | +options like '--bindir=DIR' to specify different values for particular |
4349 | +kinds of files. Run 'configure --help' for a list of the directories |
4350 | +you can set and what kinds of files go in them. In general, the default |
4351 | +for these options is expressed in terms of '${prefix}', so that |
4352 | +specifying just '--prefix' will affect all of the other directory |
4353 | specifications that were not explicitly provided. |
4354 | |
4355 | The most portable way to affect installation locations is to pass the |
4356 | -correct locations to `configure'; however, many packages provide one or |
4357 | +correct locations to 'configure'; however, many packages provide one or |
4358 | both of the following shortcuts of passing variable assignments to the |
4359 | -`make install' command line to change installation locations without |
4360 | +'make install' command line to change installation locations without |
4361 | having to reconfigure or recompile. |
4362 | |
4363 | The first method involves providing an override variable for each |
4364 | -affected directory. For example, `make install |
4365 | +affected directory. For example, 'make install |
4366 | prefix=/alternate/directory' will choose an alternate location for all |
4367 | directory configuration variables that were expressed in terms of |
4368 | -`${prefix}'. Any directories that were specified during `configure', |
4369 | -but not in terms of `${prefix}', must each be overridden at install |
4370 | -time for the entire installation to be relocated. The approach of |
4371 | -makefile variable overrides for each directory variable is required by |
4372 | -the GNU Coding Standards, and ideally causes no recompilation. |
4373 | -However, some platforms have known limitations with the semantics of |
4374 | -shared libraries that end up requiring recompilation when using this |
4375 | -method, particularly noticeable in packages that use GNU Libtool. |
4376 | - |
4377 | - The second method involves providing the `DESTDIR' variable. For |
4378 | -example, `make install DESTDIR=/alternate/directory' will prepend |
4379 | -`/alternate/directory' before all installation names. The approach of |
4380 | -`DESTDIR' overrides is not required by the GNU Coding Standards, and |
4381 | +'${prefix}'. Any directories that were specified during 'configure', |
4382 | +but not in terms of '${prefix}', must each be overridden at install time |
4383 | +for the entire installation to be relocated. The approach of makefile |
4384 | +variable overrides for each directory variable is required by the GNU |
4385 | +Coding Standards, and ideally causes no recompilation. However, some |
4386 | +platforms have known limitations with the semantics of shared libraries |
4387 | +that end up requiring recompilation when using this method, particularly |
4388 | +noticeable in packages that use GNU Libtool. |
4389 | + |
4390 | + The second method involves providing the 'DESTDIR' variable. For |
4391 | +example, 'make install DESTDIR=/alternate/directory' will prepend |
4392 | +'/alternate/directory' before all installation names. The approach of |
4393 | +'DESTDIR' overrides is not required by the GNU Coding Standards, and |
4394 | does not work on platforms that have drive letters. On the other hand, |
4395 | it does better at avoiding recompilation issues, and works well even |
4396 | -when some directory options were not specified in terms of `${prefix}' |
4397 | -at `configure' time. |
4398 | +when some directory options were not specified in terms of '${prefix}' |
4399 | +at 'configure' time. |
4400 | |
4401 | Optional Features |
4402 | ================= |
4403 | |
4404 | If the package supports it, you can cause programs to be installed |
4405 | -with an extra prefix or suffix on their names by giving `configure' the |
4406 | -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. |
4407 | - |
4408 | - Some packages pay attention to `--enable-FEATURE' options to |
4409 | -`configure', where FEATURE indicates an optional part of the package. |
4410 | -They may also pay attention to `--with-PACKAGE' options, where PACKAGE |
4411 | -is something like `gnu-as' or `x' (for the X Window System). The |
4412 | -`README' should mention any `--enable-' and `--with-' options that the |
4413 | +with an extra prefix or suffix on their names by giving 'configure' the |
4414 | +option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'. |
4415 | + |
4416 | + Some packages pay attention to '--enable-FEATURE' options to |
4417 | +'configure', where FEATURE indicates an optional part of the package. |
4418 | +They may also pay attention to '--with-PACKAGE' options, where PACKAGE |
4419 | +is something like 'gnu-as' or 'x' (for the X Window System). The |
4420 | +'README' should mention any '--enable-' and '--with-' options that the |
4421 | package recognizes. |
4422 | |
4423 | - For packages that use the X Window System, `configure' can usually |
4424 | + For packages that use the X Window System, 'configure' can usually |
4425 | find the X include and library files automatically, but if it doesn't, |
4426 | -you can use the `configure' options `--x-includes=DIR' and |
4427 | -`--x-libraries=DIR' to specify their locations. |
4428 | +you can use the 'configure' options '--x-includes=DIR' and |
4429 | +'--x-libraries=DIR' to specify their locations. |
4430 | |
4431 | Some packages offer the ability to configure how verbose the |
4432 | -execution of `make' will be. For these packages, running `./configure |
4433 | +execution of 'make' will be. For these packages, running './configure |
4434 | --enable-silent-rules' sets the default to minimal output, which can be |
4435 | -overridden with `make V=1'; while running `./configure |
4436 | +overridden with 'make V=1'; while running './configure |
4437 | --disable-silent-rules' sets the default to verbose, which can be |
4438 | -overridden with `make V=0'. |
4439 | +overridden with 'make V=0'. |
4440 | |
4441 | Particular systems |
4442 | ================== |
4443 | |
4444 | - On HP-UX, the default C compiler is not ANSI C compatible. If GNU |
4445 | -CC is not installed, it is recommended to use the following options in |
4446 | + On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC |
4447 | +is not installed, it is recommended to use the following options in |
4448 | order to use an ANSI C compiler: |
4449 | |
4450 | ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" |
4451 | |
4452 | and if that doesn't work, install pre-built binaries of GCC for HP-UX. |
4453 | |
4454 | - HP-UX `make' updates targets which have the same time stamps as |
4455 | -their prerequisites, which makes it generally unusable when shipped |
4456 | -generated files such as `configure' are involved. Use GNU `make' |
4457 | -instead. |
4458 | + HP-UX 'make' updates targets which have the same time stamps as their |
4459 | +prerequisites, which makes it generally unusable when shipped generated |
4460 | +files such as 'configure' are involved. Use GNU 'make' instead. |
4461 | |
4462 | On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot |
4463 | -parse its `<wchar.h>' header file. The option `-nodtk' can be used as |
4464 | -a workaround. If GNU CC is not installed, it is therefore recommended |
4465 | -to try |
4466 | +parse its '<wchar.h>' header file. The option '-nodtk' can be used as a |
4467 | +workaround. If GNU CC is not installed, it is therefore recommended to |
4468 | +try |
4469 | |
4470 | ./configure CC="cc" |
4471 | |
4472 | @@ -242,26 +240,26 @@ and if that doesn't work, try |
4473 | |
4474 | ./configure CC="cc -nodtk" |
4475 | |
4476 | - On Solaris, don't put `/usr/ucb' early in your `PATH'. This |
4477 | + On Solaris, don't put '/usr/ucb' early in your 'PATH'. This |
4478 | directory contains several dysfunctional programs; working variants of |
4479 | -these programs are available in `/usr/bin'. So, if you need `/usr/ucb' |
4480 | -in your `PATH', put it _after_ `/usr/bin'. |
4481 | +these programs are available in '/usr/bin'. So, if you need '/usr/ucb' |
4482 | +in your 'PATH', put it _after_ '/usr/bin'. |
4483 | |
4484 | - On Haiku, software installed for all users goes in `/boot/common', |
4485 | -not `/usr/local'. It is recommended to use the following options: |
4486 | + On Haiku, software installed for all users goes in '/boot/common', |
4487 | +not '/usr/local'. It is recommended to use the following options: |
4488 | |
4489 | ./configure --prefix=/boot/common |
4490 | |
4491 | Specifying the System Type |
4492 | ========================== |
4493 | |
4494 | - There may be some features `configure' cannot figure out |
4495 | + There may be some features 'configure' cannot figure out |
4496 | automatically, but needs to determine by the type of machine the package |
4497 | will run on. Usually, assuming the package is built to be run on the |
4498 | -_same_ architectures, `configure' can figure that out, but if it prints |
4499 | +_same_ architectures, 'configure' can figure that out, but if it prints |
4500 | a message saying it cannot guess the machine type, give it the |
4501 | -`--build=TYPE' option. TYPE can either be a short name for the system |
4502 | -type, such as `sun4', or a canonical name which has the form: |
4503 | +'--build=TYPE' option. TYPE can either be a short name for the system |
4504 | +type, such as 'sun4', or a canonical name which has the form: |
4505 | |
4506 | CPU-COMPANY-SYSTEM |
4507 | |
4508 | @@ -270,101 +268,101 @@ where SYSTEM can have one of these forms: |
4509 | OS |
4510 | KERNEL-OS |
4511 | |
4512 | - See the file `config.sub' for the possible values of each field. If |
4513 | -`config.sub' isn't included in this package, then this package doesn't |
4514 | + See the file 'config.sub' for the possible values of each field. If |
4515 | +'config.sub' isn't included in this package, then this package doesn't |
4516 | need to know the machine type. |
4517 | |
4518 | If you are _building_ compiler tools for cross-compiling, you should |
4519 | -use the option `--target=TYPE' to select the type of system they will |
4520 | +use the option '--target=TYPE' to select the type of system they will |
4521 | produce code for. |
4522 | |
4523 | If you want to _use_ a cross compiler, that generates code for a |
4524 | platform different from the build platform, you should specify the |
4525 | "host" platform (i.e., that on which the generated programs will |
4526 | -eventually be run) with `--host=TYPE'. |
4527 | +eventually be run) with '--host=TYPE'. |
4528 | |
4529 | Sharing Defaults |
4530 | ================ |
4531 | |
4532 | - If you want to set default values for `configure' scripts to share, |
4533 | -you can create a site shell script called `config.site' that gives |
4534 | -default values for variables like `CC', `cache_file', and `prefix'. |
4535 | -`configure' looks for `PREFIX/share/config.site' if it exists, then |
4536 | -`PREFIX/etc/config.site' if it exists. Or, you can set the |
4537 | -`CONFIG_SITE' environment variable to the location of the site script. |
4538 | -A warning: not all `configure' scripts look for a site script. |
4539 | + If you want to set default values for 'configure' scripts to share, |
4540 | +you can create a site shell script called 'config.site' that gives |
4541 | +default values for variables like 'CC', 'cache_file', and 'prefix'. |
4542 | +'configure' looks for 'PREFIX/share/config.site' if it exists, then |
4543 | +'PREFIX/etc/config.site' if it exists. Or, you can set the |
4544 | +'CONFIG_SITE' environment variable to the location of the site script. |
4545 | +A warning: not all 'configure' scripts look for a site script. |
4546 | |
4547 | Defining Variables |
4548 | ================== |
4549 | |
4550 | Variables not defined in a site shell script can be set in the |
4551 | -environment passed to `configure'. However, some packages may run |
4552 | +environment passed to 'configure'. However, some packages may run |
4553 | configure again during the build, and the customized values of these |
4554 | variables may be lost. In order to avoid this problem, you should set |
4555 | -them in the `configure' command line, using `VAR=value'. For example: |
4556 | +them in the 'configure' command line, using 'VAR=value'. For example: |
4557 | |
4558 | ./configure CC=/usr/local2/bin/gcc |
4559 | |
4560 | -causes the specified `gcc' to be used as the C compiler (unless it is |
4561 | +causes the specified 'gcc' to be used as the C compiler (unless it is |
4562 | overridden in the site shell script). |
4563 | |
4564 | -Unfortunately, this technique does not work for `CONFIG_SHELL' due to |
4565 | -an Autoconf limitation. Until the limitation is lifted, you can use |
4566 | -this workaround: |
4567 | +Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an |
4568 | +Autoconf limitation. Until the limitation is lifted, you can use this |
4569 | +workaround: |
4570 | |
4571 | CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash |
4572 | |
4573 | -`configure' Invocation |
4574 | +'configure' Invocation |
4575 | ====================== |
4576 | |
4577 | - `configure' recognizes the following options to control how it |
4578 | + 'configure' recognizes the following options to control how it |
4579 | operates. |
4580 | |
4581 | -`--help' |
4582 | -`-h' |
4583 | - Print a summary of all of the options to `configure', and exit. |
4584 | +'--help' |
4585 | +'-h' |
4586 | + Print a summary of all of the options to 'configure', and exit. |
4587 | |
4588 | -`--help=short' |
4589 | -`--help=recursive' |
4590 | +'--help=short' |
4591 | +'--help=recursive' |
4592 | Print a summary of the options unique to this package's |
4593 | - `configure', and exit. The `short' variant lists options used |
4594 | - only in the top level, while the `recursive' variant lists options |
4595 | - also present in any nested packages. |
4596 | + 'configure', and exit. The 'short' variant lists options used only |
4597 | + in the top level, while the 'recursive' variant lists options also |
4598 | + present in any nested packages. |
4599 | |
4600 | -`--version' |
4601 | -`-V' |
4602 | - Print the version of Autoconf used to generate the `configure' |
4603 | +'--version' |
4604 | +'-V' |
4605 | + Print the version of Autoconf used to generate the 'configure' |
4606 | script, and exit. |
4607 | |
4608 | -`--cache-file=FILE' |
4609 | +'--cache-file=FILE' |
4610 | Enable the cache: use and save the results of the tests in FILE, |
4611 | - traditionally `config.cache'. FILE defaults to `/dev/null' to |
4612 | + traditionally 'config.cache'. FILE defaults to '/dev/null' to |
4613 | disable caching. |
4614 | |
4615 | -`--config-cache' |
4616 | -`-C' |
4617 | - Alias for `--cache-file=config.cache'. |
4618 | +'--config-cache' |
4619 | +'-C' |
4620 | + Alias for '--cache-file=config.cache'. |
4621 | |
4622 | -`--quiet' |
4623 | -`--silent' |
4624 | -`-q' |
4625 | +'--quiet' |
4626 | +'--silent' |
4627 | +'-q' |
4628 | Do not print messages saying which checks are being made. To |
4629 | - suppress all normal output, redirect it to `/dev/null' (any error |
4630 | + suppress all normal output, redirect it to '/dev/null' (any error |
4631 | messages will still be shown). |
4632 | |
4633 | -`--srcdir=DIR' |
4634 | +'--srcdir=DIR' |
4635 | Look for the package's source code in directory DIR. Usually |
4636 | - `configure' can determine that directory automatically. |
4637 | + 'configure' can determine that directory automatically. |
4638 | |
4639 | -`--prefix=DIR' |
4640 | - Use DIR as the installation prefix. *note Installation Names:: |
4641 | - for more details, including other options available for fine-tuning |
4642 | - the installation locations. |
4643 | +'--prefix=DIR' |
4644 | + Use DIR as the installation prefix. *note Installation Names:: for |
4645 | + more details, including other options available for fine-tuning the |
4646 | + installation locations. |
4647 | |
4648 | -`--no-create' |
4649 | -`-n' |
4650 | +'--no-create' |
4651 | +'-n' |
4652 | Run the configure checks, but stop before creating any output |
4653 | files. |
4654 | |
4655 | -`configure' also accepts some other, not widely useful, options. Run |
4656 | -`configure --help' for more details. |
4657 | +'configure' also accepts some other, not widely useful, options. Run |
4658 | +'configure --help' for more details. |
4659 | diff --git a/Makefile.am b/Makefile.am |
4660 | index 9a073a1..7106e8d 100644 |
4661 | --- a/Makefile.am |
4662 | +++ b/Makefile.am |
4663 | @@ -1,7 +1,7 @@ |
4664 | NULL = |
4665 | ACLOCAL_AMFLAGS = -I m4 |
4666 | |
4667 | -SUBDIRS = spice-common server docs tools |
4668 | +SUBDIRS = subprojects/spice-common server docs tools |
4669 | |
4670 | check-valgrind: |
4671 | $(MAKE) -C server check-valgrind |
4672 | @@ -10,14 +10,17 @@ pkgconfigdir = $(libdir)/pkgconfig |
4673 | pkgconfig_DATA = spice-server.pc |
4674 | |
4675 | DISTCHECK_CONFIGURE_FLAGS = \ |
4676 | - --enable-automated-tests \ |
4677 | + --disable-celt051 \ |
4678 | --enable-smartcard \ |
4679 | --with-sasl \ |
4680 | --enable-manual \ |
4681 | $(NULL) |
4682 | |
4683 | EXTRA_DIST = \ |
4684 | + meson.build \ |
4685 | + meson_options.txt \ |
4686 | build-aux/git-version-gen \ |
4687 | + build-aux/meson/check-spice-common \ |
4688 | .version \ |
4689 | $(NULL) |
4690 | |
4691 | diff --git a/Makefile.in b/Makefile.in |
4692 | index 6a56634..4378449 100644 |
4693 | --- a/Makefile.in |
4694 | +++ b/Makefile.in |
4695 | @@ -1,7 +1,7 @@ |
4696 | -# Makefile.in generated by automake 1.15 from Makefile.am. |
4697 | +# Makefile.in generated by automake 1.16.1 from Makefile.am. |
4698 | # @configure_input@ |
4699 | |
4700 | -# Copyright (C) 1994-2014 Free Software Foundation, Inc. |
4701 | +# Copyright (C) 1994-2018 Free Software Foundation, Inc. |
4702 | |
4703 | # This Makefile.in is free software; the Free Software Foundation |
4704 | # gives unlimited permission to copy and/or distribute it, |
4705 | @@ -99,7 +99,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_valgrind_check.m4 \ |
4706 | $(top_srcdir)/m4/virt-linker-no-indirect.m4 \ |
4707 | $(top_srcdir)/m4/virt-linker-relro.m4 \ |
4708 | $(top_srcdir)/m4/warnings.m4 \ |
4709 | - $(top_srcdir)/spice-common/m4/spice-deps.m4 \ |
4710 | + $(top_srcdir)/subprojects/spice-common/m4/spice-deps.m4 \ |
4711 | $(top_srcdir)/configure.ac |
4712 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
4713 | $(ACLOCAL_M4) |
4714 | @@ -174,7 +174,7 @@ am__recursive_targets = \ |
4715 | $(RECURSIVE_CLEAN_TARGETS) \ |
4716 | $(am__extra_recursive_targets) |
4717 | AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ |
4718 | - cscope distdir dist dist-all distcheck |
4719 | + cscope distdir distdir-am dist dist-all distcheck |
4720 | am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ |
4721 | $(LISP)config.h.in |
4722 | # Read a list of newline-separated strings from the standard input, |
4723 | @@ -199,7 +199,7 @@ CSCOPE = cscope |
4724 | DIST_SUBDIRS = $(SUBDIRS) |
4725 | am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ |
4726 | $(srcdir)/spice-server.pc.in AUTHORS COPYING ChangeLog INSTALL \ |
4727 | - NEWS README compile config.guess config.sub install-sh \ |
4728 | + NEWS README compile config.guess config.sub depcomp install-sh \ |
4729 | ltmain.sh missing |
4730 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
4731 | distdir = $(PACKAGE)-$(VERSION) |
4732 | @@ -278,6 +278,8 @@ ENABLE_VALGRIND_memcheck = @ENABLE_VALGRIND_memcheck@ |
4733 | ENABLE_VALGRIND_sgcheck = @ENABLE_VALGRIND_sgcheck@ |
4734 | EXEEXT = @EXEEXT@ |
4735 | FGREP = @FGREP@ |
4736 | +GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@ |
4737 | +GIO_UNIX_LIBS = @GIO_UNIX_LIBS@ |
4738 | GLIB2_CFLAGS = @GLIB2_CFLAGS@ |
4739 | GLIB2_LIBS = @GLIB2_LIBS@ |
4740 | GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@ |
4741 | @@ -343,6 +345,7 @@ SET_MAKE = @SET_MAKE@ |
4742 | SHELL = @SHELL@ |
4743 | SMARTCARD_CFLAGS = @SMARTCARD_CFLAGS@ |
4744 | SMARTCARD_LIBS = @SMARTCARD_LIBS@ |
4745 | +SPICE_COMMON_DIR = @SPICE_COMMON_DIR@ |
4746 | SPICE_LT_VERSION = @SPICE_LT_VERSION@ |
4747 | SPICE_NONPKGCONFIG_CFLAGS = @SPICE_NONPKGCONFIG_CFLAGS@ |
4748 | SPICE_NONPKGCONFIG_LIBS = @SPICE_NONPKGCONFIG_LIBS@ |
4749 | @@ -419,18 +422,21 @@ valgrind_enabled_tools = @valgrind_enabled_tools@ |
4750 | valgrind_tools = @valgrind_tools@ |
4751 | NULL = |
4752 | ACLOCAL_AMFLAGS = -I m4 |
4753 | -SUBDIRS = spice-common server docs tools |
4754 | +SUBDIRS = subprojects/spice-common server docs tools |
4755 | pkgconfigdir = $(libdir)/pkgconfig |
4756 | pkgconfig_DATA = spice-server.pc |
4757 | DISTCHECK_CONFIGURE_FLAGS = \ |
4758 | - --enable-automated-tests \ |
4759 | + --disable-celt051 \ |
4760 | --enable-smartcard \ |
4761 | --with-sasl \ |
4762 | --enable-manual \ |
4763 | $(NULL) |
4764 | |
4765 | EXTRA_DIST = \ |
4766 | + meson.build \ |
4767 | + meson_options.txt \ |
4768 | build-aux/git-version-gen \ |
4769 | + build-aux/meson/check-spice-common \ |
4770 | .version \ |
4771 | $(NULL) |
4772 | |
4773 | @@ -460,8 +466,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
4774 | echo ' $(SHELL) ./config.status'; \ |
4775 | $(SHELL) ./config.status;; \ |
4776 | *) \ |
4777 | - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ |
4778 | - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ |
4779 | + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ |
4780 | + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ |
4781 | esac; |
4782 | |
4783 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
4784 | @@ -626,7 +632,10 @@ distclean-tags: |
4785 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
4786 | -rm -f cscope.out cscope.in.out cscope.po.out cscope.files |
4787 | |
4788 | -distdir: $(DISTFILES) |
4789 | +distdir: $(BUILT_SOURCES) |
4790 | + $(MAKE) $(AM_MAKEFLAGS) distdir-am |
4791 | + |
4792 | +distdir-am: $(DISTFILES) |
4793 | $(am__remove_distdir) |
4794 | test -d "$(distdir)" || mkdir "$(distdir)" |
4795 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
4796 | diff --git a/NEWS b/NEWS |
4797 | index 51bb4a2..168e20d 100644 |
4798 | --- a/NEWS |
4799 | +++ b/NEWS |
4800 | @@ -1,3 +1,56 @@ |
4801 | +Major Changes in 0.14.2: |
4802 | +======================== |
4803 | + |
4804 | +Main changes are support for Meson build and graphic device info |
4805 | +messages allowing to better support multi-monitor configurations. |
4806 | + |
4807 | +* CVE-2019-3813: fix off-by-one error in group/slot boundary check |
4808 | +* support H265 in stream-channel |
4809 | +* add support for building with meson/ninja |
4810 | +* minor tests fixes improving CI |
4811 | +* set char device state for smartcard, allowing Qemu optimization |
4812 | +* improve red-parse-qxl.c interface making it more consistent |
4813 | +* add some instrumentation for streaming device |
4814 | +* QXL interface: add a function to identify monitors in the guest |
4815 | + (spice_qxl_set_device_info) |
4816 | +* add support for GraphicsDeviceInfo messages |
4817 | +* video-stream: prevent crash on stream reattach |
4818 | +* make channel client callbacks virtual functions |
4819 | +* bumped minimum required glib version to 2.38 |
4820 | +* attempt to have a reliable led state for keyboard modifiers |
4821 | + |
4822 | +Major Changes in 0.14.1: |
4823 | +======================== |
4824 | + |
4825 | +The main change in this release is the addition of a new protocol extension |
4826 | +in order to support streaming the remote display as a video stream rather than |
4827 | +going through the QXL protocol. Together with spice-streaming-agent, and/or with |
4828 | +more work on the qemu/spice-server side, this should allow streaming of 3D |
4829 | +accelerated VMs in the future. At this point, this part of spice-server is |
4830 | +still a work in progress (multi-monitor support and various features are |
4831 | +missing). |
4832 | + |
4833 | +* add new org.spice-space.stream.0 channel used for passing an encoded video |
4834 | + stream from the guest to the client |
4835 | +* add support for TCP_CORK to reduce the amount of packets that we send |
4836 | +* fix CVE-2018-10873 |
4837 | +* fix cursor related migration crash |
4838 | +* fix regression causing sound recording to be muted after |
4839 | + client disconnection/reconnection (introduced in 0.13.90) |
4840 | +* fix regression in corner cases where images could be sent uncompressed |
4841 | + when they used to be compressed with QUIC |
4842 | +* disable TLS 1.0 support |
4843 | +* CELT 0.5.1 support is now disabled by default. If celt051-devel is installed |
4844 | + at build-time, --enable-celt051/--disable-celt051 must be explicitly specified |
4845 | +* drop support for unsupported OpenSSL version. OpenSSL 1.0.0 or newer is now |
4846 | + required |
4847 | +* bumped minimum required glib version to 2.32 |
4848 | +* endianness fixes |
4849 | +* (small) leak fixes |
4850 | +* usual round of code cleanups |
4851 | +* not directly related to this release, but the upstream git repository is now |
4852 | + hosted on gitlab.freedesktop.org |
4853 | + |
4854 | Major Changes in 0.14.0: |
4855 | ======================== |
4856 | |
4857 | diff --git a/README b/README |
4858 | index 4aaf6a7..59d2367 100644 |
4859 | --- a/README |
4860 | +++ b/README |
4861 | @@ -27,7 +27,7 @@ Or to install into a private user specific location |
4862 | The following mandatory dependencies are required in order to |
4863 | build SPICE |
4864 | |
4865 | - Spice protocol >= 0.12.13 |
4866 | + Spice protocol >= 0.14.0 |
4867 | Pixman >= 0.17.7 |
4868 | OpenSSL |
4869 | libjpeg |
4870 | @@ -37,7 +37,7 @@ The following optional dependencies increase the available |
4871 | functionality |
4872 | |
4873 | Cyrus-SASL |
4874 | - libcacard >= 0.1.2 (Smartcard support) |
4875 | + libcacard >= 2.5.1 (Smartcard support) |
4876 | Opus >= 1.0.0 (Opus audio encoding support) |
4877 | LZ4 (LZ4 compression support) |
4878 | GStreamer >= 1.0.0 |
4879 | @@ -56,14 +56,14 @@ There is also a mailing list for new release announcements: |
4880 | |
4881 | To view known bugs, or report new bugs, in SPICE visit |
4882 | |
4883 | - https://bugs.freedesktop.org/describecomponents.cgi?product=Spice |
4884 | + https://gitlab.freedesktop.org/spice/spice/issues/new? |
4885 | |
4886 | Bugs found when using an OS distribution's binary packages should |
4887 | be reported to the OS vendors' own bug tracker first. |
4888 | |
4889 | The latest SPICE code can be found in GIT at: |
4890 | |
4891 | - https://cgit.freedesktop.org/spice/ |
4892 | + https://gitlab.freedesktop.org/spice/ |
4893 | |
4894 | Licensing |
4895 | --------- |
4896 | diff --git a/aclocal.m4 b/aclocal.m4 |
4897 | index 6462a22..9a3219a 100644 |
4898 | --- a/aclocal.m4 |
4899 | +++ b/aclocal.m4 |
4900 | @@ -1,6 +1,6 @@ |
4901 | -# generated automatically by aclocal 1.15 -*- Autoconf -*- |
4902 | +# generated automatically by aclocal 1.16.1 -*- Autoconf -*- |
4903 | |
4904 | -# Copyright (C) 1996-2014 Free Software Foundation, Inc. |
4905 | +# Copyright (C) 1996-2018 Free Software Foundation, Inc. |
4906 | |
4907 | # This file is free software; the Free Software Foundation |
4908 | # gives unlimited permission to copy and/or distribute it, |
4909 | @@ -364,7 +364,7 @@ AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], |
4910 | [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) |
4911 | ])dnl PKG_HAVE_DEFINE_WITH_MODULES |
4912 | |
4913 | -# Copyright (C) 2002-2014 Free Software Foundation, Inc. |
4914 | +# Copyright (C) 2002-2018 Free Software Foundation, Inc. |
4915 | # |
4916 | # This file is free software; the Free Software Foundation |
4917 | # gives unlimited permission to copy and/or distribute it, |
4918 | @@ -376,10 +376,10 @@ AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], |
4919 | # generated from the m4 files accompanying Automake X.Y. |
4920 | # (This private macro should not be called outside this file.) |
4921 | AC_DEFUN([AM_AUTOMAKE_VERSION], |
4922 | -[am__api_version='1.15' |
4923 | +[am__api_version='1.16' |
4924 | dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to |
4925 | dnl require some minimum version. Point them to the right macro. |
4926 | -m4_if([$1], [1.15], [], |
4927 | +m4_if([$1], [1.16.1], [], |
4928 | [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl |
4929 | ]) |
4930 | |
4931 | @@ -395,14 +395,14 @@ m4_define([_AM_AUTOCONF_VERSION], []) |
4932 | # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. |
4933 | # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. |
4934 | AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], |
4935 | -[AM_AUTOMAKE_VERSION([1.15])dnl |
4936 | +[AM_AUTOMAKE_VERSION([1.16.1])dnl |
4937 | m4_ifndef([AC_AUTOCONF_VERSION], |
4938 | [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl |
4939 | _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) |
4940 | |
4941 | # AM_AUX_DIR_EXPAND -*- Autoconf -*- |
4942 | |
4943 | -# Copyright (C) 2001-2014 Free Software Foundation, Inc. |
4944 | +# Copyright (C) 2001-2018 Free Software Foundation, Inc. |
4945 | # |
4946 | # This file is free software; the Free Software Foundation |
4947 | # gives unlimited permission to copy and/or distribute it, |
4948 | @@ -452,9 +452,46 @@ AC_DEFUN([AM_AUX_DIR_EXPAND], |
4949 | am_aux_dir=`cd "$ac_aux_dir" && pwd` |
4950 | ]) |
4951 | |
4952 | +# AM_COND_IF -*- Autoconf -*- |
4953 | + |
4954 | +# Copyright (C) 2008-2018 Free Software Foundation, Inc. |
4955 | +# |
4956 | +# This file is free software; the Free Software Foundation |
4957 | +# gives unlimited permission to copy and/or distribute it, |
4958 | +# with or without modifications, as long as this notice is preserved. |
4959 | + |
4960 | +# _AM_COND_IF |
4961 | +# _AM_COND_ELSE |
4962 | +# _AM_COND_ENDIF |
4963 | +# -------------- |
4964 | +# These macros are only used for tracing. |
4965 | +m4_define([_AM_COND_IF]) |
4966 | +m4_define([_AM_COND_ELSE]) |
4967 | +m4_define([_AM_COND_ENDIF]) |
4968 | + |
4969 | +# AM_COND_IF(COND, [IF-TRUE], [IF-FALSE]) |
4970 | +# --------------------------------------- |
4971 | +# If the shell condition COND is true, execute IF-TRUE, otherwise execute |
4972 | +# IF-FALSE. Allow automake to learn about conditional instantiating macros |
4973 | +# (the AC_CONFIG_FOOS). |
4974 | +AC_DEFUN([AM_COND_IF], |
4975 | +[m4_ifndef([_AM_COND_VALUE_$1], |
4976 | + [m4_fatal([$0: no such condition "$1"])])dnl |
4977 | +_AM_COND_IF([$1])dnl |
4978 | +if test -z "$$1_TRUE"; then : |
4979 | + m4_n([$2])[]dnl |
4980 | +m4_ifval([$3], |
4981 | +[_AM_COND_ELSE([$1])dnl |
4982 | +else |
4983 | + $3 |
4984 | +])dnl |
4985 | +_AM_COND_ENDIF([$1])dnl |
4986 | +fi[]dnl |
4987 | +]) |
4988 | + |
4989 | # AM_CONDITIONAL -*- Autoconf -*- |
4990 | |
4991 | -# Copyright (C) 1997-2014 Free Software Foundation, Inc. |
4992 | +# Copyright (C) 1997-2018 Free Software Foundation, Inc. |
4993 | # |
4994 | # This file is free software; the Free Software Foundation |
4995 | # gives unlimited permission to copy and/or distribute it, |
4996 | @@ -485,7 +522,7 @@ AC_CONFIG_COMMANDS_PRE( |
4997 | Usually this means the macro was only invoked conditionally.]]) |
4998 | fi])]) |
4999 | |
5000 | -# Copyright (C) 1999-2014 Free Software Foundation, Inc. |
Analyzing reverse dependencies of spice as it is a lib (although with a narrow focus).
$ reverse-depends src:spice-protocol -r eoan client- glib-2. 0-dev (for libspice- protocol- dev) protocol- dev)
Reverse-Depends
===============
* libspice-
* libspice-server-dev [amd64 arm64 armhf i386 ppc64el] (for libspice-
The latter is src:spice which we upload anyway.
$ reverse-depends --build-depends src:spice-protocol -r eoan Build-Depends ======= ======= protocol- dev) protocol- dev) protocol- dev) protocol- dev) protocol- dev) protocol- dev) xorg-video- qxl (for libspice- protocol- dev)
Reverse-
=======
* looking-glass (for libspice-
* qemu (for libspice-
* remmina (for libspice-
* spice (for libspice-
* spice-gtk (for libspice-
* spice-vdagent (for libspice-
* xserver-
$ reverse-depends src:spice -r eoan
Reverse-Depends
===============
* qemu-system-arm (for libspice-server1)
* qemu-system-mips (for libspice-server1)
* qemu-system-misc (for libspice-server1)
* qemu-system-ppc (for libspice-server1)
* qemu-system-s390x (for libspice-server1)
* qemu-system-sparc (for libspice-server1)
* qemu-system-x86 (for libspice-server1)
* xserver-xspice [amd64] (for libspice-server1)
$ reverse-depends --build-depends src:spice -r eoan Build-Depends ======= ======= server- dev) xorg-video- qxl (for libspice- server- dev)
Reverse-
=======
* qemu (for libspice-
* xserver-
Most only depend on headers and only qemu and xorg driver have runtiem deps.