summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMart Raudsepp <leio@gentoo.org>2019-12-01 18:19:00 +0200
committerMart Raudsepp <leio@gentoo.org>2019-12-01 18:19:22 +0200
commitdd9beb499e046d97e42c4cd4f4019eeef9e09fa1 (patch)
tree3112f842c647cd1dcd0ea6754770b7c375014aea /gnome-base/dconf
parentsys-devel/gnuconfig: drop old (diff)
downloadgentoo-dd9beb499e046d97e42c4cd4f4019eeef9e09fa1.tar.gz
gentoo-dd9beb499e046d97e42c4cd4f4019eeef9e09fa1.tar.bz2
gentoo-dd9beb499e046d97e42c4cd4f4019eeef9e09fa1.zip
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 <leio@gentoo.org>
Diffstat (limited to 'gnome-base/dconf')
-rw-r--r--gnome-base/dconf/dconf-0.32.0-r2.ebuild83
-rw-r--r--gnome-base/dconf/files/0.32.0-meson-0.52-compat.patch35
2 files changed, 118 insertions, 0 deletions
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 <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
+