Commit Graph

1880 Commits

Author SHA1 Message Date
Marc-André Lureau
cbfc0e9e3f build-sys: bump spice-gtk current version info
The following patches need to break the ABI (in particular the parent of the
SpiceDisplay widget).

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2016-03-14 12:02:44 +01:00
Marc-André Lureau
0a1f9bfd29 build-sys: fix make check when polkit not available
acl-helper needs polkit (and unix atm) to build.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
2016-03-11 20:02:46 +01:00
Marc-André Lureau
1aeb0e0509 doc: add a bunch of Since: 0.31
Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
2016-03-11 19:17:20 +01:00
Marc-André Lureau
0072e8abe1 Prepare for v0.31 release
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2016-03-11 19:04:46 +01:00
Marc-André Lureau
8796b264a7 logging: use more idiomatic spice-gtk logging
spice-gtk uses SPICE_DEBUG for debug lines (for now), and prefer direct
glib glog/g_warning.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
2016-03-11 19:04:46 +01:00
Marc-André Lureau
0c9dfb7197 session: use debug message for optional key value
This fixes make check failing because of recent spice-common logging
switch to glib.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
2016-03-11 19:04:24 +01:00
Jonathon Jongsma
3095455205 Update POTFILES.skip
spicy.desktop.in no longer exists.
2016-03-11 10:49:24 -06:00
Jonathon Jongsma
c1683c3463 Add tests for usb-acl-helper 2016-03-11 10:41:38 -06:00
Jonathon Jongsma
17b00a13f2 usb-acl-helper: add env var for specifying acl helper binary
Setting SPICE_USB_ACL_BINARY allows us to execute a custom mock acl
helper binary for testing purposes.
2016-03-11 10:40:40 -06:00
Jonathon Jongsma
6eb8d0a335 Rename spice_usb_acl_helper_open_acl() to _open_acl_async()
Follow established practice and make the function's behavior more
explicit.
2016-03-11 09:52:47 -06:00
Jonathon Jongsma
da1b2ad771 Remove spice_usb_acl_helper_close_acl()
This function is now only called after the open_acl() task completes,
and in that scenario it basically does the same thing that the
SpiceUsbAclHelper destructor does, so it's pointless. Remove it.
2016-03-11 09:52:47 -06:00
Jonathon Jongsma
9c8f8982c1 usb-acl-helper: Avoid deadlock when cancelled
cancelled_cb() (which is triggered when the GCancellable's "cancelled"
signal is emitted) called spice_usb_acl_helper_close_acl(), which calls
spice_usb_acl_helper_cleanup(), which in turn calls
g_cancellable_disconnect(). Calling g_cancellable_disconnect() from
within a "cancelled" handler results in a dealock, as mentioned in the
documentation. Instead of closing the acl here, simply cancel the task
here. The cleanup() call will happen when the SpiceUsbAclHelper object
is destroyed.
2016-03-11 09:52:46 -06:00
Jonathon Jongsma
3e5004dd57 Introduce spice_usb_acl_helper_cancel()
This function explicitly cancels a open_acl() task. It is similar to
close_acl(), but its behavior is more explicit. This function is very
similar to the existing close_acl() function but it requires that the
task has not already been completed. Also, although it releases its
reference on priv->result to avoid circular references, it doesn't call
cleanup(), preferring instead to wait for the destructor to clean up.
This makes the close_acl() function essentially pointless and will be
removed in the following commit.
2016-03-11 09:52:46 -06:00
Marc-André Lureau
cc8adb63ee Update spice-common submodule
Pick codegen build fix

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2016-03-10 17:05:24 +01:00
Francois Gouget
27410ce1c1 spice-gtk: Fix the signedness of a couple of mm-time traces
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Acked-by: Marc-André Lureau <mlureau@redhat.com>
2016-02-23 16:29:23 +01:00
Ignacio Casal Quinteiro
6a7393e6e6 namedpipelistener: do not leak the error message 2016-02-23 09:05:46 +01:00
Christophe Fergeau
f84ae99f82 Simplify spice_usb_device_manager_device_to_libdev()
The Windows-specific version duplicates some code from
spice_usb_device_equal_libdev(), this commit
switches to using that helper instead.
2016-02-18 08:39:07 +01:00
Christophe Fergeau
7c85f88f26 Simplify spice_usb_device_equal_libdev()
The Windows-specific version duplicates some code from
spice_usb_device_manager_libdev_match(), this commit
switches to using that helper instead.
2016-02-18 08:38:49 +01:00
Marc-André Lureau
f81ffa25ae gtk: add spice-widget GL scanout support
Hook to spice-glib events to show the GL scanout.

