commit:     b2d385b19200e3a77322e25d28ddd6dcb7d137fc
Author:     Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
AuthorDate: Sun Sep  3 14:08:26 2017 +0000
Commit:     Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
CommitDate: Sun Sep  3 16:15:32 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b2d385b1

x11-libs/gksu: fix build with format-security, bug #517664

Bump to EAPI=6. Fix non-existant gtk-doc support. Use src_configure instead of 
G2CONF.

Closes: https://bugs.gentoo.org/show_bug.cgi?id=517664

Package-Manager: Portage-2.3.8, Repoman-2.3.3

 .../gksu/files/gksu-2.0.2-format_security.patch    | 37 ++++++++++
 x11-libs/gksu/gksu-2.0.2-r2.ebuild                 | 85 ++++++++++++++++++++++
 2 files changed, 122 insertions(+)

diff --git a/x11-libs/gksu/files/gksu-2.0.2-format_security.patch 
b/x11-libs/gksu/files/gksu-2.0.2-format_security.patch
new file mode 100644
index 00000000000..ca87e9af995
--- /dev/null
+++ b/x11-libs/gksu/files/gksu-2.0.2-format_security.patch
@@ -0,0 +1,37 @@
+Description: Fix possible format string vulnerabilities
+Author: Michael Biebl <[email protected]>
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=643389
+Index: gksu-2.0.2/gksu/gksu.c
+===================================================================
+--- gksu-2.0.2.orig/gksu/gksu.c        2009-03-04 19:25:32.000000000 +0100
++++ gksu-2.0.2/gksu/gksu.c     2011-10-10 18:31:04.599677143 +0200
+@@ -146,9 +146,12 @@
+   msg = g_strdup_vprintf(format, ap);
+   va_end(ap);
+ 
+-  diag_win = gtk_message_dialog_new_with_markup (NULL, GTK_DIALOG_MODAL,
+-                                               type, GTK_BUTTONS_CLOSE,
+-                                               msg);
++  diag_win = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL,
++                                   type, GTK_BUTTONS_CLOSE,
++                                   NULL);
++
++  gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG(diag_win),
++                               msg);
+ 
+   gtk_signal_connect_object (GTK_OBJECT(diag_win), "delete_event",
+                            GTK_SIGNAL_FUNC(gtk_main_quit),
+@@ -176,12 +179,7 @@
+   g_key_file_load_from_file (desktop, file_name, G_KEY_FILE_NONE, &error);
+   if (error)
+     {
+-      gchar *error_msg;
+-
+-      error_msg = g_strdup_printf ("Could not load desktop file: %s",
+-                                 error->message);
+-      g_warning (error_msg);
+-      g_free (error_msg);
++      g_warning ("Could not load desktop file: %s", error->message);
+       g_error_free (error);
+       g_key_file_free (desktop);
+       return;

diff --git a/x11-libs/gksu/gksu-2.0.2-r2.ebuild 
b/x11-libs/gksu/gksu-2.0.2-r2.ebuild
new file mode 100644
index 00000000000..13bd353f972
--- /dev/null
+++ b/x11-libs/gksu/gksu-2.0.2-r2.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools gnome2 fixheadtails
+
+DESCRIPTION="A gtk+ frontend for libgksu"
+HOMEPAGE="http://www.nongnu.org/gksu/";
+SRC_URI="https://people.debian.org/~kov/gksu/${P}.tar.gz";
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="gnome"
+
+RDEPEND="
+       >=x11-libs/libgksu-2.0.8
+       >=x11-libs/gtk+-2.4:2
+       >=gnome-base/gconf-2
+       gnome? (
+               >=gnome-base/nautilus-2
+               x11-terms/gnome-terminal )
+"
+DEPEND="${RDEPEND}
+       dev-util/gtk-doc-am
+       dev-util/intltool
+       virtual/pkgconfig
+"
+
+src_prepare() {
+       ht_fix_file "${S}/gksu-migrate-conf.sh"
+
+       # https://savannah.nongnu.org/bugs/index.php?36127
+       eapply "${FILESDIR}"/${PN}-2.0.2-glib-2.31.patch
+
+       if use gnome ; then
+               sed 's/x-terminal-emulator/gnome-terminal/' \
+                       -i gksu.desktop || die "sed 1 failed"
+
+               # Conditional patch to avoid eautoreconf
+               # https://savannah.nongnu.org/bugs/index.php?36129
+               eapply "${FILESDIR}"/${PN}-2.0.2-nautilus-dir.patch
+
+               sed -e 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' \
+                       -i configure.ac || die #467024
+
+               eautoreconf
+       else
+               sed 's/dist_desktop_DATA = 
$(desktop_in_files:.desktop.in=.desktop)/dist_desktop_DATA =/' \
+                       -i Makefile.am Makefile.in || die "sed 2 failed"
+       fi
+
+       # Fix build with format-security, bug #517664
+       eapply "${FILESDIR}"/${PN}-2.0.2-format_security.patch
+
+       gnome2_src_prepare
+}
+
+src_configure() {
+       gnome2_src_configure \
+               --disable-static \
+               $(use_enable gnome nautilus-extension)
+}
+
+src_install() {
+       gnome2_src_install
+       chmod +x "${D}/usr/share/gksu/gksu-migrate-conf.sh"
+}
+
+pkg_postinst() {
+       gnome2_pkg_postinst
+       einfo 'updating configuration'
+       "${ROOT}"/usr/share/gksu/gksu-migrate-conf.sh
+       einfo ""
+       einfo "A note on gksudo:  It actually runs sudo to get it's work done"
+       einfo "However, by default, Gentoo's sudo wipes your environment."
+       einfo "This means that gksudo will fail to run any X-based programs."
+       einfo "You need to either add yourself to wheel and uncomment this line"
+       einfo "in your /etc/sudoers:"
+       einfo "Defaults:%wheel   !env_reset"
+       einfo "Or remove the env_reset line entirely.  This can cause security"
+       einfo "problems; if you don't trust your users, don't do this, use gksu"
+       einfo "instead."
+}

Reply via email to