Here's a diff of the changes based on feedback from this ML, followed by the full eclasses.
Once again, thanks for all the feedback.
--
NP-Hardass
diff --git a/eclass/mate-desktop.org.eclass b/eclass/mate-desktop.org.eclass
index 5f92c4f..c57528d 100644
--- a/eclass/mate-desktop.org.eclass
+++ b/eclass/mate-desktop.org.eclass
@@ -12,22 +12,16 @@
# Provide a default SRC_URI and EGIT_REPO_URI for MATE packages as well as
# exporting some useful values like the MATE_BRANCH
-# Old EAPIs are banned.
-case "${EAPI:-0}" in
- 5|6) ;;
- *) die "EAPI=${EAPI} is not supported" ;;
-esac
+# EAPIs < 6 are banned.
+if [[ "${EAPI:-0}" != "6" ]]; then
+ die "EAPI=${EAPI:-0} is not supported"
+fi
if [[ ${PV} == 9999 ]]; then
inherit git-r3
-else
- inherit versionator
fi
-# Ensure availibility of xz-utils on old EAPIs
-if [[ "${EAPI:-0}" -lt "6" ]]; then
- DEPEND="app-arch/xz-utils"
-fi
+inherit versionator
# @ECLASS-VARIABLE: MATE_TARBALL_SUFFIX
# @INTERNAL
@@ -52,11 +46,7 @@ fi
# @DESCRIPTION:
# Major and minor numbers of the version number, unless live.
# If live ebuild, will be set to '9999'.
-if [[ ${PV} == 9999 ]]; then
- : ${MATE_BRANCH:=9999}
-else
- : ${MATE_BRANCH:=$(get_version_component_range 1-2)}
-fi
+: ${MATE_BRANCH:=$(get_version_component_range 1-2)}
# Set SRC_URI or EGIT_REPO_URI based on whether live
if [[ ${PV} == 9999 ]]; then
@@ -72,6 +62,3 @@ fi
# Set HOMEPAGE for all ebuilds
HOMEPAGE="http://mate-desktop.org"
-
-# Set default SLOT for all ebuilds
-SLOT="0"
diff --git a/eclass/mate.eclass b/eclass/mate.eclass
index a0209bf..074ed8d 100644
--- a/eclass/mate.eclass
+++ b/eclass/mate.eclass
@@ -15,10 +15,9 @@
# fact that MATE is a GNOME fork. For additional functions, see
gnome2-utils.eclass.
# Check EAPI only
-case "${EAPI:-0}" in
- 5|6) ;;
- *) die "EAPI=${EAPI} is not supported" ;;
-esac
+if [[ "${EAPI:-0}" != "6" ]]; then
+ die "EAPI=${EAPI:-0} is not supported"
+fi
# Inherit happens below after declaration of GNOME2_LA_PUNT
@@ -33,20 +32,19 @@ GNOME2_LA_PUNT=${MATE_LA_PUNT:-""}
inherit gnome2 autotools mate-desktop.org
-case "${EAPI:-0}" in
- 5|6)
- EXPORT_FUNCTIONS src_prepare src_configure src_install
pkg_preinst
pkg_postinst pkg_postrm
- ;;
- *) die "EAPI=${EAPI} is not supported" ;;
-esac
+if [[ "${EAPI:-0}" == "6" ]]; then
+ EXPORT_FUNCTIONS src_prepare src_configure src_install pkg_preinst
pkg_postinst pkg_postrm
+fi
# Autotools requires our MATE m4 files
DEPEND=">=mate-base/mate-common-${MATE_BRANCH}"
-# @FUNCTION: python_cond_func_wrap
+# @FUNCTION: mate_py_cond_func_wrap
# @DESCRIPTION: Wraps a function for conditional python use, to run for
each
# python implementation in the build directory.
-python_cond_func_wrap() {
+# This function should only be used if the ebuild also inherits the
+# python-r1 eclass
+mate_py_cond_func_wrap() {
if use python; then
python_foreach_impl run_in_build_dir "$@"
else
@@ -60,7 +58,7 @@ python_cond_func_wrap() {
# - true: will always run eautoreconf
# - false: will default to automatic detect
# - If it is not set, it will default to false
-FORCE_AUTORECONF=${FORCE_AUTORECONF:-""}
+: ${MATE_FORCE_AUTORECONF:="false"}
# @FUNCTION: ematedocize
# @DESCRIPTION: A wrapper around mate-doc-common
@@ -85,8 +83,8 @@ want_mate_doc() {
mate_src_prepare() {
debug-print-function ${FUNCNAME} "$@"
- local force_autoreconf=${FORCE_AUTORECONF:-false}
- [[ ${PV} == 9999 ]] && force_autoreconf=true
+ local force_autoreconf=${MATE_FORCE_AUTORECONF}
+ [[ ${PV} == 9999 ]] && force_autoreconf="true"
gen_chksum() {
find '(' -name 'Makefile.am' \
@@ -99,8 +97,8 @@ mate_src_prepare() {
gnome2_src_prepare "$@"
- if ${force_autoreconf} || [[ ${chksum} != $(gen_chksum) ]]; then
- [[ want_mate_doc ]] && ematedocize
+ if [[ "${force_autoreconf}" == "true" ]] || [[ ${chksum} !=
$(gen_chksum) ]]; then
+ want_mate_doc && ematedocize
eautoreconf
fi
}
########################################################################
mate-desktop.org.eclass
########################################################################
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
# @ECLASS: mate-desktop.org.eclass
# @MAINTAINER:
# [email protected]
# @AUTHOR:
# Authors: NP-Hardass <[email protected]> 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.
if [[ "${EAPI:-0}" != "6" ]]; then
die "EAPI=${EAPI:-0} is not supported"
fi
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"
########################################################################
mate.eclass
########################################################################
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
# @ECLASS: mate.eclass
# @MAINTAINER:
# [email protected]
# @AUTHOR:
# Authors: NP-Hardass <[email protected]> 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
if [[ "${EAPI:-0}" != "6" ]]; then
die "EAPI=${EAPI:-0} is not supported"
fi
# 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
if [[ "${EAPI:-0}" == "6" ]]; then
EXPORT_FUNCTIONS src_prepare src_configure src_install pkg_preinst
pkg_postinst pkg_postrm
fi
# 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 use python; then
python_foreach_impl run_in_build_dir "$@"
else
$@
fi
}
# @ECLASS-VARIABLE: FORCE_AUTORECONF
# @DESCRIPTION:
# Available values for 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
eautoreconf
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 "$@"
}
# Copyright 1999-2016 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ # @ECLASS: mate.eclass # @MAINTAINER: # [email protected] # @AUTHOR: # Authors: NP-Hardass <[email protected]> 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 if [[ "${EAPI:-0}" != "6" ]]; then die "EAPI=${EAPI:-0} is not supported" fi # 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 if [[ "${EAPI:-0}" == "6" ]]; then EXPORT_FUNCTIONS src_prepare src_configure src_install pkg_preinst pkg_postinst pkg_postrm fi # 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 use python; then python_foreach_impl run_in_build_dir "$@" else $@ fi } # @ECLASS-VARIABLE: FORCE_AUTORECONF # @DESCRIPTION: # Available values for 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 eautoreconf 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 "$@" }
# Copyright 1999-2016 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ # @ECLASS: mate-desktop.org.eclass # @MAINTAINER: # [email protected] # @AUTHOR: # Authors: NP-Hardass <[email protected]> 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. if [[ "${EAPI:-0}" != "6" ]]; then die "EAPI=${EAPI:-0} is not supported" fi 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-desktop.org.eclass b/eclass/mate-desktop.org.eclass
index 5f92c4f..c57528d 100644
--- a/eclass/mate-desktop.org.eclass
+++ b/eclass/mate-desktop.org.eclass
@@ -12,22 +12,16 @@
# Provide a default SRC_URI and EGIT_REPO_URI for MATE packages as well as
# exporting some useful values like the MATE_BRANCH
-# Old EAPIs are banned.
-case "${EAPI:-0}" in
- 5|6) ;;
- *) die "EAPI=${EAPI} is not supported" ;;
-esac
+# EAPIs < 6 are banned.
+if [[ "${EAPI:-0}" != "6" ]]; then
+ die "EAPI=${EAPI:-0} is not supported"
+fi
if [[ ${PV} == 9999 ]]; then
inherit git-r3
-else
- inherit versionator
fi
-# Ensure availibility of xz-utils on old EAPIs
-if [[ "${EAPI:-0}" -lt "6" ]]; then
- DEPEND="app-arch/xz-utils"
-fi
+inherit versionator
# @ECLASS-VARIABLE: MATE_TARBALL_SUFFIX
# @INTERNAL
@@ -52,11 +46,7 @@ fi
# @DESCRIPTION:
# Major and minor numbers of the version number, unless live.
# If live ebuild, will be set to '9999'.
-if [[ ${PV} == 9999 ]]; then
- : ${MATE_BRANCH:=9999}
-else
- : ${MATE_BRANCH:=$(get_version_component_range 1-2)}
-fi
+: ${MATE_BRANCH:=$(get_version_component_range 1-2)}
# Set SRC_URI or EGIT_REPO_URI based on whether live
if [[ ${PV} == 9999 ]]; then
@@ -72,6 +62,3 @@ fi
# Set HOMEPAGE for all ebuilds
HOMEPAGE="http://mate-desktop.org"
-
-# Set default SLOT for all ebuilds
-SLOT="0"
diff --git a/eclass/mate.eclass b/eclass/mate.eclass
index a0209bf..074ed8d 100644
--- a/eclass/mate.eclass
+++ b/eclass/mate.eclass
@@ -15,10 +15,9 @@
# fact that MATE is a GNOME fork. For additional functions, see gnome2-utils.eclass.
# Check EAPI only
-case "${EAPI:-0}" in
- 5|6) ;;
- *) die "EAPI=${EAPI} is not supported" ;;
-esac
+if [[ "${EAPI:-0}" != "6" ]]; then
+ die "EAPI=${EAPI:-0} is not supported"
+fi
# Inherit happens below after declaration of GNOME2_LA_PUNT
@@ -33,20 +32,19 @@ GNOME2_LA_PUNT=${MATE_LA_PUNT:-""}
inherit gnome2 autotools mate-desktop.org
-case "${EAPI:-0}" in
- 5|6)
- EXPORT_FUNCTIONS src_prepare src_configure src_install pkg_preinst pkg_postinst pkg_postrm
- ;;
- *) die "EAPI=${EAPI} is not supported" ;;
-esac
+if [[ "${EAPI:-0}" == "6" ]]; then
+ EXPORT_FUNCTIONS src_prepare src_configure src_install pkg_preinst pkg_postinst pkg_postrm
+fi
# Autotools requires our MATE m4 files
DEPEND=">=mate-base/mate-common-${MATE_BRANCH}"
-# @FUNCTION: python_cond_func_wrap
+# @FUNCTION: mate_py_cond_func_wrap
# @DESCRIPTION: Wraps a function for conditional python use, to run for each
# python implementation in the build directory.
-python_cond_func_wrap() {
+# This function should only be used if the ebuild also inherits the
+# python-r1 eclass
+mate_py_cond_func_wrap() {
if use python; then
python_foreach_impl run_in_build_dir "$@"
else
@@ -60,7 +58,7 @@ python_cond_func_wrap() {
# - true: will always run eautoreconf
# - false: will default to automatic detect
# - If it is not set, it will default to false
-FORCE_AUTORECONF=${FORCE_AUTORECONF:-""}
+: ${MATE_FORCE_AUTORECONF:="false"}
# @FUNCTION: ematedocize
# @DESCRIPTION: A wrapper around mate-doc-common
@@ -85,8 +83,8 @@ want_mate_doc() {
mate_src_prepare() {
debug-print-function ${FUNCNAME} "$@"
- local force_autoreconf=${FORCE_AUTORECONF:-false}
- [[ ${PV} == 9999 ]] && force_autoreconf=true
+ local force_autoreconf=${MATE_FORCE_AUTORECONF}
+ [[ ${PV} == 9999 ]] && force_autoreconf="true"
gen_chksum() {
find '(' -name 'Makefile.am' \
@@ -99,8 +97,8 @@ mate_src_prepare() {
gnome2_src_prepare "$@"
- if ${force_autoreconf} || [[ ${chksum} != $(gen_chksum) ]]; then
- [[ want_mate_doc ]] && ematedocize
+ if [[ "${force_autoreconf}" == "true" ]] || [[ ${chksum} != $(gen_chksum) ]]; then
+ want_mate_doc && ematedocize
eautoreconf
fi
}
signature.asc
Description: OpenPGP digital signature
