summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorNP-Hardass <NP-Hardass@gentoo.org>2016-08-11 02:14:27 -0400
committerNP-Hardass <NP-Hardass@gentoo.org>2016-08-12 01:11:46 -0400
commit27db3020e0efbe90a2d93f48e0a39b50c73cb763 (patch)
tree8c1ce8e59fe5f77340ed933b9d1b03061cf6c5e7 /eclass
parentdev-ruby/gettext_i18n_rails: add 1.8.0 (diff)
downloadgentoo-27db3020e0efbe90a2d93f48e0a39b50c73cb763.tar.gz
gentoo-27db3020e0efbe90a2d93f48e0a39b50c73cb763.tar.bz2
gentoo-27db3020e0efbe90a2d93f48e0a39b50c73cb763.zip
eclass: Add mate{,-desktop.org}.eclass from project repo
Diffstat (limited to 'eclass')
-rw-r--r--eclass/mate-desktop.org.eclass65
-rw-r--r--eclass/mate.eclass149
2 files changed, 214 insertions, 0 deletions
diff --git a/eclass/mate-desktop.org.eclass b/eclass/mate-desktop.org.eclass
new file mode 100644
index 000000000000..6587957a1ccd
--- /dev/null
+++ b/eclass/mate-desktop.org.eclass
@@ -0,0 +1,65 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# @ECLASS: mate-desktop.org.eclass
+# @MAINTAINER:
+# mate@gentoo.org
+# @AUTHOR:
+# Authors: NP-Hardass <NP-Hardass@gentoo.org> based upon the gnome.org eclass.
+# @BLURB: Helper eclass for mate-desktop.org hosted archives
+# @DESCRIPTION:
+# Provide a default SRC_URI and EGIT_REPO_URI for MATE packages as well as
+# exporting some useful values like the MATE_BRANCH
+
+# EAPIs < 6 are banned.
+case "${EAPI:-0}" in
+ 6) ;;
+ *) die "EAPI=${EAPI:-0} is not supported" ;;
+esac
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+fi
+
+inherit versionator
+
+# @ECLASS-VARIABLE: MATE_TARBALL_SUFFIX
+# @INTERNAL
+# @DESCRIPTION:
+# All projects hosted on mate-desktop.org provide tarballs as tar.xz.
+# Undefined in live ebuilds.
+[[ ${PV} != 9999 ]] && : ${MATE_TARBALL_SUFFIX:="xz"}
+
+# @ECLASS-VARIABLE: MATE_DESKTOP_ORG_PN
+# @DESCRIPTION:
+# Name of the package as hosted on mate-desktop.org.
+# Leave unset if package name matches PN.
+: ${MATE_DESKTOP_ORG_PN:=$PN}
+
+# @ECLASS-VARIABLE: MATE_DESKTOP_ORG_PV
+# @DESCRIPTION:
+# Package version string as listed on mate-desktop.org.
+# Leave unset if package version string matches PV.
+: ${MATE_DESKTOP_ORG_PV:=$PV}
+
+# @ECLASS-VARIABLE: MATE_BRANCH
+# @DESCRIPTION:
+# Major and minor numbers of the version number, unless live.
+# If live ebuild, will be set to '9999'.
+: ${MATE_BRANCH:=$(get_version_component_range 1-2)}
+
+# Set SRC_URI or EGIT_REPO_URI based on whether live
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="
+ https://github.com/mate-desktop/${MATE_DESKTOP_ORG_PN}.git
+ git://github.com/mate-desktop/${MATE_DESKTOP_ORG_PN}.git
+ http://github.com/mate-desktop/${MATE_DESKTOP_ORG_PN}.git
+ "
+ SRC_URI=""
+else
+ SRC_URI="http://pub.mate-desktop.org/releases/${MATE_BRANCH}/${MATE_DESKTOP_ORG_PN}-${MATE_DESKTOP_ORG_PV}.tar.${MATE_TARBALL_SUFFIX}"
+fi
+
+# Set HOMEPAGE for all ebuilds
+HOMEPAGE="http://mate-desktop.org"
diff --git a/eclass/mate.eclass b/eclass/mate.eclass
new file mode 100644
index 000000000000..ac134a9bdbb2
--- /dev/null
+++ b/eclass/mate.eclass
@@ -0,0 +1,149 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# @ECLASS: mate.eclass
+# @MAINTAINER:
+# mate@gentoo.org
+# @AUTHOR:
+# Authors: NP-Hardass <NP-Hardass@gentoo.org> based upon the gnome2
+# and autotools-utils eclasses
+# @BLURB: Provides phases for MATE based packages.
+# @DESCRIPTION:
+# Exports portage base functions used by ebuilds written for packages using the
+# MATE framework. Occassionally acts as a wrapper to gnome2 due to the
+# fact that MATE is a GNOME fork. For additional functions, see gnome2-utils.eclass.
+
+# Check EAPI only
+case "${EAPI:-0}" in
+ 6) ;;
+ *) die "EAPI=${EAPI:-0} is not supported" ;;
+esac
+
+# Inherit happens below after declaration of GNOME2_LA_PUNT
+
+# @ECLASS-VARIABLE: MATE_LA_PUNT
+# @DESCRIPTION:
+# Available values for MATE_LA_PUNT:
+# - "no": will not clean any .la files
+# - "yes": will run prune_libtool_files --modules
+# - If it is not set, it will run prune_libtool_files
+# MATE_LA_PUNT is a stub to GNOME2_LA_PUNT
+GNOME2_LA_PUNT=${MATE_LA_PUNT:-""}
+
+inherit gnome2 autotools mate-desktop.org
+
+case "${EAPI:-0}" in
+ 6) EXPORT_FUNCTIONS src_prepare src_configure src_install pkg_preinst pkg_postinst pkg_postrm ;;
+ *) die "EAPI=${EAPI:-0} is not supported" ;;
+esac
+
+# Autotools requires our MATE m4 files
+DEPEND=">=mate-base/mate-common-${MATE_BRANCH}"
+
+# @FUNCTION: mate_py_cond_func_wrap
+# @DESCRIPTION: Wraps a function for conditional python use, to run for each
+# python implementation in the build directory.
+# This function should only be used if the ebuild also inherits the
+# python-r1 eclass
+mate_py_cond_func_wrap() {
+ if [[ ! ${_PYTHON_R1} ]]; then
+ die "This function requires the inheritence of the python-r1 eclass"
+ fi
+ if use python; then
+ python_foreach_impl run_in_build_dir "$@"
+ else
+ $@
+ fi
+}
+
+# @ECLASS-VARIABLE: MATE_FORCE_AUTORECONF
+# @DESCRIPTION:
+# Available values for MATE_FORCE_AUTORECONF:
+# - true: will always run eautoreconf
+# - false: will default to automatic detect
+# - If it is not set, it will default to false
+: ${MATE_FORCE_AUTORECONF:="false"}
+
+# @FUNCTION: ematedocize
+# @DESCRIPTION: A wrapper around mate-doc-common
+ematedocize() {
+ ebegin "Running mate-doc-common --copy"
+ mate-doc-common --copy || die
+ eend $?
+}
+
+# @FUNCTION: want_mate_doc
+# @DESCRIPTION:
+# Returns true/false based on whether eautoreconf should call
+# ematedocize
+want_mate_doc() {
+ grep -q USE_COMMON_DOC_BUILD autogen.sh
+}
+
+# @FUNCTION: mate_src_prepare
+# @DESCRIPTION:
+# Call gnome2_src_prepare to handle environment setup and patching, then
+# call eautoreconf if necessary
+mate_src_prepare() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ local force_autoreconf=${MATE_FORCE_AUTORECONF}
+ [[ ${PV} == 9999 ]] && force_autoreconf="true"
+
+ gen_chksum() {
+ find '(' -name 'Makefile.am' \
+ -o -name 'configure.ac' \
+ -o -name 'configure.in' ')' \
+ -exec cksum {} + | sort -k2
+ }
+
+ local chksum=$(gen_chksum)
+
+ gnome2_src_prepare "$@"
+
+ if [[ "${force_autoreconf}" == "true" ]] || [[ ${chksum} != $(gen_chksum) ]]; then
+ want_mate_doc && ematedocize
+ AT_NOELIBTOOLIZE="yes" eautoreconf # gnome2_src_prepare calls elibtoolize
+ fi
+}
+
+# @FUNCTION: mate_src_configure
+# @DESCRIPTION:
+# MATE specific configure handling
+# Stub to gnome2_src_configure()
+mate_src_configure() {
+ gnome2_src_configure "$@"
+}
+
+# @FUNCTION: mate_src_install
+# @DESCRIPTION:
+# MATE specific install. Stub to gnome2_src_install
+mate_src_install() {
+ gnome2_src_install "$@"
+}
+
+# @FUNCTION: mate_pkg_preinst
+# @DESCRIPTION:
+# Finds Icons, GConf and GSettings schemas for later handling in pkg_postinst
+# Stub to gnome2_pkg_preinst
+mate_pkg_preinst() {
+ gnome2_pkg_preinst "$@"
+}
+
+# @FUNCTION: mate_pkg_postinst
+# @DESCRIPTION:
+# Handle scrollkeeper, GConf, GSettings, Icons, desktop and mime
+# database updates.
+# Stub to gnome2_pkg_postinst
+mate_pkg_postinst() {
+ gnome2_pkg_postinst "$@"
+}
+
+# @FUNCTION: mate_pkg_postrm
+# @DESCRIPTION:
+# Handle scrollkeeper, GSettings, Icons, desktop and mime database updates.
+# Stub to gnome2_pkg_postrm
+mate_pkg_postrm() {
+ gnome2_pkg_postrm "$@"
+}