summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRomain Perier <mrpouet@gentoo.org>2009-11-04 21:43:38 +0000
committerRomain Perier <mrpouet@gentoo.org>2009-11-04 21:43:38 +0000
commit358193ee9d8dbd802486daf51de63c37f47ae266 (patch)
tree8eb3215cf3fe1b67f7e59743925eaef7dddb67d5 /gnome-base
parentVersion bump. Add missing gnome-doc-utils and libnotify dependency, bug #2918... (diff)
downloadgentoo-2-358193ee9d8dbd802486daf51de63c37f47ae266.tar.gz
gentoo-2-358193ee9d8dbd802486daf51de63c37f47ae266.tar.bz2
gentoo-2-358193ee9d8dbd802486daf51de63c37f47ae266.zip
Do not crash in gconf_entry_set_value() when entry is NULL
(Portage version: 2.2_rc48/cvs/Linux x86_64)
Diffstat (limited to 'gnome-base')
-rw-r--r--gnome-base/gconf/ChangeLog9
-rw-r--r--gnome-base/gconf/files/gconf-2.28.0-entry-set-value-sigsegv.patch18
-rw-r--r--gnome-base/gconf/gconf-2.28.0-r1.ebuild107
3 files changed, 133 insertions, 1 deletions
diff --git a/gnome-base/gconf/ChangeLog b/gnome-base/gconf/ChangeLog
index a18c027e82a7..46fae421e59e 100644
--- a/gnome-base/gconf/ChangeLog
+++ b/gnome-base/gconf/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for gnome-base/gconf
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-base/gconf/ChangeLog,v 1.215 2009/10/29 23:38:50 eva Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gconf/ChangeLog,v 1.216 2009/11/04 21:43:37 mrpouet Exp $
+
+*gconf-2.28.0-r1 (04 Nov 2009)
+
+ 04 Nov 2009; Romain Perier <mrpouet@gentoo.org>
+ +gconf-2.28.0-r1.ebuild,
+ +files/gconf-2.28.0-entry-set-value-sigsegv.patch:
+ Do not crash in gconf_entry_set_value() when entry is NULL.
*gconf-2.28.0 (29 Oct 2009)
diff --git a/gnome-base/gconf/files/gconf-2.28.0-entry-set-value-sigsegv.patch b/gnome-base/gconf/files/gconf-2.28.0-entry-set-value-sigsegv.patch
new file mode 100644
index 000000000000..680b1a159b4a
--- /dev/null
+++ b/gnome-base/gconf/files/gconf-2.28.0-entry-set-value-sigsegv.patch
@@ -0,0 +1,18 @@
+From: Romain Perier <mrpouet@gentoo.org>
+Date: Wed, 4 Nov 2009 11:58:25 +0100
+Subject: Do not segfault when entry is NULL
+
+---
+ gconf/gconf-value.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+--- a/gconf/gconf-value.c
++++ b/gconf/gconf-value.c
+@@ -1609,6 +1609,7 @@ void
+ gconf_entry_set_value (GConfEntry *entry,
+ const GConfValue *val)
+ {
++ g_return_if_fail (entry != NULL);
+ gconf_entry_set_value_nocopy (entry,
+ val ? gconf_value_copy (val) : NULL);
+ }
diff --git a/gnome-base/gconf/gconf-2.28.0-r1.ebuild b/gnome-base/gconf/gconf-2.28.0-r1.ebuild
new file mode 100644
index 000000000000..93d1f947f9ca
--- /dev/null
+++ b/gnome-base/gconf/gconf-2.28.0-r1.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gconf/gconf-2.28.0-r1.ebuild,v 1.1 2009/11/04 21:43:37 mrpouet Exp $
+
+EAPI="2"
+
+inherit eutils gnome2
+
+MY_PN=GConf
+MY_P=${MY_PN}-${PV}
+PVP=(${PV//[-\._]/ })
+
+DESCRIPTION="Gnome Configuration System and Daemon"
+HOMEPAGE="http://www.gnome.org/"
+SRC_URI="mirror://gnome/sources/${MY_PN}/${PVP[0]}.${PVP[1]}/${MY_P}.tar.bz2"
+
+LICENSE="LGPL-2"
+SLOT="2"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug doc ldap policykit"
+
+RDEPEND=">=dev-libs/glib-2.14
+ >=x11-libs/gtk+-2.8.16
+ >=dev-libs/dbus-glib-0.74
+ >=sys-apps/dbus-1
+ >=gnome-base/orbit-2.4
+ >=dev-libs/libxml2-2
+ ldap? ( net-nds/openldap )
+ policykit? ( sys-auth/polkit )"
+DEPEND="${RDEPEND}
+ >=dev-util/intltool-0.35
+ >=dev-util/pkgconfig-0.9
+ >=dev-util/gtk-doc-am-1.10
+ doc? ( >=dev-util/gtk-doc-1 )"
+
+DOCS="AUTHORS ChangeLog NEWS README TODO"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ G2CONF="${G2CONF}
+ --enable-gtk
+ --disable-static
+ $(use_with ldap openldap)
+ $(use_enable policykit defaults-service)"
+ kill_gconf
+
+ # Need host's IDL compiler for cross or native build, bug #262747
+ export EXTRA_EMAKE="${EXTRA_EMAKE} ORBIT_IDL=/usr/bin/orbit-idl-2"
+}
+
+src_prepare() {
+ gnome2_src_prepare
+
+ # Do not start gconfd when installing schemas, fix bug #238276, upstream ?
+ epatch "${FILESDIR}/${PN}-2.24.0-no-gconfd.patch"
+
+ # Do not crash in gconf_entry_set_value() when entry pointer is NULL
+ epatch "${FILESDIR}/${P}-entry-set-value-sigsegv.patch"
+
+ # Fix intltoolize broken file, see upstream #577133
+ sed "s:'\^\$\$lang\$\$':\^\$\$lang\$\$:g" -i po/Makefile.in.in || die "sed failed"
+}
+
+# Can't run tests, missing script.
+#src_test() {
+# emake -C tests || die "make tests failed"
+# sh "${S}"/tests/runtests.sh || die "running tests failed"
+#}
+
+src_install() {
+ gnome2_src_install
+
+ keepdir /etc/gconf/gconf.xml.mandatory
+ keepdir /etc/gconf/gconf.xml.defaults
+ # Make sure this directory exists, bug #268070, upstream #572027
+ keepdir /etc/gconf/gconf.xml.system
+
+ echo 'CONFIG_PROTECT_MASK="/etc/gconf"' > 50gconf
+ doenvd 50gconf || die "doenv failed"
+ dodir /root/.gconfd
+}
+
+pkg_preinst() {
+ kill_gconf
+}
+
+pkg_postinst() {
+ kill_gconf
+
+ # change the permissions to avoid some gconf bugs
+ einfo "changing permissions for gconf dirs"
+ find /etc/gconf/ -type d -exec chmod ugo+rx "{}" \;
+
+ einfo "changing permissions for gconf files"
+ find /etc/gconf/ -type f -exec chmod ugo+r "{}" \;
+}
+
+kill_gconf() {
+ # This function will kill all running gconfd-2 that could be causing troubles
+ if [ -x /usr/bin/gconftool-2 ]
+ then
+ /usr/bin/gconftool-2 --shutdown
+ fi
+
+ return 0
+}