Create correct /usr/bin/yacc symlink after removing yacc
authorHarald van Dijk <truedfx@gentoo.org>
Wed, 17 Jan 2007 13:07:13 +0000 (13:07 +0000)
committerHarald van Dijk <truedfx@gentoo.org>
Wed, 17 Jan 2007 13:07:13 +0000 (13:07 +0000)
Package-Manager: portage-2.1.2

dev-util/yacc/ChangeLog
dev-util/yacc/files/digest-yacc-1.9.1-r3 [new file with mode: 0644]
dev-util/yacc/yacc-1.9.1-r3.ebuild [new file with mode: 0644]

index ed5579bd4e1b1c7b21814ebbbfd9776c117a38f3..4aa276941567a77c27ee2cba4a5a9a31cddc367a 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for dev-util/yacc
-# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-util/yacc/ChangeLog,v 1.16 2005/08/18 22:55:37 matsuu Exp $
+# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-util/yacc/ChangeLog,v 1.17 2007/01/17 13:07:13 truedfx Exp $
+
+*yacc-1.9.1-r3 (17 Jan 2007)
+
+  17 Jan 2007; Harald van Dijk <truedfx@gentoo.org> -yacc-1.9.1-r2.ebuild,
+  +yacc-1.9.1-r3.ebuild:
+  Create correct /usr/bin/yacc symlink after removing yacc
 
   18 Aug 2005; MATSUU Takuto <matsuu@gentoo.org> yacc-1.9.1-r2.ebuild:
   Stable on sh.
diff --git a/dev-util/yacc/files/digest-yacc-1.9.1-r3 b/dev-util/yacc/files/digest-yacc-1.9.1-r3
new file mode 100644 (file)
index 0000000..384a5b5
--- /dev/null
@@ -0,0 +1,3 @@
+MD5 3bcf50bece4ef1d0fbaf479e25790437 yacc-1.9.1.tar.Z 64805
+RMD160 f0efe89f6c6d7137f1191dd5aa2c91456ff20a3b yacc-1.9.1.tar.Z 64805
+SHA256 8a0f3faf78d0ada00eea5ffd1e141bb7a979d5d570a4c8a9a6ea57e5f3751477 yacc-1.9.1.tar.Z 64805
diff --git a/dev-util/yacc/yacc-1.9.1-r3.ebuild b/dev-util/yacc/yacc-1.9.1-r3.ebuild
new file mode 100644 (file)
index 0000000..e08581e
--- /dev/null
@@ -0,0 +1,59 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-util/yacc/yacc-1.9.1-r3.ebuild,v 1.1 2007/01/17 13:07:13 truedfx Exp $
+
+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="as-is"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 s390 sh sparc x86"
+IUSE=""
+
+DEPEND=""
+
+src_unpack() {
+       unpack ${A}
+       cd "${S}"
+
+       # Use our CFLAGS
+       sed -i -e 's: -O : $(CFLAGS) :' Makefile || die 'sed failed'
+
+       # mkstemp patch from byacc ebuild
+       epatch "${FILESDIR}"/mkstemp.patch
+
+       # The following patch fixes yacc to run correctly on ia64 (and
+       # other 64-bit arches).  See bug 46233
+       epatch "${FILESDIR}"/yacc-1.9.1-ia64.patch
+}
+
+src_compile() {
+       make clean || die
+       emake -j1 CC="$(tc-getCC)" CFLAGS="${CFLAGS}" || die
+}
+
+src_install() {
+       dobin yacc || die
+       doman yacc.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 -f "${ROOT}"/usr/bin/yacc
+       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
+       fi
+}