From 0c184af032394be198a42cb081ac631e827f1e02 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Sat, 25 Oct 2008 23:11:41 +0530 Subject: 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 --- eclass/gnome2-eapi-fixes.eclass | 27 ++++++++ eclass/gnome2-live.eclass | 7 +- eclass/gnome2.eclass | 144 ---------------------------------------- gnome-base/gdm/Manifest | 2 +- gnome-base/gdm/gdm-9999.ebuild | 2 +- 5 files changed, 35 insertions(+), 147 deletions(-) create mode 100644 eclass/gnome2-eapi-fixes.eclass delete mode 100644 eclass/gnome2.eclass 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 +# + +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 -# Modified by Nirbheek Chauhan -# - - -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 diff --git a/gnome-base/gdm/Manifest b/gnome-base/gdm/Manifest index 235ca2e..0dabe80 100644 --- a/gnome-base/gdm/Manifest +++ b/gnome-base/gdm/Manifest @@ -1,4 +1,4 @@ AUX gdm-fix-daemonize-regression.patch 3810 RMD160 4d6cd08ba2cb27f3d4702a7f7d8cb55ba84e2e1f SHA1 c5c0569f2bf5f95ac86389da2c21088755dfd422 SHA256 95725e57a6c19667e7bbf7ac533c031dc6590e869b3a8b93916c5cda9b91ca71 AUX gdm-selinux-remove-attr.patch 503 RMD160 f6281e88fdd718d04667effa938a23286e583770 SHA1 96736ecf27810a055b18890acceac46a25eb8b90 SHA256 cad06b235a669ee342386b9a97502e635c632b0d15b5833b05349c90ea76fb59 DIST gdm-2.20.5-gentoo-files.tar.bz2 3214 RMD160 a075aa94fc3f6f2947bddf46f008979d62cc94d3 SHA1 9654caf36a91a83ffb5d4e53078a70e8c29a0b61 SHA256 47716f35eb1c6875e9c8e42120ff5f65da806aa06f15a48b082a6f5e5a94da83 -EBUILD gdm-9999.ebuild 4560 RMD160 6135a65182949274003ac7c8b936da8146677d21 SHA1 d72f2f1985fda9f3fa930f1a4f8496b32350a17d SHA256 6d008a382a5cff06fa1df41261a4178ecb289066c35eaa1f0169bd97d377a705 +EBUILD gdm-9999.ebuild 4578 RMD160 11a9cbf1370c98120cc82ecdda0c86a1ec62e8fa SHA1 b55cb67ce3a614f53eaadcc48a08225f66127c4c SHA256 affb4a6a3524a5a94eecf195c76352c7f9f9da632eb4a63297d926c5eea2a8f8 diff --git a/gnome-base/gdm/gdm-9999.ebuild b/gnome-base/gdm/gdm-9999.ebuild index 554fc30..ca84240 100644 --- a/gnome-base/gdm/gdm-9999.ebuild +++ b/gnome-base/gdm/gdm-9999.ebuild @@ -3,7 +3,7 @@ # $Header: $ EAPI=2 -inherit eutils pam gnome2 gnome2-live +inherit eutils pam gnome2 gnome2-live gnome2-eapi-fixes DESCRIPTION="GNOME Display Manager" HOMEPAGE="http://www.gnome.org/projects/gdm/" -- cgit v1.2.3