diff options
author | Anna Vyalkova <cyber+gentoo@sysrq.in> | 2022-07-14 00:54:58 +0500 |
---|---|---|
committer | Maciej Barć <xgqt@gentoo.org> | 2022-07-13 22:40:30 +0200 |
commit | 38ad8d4290f37de7d1de2aa96a8dedbc160b3123 (patch) | |
tree | a54e1151a6d9f67cfc375c7d41bca32bf4880256 /dev-lang | |
parent | media-video/makemkv: Bump to 1.17.1, drop old 1.17.0 (diff) | |
download | gentoo-38ad8d4290f37de7d1de2aa96a8dedbc160b3123.tar.gz gentoo-38ad8d4290f37de7d1de2aa96a8dedbc160b3123.tar.bz2 gentoo-38ad8d4290f37de7d1de2aa96a8dedbc160b3123.zip |
dev-lang/nim: add experimental patches
Currently the only patch is the one implementing "--depfile" support. It
is needed by some packages in the ::guru repository that would be
rebuilt three times otherwise.
Signed-off-by: Anna Vyalkova <cyber+gentoo@sysrq.in>
Signed-off-by: Maciej Barć <xgqt@gentoo.org>
Diffstat (limited to 'dev-lang')
-rw-r--r-- | dev-lang/nim/Manifest | 1 | ||||
-rw-r--r-- | dev-lang/nim/metadata.xml | 3 | ||||
-rw-r--r-- | dev-lang/nim/nim-1.6.6-r1.ebuild | 103 |
3 files changed, 107 insertions, 0 deletions
diff --git a/dev-lang/nim/Manifest b/dev-lang/nim/Manifest index f0404f563272..ba29b2ff5bd8 100644 --- a/dev-lang/nim/Manifest +++ b/dev-lang/nim/Manifest @@ -2,3 +2,4 @@ DIST nim-1.4.8.tar.xz 4786360 BLAKE2B 961b38275c4f9de87ac522c5b47368ce7f5543811a DIST nim-1.6.2.tar.xz 5181616 BLAKE2B adedbcaad1b135b6f99459894856190103e2d2b678849e0418f77c02a54fde44224456ea13949f3fe9f5f020a90adde46593497895674bd9ae892b17708df292 SHA512 052b62c987035f7633f965356993cd4eec686f4f4f5c675cf966d82cb30fcf574045887a4402bcc20e487299fb5e8f65a921951c2dc21ac334e695e31d95d992 DIST nim-1.6.4.tar.xz 5130208 BLAKE2B d0f297581677bbb9fb185a8b4198f48bb58efe81a1624f62051bc1e0a93f879a0cec172f11a41784ca715ba3c151dc5307e96c15c54908aa40df406040891d6c SHA512 f4d082f37f0e675e8cdb4340d67f2e58b5e6ac5bb51dab1ded5417097f3b86d71fa585ef12ee1c3cd5b17285589cbe9d5658fcb29c98547f7967a1b6f0cb4646 DIST nim-1.6.6.tar.xz 5149956 BLAKE2B 2fd1b40f1ecc1200255052d9e013c55287d3e01337146d0b1386d0f3fc9c14fda1e8e82ee289e782c77a573c1ae0985ea7f900f61e6b9824a9eb4b5c803c7f71 SHA512 6ea8d3f61adae48184dd0e3ac393296fd3bd5ead818e7dee949f43eccbd0b6229ebfc474353ddd63cc734f82c3247998fbfe88362061983f978ad8d0ab7fa677 +DIST nim-patches-1.6.6.tar.gz 1975 BLAKE2B 75490f4c61f4d920aadb2ad5908cb2773e270f80cee95f937ede8125bad5688b71840ed7f48659db892e4017437a0454b38eab18ae8b13c6b48207d0a7714371 SHA512 4d1590e7d05ad64432b943f8da9edb2b05213400181d1e07a0e40f479afbceb1997d0ea0f05a73d550afe60cf4b657f7e34840907ea16c3b9e96824e9f29e0e5 diff --git a/dev-lang/nim/metadata.xml b/dev-lang/nim/metadata.xml index cca80bdcbe60..d24270e82fb6 100644 --- a/dev-lang/nim/metadata.xml +++ b/dev-lang/nim/metadata.xml @@ -36,4 +36,7 @@ <bugs-to>https://github.com/nim-lang/Nim/issues/</bugs-to> <remote-id type="github">nim-lang/Nim</remote-id> </upstream> + <use> + <flag name="experimental">Apply experimental patches</flag> + </use> </pkgmetadata> diff --git a/dev-lang/nim/nim-1.6.6-r1.ebuild b/dev-lang/nim/nim-1.6.6-r1.ebuild new file mode 100644 index 000000000000..0ab7dd480dca --- /dev/null +++ b/dev-lang/nim/nim-1.6.6-r1.ebuild @@ -0,0 +1,103 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit bash-completion-r1 multiprocessing toolchain-funcs + +DESCRIPTION="compiled, garbage-collected systems programming language" +HOMEPAGE="https://nim-lang.org/" +SRC_URI=" + https://nim-lang.org/download/${P}.tar.xz + experimental? ( https://git.sr.ht/~cyber/${PN}-patches/archive/${PV}.tar.gz -> ${PN}-patches-${PV}.tar.gz ) +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~x86" +IUSE="debug experimental +readline" +RESTRICT="test" # need to sort out depends and numerous failures + +RDEPEND="readline? ( sys-libs/readline:0= )" +DEPEND="${RDEPEND}" +# BDEPEND="test? ( net-libs/nodejs )" + +PATCHES=( "${FILESDIR}"/${PN}-0.20.0-paths.patch ) + +# Generated by nim +QA_FLAGS_IGNORED=" +usr/bin/atlas +usr/bin/nim +usr/bin/nim_dbg +usr/bin/nimble +usr/bin/nimgrep +usr/bin/nimpretty +usr/bin/nimsuggest +usr/bin/testament +" + +_run() { + echo "Running: ${@}" + PATH="${S}/bin:${PATH}" "${@}" || die "Failed: \"${*}\"" +} + +nim_use_enable() { + [[ -z "${2}" ]] && die "usage: nim_use_enable <USE flag> <compiler flag>" + use "${1}" && echo "-d:${2}" +} + +src_prepare() { + default + + # note: there are consumers in the ::guru overlay + use experimental && \ + eapply "${WORKDIR}"/${PN}-patches-${PV} +} + +src_configure() { + export XDG_CACHE_HOME="${T}/cache" # 667182 + unset NIMBLE_DIR + tc-export CC CXX LD + + local build_type + if use debug ; then + build_type="debug" + else + build_type="release" + fi + export NIM_OPTS=( --parallelBuild:$(makeopts_jobs) -d:${build_type} ) + + # Override defaults + echo "gcc.exe = \"$(tc-getCC)\"" >> config/nim.cfg || die + echo "gcc.linkerexe = \"$(tc-getCC)\"" >> config/nim.cfg || die + echo "gcc.cpp.exe = \"$(tc-getCXX)\"" >> config/nim.cfg || die + echo "gcc.cpp.linkerexe = \"$(tc-getCXX)\"" >> config/nim.cfg || die +} + +src_compile() { + _run bash ./build.sh + + _run ./bin/nim ${NIM_OPTS[@]} compile koch + _run ./koch boot ${NIM_OPTS[@]} $(nim_use_enable readline useGnuReadline) + _run ./koch tools ${NIM_OPTS[@]} +} + +src_test() { + _run ./koch test +} + +src_install() { + _run ./koch install "${ED}" + + # "./koch install" installs only "nim" binary + # but not the rest + exeinto /usr/bin + local exe + for exe in bin/* ; do + [[ "${exe}" == bin/nim ]] && continue + doexe "${exe}" + done + + newbashcomp tools/nim.bash-completion nim + newbashcomp dist/nimble/nimble.bash-completion nimble +} |