Commit 13a18d7c authored by Laurent Bigonville's avatar Laurent Bigonville

New upstream version 0.19.0

parent 392198b7
spice-vdagent-0.15.0
--------------------
News in spice-vdagent 0.19.0
============================
* Add libdrm dependency
* Fix file descriptor leak on failed connections
* Handle new VD_AGENT_GRAPHICS_DEVICE_INFO message advertised by
VD_AGENT_CAP_GRAPHICS_DEVICE_INFO capability
* Session agent autostart changed to WindowManager ([rhbz#1623947])
This fixes possible race with xdg-user-dirs
* Fix of sending empty screen resolution messages ([rhbz#1641723])
* Fix 'Dependency failed for Activation socket' with systemd ([rhbz#1545212])
* Fix error messages about on selecting text on host ([rhbz#1594876])
this was also fixed with Gtk backend
* Update paths from /var/run → /run
* Fix Session agent restart
* Add test for file creation
* Prefer GLib memory functions stdlib.h ones
* Several code and logs improvements
[rhbz#1623947]: https://bugzilla.redhat.com/show_bug.cgi?id=1623947
[rhbz#1641723]: https://bugzilla.redhat.com/show_bug.cgi?id=1641723
[rhbz#1545212]: https://bugzilla.redhat.com/show_bug.cgi?id=1545212
[rhbz#1594876]: https://bugzilla.redhat.com/show_bug.cgi?id=1594876
News in spice-vdagent 0.18.0
============================
* Add GTK+ framework to handle x11 backend such as clipboard
* Deprecate X11 backend in favor of GTK+ framework
* Ask pkg-config to appropriate directory to install udev rules
* Fix leak of udscs's file descriptor
* Better quote directory path when calling xdg-open to save file transfer
* Bump GLib to 2.34
* Add systemd socket activation (rhbz#1340160)
* Add support to detailed errors on file transfers
* Add check for available free space in guest before starting a file transfer
* Use better names for duplicated files on file transfer
* Improve support on big endian guests (#5)
* Use IdleHint to check if a session is locked over console-kit (rhbz#1412673)
* Fixes double free on errors over udscs by improving memory ownership
* Hide autostart file on Unity
* Improve command line messages for vdagentd
* Fix typo in --enable-static-uinput configure option
* Code repository moved to gitlab.freedesktop.org
News in spice-vdagent 0.17.0
============================
* Denies file-transfer in locked sessions
* systems under systemd (rhbz#1323623)
* systems under console-kit (rhbz#1323630)
* Denies file-transfer in login screen
* systems under systemd (rhbz#1328761)
* systems under console-kit (rhbz#1323640)
* Bump glib version to 2.28
* Set exit code to 1 instead of 0 when virtio device cannot be opened
* Fix double-free on uinput->screen_info (rhbz#1262635)
* Code improvement over unix domain client server support (udcs)
* Fix build compatiblity with different libsystemd versions (fdo#94209)
News in spice-vdagent 0.16.0
============================
* Add audio volume synchronization support
* Add support for maximum clipboard size
* Add support for more clipboard targets (STRING and TIMESTAMP)
* Improve handling of transfers of multiple files
* Fix transfer of >2GB files on 32 bit systems
* XSpice improvements
* Various bug fixes related to resolution changes
News in spice-vdagent 0.15.0
============================
* Xspice support
* Release clipboard on client disconnect if owned by client (rhbz#1003977)
* Turn some error messages into debugging messages (rhbz#918310)
* Not having the virtio channel is not an error; instead silently do nothing
spice-vdagent-0.14.0
--------------------
News in spice-vdagent 0.14.0
============================
* More multi-monitor and arbritary resolution support bugfixes
* Add support for file transfers from client to guest
* Add support for setups with multiple Screens (multiple qxl devices each
mapped to their own screen), limitations:
-Max one monitor per Screen / qxl device
-All monitors / Screens must have the same resolution
-No client -> guest resolution syncing
* Max one monitor per Screen / qxl device
* All monitors / Screens must have the same resolution
* No client -> guest resolution syncing
* Add spice-vdagent -X cmdline option, which runtime disables console-kit /
systemd-logind integration for setups where these are not used
* Add manpages for spice-vdagent and spice-vdagentd
spice-vdagent-0.12.1
--------------------
News in spice-vdagent 0.12.1
============================
* Various bugfixes for multi-monitor and arbritary resolution support
* Requires libXrandr >= 1.3, Note 0.12.0 also required this, but did not
check for it. For older distributions use 0.10.1
spice-vdagent-0.12.0
--------------------
News in spice-vdagent 0.12.0
============================
* Full multi-monitor and arbritary resolution support, this requires a new
enough xorg-x11-drv-qxl driver, as well as a new enough host
* systemd service support, using systemd hardware acivation
* Use syslog for logging, rather then logging to private log files
spice-vdagent-0.10.1
--------------------
News in spice-vdagent 0.10.1
============================
* Fix a race condition when opening the vdagent virtio serial port, which
caused it to get opened / closed in rapid succession a number of times
on vm boot
spice-vdagent-0.10.0
--------------------
News in spice-vdagent 0.10.0
============================
* Add limited support for multiple displays, see README
* Add support for RHEL-5 (and other distributions with a non hotplug
capable Xorg and/or no console-kit), see README.RHEL-5
* Add support for using libsystemd-logind as session information source
instead of console-kit
spice-vdagent-0.8.1
-------------------
News in spice-vdagent 0.8.1
===========================
* In daemon mode the session vdagent now retries connecting to the system
vdagentd every second, once a connection is made a version check is done,
if the version differs (which only happens on an upgrade from one version
to the next) the sesion vdagent re-execs itself (Marc-André Lureau)
spice-vdagent-0.8.0
-------------------
News in spice-vdagent 0.8.0
===========================
* Add support for copy and paste using the primary selection, to use this
you need a spice-gtk widget based client and the latest spice-gtk code
(Marc-André Lureau and Hans de Goede)
......@@ -62,8 +141,9 @@ spice-vdagent-0.8.0
as RHEL-5 (Christophe Fergeau)
* Various small bugfixes (Hans de Goede)
spice-vdagent-0.6.3
-------------------
News in spice-vdagent 0.6.3
===========================
* Initial release, starting with version nr 0.6.3, to indicate that it
more or less supports all parts of the cdagent protocol in spice-protocol
and spice 0.6.3
......@@ -3,6 +3,8 @@ NULL =
bin_PROGRAMS = src/spice-vdagent
sbin_PROGRAMS = src/spice-vdagentd
check_PROGRAMS = tests/test-file-xfers
TESTS = $(check_PROGRAMS)
common_sources = \
src/udscs.c \
......@@ -12,6 +14,7 @@ common_sources = \
$(NULL)
src_spice_vdagent_CFLAGS = \
$(DRM_CFLAGS) \
$(X_CFLAGS) \
$(SPICE_CFLAGS) \
$(GLIB2_CFLAGS) \
......@@ -22,6 +25,7 @@ src_spice_vdagent_CFLAGS = \
$(NULL)
src_spice_vdagent_LDADD = \
$(DRM_LIBS) \
$(X_LIBS) \
$(SPICE_LIBS) \
$(GLIB2_LIBS) \
......@@ -35,6 +39,8 @@ src_spice_vdagent_SOURCES = \
src/vdagent/audio.h \
src/vdagent/clipboard.c \
src/vdagent/clipboard.h \
src/vdagent/device-info.c \
src/vdagent/device-info.h \
src/vdagent/file-xfers.c \
src/vdagent/file-xfers.h \
src/vdagent/x11-priv.h \
......@@ -44,6 +50,26 @@ src_spice_vdagent_SOURCES = \
src/vdagent/vdagent.c \
$(NULL)
tests_test_file_xfers_CFLAGS = \
$(SPICE_CFLAGS) \
$(GLIB2_CFLAGS) \
-I$(srcdir)/src \
-I$(srcdir)/src/vdagent \
-DUDSCS_NO_SERVER \
$(NULL)
tests_test_file_xfers_LDADD = \
$(SPICE_LIBS) \
$(GLIB2_LIBS) \
$(NULL)
tests_test_file_xfers_SOURCES = \
$(common_sources) \
src/vdagent/file-xfers.c \
src/vdagent/file-xfers.h \
tests/test-file-xfers.c \
$(NULL)
src_spice_vdagentd_CFLAGS = \
$(DBUS_CFLAGS) \
$(LIBSYSTEMD_DAEMON_CFLAGS) \
......@@ -124,7 +150,8 @@ manpage_DATA = \
$(NULL)
EXTRA_DIST = \
NEWS \
README.md \
CHANGELOG.md \
data/70-spice-vdagentd.rules \
data/spice-vdagent.desktop \
data/spice-vdagentd \
......@@ -137,3 +164,8 @@ EXTRA_DIST = \
DISTCHECK_CONFIGURE_FLAGS = \
--with-init-script=redhat \
$(NULL)
tests_test_device_info_LDADD = $(src_spice_vdagent_LDADD)
tests_test_device_info_CFLAGS = $(src_spice_vdagent_CFLAGS)
check_PROGRAMS += tests/test-device-info
This source diff could not be displayed because it is too large. You can view the blob instead.
Overview of changes in SPICE vdagent 0.18.0
===========================================
- Add GTK+ framework to handle x11 backend such as clipboard
- Deprecate X11 backend in favor of GTK+ framework
- Ask pkg-config to appropriate directory to install udev rules
- Fix leak of udscs's file descriptor
- Better quote directory path when calling xdg-open to save file transfer
- Bump GLib to 2.34
- Add systemd socket activation (rhbz#1340160)
- Add support to detailed errors on file transfers
- Add check for available free space in guest before starting a file transfer
- Use better names for duplicated files on file transfer
- Improve support on big endian guests (#5)
- Use IdleHint to check if a session is locked over console-kit (rhbz#1412673)
- Fixes double free on errors over udscs by improving memory ownership
- Hide autostart file on Unity
- Improve command line messages for vdagentd
- Fix typo in --enable-static-uinput configure option
- Code repository moved to gitlab.freedesktop.org
Overview of changes in SPICE vdagent 0.17.0
===========================================
- Denies file-transfer in locked sessions
* systems under systemd (rhbz#1323623)
* systems under console-kit (rhbz#1323630)
- Denies file-transfer in login screen
* systems under systemd (rhbz#1328761)
* systems under console-kit (rhbz#1323640)
- Bump glib version to 2.28
- Set exit code to 1 instead of 0 when virtio device cannot be opened
- Fix double-free on uinput->screen_info (rhbz#1262635)
- Code improvement over unix domain client server support (udcs)
- Fix build compatiblity with different libsystemd versions (fdo#94209)
Overview of changes in SPICE vdagent 0.16.0
===========================================
- Add audio volume synchronization support
- Add support for maximum clipboard size
- Add support for more clipboard targets (STRING and TIMESTAMP)
- Improve handling of transfers of multiple files
- Fix transfer of >2GB files on 32 bit systems
- XSpice improvements
- Various bug fixes related to resolution changes
......@@ -23,47 +23,28 @@ Features:
* Support for transferring files from the client to the agent
* Full support for multiple displays using Xrandr, this requires a new
enough xorg-x11-drv-qxl driver, as well as a new enough host.
* Limited support for multiple displays using Xinerama, prerequisites:
* A new enough Xorg server: Fedora 17 or greater, for RHEL 6
xorg-x11-server-1.10.4-6.el6_2.3 or greater.
* A vm configured with multiple qxl devices
* A guest running the latest spice-vdagent
Then connect to the vm with the multiple monitor client which you want to
use it with using: "spicec --full-screen=auto-config" (or the user portal
equivalent). At this point the agent will write out a:
/var/run/spice-vdagentd/xorg.conf.spice file. With all the necessary magic
to get Xinerama working. Move this file to /etc/X11/xorg.conf, then kill
Xorg so that it will get restarted and you should be good to go.
* Limited support for multiple displays using Xinerama.
* Limited support for setups with multiple Screens (multiple qxl devices each
mapped to their own screen), limitations:
-Max one monitor per Screen / qxl device
-All monitors / Screens must have the same resolution
-No client -> guest resolution syncing
mapped to their own screen)
All vdagent communications on the guest side run over a single pipe which
gets presented to the guest os as a virtio serial port.
Under windows this virtio serial port has the following name:
\\\\.\\Global\\com.redhat.spice.0
>>>
\\\\.\\Global\\com.redhat.spice.0
>>>
Under Linux this virtio serial port has the following name:
/dev/virtio-ports/com.redhat.spice.0
>>>
/dev/virtio-ports/com.redhat.spice.0
>>>
To enable the virtio serial port you need to pass the following params on
the qemu cmdline:
For qemu < 0.14.0:
-device spicevmc
For qemu >= 0.14.0:
-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5 \
-chardev spicevmc,name=vdagent,id=vdagent \
-device \
virtserialport,nr=1,bus=virtio-serial0.0,chardev=vdagent,name=com.redhat.spice.0
Enjoy,
Gerd & Hans
--
Gerd Hoffmann <kraxel@redhat.com>
Hans de Goede <hdegoede@redhat.com>
>>>
-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5 \
-chardev spicevmc,name=vdagent,id=vdagent \
-device virtserialport,nr=1,bus=virtio-serial0.0,chardev=vdagent,name=com.redhat.spice.0
>>>
Maybe:
-Add support for selections with a target of STRING, which are
ISO Latin-1 strings, which we could support through iconv
This diff is collapsed.
#!/bin/sh
#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
scriptversion=2016-01-11.22; # UTC
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
......@@ -17,7 +17,7 @@ scriptversion=2016-01-11.22; # UTC
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
......@@ -340,7 +340,7 @@ exit $ret
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
......
This diff is collapsed.
AC_PREREQ(2.59)
AC_INIT([spice-vdagent], [0.18.0])
AC_INIT([spice-vdagent], [0.19.0])
AC_CONFIG_SRCDIR([configure.ac])
AM_CONFIG_HEADER([src/config.h])
......@@ -102,9 +102,10 @@ AC_ARG_ENABLE([static-uinput],
PKG_CHECK_MODULES([GLIB2], [glib-2.0 >= 2.34])
PKG_CHECK_MODULES(X, [xfixes xrandr >= 1.3 xinerama x11])
PKG_CHECK_MODULES(SPICE, [spice-protocol >= 0.12.13])
PKG_CHECK_MODULES(SPICE, [spice-protocol >= 0.14.0])
PKG_CHECK_MODULES(ALSA, [alsa >= 1.0.22])
PKG_CHECK_MODULES([DBUS], [dbus-1])
PKG_CHECK_MODULES([DRM], [libdrm])
if test "$with_session_info" = "auto" || test "$with_session_info" = "systemd"; then
PKG_CHECK_MODULES([LIBSYSTEMD_LOGIN],
......
......@@ -5,5 +5,5 @@ Exec=/usr/bin/spice-vdagent
Terminal=false
Type=Application
Categories=
X-GNOME-Autostart-Phase=Initialization
X-GNOME-Autostart-Phase=WindowManager
NoDisplay=true
......@@ -27,7 +27,7 @@
exec="/usr/sbin/spice-vdagentd"
prog="spice-vdagentd"
port="/dev/virtio-ports/com.redhat.spice.0"
pid="/var/run/spice-vdagentd/spice-vdagentd.pid"
pid="/run/spice-vdagentd/spice-vdagentd.pid"
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
......@@ -38,7 +38,7 @@ start() {
[ -c $port ] || exit 0
modprobe uinput > /dev/null 2>&1
# In case the previous running vdagentd crashed
rm -f /var/run/spice-vdagentd/spice-vdagent-sock
rm -f /run/spice-vdagentd/spice-vdagent-sock
echo -n $"Starting $prog: "
daemon --pidfile $pid $exec $SPICE_VDAGENTD_EXTRA_ARGS
retval=$?
......
......@@ -7,7 +7,7 @@ Requires=spice-vdagentd.socket
Type=forking
EnvironmentFile=-/etc/sysconfig/spice-vdagentd
ExecStart=/usr/sbin/spice-vdagentd $SPICE_VDAGENTD_EXTRA_ARGS
PIDFile=/var/run/spice-vdagentd/spice-vdagentd.pid
PIDFile=/run/spice-vdagentd/spice-vdagentd.pid
PrivateTmp=true
Restart=on-failure
......
[Unit]
Description=Activation socket for spice guest agent daemon
# only start the socket if the virtio port device exists
Requisite=dev-virtio\x2dports-com.redhat.spice.0.device
[Socket]
ListenStream=/var/run/spice-vdagentd/spice-vdagent-sock
[Install]
WantedBy=sockets.target
ListenStream=/run/spice-vdagentd/spice-vdagent-sock
# spice-vdagentd needs this and does not create it itself
d /var/run/spice-vdagentd 0755 root root -
d /run/spice-vdagentd 0755 root root -
#!/bin/sh
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2016-01-11.22; # UTC
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -16,7 +16,7 @@ scriptversion=2016-01-11.22; # UTC
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
......@@ -783,7 +783,7 @@ exit 0
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
......
#!/bin/sh
# install - install a program, script, or datafile
scriptversion=2016-01-11.22; # UTC
scriptversion=2018-03-11.20; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
......@@ -271,15 +271,18 @@ do
fi
dst=$dst_arg
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
# If destination is a directory, append the input filename.
if test -d "$dst"; then
if test "$is_target_a_directory" = never; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstbase=`basename "$src"`
case $dst in
*/) dst=$dst$dstbase;;
*) dst=$dst/$dstbase;;
esac
dstdir_status=0
else
dstdir=`dirname "$dst"`
......@@ -288,6 +291,11 @@ do
fi
fi
case $dstdir in
*/) dstdirslash=$dstdir;;
*) dstdirslash=$dstdir/;;
esac
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
......@@ -324,34 +332,43 @@ do
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
# Note that $RANDOM variable is not portable (e.g. dash); Use it
# here however when possible just to lower collision chance.
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
# Because "mkdir -p" follows existing symlinks and we likely work
# directly in world-writeable /tmp, make sure that the '$tmpdir'
# directory is successfully created first before we actually test
# 'mkdir -p' feature.
if (umask $mkdir_umask &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
$mkdirprog $mkdir_mode "$tmpdir" &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
ls_ld_tmpdir=`ls -ld "$tmpdir"`
test_tmpdir="$tmpdir/a"
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
$mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
rmdir "$tmpdir/d" "$tmpdir"
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
fi
trap '' 0;;
esac;;
......@@ -427,8 +444,8 @@ do
else
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
dsttmp=${dstdirslash}_inst.$$_
rmtmp=${dstdirslash}_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
......@@ -493,7 +510,7 @@ do
done
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
......
#!/bin/sh
#! /bin/sh
# Common wrapper for a few potentially missing GNU programs.
scriptversion=2016-01-11.22; # UTC
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
......@@ -17,7 +17,7 @@ scriptversion=2016-01-11.22; # UTC
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
......@@ -101,9 +101,9 @@ else
exit $st
fi
perl_URL=http://www.perl.org/
flex_URL=http://flex.sourceforge.net/
gnu_software_URL=http://www.gnu.org/software
perl_URL=https://www.perl.org/
flex_URL=https://github.com/westes/flex
gnu_software_URL=https://www.gnu.org/software
program_details ()
{
......@@ -207,7 +207,7 @@ give_advice "$1" | sed -e '1s/^/WARNING: /' \
exit $st
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
......
This diff is collapsed.
......@@ -61,15 +61,12 @@ typedef void (*udscs_disconnect_callback)(struct udscs_connection *conn);
* Only sockets bound to a pathname are supported.
*
* If debug is true then the events on this connection will be traced.
* This includes the incoming and outgoing message names. So when debug is true
* no_types must be set to the value of the highest valid message id + 1,
* and type_to_string must point to a string array of size no_types for
* converting the message ids to their names.
* This includes the incoming and outgoing message names.
*/
struct udscs_connection *udscs_connect(const char *socketname,
udscs_read_callback read_callback,
udscs_disconnect_callback disconnect_callback,
const char * const type_to_string[], int no_types, int debug);
int debug);
/* Close the connection, releases the corresponding resources and
* sets *connp to NULL.
......@@ -79,9 +76,8 @@ struct udscs_connection *udscs_connect(const char *socketname,
void udscs_destroy_connection(struct udscs_connection **connp);
/* Queue a message for delivery to the client connected through conn.
* Return value: 0 on success -1 on error (only happens when malloc fails).
*/
int udscs_write(struct udscs_connection *conn, uint32_t type, uint32_t arg1,
void udscs_write(struct udscs_connection *conn, uint32_t type, uint32_t arg1,
uint32_t arg2, const uint8_t *data, uint32_t size);
/* Associates the specified user data with the connection. */
......@@ -113,7 +109,7 @@ struct udscs_server *udscs_create_server_for_fd(int fd,
udscs_connect_callback connect_callback,
udscs_read_callback read_callback,
udscs_disconnect_callback disconnect_callback,
const char * const type_to_string[], int no_types, int debug);
int debug);
/* Create the unix domain socket specified by socketname and
* start listening on it.
......@@ -121,16 +117,13 @@ struct udscs_server *udscs_create_server_for_fd(int fd,
*
* If debug is true then the events on this socket and related individual
* connections will be traced.
* This includes the incoming and outgoing message names. So when debug is true
* no_types must be set to the value of the highest valid message id + 1,
* and type_to_string must point to a string array of size no_types for
* converting the message ids to their names.
* This includes the incoming and outgoing message names.
*/
struct udscs_server *udscs_create_server(const char *socketname,
udscs_connect_callback connect_callback,
udscs_read_callback read_callback,
udscs_disconnect_callback disconnect_callback,
const char * const type_to_string[], int no_types, int debug);
int debug);
/* Close all the server's connections and releases the corresponding
* resources.
......@@ -141,7 +134,7 @@ void udscs_destroy_server(struct udscs_server *server);
/* Like udscs_write, but then send the message to all clients connected to
* the server.
*/
int udscs_server_write_all(struct udscs_server *server,
void udscs_server_write_all(struct udscs_server *server,
uint32_t type, uint32_t arg1, uint32_t arg2,
const uint8_t *data, uint32_t size);
......@@ -171,8 +164,8 @@ int udscs_server_fill_fds(struct udscs_server *server, fd_set *readfds,
void udscs_server_handle_fds(struct udscs_server *server, fd_set *readfds,
fd_set *writefds);
/* Returns the peer's user credentials. */
struct ucred udscs_get_peer_cred(struct udscs_connection *conn);
/* Returns the peer's PID. */
int udscs_get_peer_pid(struct udscs_connection *conn);
#endif
......
......@@ -15,10 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <glib.h>
#include <syslog.h>
......
......@@ -15,10 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <config.h>
#ifdef WITH_GTK
# include <gtk/gtk.h>
......@@ -307,6 +304,7 @@ void vdagent_clipboard_grab(VDAgentClipboards *c, guint sel_id,
vdagent_x11_clipboard_grab(c->x11, sel_id, types, n_types);
#else
GtkTargetEntry targets[G_N_ELEMENTS(atom2agent)];
Selection *sel;
guint n_targets, i, t;
g_return_if_fail(sel_id < SELECTION_COUNT);
......@@ -325,7 +323,13 @@ void vdagent_clipboard_grab(VDAgentClipboards *c, guint sel_id,
return;
}
if (gtk_clipboard_set_with_data(c->selections[sel_id].clipboard,
sel = &c->selections[sel_id];
if (sel->last_targets_req) {
g_clear_pointer(&sel->last_targets_req, request_ref_cancel);
}
if (gtk_clipboard_set_with_data(sel->clipboard,
targets, n_targets,
clipboard_get_cb, clipboard_clear_cb, c))
clipboard_new_owner(c, sel_id, OWNER_CLIENT);
......