summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek.chauhan@gmail.com>2008-10-25 23:11:41 +0530
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2008-10-25 23:11:41 +0530
commit0c184af032394be198a42cb081ac631e827f1e02 (patch)
treef63839380142f36529d28112f8e9d5fe43b7fbcc /eclass
parentGDM didn't write it's PID file; fix it. (diff)
downloadgnome-live-0c184af032394be198a42cb081ac631e827f1e02.tar.gz
gnome-live-0c184af032394be198a42cb081ac631e827f1e02.tar.bz2
gnome-live-0c184af032394be198a42cb081ac631e827f1e02.zip
Overriding gnome2.eclass -> metadata invalidation
This results in severe slowdowns. Add gnome2-eapi-fixes.eclass instead. - This eclass will have to be inherited by ebuilds which use gnome2.eclass and EAPI >= 2 *after* gnome2 to work properly. - gnome-base/gdm-9999 has been fixed to reflect this
Diffstat (limited to 'eclass')
-rw-r--r--eclass/gnome2-eapi-fixes.eclass27
-rw-r--r--eclass/gnome2-live.eclass7
-rw-r--r--eclass/gnome2.eclass144
3 files changed, 33 insertions, 145 deletions
diff --git a/eclass/gnome2-eapi-fixes.eclass b/eclass/gnome2-eapi-fixes.eclass
new file mode 100644
index 0000000..1201869
--- /dev/null
+++ b/eclass/gnome2-eapi-fixes.eclass
@@ -0,0 +1,27 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+#
+# gnome2-eapi-fixes.eclass
+#
+# EAPI-specific fixes for gnome2.eclass
+#
+# Maintained by Nirbheek Chauhan <nirbheek.chauhan@gmail.com>
+#
+
+case "${EAPI}" in
+ "2")
+ # src_configure gets called twice (#239123)
+ gnome2_src_compile() {
+ default_src_compile
+ }
+
+ gnome2-eapi-fixes_src_compile() {
+ gnome2_src_compile
+ }
+
+ EXPORT_FUNCTIONS src_compile
+ ;;
+ *) :;;
+esac
diff --git a/eclass/gnome2-live.eclass b/eclass/gnome2-live.eclass
index 9b7b449..ae587ec 100644
--- a/eclass/gnome2-live.eclass
+++ b/eclass/gnome2-live.eclass
@@ -46,7 +46,12 @@ gnome2-live_src_prepare() {
intltoolize --force
eautoreconf
- gnome2_src_prepare
+ ### Keep this in-sync with gnome2.eclass!
+ # Prevent scrollkeeper access violations
+ gnome2_omf_fix
+
+ # Run libtoolize
+ elibtoolize ${ELTCONF}
}
# So that it replaces gnome2_src_unpack in ebuilds that call it
diff --git a/eclass/gnome2.eclass b/eclass/gnome2.eclass
deleted file mode 100644
index fcfe0e1..0000000
--- a/eclass/gnome2.eclass
+++ /dev/null
@@ -1,144 +0,0 @@
-# Copyright 1999-2008 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-#
-# gnome2.eclass
-#
-# Exports portage base functions used by ebuilds written for packages using the
-# GNOME framework. For additional functions, see gnome2-utils.eclass.
-#
-# Maintained by Gentoo's GNOME herd <gnome@gentoo.org>
-# Modified by Nirbheek Chauhan <nirbheek.chauhan@gmail.com>
-#
-
-
-inherit fdo-mime libtool gnome.org gnome2-utils
-
-
-# Extra configure opts passed to econf
-G2CONF=${G2CONF:-""}
-
-# Extra options passed to elibtoolize
-ELTCONF=${ELTCONF:-""}
-
-# Should we use EINSTALL instead of DESTDIR
-USE_EINSTALL=${USE_EINSTALL:-""}
-
-# Run scrollkeeper for this package?
-SCROLLKEEPER_UPDATE=${SCROLLKEEPER_UPDATE:-"1"}
-
-
-
-if [[ ${GCONF_DEBUG} != "no" ]]; then
- IUSE="debug"
-fi
-
-
-
-gnome2_src_unpack() {
- unpack ${A}
- cd "${S}"
- [[ "${EAPI}" != 2 ]] && gnome2_src_prepare
-}
-
-gnome2_src_prepare() {
- # Prevent scrollkeeper access violations
- gnome2_omf_fix
-
- # Run libtoolize
- elibtoolize ${ELTCONF}
-}
-
-gnome2_src_configure() {
- # Update the GNOME configuration options
- if [[ ${GCONF_DEBUG} != 'no' ]] ; then
- if use debug ; then
- G2CONF="${G2CONF} --enable-debug=yes"
- fi
- fi
-
- # Prevent a QA warning
- if hasq doc ${IUSE} ; then
- G2CONF="${G2CONF} $(use_enable doc gtk-doc)"
- fi
-
- # Avoid sandbox violations caused by misbehaving packages (bug #128289)
- addwrite "/root/.gnome2"
-
- # GST_REGISTRY is to work around gst-inspect trying to read/write /root
- GST_REGISTRY="${S}/registry.xml" econf "$@" ${G2CONF} || die "configure failed"
-}
-
-gnome2_src_compile() {
- [[ "${EAPI}" != 2 ]] && gnome2_src_configure
- emake || die "compile failure"
-}
-
-gnome2_src_install() {
- # if this is not present, scrollkeeper-update may segfault and
- # create bogus directories in /var/lib/
- local sk_tmp_dir="/var/lib/scrollkeeper"
- dodir "${sk_tmp_dir}"
-
- # we must delay gconf schema installation due to sandbox
- export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL="1"
-
- if [[ -z "${USE_EINSTALL}" || "${USE_EINSTALL}" = "0" ]]; then
- debug-print "Installing with 'make install'"
- emake DESTDIR="${D}" "scrollkeeper_localstate_dir=${D}${sk_tmp_dir} " "$@" install || die "install failed"
- else
- debug-print "Installing with 'einstall'"
- einstall "scrollkeeper_localstate_dir=${D}${sk_tmp_dir} " "$@" || die "einstall failed"
- fi
-
- unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL
-
- # Manual document installation
- [[ -n "${DOCS}" ]] && dodoc ${DOCS}
-
- # Do not keep /var/lib/scrollkeeper because:
- # 1. The scrollkeeper database is regenerated at pkg_postinst()
- # 2. ${D}/var/lib/scrollkeeper contains only indexes for the current pkg
- # thus it makes no sense if pkg_postinst ISN'T run for some reason.
- if [[ -z "$(find "${D}" -name '*.omf')" ]]; then
- export SCROLLKEEPER_UPDATE="0"
- fi
- rm -rf "${D}${sk_tmp_dir}"
-
- # Make sure this one doesn't get in the portage db
- rm -fr "${D}/usr/share/applications/mimeinfo.cache"
-}
-
-gnome2_pkg_preinst() {
- gnome2_gconf_savelist
- gnome2_icon_savelist
-}
-
-gnome2_pkg_postinst() {
- gnome2_gconf_install
- fdo-mime_desktop_database_update
- fdo-mime_mime_database_update
- gnome2_icon_cache_update
-
- if [[ "${SCROLLKEEPER_UPDATE}" = "1" ]]; then
- gnome2_scrollkeeper_update
- fi
-}
-
-#gnome2_pkg_prerm() {
-# gnome2_gconf_uninstall
-#}
-
-gnome2_pkg_postrm() {
- fdo-mime_desktop_database_update
- fdo-mime_mime_database_update
- gnome2_icon_cache_update
-
- if [[ "${SCROLLKEEPER_UPDATE}" = "1" ]]; then
- gnome2_scrollkeeper_update
- fi
-}
-
-# pkg_prerm
-EXPORT_FUNCTIONS src_unpack src_prepare src_compile src_configure src_install pkg_preinst pkg_postinst pkg_postrm