commit:     be0fece992d7f4d1d9487860fecb95d78ebcd479
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 10 09:50:54 2017 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Tue Oct 10 09:51:06 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=be0fece9

dev-lang/nim: build and install 'nimble' and other tools, bug #631512

Defauld './koch install' installs only 'nim' binary as it uses
'compiler.ini' configurations. But there is no easy way to install
other tools.

After this change ebuild builds and installs tools explicitly
to expose them to users.

Reported-by: s <AT> zxc.pp.ua
Closes: https://bugs.gentoo.org/631512
Package-Manager: Portage-2.3.11, Repoman-2.3.3

 dev-lang/nim/{nim-0.17.2.ebuild => nim-0.17.2-r1.ebuild} | 14 ++++++++++++--
 dev-lang/nim/nim-0.17.2.ebuild                           |  6 +++++-
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/dev-lang/nim/nim-0.17.2.ebuild b/dev-lang/nim/nim-0.17.2-r1.ebuild
similarity index 75%
copy from dev-lang/nim/nim-0.17.2.ebuild
copy to dev-lang/nim/nim-0.17.2-r1.ebuild
index 523a411b0dd..b5b88357cd2 100644
--- a/dev-lang/nim/nim-0.17.2.ebuild
+++ b/dev-lang/nim/nim-0.17.2-r1.ebuild
@@ -29,6 +29,8 @@ src_compile() {
 
        ./bin/nim c koch || die "csources nim failed"
        ./koch boot -d:release $(nim_use_enable readline useGnuReadline) || die 
"koch boot failed"
+       # build nimble and friends
+       PATH="./bin:$PATH" ./koch tools || die "koch tools failed"
 
        if use doc; then
                PATH="./bin:$PATH" ./koch web || die "koch web failed"
@@ -40,11 +42,19 @@ src_test() {
 }
 
 src_install() {
-       ./koch install "${ED}/usr" || die "koch install failed"
+       PATH="./bin:$PATH" ./koch install "${ED}/usr" || die "koch install 
failed"
        rm -r "${ED}/usr/nim/doc" || die "failed to remove 'doc'"
 
        dodir /usr/bin
-       dosym ../nim/bin/nim /usr/bin/nim
+       exeinto /usr/nim/bin
+
+       local bin_exe
+       for bin_exe in bin/*; do
+               # './koch install' installs only 'nim' binary
+               # but not the rest
+               doexe "${bin_exe}"
+               dosym ../nim/"${bin_exe}" /usr/"${bin_exe}"
+       done
 
        if use doc; then
                insinto /usr/share/doc/${PF}

diff --git a/dev-lang/nim/nim-0.17.2.ebuild b/dev-lang/nim/nim-0.17.2.ebuild
index 523a411b0dd..3942e4e7b58 100644
--- a/dev-lang/nim/nim-0.17.2.ebuild
+++ b/dev-lang/nim/nim-0.17.2.ebuild
@@ -29,6 +29,7 @@ src_compile() {
 
        ./bin/nim c koch || die "csources nim failed"
        ./koch boot -d:release $(nim_use_enable readline useGnuReadline) || die 
"koch boot failed"
+       PATH="./bin:$PATH" ./koch tools || die "koch tools failed"
 
        if use doc; then
                PATH="./bin:$PATH" ./koch web || die "koch web failed"
@@ -44,7 +45,10 @@ src_install() {
        rm -r "${ED}/usr/nim/doc" || die "failed to remove 'doc'"
 
        dodir /usr/bin
-       dosym ../nim/bin/nim /usr/bin/nim
+       local exe
+       for bin_exe in bin/*; do
+               dosym ../nim/${bin_exe} /usr/${bin_exe}
+       done
 
        if use doc; then
                insinto /usr/share/doc/${PF}

Reply via email to