gnome-base/dconf: fix compat with meson-0.52
authorMart Raudsepp <leio@gentoo.org>
Sun, 1 Dec 2019 16:19:00 +0000 (18:19 +0200)
committerMart Raudsepp <leio@gentoo.org>
Sun, 1 Dec 2019 16:19:22 +0000 (18:19 +0200)
Closes: https://bugs.gentoo.org/698144
Package-Manager: Portage-2.3.69, Repoman-2.3.12
Signed-off-by: Mart Raudsepp <leio@gentoo.org>
gnome-base/dconf/dconf-0.32.0-r2.ebuild [new file with mode: 0644]
gnome-base/dconf/files/0.32.0-meson-0.52-compat.patch [new file with mode: 0644]

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 (file)
index 0000000..9992b90
--- /dev/null
@@ -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 (file)
index 0000000..7b5d8c5
--- /dev/null
@@ -0,0 +1,35 @@
+From cc32667c5d7d9ff95e65cc21f59905d8f9218394 Mon Sep 17 00:00:00 2001
+From: Diego Escalante Urrelo <diegoe@gnome.org>
+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
+