commit:     aa25ea81d6c4450e4625fd47fe908fc94052ff14
Author:     Violet Purcell <vimproved <AT> inventati <DOT> org>
AuthorDate: Mon Jun 26 23:42:22 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Jun 27 01:44:41 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aa25ea81

net-misc/spice-gtk: Backport fix for erroneous libtool arguments

Closes: https://bugs.gentoo.org/902853
Closes: https://bugs.gentoo.org/888705
Signed-off-by: Violet Purcell <vimproved <AT> inventati.org>
Closes: https://github.com/gentoo/gentoo/pull/31636
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...spice-gtk-0.42-libtool-export-symbols-fix.patch | 66 ++++++++++++++++++++++
 ...gtk-0.42-r2.ebuild => spice-gtk-0.42-r3.ebuild} |  4 ++
 2 files changed, 70 insertions(+)

diff --git 
a/net-misc/spice-gtk/files/spice-gtk-0.42-libtool-export-symbols-fix.patch 
b/net-misc/spice-gtk/files/spice-gtk-0.42-libtool-export-symbols-fix.patch
new file mode 100644
index 000000000000..1af5ba26790f
--- /dev/null
+++ b/net-misc/spice-gtk/files/spice-gtk-0.42-libtool-export-symbols-fix.patch
@@ -0,0 +1,66 @@
+Bug: https://bugs.gentoo.org/902853
+Bug: https://bugs.gentoo.org/888705
+Upstream: https://gitlab.freedesktop.org/spice/spice-gtk/-/merge_requests/119
+Upstream Bug: https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/169
+
+From 1511f0ad5ea67b4657540c631e3a8c959bb8d578 Mon Sep 17 00:00:00 2001
+From: Frediano Ziglio <[email protected]>
+Date: Wed, 21 Jun 2023 18:43:59 +0100
+Subject: [PATCH] Do not use libtool -export-symbols option
+
+This option is intended for libtool, not for any linker.
+Check the support of --version-script option using an empty
+list of symbols to catch some faulty linker supporting that
+option but not allowing not existing symbols (some buggy mold
+versions).
+
+Signed-off-by: Frediano Ziglio <[email protected]>
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -181,14 +181,19 @@ endif
+ #
+ 
+ # version-script
++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)
+-spice_gtk_has_version_script = 
compiler.has_link_argument(spice_gtk_version_script)
+-if not spice_gtk_has_version_script
+-  spice_client_glib_syms = files('spice-glib-sym-file')
+-  spice_client_glib_syms_path = meson.current_source_dir() / 
'spice-glib-sym-file'
+-  spice_gtk_version_script = ['-export-symbols', spice_client_glib_syms_path]
++if not spice_has_version_script
++  if host_machine.system() == 'linux'
++    error('Version scripts should be supported on Linux')
++  endif
++  spice_client_glib_syms = []
++  spice_gtk_version_script = []
+ endif
+ 
+ # soversion
+@@ -373,11 +378,6 @@ if spice_gtk_has_gtk
+   # libspice-client-gtk.so
+   #
+   spice_client_gtk_syms = spice_client_glib_syms
+-  if not spice_gtk_has_version_script
+-    spice_client_gtk_syms = files('spice-gtk-sym-file')
+-    spice_client_gtk_syms_path = meson.current_source_dir() / 
'spice-gtk-sym-file'
+-    spice_gtk_version_script = ['-export-symbols', spice_client_gtk_syms_path]
+-  endif
+ 
+   # soversion
+   # 
http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
+--- /dev/null
++++ b/src/test-map-file
+@@ -0,0 +1,4 @@
++TEST_LIB {
++local:
++*;
++};
+-- 
+GitLab
+

diff --git a/net-misc/spice-gtk/spice-gtk-0.42-r2.ebuild 
b/net-misc/spice-gtk/spice-gtk-0.42-r3.ebuild
similarity index 98%
rename from net-misc/spice-gtk/spice-gtk-0.42-r2.ebuild
rename to net-misc/spice-gtk/spice-gtk-0.42-r3.ebuild
index fe18fb9f4736..83318d830e49 100644
--- a/net-misc/spice-gtk/spice-gtk-0.42-r2.ebuild
+++ b/net-misc/spice-gtk/spice-gtk-0.42-r3.ebuild
@@ -89,6 +89,10 @@ BDEPEND="
        vala? ( $(vala_depend) )
 "
 
+PATCHES=(
+       "${FILESDIR}/${PN}-0.42-libtool-export-symbols-fix.patch"
+)
+
 python_check_deps() {
        python_has_version "dev-python/six[${PYTHON_USEDEP}]" &&
        python_has_version "dev-python/pyparsing[${PYTHON_USEDEP}]"

Reply via email to