diff options
author | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2008-10-25 23:11:41 +0530 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2008-10-25 23:11:41 +0530 |
commit | 0c184af032394be198a42cb081ac631e827f1e02 (patch) | |
tree | f63839380142f36529d28112f8e9d5fe43b7fbcc /eclass | |
parent | GDM didn't write it's PID file; fix it. (diff) | |
download | gnome-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.eclass | 27 | ||||
-rw-r--r-- | eclass/gnome2-live.eclass | 7 | ||||
-rw-r--r-- | eclass/gnome2.eclass | 144 |
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 |