blob: fbe097fad19c8be72ee2035cff02f309a451d4c0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="5"
GCONF_DEBUG="yes"
GNOME_ORG_MODULE="GConf"
GNOME2_LA_PUNT="yes"
PYTHON_COMPAT=( python2_{6,7} )
PYTHON_REQ_USE="xml"
inherit eutils gnome2
if [[ ${PV} = 9999 ]]; then
GNOME_LIVE_MODULE="gconf"
inherit gnome2-live
fi
DESCRIPTION="GNOME configuration system and daemon"
HOMEPAGE="http://projects.gnome.org/gconf/"
LICENSE="LGPL-2+"
SLOT="2"
IUSE="debug gtk +introspection ldap orbit policykit"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
if [[ ${PV} = 9999 ]]; then
KEYWORDS=""
IUSE="${IUSE} doc"
else
KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-linux"
fi
RDEPEND="
${PYTHON_DEPS}
>=dev-libs/glib-2.31:2
>=dev-libs/dbus-glib-0.74:=
>=sys-apps/dbus-1:=
>=dev-libs/libxml2-2:2
gtk? ( >=x11-libs/gtk+-2.90:3 )
introspection? ( >=dev-libs/gobject-introspection-0.9.5:= )
ldap? ( net-nds/openldap:= )
orbit? ( >=gnome-base/orbit-2.4:2 )
policykit? ( sys-auth/polkit:= )
"
DEPEND="${RDEPEND}
dev-libs/libxslt
dev-util/gtk-doc-am
>=dev-util/intltool-0.35
virtual/pkgconfig
"
if [[ ${PV} = 9999 ]]; then
DEPEND="${DEPEND}
doc? ( >=dev-util/gtk-doc-1 )
"
fi
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"
gnome2_src_prepare
}
src_configure() {
# Need host's IDL compiler for cross or native build, bug #262747
gnome2_src_configure \
--disable-static \
--enable-gsettings-backend \
$(use_enable gtk) \
$(usex gtk --with-gtk=3.0 "") \
$(use_enable introspection) \
$(use_with ldap openldap) \
$(use_enable orbit) \
$(use_enable policykit defaults-service) \
ORBIT_IDL=$(type -P orbit-idl-2)
}
src_install() {
gnome2_src_install
python_replicate_script "${ED}"/usr/bin/gsettings-schema-convert || die
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
}
pkg_postinst() {
kill_gconf
# 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 "{}" \;
if ! use orbit; then
ewarn "You are using dbus for GConf's IPC. If you are upgrading from"
ewarn "<=gconf-3.2.3, or were previously using gconf with USE=orbit,"
ewarn "you will need to now restart your desktop session (for example,"
ewarn "by logging out and then back in)."
ewarn "Otherwise, gconf-based applications may crash with 'Method ..."
ewarn "on interface \"org.gnome.GConf.Server\" doesn't exist' errors."
fi
}
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
}
|