summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrice Clement <monsieurp@gentoo.org>2016-06-01 07:13:51 +0000
committerPatrice Clement <monsieurp@gentoo.org>2016-06-01 07:14:05 +0000
commit3541cb30d8e99d81178a468f709f9f4f821e55d1 (patch)
tree8b595ee2a75d185cc402be67059d4125d623c177 /dev-util/yacc
parentdev-python/mockredispy: add mockredispy-2.9.3 (diff)
downloadgentoo-3541cb30d8e99d81178a468f709f9f4f821e55d1.tar.gz
gentoo-3541cb30d8e99d81178a468f709f9f4f821e55d1.tar.bz2
gentoo-3541cb30d8e99d81178a468f709f9f4f821e55d1.zip
dev-util/yacc: Housekeeping + EAPI 6 bump.
Package-Manager: portage-2.2.28
Diffstat (limited to 'dev-util/yacc')
-rw-r--r--dev-util/yacc/files/yacc-1.9.1-mkstemp.patch15
-rw-r--r--dev-util/yacc/yacc-1.9.1-r6.ebuild66
2 files changed, 81 insertions, 0 deletions
diff --git a/dev-util/yacc/files/yacc-1.9.1-mkstemp.patch b/dev-util/yacc/files/yacc-1.9.1-mkstemp.patch
new file mode 100644
index 000000000000..5c72a6e9bc14
--- /dev/null
+++ b/dev-util/yacc/files/yacc-1.9.1-mkstemp.patch
@@ -0,0 +1,15 @@
+--- a/main.c.orig 2002-12-17 14:28:54.000000000 -0500
++++ b/main.c 2002-12-17 14:29:31.000000000 -0500
+@@ -264,9 +264,9 @@
+ text_file_name[len + 5] = 't';
+ union_file_name[len + 5] = 'u';
+
+- mktemp(action_file_name);
+- mktemp(text_file_name);
+- mktemp(union_file_name);
++ mkstemp(action_file_name);
++ mkstemp(text_file_name);
++ mkstemp(union_file_name);
+
+ len = strlen(file_prefix);
+
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..a8e9e4d6efbf
--- /dev/null
+++ b/dev-util/yacc/yacc-1.9.1-r6.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit eutils 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"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+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, 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 #90089
+ if [[ -L ${ROOT}/usr/bin/yacc ]]; then
+ rm -v "${ROOT}"/usr/bin/yacc || die
+ fi
+}
+
+pkg_postrm() {
+ # and if we uninstall yacc but keep bison,
+ # lets restore the /usr/bin/yacc symlink
+ if [[ ! -e ${ROOT}/usr/bin/yacc ]] && [[ -e ${ROOT}/usr/bin/yacc.bison ]]; then
+ ln -s yacc.bison "${ROOT}"/usr/bin/yacc || die
+ fi
+}