commit:     53225c643c193984d24283eb9050fe176cd2f101
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  1 05:03:22 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Mar  1 05:11:15 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=53225c64

app-crypt/seahorse: fix musl build

New revision given it affects Vala-generated code and I'd rather
be conservative.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../seahorse/files/seahorse-43.0-musl-stdout.patch | 85 ++++++++++++++++++++++
 app-crypt/seahorse/seahorse-43.0-r1.ebuild         | 83 +++++++++++++++++++++
 2 files changed, 168 insertions(+)

diff --git a/app-crypt/seahorse/files/seahorse-43.0-musl-stdout.patch 
b/app-crypt/seahorse/files/seahorse-43.0-musl-stdout.patch
new file mode 100644
index 000000000000..2a6873134e27
--- /dev/null
+++ b/app-crypt/seahorse/files/seahorse-43.0-musl-stdout.patch
@@ -0,0 +1,85 @@
+https://gitlab.gnome.org/GNOME/seahorse/-/commit/6d673637d90066f4756568ce1b2f1f3c89a37c74
+
+From 6d673637d90066f4756568ce1b2f1f3c89a37c74 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Pablo=20Correa=20G=C3=B3mez?= <ablocor...@hotmail.com>
+Date: Thu, 20 Oct 2022 18:35:33 +0200
+Subject: [PATCH] ssh: avoid stdout and stderr variable names
+
+In Alpine Linux, the compiler:
+
+C compiler for the host machine: gcc (gcc 12.2.1 "gcc (Alpine 
12.2.1_git20220924-r3) 12.2.1 20220924")
+C linker for the host machine: gcc ld.bfd 2.39
+Vala compiler for the host machine: valac (valac 0.56.3)
+
+ended up including stdio.h into the C code generated from Vala.
+This produced the following (and similar) errors due to
+stderr and stdout being #define in stdio.h:
+
+ninja: job failed: gcc -Issh/libseahorse-ssh.a.p -Issh -I../ssh -Icommon 
-I../common -I. -I.. -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include 
-I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gio-unix-2.0 
-I/usr/include/gcr-3 -I/usr/include/gck-1 -I/usr/include/p11-kit-1 
-I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz 
-I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/fribidi 
-I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 
-I/usr/include/libdrm -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 
-I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include 
-I/usr/include/libhandy-1 -flto=auto -fdiagnostics-color=always 
-D_FILE_OFFSET_BITS=64 -w -O0 -DGCR_API_SUBJECT_TO_CHANGE 
-DGCK_API_SUBJECT_TO_CHANGE -DSECRET_WITH_UNSTABLE -include config.h 
-Wno-unused-parameter -Wno-missing-field-initializers -Os -fomit-frame-pointer 
-Os -fomit-frame-pointer -fPIC -pthread -MD -MQ ssh/libseahorse-ssh.
 a.p/meson-generated_operation.c.o -MF 
