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
parentsys-libs/libcap: add 2.57 (diff)
downloadgentoo-b94d129b.tar.gz
gentoo-b94d129b.tar.bz2
gentoo-b94d129b.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>
-rw-r--r--sys-devel/bison/Manifest1
-rw-r--r--sys-devel/bison/bison-3.8.1.ebuild96
2 files changed, 97 insertions, 0 deletions
diff --git a/sys-devel/bison/Manifest b/sys-devel/bison/Manifest
index c3776521dd57..609f9ec5f9ed 100644
--- a/sys-devel/bison/Manifest
+++ b/sys-devel/bison/Manifest
@@ -1,2 +1,3 @@
DIST bison-3.7.6-patches-01.tar.xz 10600 BLAKE2B c7907a327c2bbb82a2e575a864e71400f91cd4349a84f95b187ecaadefc1bfd595a91bce6c8c47e42423cace9cf78a4041fde3fdc489a4824aa3c10ca73be7cb SHA512 8f2ddee79b9678b9fd9a7a34f26d44f7c4472d0fc55c9fef8b418d27949b6a27309b7aa5ac3f4a5ad27c90ad7d92d824ffe767c77b0ed81de6b2897c91cd7560
DIST bison-3.7.6.tar.xz 2627180 BLAKE2B 2f1015b517e46ff0870378b4d0dd489c8c737f31b2b69146bd7fbbae1e3adcdff0e4837cfdf1d238e8660ecc2b310ce87ec8940ed4989278b3df6cbb2d464e54 SHA512 6c1c9b825fbd2c94b8903f03a7e68e6832599f7bbd8d3c49864537c11b038c45a15de02fd36128d662af314334c83515bbc132df84e9acc6c651e98649c65bad
+DIST bison-3.8.1.tar.xz 2800372 BLAKE2B 0b70ee1b3ab8075540d9254cffdc1dfc9a9fb354d8b9b79dd3b097bf9a2235f892e120736e4195ad21ce8fbf3831c63b2d1a267a20a7abf85f0d72cdcdac1820 SHA512 f87978c41eca4db22de4f64feb3be92e44862d412f75dd84980045faf0f9e7f5a41b25bef8d4acd90743638eab61a7ac111444969d958fef5fe3535bac416921
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
+}