summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2021-09-12 01:23:17 +0100
committerSam James <sam@gentoo.org>2021-09-12 01:34:05 +0100
commitb94d129b68ecd2f75e51ab39a687e766e6c803e4 (patch)
tree57826f835745524dd834ecb8cbb7163506973b96 /sys-devel/bison/bison-3.8.1.ebuild
parentsys-libs/libcap: add 2.57 (diff)
downloadgentoo-b94d129b68ecd2f75e51ab39a687e766e6c803e4.tar.gz
gentoo-b94d129b68ecd2f75e51ab39a687e766e6c803e4.tar.bz2
gentoo-b94d129b68ecd2f75e51ab39a687e766e6c803e4.zip
sys-devel/bison: add 3.8.1 (unkeyworded)
This notably drops all patches. - We drop the conditional examples patch because Perl is not needed for building Bison. This was discussed upstream in the past [0] and upstream concluded that if it were needed, they would treat this as a bug. Fortunately, it's not - at least not anymore! Note that Perl _is_ still partially used for tests, but it falls back gracefully and skips the relevant tests if it's missing, and this isn't a problem for bootstrapping anyway. Just noting for completeness. My own testing confirms that Bison builds and installs (and as mentioned, even passes the tests it decides to run) when Perl is missing. To allow full coverage, we keep Perl as a conditional test dependency. Upstream refined the check further too [1] (I couldn't see the commit in the git history, but the change is applied to the final configure.ac, so that's fine.) - We still conditionally (for now?) install examples as they're ~200K and my aim was to just reduce the patches we're using, not completely alter our packaging of Bison right now. - We no longer apply a parallel build patch which has also been applied upstream [2]. It seemed to appply anyway, not checked if it was in the last release, but I think it was. Upstream had some fun (not their fault) with POSIX, so I'm not keywording this yet for more testing, but it should be fine because they ultimately decided to guard the new behaviour with POSIXLY_CORRECT=1 [3]. (This is why we didn't package 3.8.) [0] https://www.mail-archive.com/bug-bison@gnu.org/msg03979.html [1] https://lists.gnu.org/archive/html/bison-patches/2019-10/msg00027.html [2] https://lists.gnu.org/archive/html/bug-bison/2020-09/msg00016.html [3] https://lists.gnu.org/archive/html/bug-automake/2021-09/msg00004.html Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-devel/bison/bison-3.8.1.ebuild')
-rw-r--r--sys-devel/bison/bison-3.8.1.ebuild96
1 files changed, 96 insertions, 0 deletions
diff --git a/sys-devel/bison/bison-3.8.1.ebuild b/sys-devel/bison/bison-3.8.1.ebuild
new file mode 100644
index 000000000000..329c77559b37
--- /dev/null
+++ b/sys-devel/bison/bison-3.8.1.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit flag-o-matic
+
+DESCRIPTION="A general-purpose (yacc-compatible) parser generator"
+HOMEPAGE="https://www.gnu.org/software/bison/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~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="examples nls static test"
+RESTRICT="!test? ( test )"
+
+# gettext _IS_ required in RDEPEND because >=bison-3.7 links against
+# libtextstyle.so!!! (see bug #740754)
+DEPEND="
+ >=sys-devel/m4-1.4.16
+ >=sys-devel/gettext-0.21
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+ sys-devel/flex
+ test? ( dev-lang/perl )
+"
+
+DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO ) # ChangeLog-2012 ChangeLog-1998 PACKAGING README-alpha README-release
+
+src_prepare() {
+ # Old logic when we needed to patch configure.ac
+ # Keeping in case it's useful for future
+
+ # Record date to avoid 'config.status --recheck' & regen of 'tests/package.m4'
+ #touch -r configure.ac old.configure.ac || die
+ #touch -r configure old.configure || die
+
+ #eapply "${WORKDIR}"/patches
+ #default
+
+ # Restore date after patching
+ #touch -r old.configure.ac configure.ac || die
+ #touch -r old.configure configure || die
+
+ # The makefiles make the man page depend on the configure script
+ # which we patched above. Touch it to prevent regeneration.
+ #touch doc/bison.1 || die #548778 #538300#9
+
+ default
+
+ # Avoid regenerating the info page when the timezone is diff. #574492
+ sed -i '2iexport TZ=UTC' build-aux/mdate-sh || die
+}
+
+src_configure() {
+ use static && append-ldflags -static
+
+ local myeconfargs=(
+ $(use_enable nls)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ # This one is installed by dev-util/yacc
+ mv "${ED}"/usr/bin/yacc{,.bison} || die
+ mv "${ED}"/usr/share/man/man1/yacc{,.bison}.1 || die
+
+ # We do not need liby.a
+ rm -r "${ED}"/usr/lib* || die
+
+ # Examples are about 200K, so let's make them optional still for now.
+ if ! use examples ; then
+ rm -r "${ED}"/usr/share/doc/${PF}/examples/ || die
+ fi
+}
+
+pkg_postinst() {
+ local f="${EROOT}/usr/bin/yacc"
+ if [[ ! -e ${f} ]] ; then
+ ln -s yacc.bison "${f}"
+ fi
+}
+
+pkg_postrm() {
+ # clean up the dead symlink when we get unmerged #377469
+ local f="${EROOT}/usr/bin/yacc"
+ if [[ -L ${f} && ! -e ${f} ]] ; then
+ rm -f "${f}"
+ fi
+}