sys-devel/autoconf: [QA] Convert from eblits into an eclass, #586424
authorMichał Górny <mgorny@gentoo.org>
Thu, 16 Mar 2017 08:32:14 +0000 (09:32 +0100)
committerMichał Górny <mgorny@gentoo.org>
Fri, 24 Mar 2017 19:39:30 +0000 (20:39 +0100)
Convert the usage of eblits in sys-devel/autoconf into an equivalent
eclass. This makes the ebuilds more readable, more predictable and fixes
compliance with stricter versions of the package manager (i.e. a future
release of Portage).

16 files changed:
eclass/toolchain-autoconf.eclass [new file with mode: 0644]
sys-devel/autoconf/autoconf-2.13.ebuild
sys-devel/autoconf/autoconf-2.59-r7.ebuild
sys-devel/autoconf/autoconf-2.61-r2.ebuild
sys-devel/autoconf/autoconf-2.62-r1.ebuild
sys-devel/autoconf/autoconf-2.63-r1.ebuild
sys-devel/autoconf/autoconf-2.64.ebuild
sys-devel/autoconf/autoconf-2.65-r1.ebuild
sys-devel/autoconf/autoconf-2.67.ebuild
sys-devel/autoconf/autoconf-2.68.ebuild
sys-devel/autoconf/autoconf-2.69-r2.ebuild
sys-devel/autoconf/autoconf-9999.ebuild
sys-devel/autoconf/files/eblits/main.eblit [deleted file]
sys-devel/autoconf/files/eblits/src_configure.eblit [deleted file]
sys-devel/autoconf/files/eblits/src_install.eblit [deleted file]
sys-devel/autoconf/files/eblits/src_prepare.eblit [deleted file]

diff --git a/eclass/toolchain-autoconf.eclass b/eclass/toolchain-autoconf.eclass
new file mode 100644 (file)
index 0000000..59057b8
--- /dev/null
@@ -0,0 +1,70 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# @ECLASS: toolchain-autoconf.eclass
+# @MAINTAINER:
+# <base-system@gentoo.org>
+# @BLURB: Common code for sys-devel/autoconf ebuilds
+# @DESCRIPTION:
+# This eclass contains the common phase functions migrated from
+# sys-devel/autoconf eblits.
+
+if [[ -z ${_TOOLCHAIN_AUTOCONF_ECLASS} ]]; then
+
+inherit eutils
+
+EXPORT_FUNCTIONS src_prepare src_configure src_install
+
+toolchain-autoconf_src_prepare() {
+       find -name Makefile.in -exec sed -i '/^pkgdatadir/s:$:-@VERSION@:' {} + || die
+
+       [[ ${#PATCHES[@]} -gt 0 ]] && epatch "${PATCHES[@]}"
+}
+
+toolchain-autoconf_src_configure() {
+       # Disable Emacs in the build system since it is in a separate package.
+       export EMACS=no
+       econf --program-suffix="-${PV}" || die
+       # econf updates config.{sub,guess} which forces the manpages
+       # to be regenerated which we dont want to do #146621
+       touch man/*.1
+}
+
+# slot the info pages.  do this w/out munging the source so we don't have
+# to depend on texinfo to regen things.  #464146 (among others)
+slot_info_pages() {
+       [[ ${SLOT} == "0" ]] && return
+
+       pushd "${ED}"/usr/share/info >/dev/null || die
+       rm -f dir || die
+
+       # Rewrite all the references to other pages.
+       # before: * aclocal-invocation: (automake)aclocal Invocation.   Generating aclocal.m4.
+       # after:  * aclocal-invocation v1.13: (automake-1.13)aclocal Invocation.   Generating aclocal.m4.
+       local p pages=( *.info ) args=()
+       for p in "${pages[@]/%.info}" ; do
+               args+=(
+                       -e "/START-INFO-DIR-ENTRY/,/END-INFO-DIR-ENTRY/s|: (${p})| v${SLOT}&|"
+                       -e "s:(${p}):(${p}-${SLOT}):g"
+               )
+       done
+       sed -i "${args[@]}" * || die
+
+       # Rewrite all the file references, and rename them in the process.
+       local f d
+       for f in * ; do
+               d=${f/.info/-${SLOT}.info}
+               mv "${f}" "${d}" || die
+               sed -i -e "s:${f}:${d}:g" * || die
+       done
+
+       popd >/dev/null || die
+}
+
+toolchain-autoconf_src_install() {
+       default
+       slot_info_pages
+}
+
+_TOOLCHAIN_AUTOCONF_ECLASS=1
+fi
index 7cc31570e93135bf34811cb00dcca99b7d1cee8c..4a48b2723e232e6ea4ce9d04b1d8329519fdcd30 100644 (file)
@@ -3,7 +3,7 @@
 
 EAPI="5"
 
-inherit eutils
+inherit toolchain-autoconf
 
 DESCRIPTION="Used to create autoconfiguration files"
 HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
@@ -26,12 +26,6 @@ PATCHES=(
        "${FILESDIR}"/${P}-test-fixes.patch #146592
 )
 
-if [[ -z ${__EBLITS__} && -n ${FILESDIR} ]] ; then
-       source "${FILESDIR}"/eblits/main.eblit || die
-fi
-src_prepare()   { eblit-run src_prepare   ; }
-src_install()   { eblit-run src_install   ; }
-
 src_configure() {
        touch configure # make sure configure is newer than configure.in
 
index dbcbdf9ef0052b41bc60807d64eb4b282c98333f..7eade81835170c1c83e9a256e5d1d68fc6650002 100644 (file)
@@ -1,9 +1,9 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="5"
 
-inherit eutils
+inherit toolchain-autoconf
 
 DESCRIPTION="Used to create autoconfiguration files"
 HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
@@ -23,10 +23,3 @@ RDEPEND="${DEPEND}
 PATCHES=(
        "${FILESDIR}"/${P}-more-quotes.patch
 )
-
-if [[ -z ${__EBLITS__} && -n ${FILESDIR} ]] ; then
-       source "${FILESDIR}"/eblits/main.eblit || die
-fi
-src_prepare()   { eblit-run src_prepare   ; }
-src_configure() { eblit-run src_configure ; }
-src_install()   { eblit-run src_install   ; }
index 7af545f918e931c5a00981b231115ee13bb1a8d0..e1fedced320447d66fb887a11b8cdc491b5e1fb5 100644 (file)
@@ -1,9 +1,9 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="5"
 
-inherit eutils
+inherit toolchain-autoconf
 
 DESCRIPTION="Used to create autoconfiguration files"
 HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
@@ -24,13 +24,6 @@ PATCHES=(
        "${FILESDIR}"/${P}-GETMNTENT.patch
 )
 
-if [[ -z ${__EBLITS__} && -n ${FILESDIR} ]] ; then
-       source "${FILESDIR}"/eblits/main.eblit || die
-fi
-src_prepare()   { eblit-run src_prepare   ; }
-src_configure() { eblit-run src_configure ; }
-src_install()   { eblit-run src_install   ; }
-
 src_compile() {
        # From configure output:
        # Parallel builds via `make -jN' do not work.
index 30cec8f13d428ca1a236eacc7787a81d0250334c..574a0af6ce74dd711c145472d6cc5757b6c01021 100644 (file)
@@ -1,9 +1,9 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="5"
 
-inherit eutils
+inherit toolchain-autoconf
 
 DESCRIPTION="Used to create autoconfiguration files"
 HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
@@ -25,10 +25,3 @@ PATCHES=(
        "${FILESDIR}"/${P}-at-keywords.patch
        "${FILESDIR}"/${P}-fix-multiline-string.patch #217976
 )
-
-if [[ -z ${__EBLITS__} && -n ${FILESDIR} ]] ; then
-       source "${FILESDIR}"/eblits/main.eblit || die
-fi
-src_prepare()   { eblit-run src_prepare   ; }
-src_configure() { eblit-run src_configure ; }
-src_install()   { eblit-run src_install   ; }
index 62d7a8200fc57b86d282c25aad73cebe90afaa35..0df070c98765a79068700f4e23f8e2533b503e78 100644 (file)
@@ -1,9 +1,9 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="5"
 
-inherit eutils
+inherit toolchain-autoconf
 
 DESCRIPTION="Used to create autoconfiguration files"
 HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
@@ -23,10 +23,3 @@ RDEPEND="${DEPEND}
 PATCHES=(
        "${FILESDIR}"/${P}-sh.patch #264303
 )
-
-if [[ -z ${__EBLITS__} && -n ${FILESDIR} ]] ; then
-       source "${FILESDIR}"/eblits/main.eblit || die
-fi
-src_prepare()   { eblit-run src_prepare   ; }
-src_configure() { eblit-run src_configure ; }
-src_install()   { eblit-run src_install   ; }
index d08d4440b413615fe8a7d48cf99c1c3189b702e5..572f9e3322afb28cfb0b7778374a443d9311a690 100644 (file)
@@ -1,8 +1,10 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="5"
 
+inherit toolchain-autoconf
+
 DESCRIPTION="Used to create autoconfiguration files"
 HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
 SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
@@ -17,10 +19,3 @@ DEPEND=">=sys-devel/m4-1.4.6
 RDEPEND="${DEPEND}
        !~sys-devel/${P}:2.5
        >=sys-devel/autoconf-wrapper-13"
-
-if [[ -z ${__EBLITS__} && -n ${FILESDIR} ]] ; then
-       source "${FILESDIR}"/eblits/main.eblit || die
-fi
-src_prepare()   { eblit-run src_prepare   ; }
-src_configure() { eblit-run src_configure ; }
-src_install()   { eblit-run src_install   ; }
index ad91592374e242c0ccfb470f917122d9d8914bab..1354433f9d335c3300de5b3efbcc80ab6c587874 100644 (file)
@@ -1,9 +1,9 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="5"
 
-inherit eutils
+inherit toolchain-autoconf
 
 DESCRIPTION="Used to create autoconfiguration files"
 HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
@@ -23,10 +23,3 @@ RDEPEND="${DEPEND}
 PATCHES=(
        "${FILESDIR}"/${P}-AC_TYPE_INT_T.patch #324649
 )
-
-if [[ -z ${__EBLITS__} && -n ${FILESDIR} ]] ; then
-       source "${FILESDIR}"/eblits/main.eblit || die
-fi
-src_prepare()   { eblit-run src_prepare   ; }
-src_configure() { eblit-run src_configure ; }
-src_install()   { eblit-run src_install   ; }
index 0bfcaee59fb87f65353ed8732c59e63615aafae0..4290fee757514d8db694f3f4319d3139cb460d03 100644 (file)
@@ -1,8 +1,10 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="5"
 
+inherit toolchain-autoconf
+
 DESCRIPTION="Used to create autoconfiguration files"
 HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
 SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
@@ -17,10 +19,3 @@ DEPEND=">=sys-devel/m4-1.4.6
 RDEPEND="${DEPEND}
        !~sys-devel/${P}:2.5
        >=sys-devel/autoconf-wrapper-13"
-
-if [[ -z ${__EBLITS__} && -n ${FILESDIR} ]] ; then
-       source "${FILESDIR}"/eblits/main.eblit || die
-fi
-src_prepare()   { eblit-run src_prepare   ; }
-src_configure() { eblit-run src_configure ; }
-src_install()   { eblit-run src_install   ; }
index 0bfcaee59fb87f65353ed8732c59e63615aafae0..4290fee757514d8db694f3f4319d3139cb460d03 100644 (file)
@@ -1,8 +1,10 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="5"
 
+inherit toolchain-autoconf
+
 DESCRIPTION="Used to create autoconfiguration files"
 HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
 SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
@@ -17,10 +19,3 @@ DEPEND=">=sys-devel/m4-1.4.6
 RDEPEND="${DEPEND}
        !~sys-devel/${P}:2.5
        >=sys-devel/autoconf-wrapper-13"
-
-if [[ -z ${__EBLITS__} && -n ${FILESDIR} ]] ; then
-       source "${FILESDIR}"/eblits/main.eblit || die
-fi
-src_prepare()   { eblit-run src_prepare   ; }
-src_configure() { eblit-run src_configure ; }
-src_install()   { eblit-run src_install   ; }
index fd7f617cb4a2fbea0acaa9713219f93930b0b051..0acd57e4e7780cbbc748db5ee5f54d5115671fea 100644 (file)
@@ -3,8 +3,6 @@
 
 EAPI="5"
 
-inherit eutils
-
 if [[ ${PV} == "9999" ]] ; then
        EGIT_REPO_URI="git://git.savannah.gnu.org/${PN}.git
                http://git.savannah.gnu.org/r/${PN}.git"
@@ -17,6 +15,8 @@ else
        KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
 fi
 
+inherit toolchain-autoconf
+
 DESCRIPTION="Used to create autoconfiguration files"
 HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
 
@@ -32,14 +32,9 @@ RDEPEND="${DEPEND}
 [[ ${PV} == "9999" ]] && DEPEND+=" >=sys-apps/texinfo-4.3"
 PDEPEND="emacs? ( app-emacs/autoconf-mode )"
 
-if [[ -z ${__EBLITS__} && -n ${FILESDIR} ]] ; then
-       source "${FILESDIR}"/eblits/main.eblit || die
-fi
 src_prepare()   {
        # usr/bin/libtool is provided by binutils-apple, need gnu libtool
        [[ ${CHOST} == *-darwin* ]] && \
                PATCHES+=( "${FILESDIR}"/${PN}-2.61-darwin.patch )
-       eblit-run src_prepare
+       toolchain-autoconf_src_prepare
 }
-src_configure() { eblit-run src_configure ; }
-src_install()   { eblit-run src_install   ; }
index e54426475c8d114528607b67ba716df392a9badc..9495cddbedd91d95ce618695ba11ccf91464d1ac 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="5"
@@ -15,6 +15,8 @@ else
        KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~arm-linux ~x86-linux"
 fi
 
+inherit toolchain-autoconf
+
 DESCRIPTION="Used to create autoconfiguration files"
 HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
 
@@ -30,18 +32,13 @@ RDEPEND="${DEPEND}
 [[ ${PV} == "9999" ]] && DEPEND+=" >=sys-apps/texinfo-4.3"
 PDEPEND="emacs? ( app-emacs/autoconf-mode )"
 
-if [[ -z ${__EBLITS__} && -n ${FILESDIR} ]] ; then
-       source "${FILESDIR}"/eblits/main.eblit || die
-fi
-src_prepare()   { eblit-run src_prepare   ; }
-src_configure() { eblit-run src_configure ; }
-src_install()   { eblit-run src_install   ; }
-
-eblit-src_prepare-pre() {
+src_prepare() {
        # Avoid the "dirty" suffix in the git version by generating it
        # before we run later stages which might modify source files.
        local ver=$(./build-aux/git-version-gen .tarball-version)
        echo "${ver}" > .tarball-version
 
        autoreconf -f -i || die
+
+       toolchain-autoconf_src_prepare
 }
diff --git a/sys-devel/autoconf/files/eblits/main.eblit b/sys-devel/autoconf/files/eblits/main.eblit
deleted file mode 100644 (file)
index 66b1fe2..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-__EBLITS__="locked-and-loaded"
-
-# eblit-include [--skip] <function> [version]
-eblit-include() {
-       local skipable=false
-       [[ $1 == "--skip" ]] && skipable=true && shift
-       [[ $1 == pkg_* ]] && skipable=true
-
-       local e v func=$1 ver=$2
-       [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]"
-       for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
-               e="${FILESDIR}/eblits/${func}${v}.eblit"
-               if [[ -e ${e} ]] ; then
-                       source "${e}"
-                       return 0
-               fi
-       done
-       ${skipable} && return 0
-       die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
-}
-
-# eblit-run-maybe <function>
-# run the specified function if it is defined
-eblit-run-maybe() {
-       [[ $(type -t "$@") == "function" ]] && "$@"
-}
-
-# eblit-run <function> [version]
-# aka: src_unpack() { eblit-run src_unpack ; }
-eblit-run() {
-       eblit-include --skip common "${*:2}"
-       eblit-include "$@"
-       eblit-run-maybe eblit-$1-pre
-       eblit-${PN}-$1
-       eblit-run-maybe eblit-$1-post
-}
-
-# Copy these into the ebuilds.
-#src_unpack()    { eblit-run src_unpack    ; }
-#src_prepare()   { eblit-run src_prepare   ; }
-#src_configure() { eblit-run src_configure ; }
-#src_compile()   { eblit-run src_compile   ; }
-#src_test()      { eblit-run src_test      ; }
-#src_install()   { eblit-run src_install   ; }
diff --git a/sys-devel/autoconf/files/eblits/src_configure.eblit b/sys-devel/autoconf/files/eblits/src_configure.eblit
deleted file mode 100644 (file)
index 680a38f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-eblit-autoconf-src_configure() {
-       # Disable Emacs in the build system since it is in a separate package.
-       export EMACS=no
-       econf --program-suffix="-${PV}" || die
-       # econf updates config.{sub,guess} which forces the manpages
-       # to be regenerated which we dont want to do #146621
-       touch man/*.1
-}
diff --git a/sys-devel/autoconf/files/eblits/src_install.eblit b/sys-devel/autoconf/files/eblits/src_install.eblit
deleted file mode 100644 (file)
index b64381c..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-# slot the info pages.  do this w/out munging the source so we don't have
-# to depend on texinfo to regen things.  #464146 (among others)
-slot_info_pages() {
-       [[ ${SLOT} == "0" ]] && return
-
-       pushd "${ED}"/usr/share/info >/dev/null
-       rm -f dir
-
-       # Rewrite all the references to other pages.
-       # before: * aclocal-invocation: (automake)aclocal Invocation.   Generating aclocal.m4.
-       # after:  * aclocal-invocation v1.13: (automake-1.13)aclocal Invocation.   Generating aclocal.m4.
-       local p pages=( *.info ) args=()
-       for p in "${pages[@]/%.info}" ; do
-               args+=(
-                       -e "/START-INFO-DIR-ENTRY/,/END-INFO-DIR-ENTRY/s|: (${p})| v${SLOT}&|"
-                       -e "s:(${p}):(${p}-${SLOT}):g"
-               )
-       done
-       sed -i "${args[@]}" * || die
-
-       # Rewrite all the file references, and rename them in the process.
-       local f d
-       for f in * ; do
-               d=${f/.info/-${SLOT}.info}
-               mv "${f}" "${d}" || die
-               sed -i -e "s:${f}:${d}:g" * || die
-       done
-
-       popd >/dev/null
-}
-
-eblit-autoconf-src_install() {
-       default
-       slot_info_pages
-}
diff --git a/sys-devel/autoconf/files/eblits/src_prepare.eblit b/sys-devel/autoconf/files/eblits/src_prepare.eblit
deleted file mode 100644 (file)
index b34fbfc..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-eblit-autoconf-src_prepare() {
-       find -name Makefile.in -exec sed -i '/^pkgdatadir/s:$:-@VERSION@:' {} +
-
-       [[ ${#PATCHES[@]} -gt 0 ]] && epatch "${PATCHES[@]}"
-}