summaryrefslogtreecommitdiff
path: root/net-misc/spice-gtk
diff options
context:
space:
mode:
Diffstat (limited to 'net-misc/spice-gtk')
-rw-r--r--net-misc/spice-gtk/Manifest4
-rw-r--r--net-misc/spice-gtk/files/spice-gtk-0.42-lld17-fix.patch167
-rw-r--r--net-misc/spice-gtk/spice-gtk-0.42-r4.ebuild160
-rw-r--r--net-misc/spice-gtk/spice-gtk-9999.ebuild2
4 files changed, 331 insertions, 2 deletions
diff --git a/net-misc/spice-gtk/Manifest b/net-misc/spice-gtk/Manifest
index f6fe08f2bdc5..ac9687b2296d 100644
--- a/net-misc/spice-gtk/Manifest
+++ b/net-misc/spice-gtk/Manifest
@@ -1,6 +1,8 @@
AUX README.gentoo 527 BLAKE2B 5f02dbe14485894513b67bfb8b6f6159321e081f82f24c76a4b05f1463f8a6e332fffb2510b791a04fb9ad99ce7caba761b313fe2252c8d44893faa6ccef0d29 SHA512 2f8a79f6eea330ac9a6927c6cce29f9232c3c0650436f3f4c459d324bd5054a4ad82786d926e5e4c7384e74cb84d1fbb387c25b0b4c27fdb9514d526cbe02f9b
AUX spice-gtk-0.42-libtool-export-symbols-fix.patch 2413 BLAKE2B afb7fb5763d28f9666e71ff55b3d66587922175bc518396a18cfe97544b3871185d51c170287508fc4a47e2ebc8ca0cf39ebdebb829b5213432eb15019a7e587 SHA512 df284e95f970149a75d87dbad6e06899e80f68721979f91b3246037b37e432e48beab832fe3d376814681f9e11611b9f4c3d3463f969f32c171879c2e6cd1c38
+AUX spice-gtk-0.42-lld17-fix.patch 5913 BLAKE2B 424f780a9e8386d9b7eacccc012e490cec4d62274d7d01269121f46c16eaa63a99280bd05adb36671151dc1ade3adffb44933546254812961e5633767662b613 SHA512 a6859c10cebd5be3e6661f5b2558e571f15d8d53fbb0bba3a40364632473043c6045e17f068d71135e4e61a9ea7d641f0aa0ca6eb6e0499f4aab168406e2b48e
DIST spice-gtk-0.42.tar.xz 812776 BLAKE2B 406a2218d4ec0765173c911d6305cb0e043cd575c53ba51cbd53d922835b9d395873143f2388a5a02ee60ce617e32a1cb6a95008b67deec787fcf67da0d49736 SHA512 fd567e35f6d4ebfe6ef004f358dca4c41254336f55f7dd26cf67b62b2acb4866907186bd0526b7cb52b0c24020cdc8809251127498a8d357555bb0c5d3b8f137
EBUILD spice-gtk-0.42-r3.ebuild 3991 BLAKE2B 7363ae47a07944a1f84f74f00ec0dd0375968e5c51747ec0d383f821390a3ec94b3dc3b93f782f9e348836d395954a573158885aa3d094f385ea70fb67b2392b SHA512 2744690287e81f8614fe88444e3d2a468197e6ec78a375b44de3881a2f40ccbb3fe82edff9658d6e2d393bf504317eedfe5709c17a5acfdcbad69cb91b3f345c
-EBUILD spice-gtk-9999.ebuild 3923 BLAKE2B d7ac20e48e55f4ba29037074a4e226b33597a50423b22d4c9e7ea437563eef2eeeaab8d843f229de844ea4734568ccdd827f7f3cf368d23ab4454259ce8f8da0 SHA512 bbc4ea378d3a483514bccf47d94cd1d8ee4a61735f4ff3301d8f606555a32365a84a18076837f54656300889fc558f5ca0542c218160e3d67e20e2b18d858c88
+EBUILD spice-gtk-0.42-r4.ebuild 4037 BLAKE2B 90374a9c5679beaabacef586d348db29618283c767abaa845c61f8ac7aac1f0f3b2e4419c7deddecd9e283748b1d9af43344155189b07cbd435a7cb6d9924d9c SHA512 386cbd38616d91107138c75e7ad7a079f43ecfc88ee90c956b4b74b9ec3118be0ac52591f847d0baf3718c962787309ee7881f51469fbff3aaa17697d307d2fc
+EBUILD spice-gtk-9999.ebuild 3923 BLAKE2B 52e108cbd8a0f818123beb244ab8df538d9173a479d1f4ba27069e5a1a135736ae38905231259f721892c6a2d2216bab5bda34d137f15db17fcdd6064cf471d3 SHA512 f4681c903728c00a5406e60f5a9df363adc637977148b3cb87562cd5bd1f2526b904f564cbae4173e30aadcfae9c22c7bd21652cb3467ea28752cca6a98d3a91
MISC metadata.xml 878 BLAKE2B ed1c920773825632995e541e6bc7ec0b894005edcff41c90c2af4a47279db54bcc695b22e91e7aa3c1376cee6ed509f985cb7486a2f7d75e8b6ebbb8c6caa67b SHA512 308ea78d044e3c13ed40154b4835f202dc523fc8925aa3ad0304ddb6518a9c51437ebccc539998b8d55d6919649358a073b5c80a2e8dd0d8e82bb4e0ab6c6d0a
diff --git a/net-misc/spice-gtk/files/spice-gtk-0.42-lld17-fix.patch b/net-misc/spice-gtk/files/spice-gtk-0.42-lld17-fix.patch
new file mode 100644
index 000000000000..b6197fb15ba3
--- /dev/null
+++ b/net-misc/spice-gtk/files/spice-gtk-0.42-lld17-fix.patch
@@ -0,0 +1,167 @@
+https://gitlab.freedesktop.org/spice/spice-gtk/-/merge_requests/121
+https://bugs.gentoo.org/915210
+
+From 7e87382b585a799ced543b0c3fd127b2a813285f Mon Sep 17 00:00:00 2001
+From: Frediano Ziglio <freddy77@gmail.com>
+Date: Fri, 23 Jun 2023 21:17:26 +0100
+Subject: [PATCH] Split symbol file in 2 files
+
+One file for spice-glib and another for spice-gtk.
+This avoid having duplicate exports in the future.
+spice_g_signal_connect_object, spice_util_get_debug,
+spice_util_get_version_string, spice_util_set_debug and
+spice_uuid_to_string are exported by both libraries to keep ABI
+compatibility.
+
+Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
+---
+ src/{map-file => map-file-glib} | 22 ---------------------
+ src/map-file-gtk | 35 +++++++++++++++++++++++++++++++++
+ src/meson.build | 17 ++++++++++------
+ 3 files changed, 46 insertions(+), 28 deletions(-)
+ rename src/{map-file => map-file-glib} (89%)
+ create mode 100644 src/map-file-gtk
+
+diff --git a/src/map-file b/src/map-file-glib
+similarity index 89%
+rename from src/map-file
+rename to src/map-file-glib
+index c0d8ca6e..ef0a31f3 100644
+--- a/src/map-file
++++ b/src/map-file-glib
+@@ -31,18 +31,8 @@ spice_display_channel_get_primary;
+ spice_display_channel_get_type;
+ spice_display_channel_gl_draw_done;
+ spice_display_get_gl_scanout;
+-spice_display_get_grab_keys;
+-spice_display_get_pixbuf;
+ spice_display_get_primary;
+-spice_display_get_type;
+ spice_display_gl_draw_done;
+-spice_display_key_event_get_type;
+-spice_display_keyboard_ungrab;
+-spice_display_mouse_ungrab;
+-spice_display_new;
+-spice_display_new_with_monitor;
+-spice_display_send_keys;
+-spice_display_set_grab_keys;
+ spice_file_transfer_task_cancel;
+ spice_file_transfer_task_get_filename;
+ spice_file_transfer_task_get_progress;
+@@ -52,17 +42,7 @@ spice_file_transfer_task_get_type;
+ spice_get_option_group;
+ spice_gl_scanout_free;
+ spice_gl_scanout_get_type;
+-spice_grab_sequence_as_string;
+-spice_grab_sequence_copy;
+-spice_grab_sequence_free;
+-spice_grab_sequence_get_type;
+-spice_grab_sequence_new;
+-spice_grab_sequence_new_from_string;
+ spice_g_signal_connect_object;
+-spice_gtk_session_copy_to_guest;
+-spice_gtk_session_get;
+-spice_gtk_session_get_type;
+-spice_gtk_session_paste_from_guest;
+ spice_inputs_button_press;
+ spice_inputs_button_release;
+ spice_inputs_channel_button_press;
+@@ -185,8 +165,6 @@ spice_usb_device_manager_is_redirecting;
+ spice_usb_device_manager_allocate_device_for_file_descriptor;
+ spice_usb_device_manager_create_shared_cd_device;
+ spice_usb_device_manager_is_device_shared_cd;
+-spice_usb_device_widget_get_type;
+-spice_usb_device_widget_new;
+ spice_usbredir_channel_get_type;
+ spice_util_get_debug;
+ spice_util_get_version_string;
+diff --git a/src/map-file-gtk b/src/map-file-gtk
+new file mode 100644
+index 00000000..ca5dd446
+--- /dev/null
++++ b/src/map-file-gtk
+@@ -0,0 +1,35 @@
++SPICEGTK_1 {
++global:
++spice_display_get_grab_keys;
++spice_display_get_pixbuf;
++spice_display_get_type;
++spice_display_key_event_get_type;
++spice_display_keyboard_ungrab;
++spice_display_mouse_ungrab;
++spice_display_new;
++spice_display_new_with_monitor;
++spice_display_send_keys;
++spice_display_set_grab_keys;
++spice_grab_sequence_as_string;
++spice_grab_sequence_copy;
++spice_grab_sequence_free;
++spice_grab_sequence_get_type;
++spice_grab_sequence_new;
++spice_grab_sequence_new_from_string;
++spice_gtk_session_copy_to_guest;
++spice_gtk_session_get;
++spice_gtk_session_get_type;
++spice_gtk_session_paste_from_guest;
++spice_usb_device_widget_get_type;
++spice_usb_device_widget_new;
++
++/* FIXME: remove the following 5 duplicated symbols in next ABI break */
++spice_g_signal_connect_object;
++spice_util_get_debug;
++spice_util_get_version_string;
++spice_util_set_debug;
++spice_uuid_to_string;
++
++local:
++*;
++};
+diff --git a/src/meson.build b/src/meson.build
+index 852217ac..68fe7ab2 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -185,14 +185,20 @@ test_syms_path = meson.current_source_dir() / 'test-map-file'
+ test_version_script = '-Wl,--version-script=@0@'.format(test_syms_path)
+ spice_has_version_script = compiler.has_link_argument(test_version_script)
+
+-spice_client_glib_syms = files('map-file')
+-spice_client_glib_syms_path = meson.current_source_dir() / 'map-file'
+-spice_gtk_version_script = '-Wl,--version-script=@0@'.format(spice_client_glib_syms_path)
+-if not spice_has_version_script
++if spice_has_version_script
++ spice_client_glib_syms = files('map-file-glib')
++ spice_client_gtk_syms = files('map-file-gtk')
++ spice_client_glib_syms_path = meson.current_source_dir() / 'map-file-glib'
++ spice_client_gtk_syms_path = meson.current_source_dir() / 'map-file-gtk'
++ spice_glib_version_script = '-Wl,--version-script=@0@'.format(spice_client_glib_syms_path)
++ spice_gtk_version_script = '-Wl,--version-script=@0@'.format(spice_client_gtk_syms_path)
++else
+ if host_machine.system() == 'linux'
+ error('Version scripts should be supported on Linux')
+ endif
+ spice_client_glib_syms = []
++ spice_client_gtk_syms = []
++ spice_glib_version_script = []
+ spice_gtk_version_script = []
+ endif
+
+@@ -210,7 +216,7 @@ spice_client_glib_lib = library('spice-client-glib-2.0', spice_client_glib_sourc
+ version : spice_client_glib_so_version,
+ install : true,
+ include_directories : spice_gtk_include,
+- link_args : [spice_gtk_version_script],
++ link_args : [spice_glib_version_script],
+ link_depends : spice_client_glib_syms,
+ dependencies : spice_glib_deps)
+
+@@ -377,7 +383,6 @@ if spice_gtk_has_gtk
+ #
+ # libspice-client-gtk.so
+ #
+- spice_client_gtk_syms = spice_client_glib_syms
+
+ # soversion
+ # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
+--
+GitLab
+
diff --git a/net-misc/spice-gtk/spice-gtk-0.42-r4.ebuild b/net-misc/spice-gtk/spice-gtk-0.42-r4.ebuild
new file mode 100644
index 000000000000..677217bfee91
--- /dev/null
+++ b/net-misc/spice-gtk/spice-gtk-0.42-r4.ebuild
@@ -0,0 +1,160 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VALA_USE_DEPEND="vapigen"
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit desktop meson optfeature python-any-r1 readme.gentoo-r1 vala xdg
+
+DESCRIPTION="Set of GObject and Gtk objects for connecting to Spice servers and a client GUI"
+HOMEPAGE="https://www.spice-space.org https://cgit.freedesktop.org/spice/spice-gtk/"
+if [[ ${PV} == *9999* ]] ; then
+ EGIT_REPO_URI="https://anongit.freedesktop.org/git/spice/spice-gtk.git"
+ inherit git-r3
+
+ SPICE_PROTOCOL_VER=9999
+else
+ SRC_URI="https://www.spice-space.org/download/gtk/${P}.tar.xz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+ SPICE_PROTOCOL_VER=0.14.3
+fi
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+IUSE="gtk-doc +gtk3 +introspection lz4 mjpeg policykit sasl smartcard usbredir vala valgrind wayland webdav"
+
+# TODO:
+# * check if sys-freebsd/freebsd-lib (from virtual/acl) provides acl/libacl.h
+# * use external pnp.ids as soon as that means not pulling in gnome-desktop
+RDEPEND="
+ >=dev-libs/glib-2.46:2
+ dev-libs/json-glib:0=
+ media-libs/gst-plugins-base:1.0
+ media-libs/gst-plugins-good:1.0
+ media-libs/gstreamer:1.0[introspection?]
+ media-libs/opus
+ media-libs/libjpeg-turbo:=
+ sys-libs/zlib
+ >=x11-libs/cairo-1.2
+ >=x11-libs/pixman-0.17.7
+ x11-libs/libX11
+ gtk3? ( x11-libs/gtk+:3[introspection?] )
+ introspection? ( dev-libs/gobject-introspection )
+ dev-libs/openssl:=
+ lz4? ( app-arch/lz4 )
+ policykit? (
+ >=sys-auth/polkit-0.110-r1
+ )
+ sasl? ( dev-libs/cyrus-sasl )
+ smartcard? ( app-emulation/qemu[smartcard] )
+ usbredir? (
+ sys-apps/hwdata
+ >=sys-apps/usbredir-0.4.2
+ virtual/acl
+ virtual/libusb:1
+ )
+ webdav? (
+ net-libs/phodav:3.0
+ net-libs/libsoup:3.0
+ )
+"
+# TODO: spice-gtk has an automagic dependency on media-libs/libva without a
+# configure knob. The package is relatively lightweight so we just depend
+# on it unconditionally for now. It would be cleaner to transform this into
+# a USE="vaapi" conditional and patch the buildsystem...
+RDEPEND="
+ ${RDEPEND}
+ amd64? ( media-libs/libva:= )
+ arm64? ( media-libs/libva:= )
+ x86? ( media-libs/libva:= )
+"
+DEPEND="
+ ${RDEPEND}
+ >=app-emulation/spice-protocol-${SPICE_PROTOCOL_VER}
+ valgrind? ( dev-debug/valgrind )
+"
+BDEPEND="
+ $(python_gen_any_dep '
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ ')
+ dev-perl/Text-CSV
+ dev-util/glib-utils
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+ gtk-doc? ( dev-util/gtk-doc )
+ vala? ( $(vala_depend) )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.42-libtool-export-symbols-fix.patch"
+ "${FILESDIR}/${PN}-0.42-lld17-fix.patch"
+)
+
+python_check_deps() {
+ python_has_version "dev-python/six[${PYTHON_USEDEP}]" &&
+ python_has_version "dev-python/pyparsing[${PYTHON_USEDEP}]"
+}
+
+src_prepare() {
+ default
+
+ python_fix_shebang subprojects/keycodemapdb/tools/keymap-gen
+
+ use vala && vala_setup
+}
+
+src_configure() {
+ local emesonargs=(
+ $(meson_feature gtk-doc gtk_doc)
+ $(meson_feature gtk3 gtk)
+ $(meson_feature introspection)
+ $(meson_use mjpeg builtin-mjpeg)
+ $(meson_feature policykit polkit)
+ $(meson_feature lz4)
+ $(meson_feature sasl)
+ $(meson_feature smartcard)
+ $(meson_feature usbredir)
+ $(meson_feature vala vapi)
+ $(meson_use valgrind)
+ $(meson_feature webdav)
+ $(meson_feature wayland wayland-protocols)
+ )
+
+ if use elibc_musl; then
+ emesonargs+=(
+ -Dcoroutine=gthread
+ )
+ fi
+
+ if use usbredir; then
+ emesonargs+=(
+ -Dusb-acl-helper-dir=/usr/libexec
+ -Dusb-ids-path="${EPREFIX}"/usr/share/hwdata/usb.ids
+ )
+ fi
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+
+ if use usbredir && use policykit; then
+ # bug #775554 (and bug #851657)
+ fowners root:root /usr/libexec/spice-client-glib-usb-acl-helper
+ fperms 4755 /usr/libexec/spice-client-glib-usb-acl-helper
+ fi
+
+ make_desktop_entry spicy Spicy "utilities-terminal" "Network;RemoteAccess;"
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ optfeature "Sound support (via pulseaudio)" media-plugins/gst-plugins-pulse
+}
diff --git a/net-misc/spice-gtk/spice-gtk-9999.ebuild b/net-misc/spice-gtk/spice-gtk-9999.ebuild
index 37eef00f49c0..5f81513a6c11 100644
--- a/net-misc/spice-gtk/spice-gtk-9999.ebuild
+++ b/net-misc/spice-gtk/spice-gtk-9999.ebuild
@@ -4,7 +4,7 @@
EAPI=8
VALA_USE_DEPEND="vapigen"
-PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_COMPAT=( python3_{10..12} )
inherit desktop meson optfeature python-any-r1 readme.gentoo-r1 vala xdg