ssh/libseahorse-ssh.a.p/meson-generated_operation.c.o.d -o 
ssh/libseahorse-ssh.a.p/meson-generated_operation.c.o -c 
ssh/libseahorse-ssh.a.p/operation.c
+In file included from /usr/include/fortify/stdio.h:22,
+                 from /usr/include/pango-1.0/pango/pango-utils.h:25,
+                 from /usr/include/pango-1.0/pango/pango.h:51,
+                 from /usr/include/gtk-3.0/gdk/gdktypes.h:35,
+                 from /usr/include/gtk-3.0/gdk/gdkapplaunchcontext.h:30,
+                 from /usr/include/gtk-3.0/gdk/gdk.h:32,
+                 from /usr/include/gtk-3.0/gtk/gtk.h:30,
+                 from common/seahorse-common.h:11,
+                 from ssh/seahorse-ssh.h:6,
+                 from ssh/libseahorse-ssh.a.p/operation.c:25:
+ssh/libseahorse-ssh.a.p/operation.c: In function 
'seahorse_ssh_operation_operation_async_co':
+ssh/libseahorse-ssh.a.p/operation.c:621:17: error: expected identifier before 
'(' token
+  621 |         _data_->stdout = NULL;
+      |                 ^~~~~~
+ssh/libseahorse-ssh.a.p/operation.c:622:17: error: expected identifier before 
'(' token
+  622 |         _data_->stderr = NULL;
+      |                 ^~~~~~
+
+Fix the problem by naming the variables std_out and std_err, as it
+was before commit e60e5fd4b1545053e99758b894e8ef981de08c3e
+
+Fixes e60e5fd4b1545053e99758b894e8ef981de08c3e
+
+Coauthored-by: psykose <al...@ayaya.dev>
+--- a/ssh/operation.vala
++++ b/ssh/operation.vala
+@@ -84,12 +84,12 @@ public abstract class Operation : GLib.Object {
+ 
+         // And off we go to run the program
+         var subprocess = launcher.spawnv(args);
+-        string? stdout = null, stderr = null;
++        string? std_out = null, std_err = null;
+         try {
+-            yield subprocess.communicate_utf8_async(input, cancellable, out 
stdout, out stderr);
+-            return stdout;
++            yield subprocess.communicate_utf8_async(input, cancellable, out 
std_out, out std_err);
++            return std_out;
+         } catch (GLib.Error e) {
+-            Seahorse.Util.show_error(null, this.prompt_title, stderr);
++            Seahorse.Util.show_error(null, this.prompt_title, std_err);
+             throw e;
+         }
+     }
+@@ -221,10 +221,10 @@ public class PrivateImportOperation : Operation {
+ 
+         // Start command to generate public key
+         string cmd = "%s -y -f '%s'".printf(Config.SSH_KEYGEN_PATH, file);
+-        string stdout = yield operation_async(cmd, null, cancellable);
++        string std_out = yield operation_async(cmd, null, cancellable);
+ 
+         // We'll build the key string from the output
+-        var key_str = new StringBuilder(stdout);
++        var key_str = new StringBuilder(std_out);
+ 
+         // Only use the first line of the output
+         int pos = int.max(key_str.str.index_of_char('\n'), 
key_str.str.index_of_char('\r'));
+@@ -232,7 +232,7 @@ public class PrivateImportOperation : Operation {
+             key_str.erase(pos);
+ 
+         // Parse the data so we can get the fingerprint
+-        KeyData? keydata = KeyData.parse_line(stdout);
++        KeyData? keydata = KeyData.parse_line(std_out);
+ 
+         // Add the comment to the output
+         if (data.comment != null) {
+-- 
+GitLab

diff --git a/app-crypt/seahorse/seahorse-43.0-r1.ebuild 
b/app-crypt/seahorse/seahorse-43.0-r1.ebuild
new file mode 100644
index 000000000000..5ddc7732673b
--- /dev/null
+++ b/app-crypt/seahorse/seahorse-43.0-r1.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{9..11} )
+inherit gnome.org gnome2-utils meson python-any-r1 vala xdg
+
+DESCRIPTION="Manage your passwords and encryption keys"
+HOMEPAGE="https://wiki.gnome.org/Apps/Seahorse";
+
+LICENSE="GPL-2+ FDL-1.1+"
+SLOT="0"
+IUSE="ldap zeroconf"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+       >=dev-libs/glib-2.66:2
+       >=app-crypt/gcr-3.38:0=
+       >=app-crypt/gpgme-1.14.0:=
+       >=x11-libs/gtk+-3.24.0:3
+       >=app-crypt/gnupg-2.2
+       >=gui-libs/libhandy-1.6.0:1
+       >=app-crypt/libsecret-0.16
+       dev-libs/libpwquality
+       net-misc/openssh
+       ldap? ( net-nds/openldap:= )
+       net-libs/libsoup:3.0
+       zeroconf? ( >=net-dns/avahi-0.6[dbus] )
+"
+DEPEND="${RDEPEND}
+       $(vala_depend)
+       dev-libs/libxml2:2
+       app-crypt/gcr:0[vala]
+       app-crypt/libsecret[vala]
+       gui-libs/libhandy:1[vala]
+"
+BDEPEND="
+       ${PYTHON_DEPS}
+       app-text/docbook-xml-dtd:4.2
+       app-text/docbook-xsl-stylesheets
+       dev-libs/appstream-glib
+       dev-libs/libxslt
+       dev-util/gdbus-codegen
+       dev-util/glib-utils
+       dev-util/itstool
+       >=sys-devel/gettext-0.19.8
+       virtual/pkgconfig
+"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-gnupg-2.4.patch
+)
+
+src_prepare() {
+       default
+       vala_setup
+       gnome2_environment_reset
+}
+
+src_configure() {
+       local emesonargs=(
+               -Dhelp=true
+               -Dpgp-support=true
+               -Dcheck-compatible-gpg=false # keep lowest version listed as 
compatible as min dep for gnupg RDEPEND
+               -Dpkcs11-support=true
+               -Dkeyservers-support=true
+               -Dhkp-support=true
+               $(meson_use ldap ldap-support)
+               $(meson_use zeroconf key-sharing)
+               -Dmanpage=true
+       )
+       meson_src_configure
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+       gnome2_schemas_update
+}
+
+pkg_postrm() {
+       xdg_pkg_postrm
+       gnome2_schemas_update
+}

Reply via email to