commit:     38ad8d4290f37de7d1de2aa96a8dedbc160b3123
Author:     Anna Vyalkova <cyber+gentoo <AT> sysrq <DOT> in>
AuthorDate: Wed Jul 13 19:54:58 2022 +0000
Commit:     Maciej Barć <xgqt <AT> gentoo <DOT> org>
CommitDate: Wed Jul 13 20:40:30 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=38ad8d42

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 <AT> sysrq.in>
Signed-off-by: Maciej Barć <xgqt <AT> gentoo.org>

 dev-lang/nim/Manifest            |   1 +
 dev-lang/nim/metadata.xml        |   3 ++
 dev-lang/nim/nim-1.6.6-r1.ebuild | 103 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 107 insertions(+)

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
+}

Reply via email to