From dba398b25d3f007f1a220c1a2d4fbb6f72cd2008 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Bar=C4=87?= Date: Mon, 1 Nov 2021 17:52:53 +0100 Subject: [PATCH] dev-lang/nim: add verison 1.6.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Package-Manager: Portage-3.0.28, Repoman-3.0.3 Signed-off-by: Maciej Barć --- dev-lang/nim/Manifest | 1 + dev-lang/nim/files/paths.patch | 36 +++++++++++++++ dev-lang/nim/metadata.xml | 19 ++++++++ dev-lang/nim/nim-1.6.0.ebuild | 80 ++++++++++++++++++++++++++++++++++ 4 files changed, 136 insertions(+) create mode 100644 dev-lang/nim/Manifest create mode 100644 dev-lang/nim/files/paths.patch create mode 100644 dev-lang/nim/metadata.xml create mode 100644 dev-lang/nim/nim-1.6.0.ebuild diff --git a/dev-lang/nim/Manifest b/dev-lang/nim/Manifest new file mode 100644 index 0000000..4674315 --- /dev/null +++ b/dev-lang/nim/Manifest @@ -0,0 +1 @@ +DIST nim-1.6.0.tar.xz 5272976 BLAKE2B 2381108ee0661c2106c044cfc119bda4ea1c8eb2a642327bb29f3e23f16a4712ae1479913369ff3b62a073fa5f40b725259404acc21efb32d33cf9291f20e25b SHA512 ac6f20664a2bdc0a47d0b010120ac47590278afa3ef799d02e2fe6da597cacba128be9a0a77ef2f1d78f4ee79ae01732f34a6bfb918af268dccf768b9ca11627 diff --git a/dev-lang/nim/files/paths.patch b/dev-lang/nim/files/paths.patch new file mode 100644 index 0000000..a314eae --- /dev/null +++ b/dev-lang/nim/files/paths.patch @@ -0,0 +1,36 @@ +Default to /usr/bin install. + +https://bugs.gentoo.org/635032 +--- a/tools/niminst/install.nimf ++++ b/tools/niminst/install.nimf +@@ -28,13 +28,13 @@ if [ $# -eq 1 ] ; then + echo "sh deinstall.sh DIR" + exit 1 + ;; +- "/usr/bin") +- bindir=/usr/bin +- configdir=/etc/?proj +- libdir=/usr/lib/?proj +- docdir=/usr/share/?proj/doc +- datadir=/usr/share/?proj/data +- nimbleDir="/opt/nimble/pkgs/?c.nimblePkgName-?c.version" ++ *) ++ bindir=$1/usr/bin ++ configdir=$1/etc/?proj ++ libdir=$1/usr/lib/?proj ++ docdir=$1/usr/share/?proj/doc ++ datadir=$1/usr/share/?proj/data ++ nimbleDir=$1"/opt/nimble/pkgs/?c.nimblePkgName-?c.version" + ;; + "/usr/local/bin") + bindir=/usr/local/bin +@@ -68,6 +68,9 @@ if [ $# -eq 1 ] ; then + ;; + esac + ++ mkdir -p $bindir ++ mkdir -p $datadir ++ + mkdir -p $libdir + mkdir -p $docdir + mkdir -p $configdir diff --git a/dev-lang/nim/metadata.xml b/dev-lang/nim/metadata.xml new file mode 100644 index 0000000..20fb2b8 --- /dev/null +++ b/dev-lang/nim/metadata.xml @@ -0,0 +1,19 @@ + + + + + + xgqt@riseup.net + Maciej Barć + + + Nim is a statically typed compiled systems programming language. + It combines successful concepts from mature languages like Python, + Ada and Modula. Its design focuses on efficiency, expressiveness + and elegance (in that order of priority). + + + https://github.com/nim-lang/Nim/issues + nim-lang/Nim + + diff --git a/dev-lang/nim/nim-1.6.0.ebuild b/dev-lang/nim/nim-1.6.0.ebuild new file mode 100644 index 0000000..55bbeca --- /dev/null +++ b/dev-lang/nim/nim-1.6.0.ebuild @@ -0,0 +1,80 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit bash-completion-r1 multiprocessing toolchain-funcs + +DESCRIPTION="Statically typed, compiled, garbage-collected systems programming language" +HOMEPAGE="https://nim-lang.org" +SRC_URI="https://nim-lang.org/download/${P}.tar.xz" + +# Failing tests +RESTRICT="test" +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="debug" + +QA_FLAGS_IGNORED=" + usr/bin/nim_dbg + usr/bin/nimble + usr/bin/nimgrep + usr/bin/nimpretty + usr/bin/nimsuggest + usr/bin/testament + usr/bin/atlas +" + +PATCHES=( "${FILESDIR}/paths.patch" ) + +function Run() { + echo "Running: ${@}" + PATH="${S}/bin:${PATH}" "${@}" || die "ERROR: \"${*}\" failed" +} + +src_configure() { + tc-export CC CXX LD + export XDG_CACHE_HOME="${T}/cache" + unset NIMBLE_DIR + + local build_type + if use debug; then + build_type="debug" + else + build_type="release" + fi + + export nim_opts=( --parallelBuild:$(makeopts_jobs) -d:${build_type} ) + + local nimcfg="$(pwd)/config/nim.cfg" + Run touch "${nimcfg}" + + echo "gcc.exe = \"$(tc-getCC)\"" >> "${nimcfg}" + echo "gcc.linkerexe = \"$(tc-getCC)\"" >> "${nimcfg}" + echo "gcc.cpp.exe = \"$(tc-getCXX)\"" >> "${nimcfg}" + echo "gcc.cpp.linkerexe = \"$(tc-getCXX)\"" >> "${nimcfg}" +} + +src_compile() { + Run bash ./build.sh + Run nim compile ${nim_opts[@]} ./koch.nim + Run ./koch tools ${nim_opts[@]} +} + +# src_test() { +# Run ./koch test +# } + +src_install() { + Run ./koch install "${ED}" + + exeinto /usr/bin + local exe + for exe in ./bin/*; do + doexe "${exe}" + done + + newbashcomp ./tools/nim.bash-completion nim + newbashcomp ./dist/nimble/nimble.bash-completion nimble +}