summaryrefslogtreecommitdiff
path: root/dev-util/yacc/yacc-1.9.1-r6.ebuild
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /dev-util/yacc/yacc-1.9.1-r6.ebuild
reinit the tree, so we can have metadata
Diffstat (limited to 'dev-util/yacc/yacc-1.9.1-r6.ebuild')
-rw-r--r--dev-util/yacc/yacc-1.9.1-r6.ebuild61
1 files changed, 61 insertions, 0 deletions
diff --git a/dev-util/yacc/yacc-1.9.1-r6.ebuild b/dev-util/yacc/yacc-1.9.1-r6.ebuild
new file mode 100644
index 000000000000..0462eee56053
--- /dev/null
+++ b/dev-util/yacc/yacc-1.9.1-r6.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit toolchain-funcs
+
+DESCRIPTION="Yacc: Yet Another Compiler-Compiler"
+HOMEPAGE="http://dinosaur.compilertools.net/#yacc"
+SRC_URI="ftp://metalab.unc.edu/pub/Linux/devel/compiler-tools/${P}.tar.Z"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86"
+
+PATCHES=(
+ # mkstemp patch from byacc ebuild.
+ "${FILESDIR}/${P}-mkstemp.patch"
+
+ # The following patch fixes yacc to run correctly on ia64 (and
+ # other 64-bit arches). See bug 46233.
+ "${FILESDIR}/${P}-ia64.patch"
+
+ # Avoid stack access error. See bug 232005.
+ "${FILESDIR}/${P}-CVE-2008-3196.patch"
+)
+
+src_prepare() {
+ default
+
+ # Use our CFLAGS and LDFLAGS.
+ sed -i -e 's: -O : $(CFLAGS) $(LDFLAGS) :' Makefile || die 'sed failed'
+}
+
+src_compile() {
+ emake clean
+ emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}"
+}
+
+src_install() {
+ dobin "${PN}"
+ doman "${PN}.1"
+ dodoc 00README* ACKNOWLEDGEMENTS NEW_FEATURES NO_WARRANTY NOTES README*
+}
+
+pkg_preinst() {
+ # bison installs a /usr/bin/yacc symlink ...
+ # we need to remove it to avoid triggering
+ # collision-protect errors. See bug 90089.
+ if [[ -L "${ROOT}/usr/bin/${PN}" ]]; then
+ rm -v "${ROOT}/usr/bin/${PN}" || die
+ fi
+}
+
+pkg_postrm() {
+ # and if we uninstall yacc but keep bison,
+ # let's restore the /usr/bin/yacc symlink.
+ if [[ ! -e "${ROOT}/usr/bin/${PN}" ]] && [[ -e "${ROOT}/usr/bin/${PN}.bison" ]]; then
+ ln -s yacc.bison "${ROOT}/usr/bin/${PN}" || die
+ fi
+}