The opengl context is created with egl, and is currently
x11-only (supporting wayland with bare-egl doesn't seem trivial).

Using GtkGLArea is left for a future series, since SpiceDisplay widget
is a GtkDrawingArea and can't be replaced without breaking
ABI. Furthermore, GtkGLArea won't work on non-egl contexts, so this
approach is necessary on gtk+ < 3.16 or X11 (because gdk/x11 uses glx).

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Acked-by: Victor Toso <victortoso@redhat.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2016-02-16 14:22:24 +01:00
Marc-André Lureau
1e4c78e304 glib: add local GL scanout support
Add spice-glib support for gl scanout messages.

A note about SpiceGlScanout: it is struct with scanout details,
registered as a boxed type, with associated gl-scanout property. That
way, it doesn't need a seperate signal for change notification and the
current scanout can be retrieve with gobject getter. Since boxed
property are always duplicated by g_object_get(), an additional
spice_display_get_gl_scanout() method returns the current scanout
without duplication (that's what spice-gtk display widget will use).

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2016-02-13 11:28:26 +01:00
Marc-André Lureau
983eed1073 build-sys: check for epoxy-egl support
The following code requires epoxy with egl support. Check for pkg-config
and egl headers.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2016-02-13 11:28:24 +01:00
Marc-André Lureau
1877229a43 Add spice_channel_unix_read_fd()
Utility function used in the messages with socket ancillary fd.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2016-02-13 11:28:23 +01:00
Marc-André Lureau
c3b52e0f95 build-sys: bump to spice-protocol 0.12.11
Needed for GL messages

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
2016-02-13 11:28:22 +01:00
Fabiano Fidêncio
8427871a01 typo: s/GTask/GSimpleAsyncResult
Seems that I messed up with cd0c100831
while rebasing my GTask series on top of this patch, causing a build
breakage due to non-intentional insertion of a GTask replacing a
GSimpleAsyncResult.

Acked-by: Pavel Grunt <pgrunt@redhat.com>
2016-02-12 16:05:37 +01:00
Fabiano Fidêncio
cd0c100831 Use #ifdef {HAVE,USE}_FOO instead of #if {HAVE,USE}_FOO
While "#if USE_FOO" checks for the value of the variable USE_FOO,
"#ifdef" checks whether USE_FOO is defined or not.

It means, if we had something like: #define USE_FOO 0, we would have:
 #if USE_FOO
 /* Any code in here would NOT be compiled */
 #endif

 #ifdef USE_FOO
 /* Any code in here would be compiled */
 #endif

No problem was faced on spice-gtk till now because either USE_FOO is not
defined or defined as 1, but let's try to have it standardized.

Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
2016-02-12 10:39:17 +01:00
Marc-André Lureau
57df040cc5 gtk: replace configure-event for size-allocate
For size-allocate, it's simpler to connect to the signal rather than
override the default signal handler since there is no automatic chaining
to parent handler otherwise. Doing this removes the need to have a
window.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Victor Toso <victortoso@redhat.com>
2016-02-03 20:13:34 +01:00
Fabiano Fidêncio
5166f891e5 usb-device-{manager,widget}: Add counter of free channels
As the message showed when the last usbredir channel is taken can be a
bit confusing, let's add a counter of free channels to the widget's
label.
In order to add the counter, a new property for SpiceUsbDeviceManager
was introduced ("free-channels").

Related: rhbz#1298772
2016-01-22 10:50:03 +01:00
Fabiano Fidêncio
b757d75b9b Remove GSLice usage
It's being slowly deprecated in glib
https://bugzilla.gnome.org/show_bug.cgi?id=754687
2016-01-22 10:50:00 +01:00
Victor Toso
c5bb4882f6 gstaudio: set output parameter to NULL on error
This is not really triggered in the current code but this is usually
expected in case of errors; Also, the same function on record side
already does this.

Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2016-01-19 09:47:56 +01:00
Marc-André Lureau
fe4f620609 build-sys: silence vala deprecated function usage warnings
This silence usage of deprecated glib declarations from vala generated code.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2016-01-14 18:54:51 +01:00
Marc-Andre Lureau
27a51072e6 Update spice-common
This is an update to fix build issues with spice-protocol.git.
generated_server_demarshallers.c: In function
‘parse_msgc_display_gl_draw_done’:
generated_server_demarshallers.c:767:23: error:
‘SpiceMsgcDisplayGlDrawDone’ undeclared (first use in this function)
     mem_size = sizeof(SpiceMsgcDisplayGlDrawDone);
...

Also needed for upcoming gl-scanout messages.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2016-01-14 17:46:15 +00:00
Victor Toso
bf6ab7e942 channel-main: remove unused header rect.h
It was included in be8ff99571 but with no
use.

Acked-by: Marc-André Lureau <mlureau@redhat.com>
2016-01-07 11:58:54 +01:00
Marc-André Lureau
4cc099503c build-sys: remove xrandr
Not needed anymore (probably since gnome-rr was removed in 30986505b)

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2016-01-04 14:21:26 +01:00
snir sheriber
143ebfdf27 Grab keyboard based on session focus.
When using multiple monitors moving mouse between monitors releases
keyboard grab.

Reproduce bug
-Open multiple monitors remote-viewer session
-Click on one of the monitors to get focus & keyboard-grab
-Move mouse to another monitor and try keyboard command (do not click)
At this point all keyboard commands are being executed on the client
machine instead of the remote machine

I added keyboard_has_focus and mouse_has_pointer variables at the
session and now these properties are being tested for the session
instead for the current widget (works also when using alt-tab).

Resolves: rhbz#1275231

Acked-by: Pavel Grunt <pgrunt@redhat.com>
2015-12-21 18:51:12 +01:00
Lukas Venhoda
f1e504f02b ppc: Fix spicy-screenshot colors on BE machines
Save screenshot in proper endianess
xRGB on LE machine and BGRx on BE machine
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2015-12-21 18:24:40 +01:00
Lukas Venhoda
756f756c8a ppc: Fix colors on ppc when using GLZ
Fixes color order on PowerPC when using GLZ image compression.
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2015-12-21 18:23:51 +01:00
Fabiano Fidêncio
4395cb797d ppc: Fix message endianess 2015-12-21 18:23:22 +01:00
Fabiano Fidêncio
a22bfaf238 ppc: Fix header endianess 2015-12-21 18:22:36 +01:00
Pavel Grunt
583f0d4d8e build-sys: Use sasl check from spice-common
Support only libsasl2 providing libsasl2.pc file

Acked-by: Christophe Fergeau <cfergeau@redhat.com>
2015-12-18 14:11:08 +01:00
Javier Celaya
b7ed56622b Call spice_marshaller_flush on message write
spice_marshaller_flush must be called before writing a message to
calculate pointer offsets.

This is only an issue when ptr submarshallers are used, which currently
is only used by Tunnel::service_add. Since this is disabled by default,
this buug is not going to be hit by the current codebase.
2015-12-10 09:16:30 +01:00
Christophe Fergeau
34c839bf03 gst: Fix typo in preprocessor symbol
When the GStreamer backend is used, HAVE_GSTAUDIO is defined, not
HAVE_GST_AUDIO.
2015-12-09 12:11:41 +01:00
Christophe Fergeau
afe52e263c smartcard: Fix compilation with older libcacard
e0c2182937 dropped some #include from channel-smartcard.c and spicy.c as
they were redundant with the headers already included from
spice-common/common/messages.h. While this is true for the newer
libcacard.h header, we need to include more headers to support older
libcacard, or compilation breaks.
2015-12-09 12:05:06 +01:00
Francois Gouget
e8fde7c546 spice-gtk: Recover from GStreamer audio initialization errors
gst_init() will terminate the program in case of a failure so it's
better to use gst_init_check() so we can recover from errors.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
2015-12-09 11:49:02 +01:00
Francois Gouget
983984f276 build-sys: Warn about missing GStreamer 1.0 audio runtime elements
Their absence should not be reported as an error since they are not
needed for the build, but the developer will need them to test the code
so it's appropriate to warn him.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
2015-12-08 15:41:26 +01:00
Christophe Fergeau
077024454c build-sys: Check for GStreamer 1.0 audio with SPICE_CHECK_GSTREAMER()
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
2015-12-08 15:41:26 +01:00
Francois Gouget
538625415a build-sys: Allow simultaneous support for Pulse and GStreamer audio
Rather than GStreamer/PulseAudio backend being mutually exclusive at
compile-time, this commit allows to enable both at the same time.
PulseAudio will then be favoured, with a fallback to GStreamer if it's
not available.
Note that --with-audio is kept for backward compatibility.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
2015-12-08 15:41:26 +01:00
Marc-André Lureau
e0c2182937 Use libcacard.h if possible
Drop unneeded includes (that are already undirectly included).

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
2015-12-08 14:11:49 +01:00
Marc-André Lureau
92288aa9ac Remove unmaintained spicy.nsis
Remove gtkrc too, and cleanup EXTRA_DIST ($(desktop_in_files) is unused)

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
2015-12-08 14:11:49 +01:00
Marc-André Lureau
32c92748e1 Update spice-common
For new libcacard.h usage
2015-12-08 14:11:49 +01:00
Marc-André Lureau
7324f10cf4 Fix use after free of uri
"path" points to "uri" memory, move free(uri) later.

Found thanks to valgrind :)

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
2015-12-08 14:11:49 +01:00