From dd9beb499e046d97e42c4cd4f4019eeef9e09fa1 Mon Sep 17 00:00:00 2001 From: Mart Raudsepp Date: Sun, 1 Dec 2019 18:19:00 +0200 Subject: gnome-base/dconf: fix compat with meson-0.52 Closes: https://bugs.gentoo.org/698144 Package-Manager: Portage-2.3.69, Repoman-2.3.12 Signed-off-by: Mart Raudsepp --- gnome-base/dconf/dconf-0.32.0-r2.ebuild | 83 ++++++++++++++++++++++ .../dconf/files/0.32.0-meson-0.52-compat.patch | 35 +++++++++ 2 files changed, 118 insertions(+) create mode 100644 gnome-base/dconf/dconf-0.32.0-r2.ebuild create mode 100644 gnome-base/dconf/files/0.32.0-meson-0.52-compat.patch (limited to 'gnome-base/dconf') diff --git a/gnome-base/dconf/dconf-0.32.0-r2.ebuild b/gnome-base/dconf/dconf-0.32.0-r2.ebuild new file mode 100644 index 000000000000..9992b900a0b2 --- /dev/null +++ b/gnome-base/dconf/dconf-0.32.0-r2.ebuild @@ -0,0 +1,83 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit bash-completion-r1 gnome.org gnome2-utils meson virtualx xdg + +DESCRIPTION="Simple low-level configuration system" +HOMEPAGE="https://wiki.gnome.org/Projects/dconf" + +LICENSE="LGPL-2.1+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-linux" +IUSE="gtk-doc" +RESTRICT="!test? ( test )" # IUSE=test comes from virtualx.eclass + +RDEPEND=" + >=dev-libs/glib-2.44.0:2 + sys-apps/dbus +" +DEPEND="${RDEPEND}" +BDEPEND=" + app-text/docbook-xml-dtd:4.2 + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + dev-util/gdbus-codegen + gtk-doc? ( >=dev-util/gtk-doc-1.15 ) + >=sys-devel/gettext-0.19.8 + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/0.30.1-bash-completion-dir.patch + "${FILESDIR}"/${PV}-drop-vapigen-dep.patch # .vapi/.deps are pregenerated, just install them without a vala dep + "${FILESDIR}"/${PV}-meson-0.52-compat.patch # https://gitlab.gnome.org/GNOME/dconf/issues/59 +) + +src_configure() { + local emesonargs=( + -Dbash_completion_dir="$(get_bashcompdir)" + -Dman=true + $(meson_use gtk-doc gtk_doc) + -Dvapi=true + ) + meson_src_configure +} + +src_install() { + meson_src_install + + # GSettings backend may be one of: memory, gconf, dconf + # Only dconf is really considered functional by upstream + # must have it enabled over gconf if both are installed + # This snippet can't be removed until gconf package is + # ensured to not install a /etc/env.d/50gconf and then + # still consider the CONFIG_PROTECT_MASK bit. + echo 'CONFIG_PROTECT_MASK="/etc/dconf"' >> 51dconf + echo 'GSETTINGS_BACKEND="dconf"' >> 51dconf + doenvd 51dconf +} + +src_test() { + virtx meson_src_test +} + +pkg_postinst() { + xdg_pkg_postinst + gnome2_giomodule_cache_update + + # Kill existing dconf-service processes as recommended by upstream due to + # possible changes in the dconf private dbus API. + # dconf-service will be dbus-activated on next use. + pids=$(pgrep -x dconf-service) + if [[ $? == 0 ]]; then + ebegin "Stopping dconf-service; it will automatically restart on demand" + kill ${pids} + eend $? + fi +} + +pkg_postrm() { + xdg_pkg_postrm + gnome2_giomodule_cache_update +} diff --git a/gnome-base/dconf/files/0.32.0-meson-0.52-compat.patch b/gnome-base/dconf/files/0.32.0-meson-0.52-compat.patch new file mode 100644 index 000000000000..7b5d8c5aefc0 --- /dev/null +++ b/gnome-base/dconf/files/0.32.0-meson-0.52-compat.patch @@ -0,0 +1,35 @@ +From cc32667c5d7d9ff95e65cc21f59905d8f9218394 Mon Sep 17 00:00:00 2001 +From: Diego Escalante Urrelo +Date: Thu, 31 Oct 2019 05:51:22 -0500 +Subject: [PATCH] build: Update use of link_whole for meson-0.52 + +A regression in meson-0.52 caused uses of link_whole to expose scenarios +where duplicate symbols issues could appear. In particular +libdconf_client_dep was being link_whole'd to itself, which recursively +already included libdconf_common which was also a link_whole. + +This change does not modify the available symbols in libdconf.so, and is +compatible with meson-0.52 and 0.51. + +See: https://github.com/mesonbuild/meson/pull/6030 +Fixes: https://gitlab.gnome.org/GNOME/dconf/issues/59 +--- + client/meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/client/meson.build b/client/meson.build +index f3b7122..de6387e 100644 +--- a/client/meson.build ++++ b/client/meson.build +@@ -28,7 +28,7 @@ libdconf_client = static_library( + + libdconf_client_dep = declare_dependency( + dependencies: gio_dep, +- link_whole: libdconf_client, ++ link_with: libdconf_client, + ) + + libdconf = shared_library( +-- +2.20.1 + -- cgit v1.2.3-65-gdbad