From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- gnome-base/gconf/Manifest | 10 ++ .../gconf/files/gconf-2.24.0-no-gconfd.patch | 19 +++ .../gconf-2.28.0-entry-set-value-sigsegv.patch | 18 +++ .../gconf-3.2.6-gsettings-data-convert-paths.patch | 41 ++++++ .../gconf/files/gconf-3.2.6-mconvert-crasher.patch | 45 +++++++ .../files/gconf-3.2.6-spew-console-error.patch | 83 ++++++++++++ gnome-base/gconf/gconf-3.2.6-r4.ebuild | 145 +++++++++++++++++++++ gnome-base/gconf/metadata.xml | 13 ++ 8 files changed, 374 insertions(+) create mode 100644 gnome-base/gconf/Manifest create mode 100644 gnome-base/gconf/files/gconf-2.24.0-no-gconfd.patch create mode 100644 gnome-base/gconf/files/gconf-2.28.0-entry-set-value-sigsegv.patch create mode 100644 gnome-base/gconf/files/gconf-3.2.6-gsettings-data-convert-paths.patch create mode 100644 gnome-base/gconf/files/gconf-3.2.6-mconvert-crasher.patch create mode 100644 gnome-base/gconf/files/gconf-3.2.6-spew-console-error.patch create mode 100644 gnome-base/gconf/gconf-3.2.6-r4.ebuild create mode 100644 gnome-base/gconf/metadata.xml (limited to 'gnome-base/gconf') diff --git a/gnome-base/gconf/Manifest b/gnome-base/gconf/Manifest new file mode 100644 index 000000000000..c6823b71dc40 --- /dev/null +++ b/gnome-base/gconf/Manifest @@ -0,0 +1,10 @@ +AUX gconf-2.24.0-no-gconfd.patch 787 SHA256 f8352648276d2a2dab162ddade55ec0371e7c4f8bc3834de246fda8c32c66d3c SHA512 c7f7437321d2afcbe75a8b8d819f04e5864cde3b2130f6dcff78c622b9bd336c66a30d666e0a4283d2fcf5c54afc741cc84f90401889127b03ef22b0752fb7b8 WHIRLPOOL 86c118fb0b571b5c47849fd4f7f09ade4ebf76324771fe9cccc64d95462cf3ab1a32de9a312412f843129025c41253d658a6546d7c3d9496451b9aacdf3b9451 +AUX gconf-2.28.0-entry-set-value-sigsegv.patch 533 SHA256 e58c0981491e794de05dd71562e0a9675433469e87c7149088ebea432c9619b0 SHA512 c0576004aa8c8b64750037183a5d3df5b4d8ba520c83f33a906a8549139e2167d08c1bcc56cbdfe202bb078a703bd561680af63588f7ee4eb42ad6077182a3fa WHIRLPOOL eddf3b88ddbec7e29f2a58e6ccf26859e0846ec9b01e821f28dc584a9ad297805f5313e29dca5e5d576cca704e1ddb458fd322a3380ed65ddd4bb7d6924d862c +AUX gconf-3.2.6-gsettings-data-convert-paths.patch 1370 SHA256 836d5259ae84832004447defc2f0cea15ca1d8fffec6b8bf5d7eabb4d090070d SHA512 f4d7cc2261f82f7a28e574ec3b732a56bb3f067048312e318f8d23df93046489fdd5ad39d669cf0d9ada6cc07617524511c537a4f2fd0a37cd03788e84b9803b WHIRLPOOL 7e0f0d27fc05dcca803600b05ddddd3a7d02d4e984042aaa3be06a86943910dcb734c1a577a24db6f27c9b021a08ca866f6ab357162518398998f8d66ba79e91 +AUX gconf-3.2.6-mconvert-crasher.patch 1514 SHA256 22ada6a8e7c26b1c89df8c79a9a46fd3a43b35b9e96657e328ccd6f376f7034e SHA512 8b6885098b63077610b929c3b958efc04599a1f891a0d7b5f042f2638dbae7b3c67b97e7f4e34c439e55ff8c5df3bcc7c6edc56f11cd6506a4b28c2338c8511b WHIRLPOOL 483cd709829cee9396486f521f07aa978b2fed04d942230bd28f9bc1e040ac668d0bc3c2755c2778356bf754700c7b09e5c15b098a4a23f146d337f5d5ffd99e +AUX gconf-3.2.6-spew-console-error.patch 2594 SHA256 3638009b19744bd301364e110da70f8013fa41a68e4367f7eefae4b8fd7a05c7 SHA512 abdddbcab24d80870691a45cdf8d4baa7021f363efa26ba140221afef0bd96756b7234fb1d61ea46c4d137854f59d2589f2e1f1d125fdcb1fad3acf9215a8602 WHIRLPOOL 27a02c790d3b59b7c2c717310270f3665bffb1e13d2786f98880e9bf38ab57f694e8ee384c00926ad1a67f62dff2ae20ea3392c176fb91ccedbbff8f1f52d141 +DIST GConf-3.2.6.tar.xz 1559904 SHA256 1912b91803ab09a5eed34d364bf09fe3a2a9c96751fde03a4e0cfa51a04d784c SHA512 35f5f659f9d03f7531a7102adacbda0eb310d8a55a831c768c91a82e07dae21247726e00e0e411f63b1de9ade0f042ded572a3ea4a4b2ad3135231f344540b58 WHIRLPOOL ef38b5fb25b3cf915052ce00f926a0a9bf8ecb5771c2db0fd6f5f11531a8edb1c098a036eaaa20490e3de87a0a5eb411542f86d8c6a2be8ac45dcae0b29d3414 +EBUILD gconf-3.2.6-r4.ebuild 3811 SHA256 eadc8d3d6d6ec9d9d36954b5d75a7d88e9a449ec827f71483514a770ad1fdb31 SHA512 216ed8f0566e441e726be1f442de8f9ea8d504a1ca65d11054e20494c1e0f9bf44e06e69529e74b565759b6d1ba5b389319068cfba5e69a3b16297853114271f WHIRLPOOL 1495e1b082892d1e49bc9fcd4fc637b6e87d731c305dffbaa90c1a3709e5e93afc595dc1a0a98aa38354b990013206b305c8c776d57818bee3d4b9a8c17e7579 +MISC ChangeLog 4144 SHA256 0ad80005d915790d291372e0af3ff1a1aceaa08aa22c8620949061e0fc958be3 SHA512 d9d36d925c7d0acb051ff540005566ac4dad2f4925b21b1c68ed8fa7f50af1f117e5bc77c44e88c4bf2b6d22c9467c9f5fa7bd930cf23be7efce11dc5d7b28b0 WHIRLPOOL d4eb4fbdce08159ff3b5b74b948b3810ab03e51a06c5d47a8fc6329f8b06a1c971f399bcb9b21a0e78f01f8369db695330b511f14cddf978eb30c314e85189f9 +MISC ChangeLog-2015 41766 SHA256 5980fc92c7ed641eaf1629bcc675f601e4aacf597cfac97c849e1c4ad347f262 SHA512 7d196a466fa6ba55b78dca3bb1b3878a461d94fd96522a9dda29fd11f8f48bb289b6b27dbd09809def0b8a2bc4ea4f710b8a1eae57d38f12c6c4258dac74ea3d WHIRLPOOL 1671bd897744f233aa356e0d7f4c65b4a3661ad306b12dbd10ce6ce1535a242438b16990434b282bf96fd761c29185cc63755d893b9907425a695807db826113 +MISC metadata.xml 430 SHA256 0b65f0c7052658cdd068f815793795955373808419978f32e8ddf4ab208dbca2 SHA512 820c350a185014ad888ba9cb43afb5ae7f21a0000a224d68461abbee4efefcbd972db79d7086b8f7f023de0828fa6f01a32502cbf74439160003fad146d33ca4 WHIRLPOOL cadbf9dab0390344c3e5fdb3a5070d0731bc82370179e36eb05717db20c087def5aabfb5d50688ba4ba75c216d39c3b6e42087fb82d1cdff4f347bb778f365fb diff --git a/gnome-base/gconf/files/gconf-2.24.0-no-gconfd.patch b/gnome-base/gconf/files/gconf-2.24.0-no-gconfd.patch new file mode 100644 index 000000000000..8ca6a0d4fc09 --- /dev/null +++ b/gnome-base/gconf/files/gconf-2.24.0-no-gconfd.patch @@ -0,0 +1,19 @@ +diff --exclude-from=/home/dang/.scripts/diffrc -up -ruN GConf-2.23.2.old/gconf/gconftool.c GConf-2.23.2/gconf/gconftool.c +--- GConf-2.23.2.old/gconf/gconftool.c 2008-06-28 05:27:33.000000000 -0400 ++++ GConf-2.23.2/gconf/gconftool.c 2008-09-23 10:20:00.000000000 -0400 +@@ -856,6 +856,7 @@ main (int argc, char** argv) + { + g_print (_("GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL is set, not installing schemas\n")); + makefile_install_mode = FALSE; ++ return 0; + } + + if (makefile_uninstall_mode && +@@ -863,6 +864,7 @@ main (int argc, char** argv) + { + g_print (_("GCONF_DISABLE_MAKEFILE_SCHEMA_UNINSTALL is set, not uninstalling schemas\n")); + makefile_uninstall_mode = FALSE; ++ return 0; + } + + if (makefile_install_mode || makefile_uninstall_mode) 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 +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/files/gconf-3.2.6-gsettings-data-convert-paths.patch b/gnome-base/gconf/files/gconf-3.2.6-gsettings-data-convert-paths.patch new file mode 100644 index 000000000000..dc6c66b1c644 --- /dev/null +++ b/gnome-base/gconf/files/gconf-3.2.6-gsettings-data-convert-paths.patch @@ -0,0 +1,41 @@ +From 405f865c07261a95c8c9a09a84ab679c6dd0a330 Mon Sep 17 00:00:00 2001 +From: Colin Walters +Date: Thu, 24 Oct 2013 16:27:24 -0400 +Subject: gsettings-data-convert: Warn (and fix) invalid schema paths + +See https://bugzilla.gnome.org/show_bug.cgi?id=704802 + +https://bugzilla.gnome.org/show_bug.cgi?id=710836 + +diff --git a/gsettings/gsettings-data-convert.c b/gsettings/gsettings-data-convert.c +index 9b2d1d0..160ed41 100644 +--- a/gsettings/gsettings-data-convert.c ++++ b/gsettings/gsettings-data-convert.c +@@ -182,7 +182,23 @@ handle_file (const gchar *filename) + } + + if (schema_path[1] != NULL) +- settings = g_settings_new_with_path (schema_path[0], schema_path[1]); ++ { ++ char *compat_path_alloced = NULL; ++ char *compat_path; ++ /* Work around broken .convert files: ++ https://bugzilla.gnome.org/show_bug.cgi?id=704802 ++ */ ++ if (!g_str_has_suffix (schema_path[1], "/")) ++ { ++ g_warning ("Schema file '%s' has missing trailing / in '%s'", ++ filename, schema_path[1]); ++ compat_path = compat_path_alloced = g_strconcat (schema_path[1], "/", NULL); ++ } ++ else ++ compat_path = schema_path[1]; ++ settings = g_settings_new_with_path (schema_path[0], compat_path); ++ g_free (compat_path_alloced); ++ } + else + settings = g_settings_new (schema_path[0]); + +-- +cgit v0.10.1 + diff --git a/gnome-base/gconf/files/gconf-3.2.6-mconvert-crasher.patch b/gnome-base/gconf/files/gconf-3.2.6-mconvert-crasher.patch new file mode 100644 index 000000000000..54681bcb0e86 --- /dev/null +++ b/gnome-base/gconf/files/gconf-3.2.6-mconvert-crasher.patch @@ -0,0 +1,45 @@ +From 98ff7acca7595f508b094506195aeffaf2e8b74c Mon Sep 17 00:00:00 2001 +From: Stefan Sauer +Date: Wed, 23 Jan 2013 08:11:18 +0100 +Subject: mconvert: enable recursive scheme lookup and fix a crasher + +The recursive scheme lookup is needed to scan the whole settings path. The crash +would happen in the case of a misconfiguration (e.g. building gconf from source +and running uninstalled while the configure settings don't match the one used to +create the installed package). + +diff --git a/gsettings/gsettings-data-convert.c b/gsettings/gsettings-data-convert.c +index a8af942..9b2d1d0 100644 +--- a/gsettings/gsettings-data-convert.c ++++ b/gsettings/gsettings-data-convert.c +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -90,6 +91,10 @@ get_writable_client (void) + GSList *addresses; + + addresses = get_writable_source_path (); ++ if (!addresses) { ++ g_printf("No writable gconf locations found\n"); ++ exit (1); ++ } + engine = gconf_engine_get_local_for_addresses (addresses, NULL); + gconf_address_list_free (addresses); + +@@ -155,7 +160,7 @@ handle_file (const gchar *filename) + + schema_path = g_strsplit (groups[i], ":", 2); + +- schema = g_settings_schema_source_lookup (source, schema_path[0], FALSE); ++ schema = g_settings_schema_source_lookup (source, schema_path[0], TRUE); + if (schema == NULL) + { + if (verbose) +-- +cgit v0.10.1 + diff --git a/gnome-base/gconf/files/gconf-3.2.6-spew-console-error.patch b/gnome-base/gconf/files/gconf-3.2.6-spew-console-error.patch new file mode 100644 index 000000000000..26503f7216ea --- /dev/null +++ b/gnome-base/gconf/files/gconf-3.2.6-spew-console-error.patch @@ -0,0 +1,83 @@ +From b0895e1998ebc83ab030ec0f17c0685439f5b404 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Mon, 15 Apr 2013 09:57:34 -0400 +Subject: dbus: Don't spew to console when unable to connect to dbus daemon + +Instead pass the error up for the caller to decide what to do. + +This prevent untrappable warning messages from showing up at the +console if gconftool --makefile-install-rule is called. + +diff --git a/gconf/gconf-dbus.c b/gconf/gconf-dbus.c +index 5610fcf..048e3ea 100644 +--- a/gconf/gconf-dbus.c ++++ b/gconf/gconf-dbus.c +@@ -105,7 +105,7 @@ static GHashTable *engines_by_db = NULL; + static GHashTable *engines_by_address = NULL; + static gboolean dbus_disconnected = FALSE; + +-static gboolean ensure_dbus_connection (void); ++static gboolean ensure_dbus_connection (GError **error); + static gboolean ensure_service (gboolean start_if_not_found, + GError **err); + static gboolean ensure_database (GConfEngine *conf, +@@ -383,7 +383,7 @@ gconf_engine_detach (GConfEngine *conf) + } + + static gboolean +-ensure_dbus_connection (void) ++ensure_dbus_connection (GError **err) + { + DBusError error; + +@@ -392,7 +392,9 @@ ensure_dbus_connection (void) + + if (dbus_disconnected) + { +- g_warning ("The connection to DBus was broken. Can't reinitialize it."); ++ g_set_error (err, GCONF_ERROR, ++ GCONF_ERROR_NO_SERVER, ++ "The connection to DBus was broken. Can't reinitialize it."); + return FALSE; + } + +@@ -402,7 +404,10 @@ ensure_dbus_connection (void) + + if (!global_conn) + { +- g_warning ("Client failed to connect to the D-BUS daemon:\n%s", error.message); ++ g_set_error (err, GCONF_ERROR, ++ GCONF_ERROR_NO_SERVER, ++ "Client failed to connect to the D-BUS daemon:\n%s", ++ error.message); + + dbus_error_free (&error); + return FALSE; +@@ -431,13 +436,8 @@ ensure_service (gboolean start_if_not_found, + + if (global_conn == NULL) + { +- if (!ensure_dbus_connection ()) +- { +- g_set_error (err, GCONF_ERROR, +- GCONF_ERROR_NO_SERVER, +- _("No D-BUS daemon running\n")); +- return FALSE; +- } ++ if (!ensure_dbus_connection (err)) ++ return FALSE; + + g_assert (global_conn != NULL); + } +@@ -2512,7 +2512,7 @@ gconf_ping_daemon (void) + { + if (global_conn == NULL) + { +- if (!ensure_dbus_connection ()) ++ if (!ensure_dbus_connection (NULL)) + { + return FALSE; + } +-- +cgit v0.10.1 + diff --git a/gnome-base/gconf/gconf-3.2.6-r4.ebuild b/gnome-base/gconf/gconf-3.2.6-r4.ebuild new file mode 100644 index 000000000000..54df43366cf0 --- /dev/null +++ b/gnome-base/gconf/gconf-3.2.6-r4.ebuild @@ -0,0 +1,145 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +GCONF_DEBUG="yes" +GNOME_ORG_MODULE="GConf" +GNOME2_LA_PUNT="yes" +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="xml" + +inherit eutils gnome2 multilib-minimal python-r1 + +DESCRIPTION="GNOME configuration system and daemon" +HOMEPAGE="https://projects.gnome.org/gconf/" + +LICENSE="LGPL-2+" +SLOT="2" +KEYWORDS="alpha amd64 arm ~arm64 ia64 ~mips ppc ppc64 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~arm-linux ~x86-linux" +IUSE="debug +introspection ldap policykit" + +RDEPEND=" + ${PYTHON_DEPS} + >=dev-libs/glib-2.34.3:2[${MULTILIB_USEDEP}] + >=dev-libs/dbus-glib-0.100.2:=[${MULTILIB_USEDEP}] + >=sys-apps/dbus-1.6.18-r1:=[${MULTILIB_USEDEP}] + >=dev-libs/libxml2-2.9.1-r4:2[${MULTILIB_USEDEP}] + introspection? ( >=dev-libs/gobject-introspection-0.9.5:= ) + ldap? ( >=net-nds/openldap-2.4.38-r1:=[${MULTILIB_USEDEP}] ) + policykit? ( sys-auth/polkit:= ) +" +DEPEND="${RDEPEND} + dev-libs/libxslt + dev-util/gtk-doc-am + >=dev-util/intltool-0.35 + >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] +" +RDEPEND="${RDEPEND} + abi_x86_32? ( + !<=app-emulation/emul-linux-x86-gtklibs-20140508-r1 + !app-emulation/emul-linux-x86-gtklibs[-abi_x86_32(-)] + )" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +pkg_setup() { + kill_gconf +} + +src_prepare() { + # Do not start gconfd when installing schemas, fix bug #238276, upstream #631983 + epatch "${FILESDIR}/${PN}-2.24.0-no-gconfd.patch" + + # Do not crash in gconf_entry_set_value() when entry pointer is NULL, upstream #631985 + epatch "${FILESDIR}/${PN}-2.28.0-entry-set-value-sigsegv.patch" + + # From 'master' + # mconvert: enable recursive scheme lookup and fix a crasher + epatch "${FILESDIR}/${P}-mconvert-crasher.patch" + + # dbus: Don't spew to console when unable to connect to dbus daemon + epatch "${FILESDIR}/${P}-spew-console-error.patch" + + # gsettings-data-convert: Warn (and fix) invalid schema paths + epatch "${FILESDIR}/${P}-gsettings-data-convert-paths.patch" + + gnome2_src_prepare +} + +multilib_src_configure() { + ECONF_SOURCE=${S} \ + gnome2_src_configure \ + --disable-static \ + --enable-gsettings-backend \ + --with-gtk=3.0 \ + --disable-orbit \ + $(multilib_native_use_enable introspection) \ + $(use_with ldap openldap) \ + $(multilib_native_use_enable policykit defaults-service) + + if multilib_is_native_abi; then + ln -s "${S}"/doc/gconf/html doc/gconf/html || die + fi +} + +multilib_src_install() { + gnome2_src_install +} + +multilib_src_install_all() { + python_replicate_script "${ED}"/usr/bin/gsettings-schema-convert + + 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 + echo 'GSETTINGS_BACKEND="gconf"' >> 50gconf + doenvd 50gconf + dodir /root/.gconfd +} + +pkg_preinst() { + kill_gconf + gnome2_pkg_preinst +} + +pkg_postinst() { + kill_gconf + + gnome2_pkg_postinst + + multilib_pkg_postinst() { + gnome2_giomodule_cache_update \ + || die "Update GIO modules cache failed (for ${ABI})" + } + multilib_foreach_abi multilib_pkg_postinst + + # change the permissions to avoid some gconf bugs + einfo "changing permissions for gconf dirs" + find "${EPREFIX}"/etc/gconf/ -type d -exec chmod ugo+rx "{}" \; + + einfo "changing permissions for gconf files" + find "${EPREFIX}"/etc/gconf/ -type f -exec chmod ugo+r "{}" \; +} + +pkg_postrm() { + gnome2_pkg_postrm + + multilib_pkg_postrm() { + gnome2_giomodule_cache_update \ + || die "Update GIO modules cache failed (for ${ABI})" + } + multilib_foreach_abi multilib_pkg_postrm +} + +kill_gconf() { + # This function will kill all running gconfd-2 that could be causing troubles + if [ -x "${EPREFIX}"/usr/bin/gconftool-2 ] + then + "${EPREFIX}"/usr/bin/gconftool-2 --shutdown + fi + + return 0 +} diff --git a/gnome-base/gconf/metadata.xml b/gnome-base/gconf/metadata.xml new file mode 100644 index 000000000000..d2a393a8590c --- /dev/null +++ b/gnome-base/gconf/metadata.xml @@ -0,0 +1,13 @@ + + + + + gnome@gentoo.org + Gentoo GNOME Desktop + + + Build backend which enables default mail accounts, + addressbooks and calendars for Evolution to be configured using each + user's LDAP entry." + + -- cgit v1.2.3