public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Review: aspell-dict-r1.eclass
@ 2017-03-19 21:22 David Seifert
  2017-03-20 14:27 ` William Hubbs
  2017-04-01 10:48 ` David Seifert
  0 siblings, 2 replies; 4+ messages in thread
From: David Seifert @ 2017-03-19 21:22 UTC (permalink / raw
  To: gentoo-dev

This is a revbump of aspell-dict.eclass, in order to bring it up to EAPI 6 standards.
Comment here or on https://github.com/gentoo/gentoo/pull/4237

--- eclass/aspell-dict.eclass
+++ eclass/aspell-dict-r1.eclass
@@ -1,77 +1,89 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
-# @ECLASS: aspell-dict.eclass
+# @ECLASS: aspell-dict-r1.eclass
 # @MAINTAINER:
 # maintainer-needed@gentoo.org
 # @AUTHOR:
 # Original author: Seemant Kulleen
+#      -r1 author: David Seifert
 # @BLURB: An eclass to streamline the construction of ebuilds for new aspell dicts
 # @DESCRIPTION:
-# The aspell-dict eclass is designed to streamline the construction of
+# The aspell-dict-r1 eclass is designed to streamline the construction of
 # ebuilds for the new aspell dictionaries (from gnu.org) which support
 # aspell-0.50. Support for aspell-0.60 has been added by Sergey Ulanov.
 
 # @ECLASS-VARIABLE: ASPELL_LANG
 # @REQUIRED
 # @DESCRIPTION:
-# Which language is the dictionary for? It's used for the DESCRIPTION of the
-# package.
+# Pure cleartext string that is included into DESCRIPTION. This is the name
+# of the language, for instance "Hungarian". Needs to be defined before
+# inheriting the eclass.
+
+# @ECLASS-VARIABLE: ASPELL_VERSION
+# @DESCRIPTION:
+# What major version of aspell is this dictionary for? Valid values are 5, 6 or undefined.
+# This value is used to construct SRC_URI and *DEPEND strings. If defined to 6,
+# >=app-text/aspell-0.60 will be added to DEPEND and RDEPEND, otherwise,
+# >=app-text/aspell-0.50 is added to DEPEND and RDEPEND. If the value is to be overridden,
+# it needs to be overridden before inheriting the eclass.
+
+case ${EAPI:-0} in
+	[0-5])
+		die "aspell-dict-r1.eclass is banned in EAPI ${EAPI:-0}"
+		;;
+	6)
+		;;
+	*)
+		die "Unknown EAPI ${EAPI:-0}"
+		;;
+esac
 
-# @ECLASS-VARIABLE: ASPOSTFIX
-# @REQUIRED
-# @DESCRIPTION:
-# What major version of aspell is this dictionary for?
+EXPORT_FUNCTIONS src_configure src_install
 
