public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Maciej Barć" <xgqt@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/nim/, dev-lang/nim/files/
Date: Tue,  1 Aug 2023 18:53:30 +0000 (UTC)	[thread overview]
Message-ID: <1690916004.dc782311e3321039894e8fa8f7a5188c5bdabf7b.xgqt@gentoo> (raw)

commit:     dc782311e3321039894e8fa8f7a5188c5bdabf7b
Author:     Brahmajit Das <brahmajit.xyz <AT> gmail <DOT> com>
AuthorDate: Mon Jul 31 13:49:20 2023 +0000
Commit:     Maciej Barć <xgqt <AT> gentoo <DOT> org>
CommitDate: Tue Aug  1 18:53:24 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dc782311

dev-lang/nim: Fix incompatible integer to pointer conversion

Closes: https://bugs.gentoo.org/894410
Signed-off-by: Brahmajit Das <brahmajit.xyz <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/32120
Signed-off-by: Maciej Barć <xgqt <AT> gentoo.org>

 .../nim/files/nim-1.6.14-clang16-musl-fix.patch    |  13 ++
 dev-lang/nim/nim-1.6.14-r1.ebuild                  | 202 +++++++++++++++++++++
 2 files changed, 215 insertions(+)

diff --git a/dev-lang/nim/files/nim-1.6.14-clang16-musl-fix.patch b/dev-lang/nim/files/nim-1.6.14-clang16-musl-fix.patch
new file mode 100644
index 000000000000..1bc4f8f25d55
--- /dev/null
+++ b/dev-lang/nim/files/nim-1.6.14-clang16-musl-fix.patch
@@ -0,0 +1,13 @@
+Bug: https://bugs.gentoo.org/894410
+Refer: https://github.com/nim-lang/Nim/issues/20886#issuecomment-1511708198
+--- a/lib/system/threadlocalstorage.nim
++++ b/lib/system/threadlocalstorage.nim
+@@ -129,7 +129,7 @@ else:
+   when (defined(linux) or defined(nintendoswitch)) and defined(amd64):
+     type
+       SysThread* {.importc: "pthread_t",
+-                  header: "<sys/types.h>" .} = distinct culong
++                  header: "<sys/types.h>" .} = distinct pointer
+       Pthread_attr {.importc: "pthread_attr_t",
+                     header: "<sys/types.h>".} = object
+         abi: array[56 div sizeof(clong), clong]

