commit:     e773377026c28a1324d074e8af1039cc8c432eb4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Dec  5 19:55:32 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Dec  6 14:46:42 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e7733770

app-alternatives/yacc: Use app-alternatives.eclass

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 app-alternatives/yacc/yacc-1-r2.ebuild | 60 ++++++++++++++--------------------
 1 file changed, 24 insertions(+), 36 deletions(-)

diff --git a/app-alternatives/yacc/yacc-1-r2.ebuild 
b/app-alternatives/yacc/yacc-1-r2.ebuild
index e748c4e0ab73..2a3e288c2f8b 100644
--- a/app-alternatives/yacc/yacc-1-r2.ebuild
+++ b/app-alternatives/yacc/yacc-1-r2.ebuild
@@ -3,54 +3,42 @@
 
 EAPI=8
 
-DESCRIPTION="yacc symlinks"
-HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Base/Alternatives";
-SRC_URI=""
-S=${WORKDIR}
+ALTERNATIVES=(
+       "bison:>=sys-devel/bison-3.8.2-r1"
+       byacc:dev-util/byacc
+       "reference:>=dev-util/yacc-1.9.1-r7"
+)
+
+inherit app-alternatives
 
-LICENSE="CC0-1.0"
-SLOT="0"
+DESCRIPTION="yacc symlinks"
 KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos 
~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+bison byacc reference"
-REQUIRED_USE="^^ ( bison byacc reference )"
 
 RDEPEND="
-       bison? ( >=sys-devel/bison-3.8.2-r1 )
-       byacc? ( dev-util/byacc )
-       reference? ( >=dev-util/yacc-1.9.1-r7 )
        !<dev-util/yacc-1.9.1-r7
        !<sys-devel/bison-3.8.2-r1
 "
 
 src_install() {
-       if use bison; then
+       local alt=$(get_alternative)
+
+       case ${alt} in
                # bison installs its own small wrapper script 'yacc-bison'
                # around bison(1).
-               dosym yacc.bison /usr/bin/yacc
-               newman - yacc.1 <<<".so yacc.bison.1"
-
-               # Leaving this for now to be safe, as it's closer to 
pre-alternatives
-               # status quo to leave it unset and let autoconf probe for Bison 
by itself
-               # as it prefers it anyway, and might be a CPP-like situation wrt
-               # calling bison or bison -y if YACC is set.
-               #newenvd - 90yacc <<-EOF
-               #       YACC=yacc.bison
-               #EOF
-       elif use byacc; then
-               dosym byacc /usr/bin/yacc
-               newman - yacc.1 <<<".so byacc.1"
-
-               newenvd - 90yacc <<-EOF
-                       YACC=byacc
-               EOF
-       elif use reference; then
-               dosym yacc-reference /usr/bin/yacc
-               newman - yacc.1 <<<".so yacc-reference.1"
-
+               bison) alt=yacc.bison;;
+               reference) alt=yacc-reference;;
+       esac
+
+       dosym "${alt}" /usr/bin/yacc
+       newman - yacc.1 <<<".so ${alt}.1"
+
+       # Leaving this for now to be safe, as it's closer to pre-alternatives
+       # status quo to leave it unset and let autoconf probe for Bison by 
itself
+       # as it prefers it anyway, and might be a CPP-like situation wrt
+       # calling bison or bison -y if YACC is set.
+       if [[ ${alt} != yacc.bison ]]; then
                newenvd - 90yacc <<-EOF
-                       YACC=yacc
+                       YACC=${alt}
                EOF
-       else
-               die "Invalid USE flag combination (broken REQUIRED_USE?)"
        fi
 }

Reply via email to