-case ${EAPI} in
-	0|1) EXPORT_FUNCTIONS src_compile src_install ;;
-	*) EXPORT_FUNCTIONS src_configure src_compile src_install ;;
-esac
+if [[ ! ${_ASPELL_DICT_R1} ]]; then
+
+# aspell packages have an idiosyncratic versioning scheme, that is
+# the last separating version separator is replaced by a '-'.
+_ASPELL_P=aspell${ASPELL_VERSION}-${PN/aspell-/}-${PV%.*}-${PV##*.}
+
+# @ECLASS-VARIABLE: ASPELL_SPELLANG
+# @DESCRIPTION:
+# Short (readonly) form of the language code, generated from ${PN}
+# For instance, 'aspell-hu' yields the value 'hu'.
+readonly ASPELL_SPELLANG=${PN/aspell-/}
+S="${WORKDIR}/${_ASPELL_P}"
 
-#MY_P=${PN}-${PV%.*}-${PV#*.*.}
-MY_P=${P%.*}-${PV##*.}
-MY_P=aspell${ASPOSTFIX}-${MY_P/aspell-/}
-SPELLANG=${PN/aspell-/}
-S="${WORKDIR}/${MY_P}"
 DESCRIPTION="${ASPELL_LANG} language dictionary for aspell"
 HOMEPAGE="http://aspell.net"
-SRC_URI="mirror://gnu/aspell/dict/${SPELLANG}/${MY_P}.tar.bz2"
+SRC_URI="mirror://gnu/aspell/dict/${ASPELL_SPELLANG}/${_ASPELL_P}.tar.bz2"
+unset _ASPELL_P
 
 IUSE=""
 SLOT="0"
 
-if [ x${ASPOSTFIX} = x6 ] ; then
-	RDEPEND=">=app-text/aspell-0.60"
-	DEPEND="${RDEPEND}"
-else
-	RDEPEND=">=app-text/aspell-0.50"
-	DEPEND="${RDEPEND}"
-fi
+_ASPELL_MAJOR_VERSION=${ASPELL_VERSION:-5}
+[[ ${_ASPELL_MAJOR_VERSION} != [56] ]] && die "{ASPELL_VERSION} is not a valid version"
 
-# @FUNCTION: aspell-dict_src_configure
-# @DESCRIPTION:
-# The aspell-dict src_configure function which is exported.
-aspell-dict_src_configure() {
+RDEPEND=">=app-text/aspell-0.${_ASPELL_MAJOR_VERSION}0"
+DEPEND="${RDEPEND}"
+unset _ASPELL_MAJOR_VERSION
+
+# @FUNCTION: aspell-dict-r1_src_configure
+# @DESCRIPTION:
+# The aspell-dict-r1 src_configure function which is exported.
+aspell-dict-r1_src_configure() {
+	# non-autoconf based script, cannot be used with econf
 	./configure || die
 }
 
-# @FUNCTION: aspell-dict_src_compile
+# @FUNCTION: aspell-dict-r1_src_install
 # @DESCRIPTION:
-# The aspell-dict src_compile function which is exported.
-aspell-dict_src_compile() {
-	case ${EAPI} in
-		0|1) aspell-dict_src_configure ;;
-	esac
-	emake || die
+# The aspell-dict-r1 src_install function which is exported.
+aspell-dict-r1_src_install() {
+	default
+	[[ -s info ]] && dodoc info
 }
 
-# @FUNCTION: aspell-dict_src_install
-# @DESCRIPTION:
-# The aspell-dict src_install function which is exported.
-aspell-dict_src_install() {
-	make DESTDIR="${D}" install || die
-
-	for doc in README info ; do
-		[ -s "$doc" ] && dodoc $doc
-	done
-}
+_ASPELL_DICT_R1=1
+fi


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [gentoo-dev] Review: aspell-dict-r1.eclass
  2017-03-19 21:22 [gentoo-dev] Review: aspell-dict-r1.eclass David Seifert
@ 2017-03-20 14:27 ` William Hubbs
  2017-03-20 18:03   ` Mike Gilbert
  2017-04-01 10:48 ` David Seifert
  1 sibling, 1 reply; 4+ messages in thread
From: William Hubbs @ 2017-03-20 14:27 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 258 bytes --]

Hi David,

I'm curious, why the revbump?

If all other eapis are staying in the eclass and the support is
identical, you don't need to create a new eclass, and there is a lot
less work involved in updating the ebuilds that inherit it. :-)

Thanks,

William


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [gentoo-dev] Review: aspell-dict-r1.eclass
  2017-03-20 14:27 ` William Hubbs
@ 2017-03-20 18:03   ` Mike Gilbert
  0 siblings, 0 replies; 4+ messages in thread
From: Mike Gilbert @ 2017-03-20 18:03 UTC (permalink / raw
  To: Gentoo Dev

On Mon, Mar 20, 2017 at 10:27 AM, William Hubbs <williamh@gentoo.org> wrote:
> Hi David,
>
> I'm curious, why the revbump?
>
> If all other eapis are staying in the eclass and the support is
> identical, you don't need to create a new eclass, and there is a lot
> less work involved in updating the ebuilds that inherit it. :-)

He's making the eclass die for any EAPI other than 6. This breaks
backward compatibility.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [gentoo-dev] Review: aspell-dict-r1.eclass
  2017-03-19 21:22 [gentoo-dev] Review: aspell-dict-r1.eclass David Seifert
  2017-03-20 14:27 ` William Hubbs
@ 2017-04-01 10:48 ` David Seifert
  1 sibling, 0 replies; 4+ messages in thread
From: David Seifert @ 2017-04-01 10:48 UTC (permalink / raw
  To: gentoo-dev

On Sun, 2017-03-19 at 22:22 +0100, David Seifert wrote:
> This is a revbump of aspell-dict.eclass, in order to bring it up to
> EAPI 6 standards.
> Comment here or on https://github.com/gentoo/gentoo/pull/4237
> 
> --- eclass/aspell-dict.eclass
> +++ eclass/aspell-dict-r1.eclass

Merged.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-04-01 10:48 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-03-19 21:22 [gentoo-dev] Review: aspell-dict-r1.eclass David Seifert
2017-03-20 14:27 ` William Hubbs
2017-03-20 18:03   ` Mike Gilbert
2017-04-01 10:48 ` David Seifert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox