diff options
Diffstat (limited to 'sci-calculators/bc-gh/bc-gh-6.2.6.ebuild')
-rw-r--r-- | sci-calculators/bc-gh/bc-gh-6.2.6.ebuild | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/sci-calculators/bc-gh/bc-gh-6.2.6.ebuild b/sci-calculators/bc-gh/bc-gh-6.2.6.ebuild new file mode 100644 index 000000000000..7b4e6bc4cbf5 --- /dev/null +++ b/sci-calculators/bc-gh/bc-gh-6.2.6.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_P="bc-${PV}" +DESCRIPTION="Implementation of POSIX bc with GNU extensions" +HOMEPAGE=" + https://git.gavinhoward.com/gavin/bc/ + https://github.com/gavinhoward/bc/ +" +SRC_URI=" + https://github.com/gavinhoward/bc/releases/download/${PV}/${MY_P}.tar.xz +" +S=${WORKDIR}/${MY_P} + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="libedit readline" + +DEPEND=" + !readline? ( + libedit? ( dev-libs/libedit:= ) + ) + readline? ( + sys-libs/readline:= + sys-libs/ncurses:= + ) +" +RDEPEND=" + ${DEPEND} +" + +src_configure() { + local myconf=( + # GNU and BSD bc's have slightly different behavior. This bc can act + # like both, changing at runtime with environment variables, but it + # needs defaults, which can be set at compile time. This option sets all + # of the defaults to match the GNU bc/dc since it's common on Linux. + -pGNU + # A lot of test results are generated first by a bc compatible with the + # GNU bc. If there is no GNU bc installed, then those tests should be + # skipped. That's what this option does. Without it, we would have a + # dependency cycle. Those tests are super long, anyway. + -G + # Disables the automatic stripping of binaries. + -T + # Enables installing all locales, which is important for packages. + -l + # Disables some "problematic" tests that need specific options on Linux + # to not trigger the OOM killer because malloc() lies. + -P + ) + if use readline ; then + myconf+=( -r ) + elif use libedit ; then + myconf+=( -e ) + fi + + local -x EXECSUFFIX="-gh" + local -x PREFIX="${EPREFIX}/usr" + ./configure.sh "${myconf[@]}" || die +} + +src_test() { + # This is to fix a bug encountered on Arch. It is to ensure we don't get + # segfaults on `make check` when the error messages change because the error + # messages are passed to printf(); they have format specifiers. With these + # env vars, the internal error messages are used, instead of the installed + # locales, which might be different since the new locale files are not + # installed yet. (It is impossible to use uninstalled locales because of the + # poor design of POSIX locales.) + env LANG=C LC_ALL=C emake check +} |