diff --git a/dev-lang/nim/nim-1.6.14-r1.ebuild b/dev-lang/nim/nim-1.6.14-r1.ebuild
new file mode 100644
index 000000000000..bf22ccb6ecfe
--- /dev/null
+++ b/dev-lang/nim/nim-1.6.14-r1.ebuild
@@ -0,0 +1,202 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PATCH_PV="1.6.6_p1"
+
+inherit bash-completion-r1 edo multiprocessing toolchain-funcs xdg-utils
+
+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/${PATCH_PV}.tar.gz
+			-> nim-patches-${PATCH_PV}.tar.gz
+	)
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="doc experimental test-js test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+	test? (
+		dev-db/sqlite:3
+		dev-libs/boehm-gc
+		dev-libs/libffi
+		dev-libs/libpcre:3
+		dev-libs/openssl
+		media-libs/libsdl
+		media-libs/libsfml
+	)
+"
+BDEPEND="
+	sys-process/parallel
+	test? (
+		test-js? (
+			net-libs/nodejs
+		)
+	)
+"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-0.20.0-paths.patch
+	"${FILESDIR}"/${PN}-1.6.6-csources-flags.patch
+)
+
+# Borrowed from nim-utils.eclass (guru overlay).
+nim_gen_config() {
+	cat > nim.cfg <<- EOF || die "Failed to create Nim config"
+		cc:"gcc"
+		gcc.exe:"$(tc-getCC)"
+		gcc.linkerexe:"$(tc-getCC)"
+		gcc.cpp.exe:"$(tc-getCXX)"
+		gcc.cpp.linkerexe:"$(tc-getCXX)"
+		gcc.options.speed:"${CFLAGS}"
+		gcc.options.size:"${CFLAGS}"
+		gcc.options.debug:"${CFLAGS}"
+		gcc.options.always:"${CPPFLAGS}"
+		gcc.options.linker:"${LDFLAGS}"
+		gcc.cpp.options.speed:"${CXXFLAGS}"
+		gcc.cpp.options.size:"${CXXFLAGS}"
+		gcc.cpp.options.debug:"${CXXFLAGS}"
+		gcc.cpp.options.always:"${CPPFLAGS}"
+		gcc.cpp.options.linker:"${LDFLAGS}"
+
+		$([[ "${NOCOLOR}" == true || "${NOCOLOR}" == yes ]] && echo '--colors:"off"')
+		-d:"release"
+		--parallelBuild:"$(makeopts_jobs)"
+
+		# some tests don't work with processing hints
+		--processing:"off"
+	EOF
+}
+
+src_prepare() {
+	default
+
+	# note: there are consumers in the ::guru overlay
+	use experimental && eapply "${WORKDIR}"/nim-patches-${PATCH_PV}
+
+	# refer: https://github.com/nim-lang/Nim/issues/20886#issuecomment-1511708198
+	# bug: https://bugs.gentoo.org/894410
+	use elibc_musl && eapply "${FILESDIR}"/${PN}-1.6.14-clang16-musl-fix.patch
+}
+
+src_configure() {
+	xdg_environment_reset  # bug 667182
+
+	unset NIMBLE_DIR
+	tc-export CC CXX LD
+
+	nim_gen_config
+
+	mkdir "${HOME}"/.parallel || die
+	touch "${HOME}"/.parallel/will-cite || die "parallel setup failed"
+}
+
+src_compile() {
+	local -x PATH="${S}/bin:${PATH}"
+
+	edo ./build.sh --parallel "$(makeopts_jobs)"
+
+	ebegin "Waiting for unfinished jobs"
+	while [[ ! -f "bin/nim" ]]; do
+		sleep 1
+	done
+	eend 0
+
+	edo ./bin/nim compile koch
+	edo ./koch boot -d:nimUseLinenoise --skipParentCfg:off
+	edo ./koch tools
+
+	if use doc; then
+		local -a docargs=(
+			# set git tag
+			--git.commit:v${PV}
+			# skip runnableExamples as some of them need net
+			--docCmd:skip
+			# make logs less verbose
+			--hints:off
+			--warnings:off
+		)
+		edo ./koch doc "${docargs[@]}"
+		HTML_DOCS=( web/upload/${PV}/. )
+	fi
+}
+
+src_test() {
+	local -x PATH="${S}/bin:${PATH}"
+	local -a nimflags=(
+		# Leave only the safe hints enabled.
+		--hint:all:off
+		--hint:User:on
+		--hint:UserRaw:on
+	)
+	local -a testament_args=(
+		--skipFrom:"${FILESDIR}/${PN}-1.6.14-testament-skipfile.txt"
+		--nim:"bin/nim"
+		--targets:"$(usex test-js 'c js' 'c')"
+	)
+
+	[[ "${NOCOLOR}" == true || "${NOCOLOR}" == yes ]] && \
+		testament_args+=( --colors:off )
+
+	local -a categories
+	readarray -t categories < <(find tests -mindepth 1 -maxdepth 1 -type d -printf "%P\n" | sort)
+
+	# AdditionalCategories from "testament/categories.nim".
+	categories+=( debugger examples lib )
+
+	local tcat checkpoint
+	for tcat in "${categories[@]}"; do
+		# Use checkpoints for less painful testing.
+		checkpoint="${T}/.testament-${tcat}"
+		[[ -f "${checkpoint}" ]] && continue
+
+		case ${tcat} in
+			testdata )
+				:
+			;;
+			arc | ic | valgrind )
+				einfo "Skipped category '${tcat}'"
+				;;
+			* )
+				einfo "Running tests in category '${tcat}'"
+				edo ./bin/testament "${testament_args[@]}" \
+					category "${tcat}" "${nimflags[@]}"
+				;;
+		esac
+
+		touch "${checkpoint}" || die
+	done
+}
+
+src_install() {
+	local -x PATH="${S}/bin:${PATH}"
+
+	edo ./koch install "${ED}"
+	einstalldocs
+
+	# "./koch install" installs only "nim" binary but not the rest.
+	local exe
+	for exe in bin/* ; do
+		[[ "${exe}" == bin/nim ]] && continue
+		dobin "${exe}"
+	done
+
+	newbashcomp tools/nim.bash-completion nim
+	newbashcomp dist/nimble/nimble.bash-completion nimble
+
+	insinto /usr/share/zsh/site-functions
+	newins tools/nim.zsh-completion _nim
+	newins dist/nimble/nimble.zsh-completion _nimble
+
+	# Install the @nim-rebuild set for Portage.
+	insinto /usr/share/portage/config/sets
+	newins "${FILESDIR}"/nim-sets.conf nim.conf
+}


             reply	other threads:[~2023-08-01 18:53 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-01 18:53 Maciej Barć [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-06-17 20:43 [gentoo-commits] repo/gentoo:master commit in: dev-lang/nim/, dev-lang/nim/files/ Maciej Barć
2024-04-24 17:10 Maciej Barć
2023-06-28 18:24 Maciej Barć
2022-07-14 14:19 Maciej Barć
2018-09-26 23:32 Sergei Trofimovich
2017-07-04 21:56 Sergei Trofimovich
2016-10-06 20:54 Sergei Trofimovich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1690916004.dc782311e3321039894e8fa8f7a5188c5bdabf7b.xgqt@gentoo \
    --to=xgqt@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox