/[gentoo-x86]/eclass/gnome2.eclass
Gentoo

Diff of /eclass/gnome2.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.39 Revision 1.62
1# Copyright 1999-2003 Gentoo Technologies, Inc. 1# Copyright 1999-2004 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/gnome2.eclass,v 1.39 2004/04/09 15:49:46 foser Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/gnome2.eclass,v 1.62 2005/09/08 17:19:22 leonardop Exp $
4# 4#
5# Authors: 5# Authors:
6# Bruce A. Locke <blocke@shivan.org> 6# Bruce A. Locke <blocke@shivan.org>
7# Spidler <spider@gentoo.org> 7# Spidler <spider@gentoo.org>
8 8
9inherit libtool gnome.org 9inherit libtool gnome.org debug fdo-mime
10[ `use debug` ] && inherit debug
11 10
12# Gnome 2 ECLASS 11# Gnome 2 ECLASS
13ECLASS="gnome2"
14INHERITED="$INHERITED $ECLASS"
15 12
16G2CONF="" # extra configure opts passed to econf 13# extra configure opts passed to econf
14[ -z "$G2CONF" ] && G2CONF=""
15
17ELTCONF="" # extra options passed to elibtoolize 16# extra options passed to elibtoolize
17[ -z "$ELTCONF" ] && ELTCONF=""
18
18SCROLLKEEPER_UPDATE="1" # whether to run scrollkeeper for this package 19# whether to run scrollkeeper for this package
20[ -z "$SCROLLKEEPER_UPDATE" ] && SCROLLKEEPER_UPDATE="1"
21
19USE_DESTDIR="" # use make DESTDIR=${D} install rather than einstall 22# use make DESTDIR=${D} install rather than einstall
23[ -z "$USE_DESTDIR" ] && USE_DESTDIR=""
20 24
21[ `use debug` ] && G2CONF="${G2CONF} --enable-debug=yes"
22 25
26IUSE="debug"
27
28
23DEPEND="${DEPEND} >=sys-apps/sed-4" 29DEPEND=">=sys-apps/sed-4"
24 30
25gnome2_src_configure() { 31gnome2_src_configure() {
32
33 # [ -n "${ELTCONF}" ] && elibtoolize ${ELTCONF}
26 elibtoolize ${ELTCONF} 34 elibtoolize ${ELTCONF}
35
36 use debug && G2CONF="${G2CONF} --enable-debug=yes"
37
27 # doc keyword for gtk-doc 38 # doc keyword for gtk-doc
28 use doc \
29 && G2CONF="${G2CONF} --enable-gtk-doc" \ 39 G2CONF="${G2CONF} $(use_enable doc gtk-doc)"
30 || G2CONF="${G2CONF} --disable-gtk-doc"
31 40
32 econf "$@" ${G2CONF} || die "./configure failure" 41 econf "$@" ${G2CONF} || die "./configure failure"
33 42
34} 43}
35 44
48 57
49 # we must delay gconf schema installation due to sandbox 58 # we must delay gconf schema installation due to sandbox
50 export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL="1" 59 export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL="1"
51 60
52 if [ -z "${USE_DESTDIR}" -o "${USE_DESTDIR}" = "0" ]; then 61 if [ -z "${USE_DESTDIR}" -o "${USE_DESTDIR}" = "0" ]; then
53 einstall "scrollkeeper_localstate_dir=${D}/var/lib/scrollkeeper/" "$@" 62 einstall "scrollkeeper_localstate_dir=${D}/var/lib/scrollkeeper/" "$@" || die "einstall failed"
54 else 63 else
55 make DESTDIR=${D} \ 64 make DESTDIR=${D} \
56 scrollkeeper_localstate_dir=${D}/var/lib/scrollkeeper \ 65 "$@" install || die "make DESTDIR install failed"
57 "$@" install
58 fi 66 fi
59 67
60 unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL 68 unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL
61 69
62 # manual document installation 70 # manual document installation
71 export SCROLLKEEPER_UPDATE="0" 79 export SCROLLKEEPER_UPDATE="0"
72 fi 80 fi
73 81
74 # regenerate these in pkg_postinst() 82 # regenerate these in pkg_postinst()
75 rm -rf ${D}/var/lib/scrollkeeper 83 rm -rf ${D}/var/lib/scrollkeeper
84 # make sure this one doesn't get in the portage db
85 rm -fr ${D}/usr/share/applications/mimeinfo.cache
86
76} 87}
77 88
78 89
79gnome2_gconf_install() { 90gnome2_gconf_install() {
91
80 if [ -x ${ROOT}/usr/bin/gconftool-2 ] 92 if [ -x ${ROOT}/usr/bin/gconftool-2 ]
81 then 93 then
82 unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL 94 unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL
83 export GCONF_CONFIG_SOURCE=`${ROOT}/usr/bin/gconftool-2 --get-default-source` 95 export GCONF_CONFIG_SOURCE=`${ROOT}/usr/bin/gconftool-2 --get-default-source`
84 einfo "Installing GNOME 2 GConf schemas" 96 einfo "Installing GNOME 2 GConf schemas"
85 cat ${ROOT}/var/db/pkg/*/${PN}-${PVR}/CONTENTS | grep "obj /etc/gconf/schemas" | sed 's:obj \([^ ]*\) .*:\1:' |while read F; do 97 grep "obj /etc/gconf/schemas" ${ROOT}/var/db/pkg/*/${PF}/CONTENTS | sed 's:obj \([^ ]*\) .*:\1:' | while read F; do
98 if [ -e "${F}" ]; then
86 # echo "DEBUG::gconf install ${F}" 99 # echo "DEBUG::gconf install ${F}"
87 ${ROOT}/usr/bin/gconftool-2 --makefile-install-rule ${F} 1>/dev/null 100 ${ROOT}/usr/bin/gconftool-2 --makefile-install-rule ${F} 1>/dev/null
101 fi
88 done 102 done
89 fi 103 fi
104
90} 105}
91 106
92gnome2_gconf_uninstall() { 107gnome2_gconf_uninstall() {
93 108
94 if [ -x ${ROOT}/usr/bin/gconftool-2 ] 109 if [ -x ${ROOT}/usr/bin/gconftool-2 ]
95 then 110 then
96 unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL 111 unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL
97 export GCONF_CONFIG_SOURCE=`${ROOT}/usr/bin/gconftool-2 --get-default-source` 112 export GCONF_CONFIG_SOURCE=`${ROOT}/usr/bin/gconftool-2 --get-default-source`
98 einfo "Uninstalling GNOME 2 GConf schemas" 113 einfo "Uninstalling GNOME 2 GConf schemas"
99 cat ${ROOT}/var/db/pkg/*/${PN}-${PVR}/CONTENTS | grep "obj /etc/gconf/schemas" | sed 's:obj \([^ ]*\) .*:\1:' |while read F; do 114 cat ${ROOT}/var/db/pkg/*/${PN}-${PVR}/CONTENTS | grep "obj /etc/gconf/schemas" | sed 's:obj \([^ ]*\) .*:\1:' |while read F; do
100 # echo "DEBUG::gconf install ${F}" 115 # echo "DEBUG::gconf install ${F}"
101 ${ROOT}/usr/bin/gconftool-2 --makefile-uninstall-rule ${F} 1>/dev/null 116 ${ROOT}/usr/bin/gconftool-2 --makefile-uninstall-rule ${F} 1>/dev/null
102 done 117 done
103 fi 118 fi
104 119
105} 120}
106 121
122gnome2_icon_cache_update() {
123 local updater=`which gtk-update-icon-cache`
124 if ! grep -q "obj /usr/share/icons" ${ROOT}/var/db/pkg/*/${PF}/CONTENTS \
125 || [ ! -x "$updater" ]; then
126 # Nothing to update
127 return
128 fi
129
130 ebegin "Updating icons cache"
131
132 local retval=0
133 for dir in \
134 $(find ${ROOT}/usr/share/icons -maxdepth 1 -mindepth 1 -type d); do
135 if [ -f "${dir}/index.theme" ]; then
136 $updater -qf $dir || retval=$?
137 fi
138 done
139
140 eend $retval
141}
142
107gnome2_omf_fix() { 143gnome2_omf_fix() {
144
108 # workaround/patch against omf.make or omf-install/Makefile.in 145 # workaround/patch against omf.make or omf-install/Makefile.in
109 # in order to remove redundant scrollkeeper-updates. 146 # in order to remove redundant scrollkeeper-updates.
110 # - <liquidx@gentoo.org> 147 # - <liquidx@gentoo.org>
111 148
112 local omf_makefiles 149 local omf_makefiles
113 150
114 omf_makefiles="$@" 151 omf_makefiles="$@"
115 152
116 [ -f ${S}/omf-install/Makefile.in ] \ 153 [ -f ${S}/omf-install/Makefile.in ] \
117 && omf_makefiles="${omf_makefiles} ${S}/omf-install/Makefile.in" 154 && omf_makefiles="${omf_makefiles} ${S}/omf-install/Makefile.in"
118 155
119 # FIXME: does this really work? because omf.make only gets included 156 # FIXME: does this really work? because omf.make only gets included
120 # when autoconf/automake is run. You should directly patch 157 # when autoconf/automake is run. You should directly patch
121 # the Makefile.in's 158 # the Makefile.in's
122 159
123 [ -f ${S}/omf.make ] \ 160 [ -f ${S}/omf.make ] \
124 && omf_makefiles="${omf_makefiles} ${S}/omf.make" 161 && omf_makefiles="${omf_makefiles} ${S}/omf.make"
125 162
163 ebegin "Fixing OMF Makefiles"
164 local retval=0
126 for omf in ${omf_makefiles}; do 165 for omf in ${omf_makefiles}; do
127 omfbase=$(basename ${omf})
128 einfo "Fixing OMF Makefile: ${omf#${S}/}"
129 sed -i -e 's:-scrollkeeper-update.*::' ${omf} 166 sed -i -e 's:scrollkeeper-update:true:' ${omf} || retval=$?
130 done 167 done
168 eend $retval
169
131} 170}
132 171
133gnome2_scrollkeeper_update() { 172gnome2_scrollkeeper_update() {
173
134 if [ -x ${ROOT}/usr/bin/scrollkeeper-update ] && [ "${SCROLLKEEPER_UPDATE}" = "1" ] 174 if [ -x ${ROOT}/usr/bin/scrollkeeper-update ] && [ "${SCROLLKEEPER_UPDATE}" = "1" ]
135 then 175 then
136 echo ">>> Updating Scrollkeeper" 176 einfo "Updating scrollkeeper database ..."
137 scrollkeeper-update -q -p ${ROOT}/var/lib/scrollkeeper 177 scrollkeeper-update -q -p ${ROOT}/var/lib/scrollkeeper
138 fi 178 fi
179
139} 180}
140 181
141gnome2_pkg_postinst() { 182gnome2_pkg_postinst() {
183
142 gnome2_gconf_install 184 gnome2_gconf_install
143 gnome2_scrollkeeper_update 185 gnome2_scrollkeeper_update
144} 186 fdo-mime_desktop_database_update
187 fdo-mime_mime_database_update
188 gnome2_icon_cache_update
145 189
190}
191
146gnome2_pkg_prerm() { 192#gnome2_pkg_prerm() {
147 193
148 gnome2_gconf_uninstall 194# gnome2_gconf_uninstall
149 195
150} 196#}
151 197
152gnome2_pkg_postrm() { 198gnome2_pkg_postrm() {
199
153 gnome2_scrollkeeper_update 200 gnome2_scrollkeeper_update
154} 201 fdo-mime_desktop_database_update
202 fdo-mime_mime_database_update
203 gnome2_icon_cache_update
155 204
205}
156 206
157EXPORT_FUNCTIONS src_compile src_install pkg_postinst pkg_prerm pkg_postrm 207#EXPORT_FUNCTIONS src_compile src_install pkg_postinst pkg_prerm pkg_postrm
158 208EXPORT_FUNCTIONS src_compile src_install pkg_postinst pkg_postrm
159

Legend:
Removed from v.1.39  
changed lines
  Added in v.1.62

  ViewVC Help
Powered by ViewVC 1.1.20