public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Horodniceanu Andrei" <a.horodniceanu@proton.me>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/user/dlang:master commit in: dev-util/dub/
Date: Fri, 12 Jul 2024 18:59:40 +0000 (UTC)	[thread overview]
Message-ID: <1720809240.82c19a58ecf3ad1b94e68eb37262c876f8132f47.a.horodniceanu@gentoo> (raw)

commit:     82c19a58ecf3ad1b94e68eb37262c876f8132f47
Author:     Andrei Horodniceanu <a.horodniceanu <AT> proton <DOT> me>
AuthorDate: Fri Jul 12 18:33:44 2024 +0000
Commit:     Horodniceanu Andrei <a.horodniceanu <AT> proton <DOT> me>
CommitDate: Fri Jul 12 18:34:00 2024 +0000
URL:        https://gitweb.gentoo.org/repo/user/dlang.git/commit/?id=82c19a58

dev-util/dub: add 1.38.1

arm64 has been dropped as a KEYWORD as I don't have access to any
hardware on which to test it.

Signed-off-by: Andrei Horodniceanu <a.horodniceanu <AT> proton.me>

 dev-util/dub/Manifest          |   1 +
 dev-util/dub/dub-1.38.1.ebuild | 169 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 170 insertions(+)

diff --git a/dev-util/dub/Manifest b/dev-util/dub/Manifest
index 598c49a..2af5f28 100644
--- a/dev-util/dub/Manifest
+++ b/dev-util/dub/Manifest
@@ -1,5 +1,6 @@
 DIST dub-1.35.1.tar.gz 1494965 BLAKE2B 400e210584660f7ac67732006ca6d88156adbbf2bf221aa244e317bf7c2772a6a01d9e141252fbf0cfde4c07302ee533593f3a2f418f9e120edc7359a83180cf SHA512 a371a7ec7003a4a4fb642a3567fce0685c99f4940a02de94d026bdc6fe4e84512b16e4bb57673da4d3b8e25177cc3df329da41862086cecc7b98aec1ebf9e4e7
 DIST dub-1.37.0.tar.gz 1515440 BLAKE2B 13bb5b5541af6ae11e45cf130e9bfb706e7fb59797e497a33e419500262fd70ef1ac657b2b230224010d78b36361f7974d38b22fd36fa70f580c3b7f7a578457 SHA512 dc4331b77681d05bc5c6f36f5179d2a1220f3e1cbfc64ba27104fb2b716bd7e2b70c5b3b4d0e8b786caf36632c2fd774bbd51b235389ff38cfde87138fc9de18
+DIST dub-1.38.1.tar.gz 1517185 BLAKE2B 8d25b1f43059bc95cf921bd2aa8842abc82ef0d18321d2c9b46698a0d4a24a3fd4d740b20af7ba11cf6659f527b553378578040c9c0bac5d4629b4e024b3764a SHA512 d08afc9c5266fa5df78cefd3439f4477a80a6441446e202ee5d07bfac35db7521b836eca7f0944dfa98b53da948759ee1c91f6b6903c6e04b6d155c7ed805e80
 DIST gitcompatibledubpackage-1.0.1.zip 1354 BLAKE2B 60c3ff78c9cc0ca16f36bfdb4d91f6ec7e8d1bc7fb2fae9488e3f24b33fc3b578157f3c2fd9f892743b1fba7ec473267d9027febd3c27ac2af52733e146c341d SHA512 0adb8a97cce0aaac1dbaea978aacf801071457c06413e618b0feb1adaf4169c7a1acbfac2d9c192fada4f2f8bd44e1ea3b9fce8c7cb3fb8bf364eba75f559122
 DIST gitcompatibledubpackage-1.0.4.zip 2041 BLAKE2B 595080956881fd86753b17cdbb12108ab03161806ca51c748017f29251dd47a95a0aebde4442db1783602cfa67a9593014ebb6ca591dcfec2b08eef3d737e2cc SHA512 12057117be99bb4d2351af74cfd36c050734383bfc44b185cf5f9737d982e9fd6840f6968a3246b625d4ec90e9d30f5e394f8fa1febb85464429d771bc8062d0
 DIST urld-2.1.1.zip 15062 BLAKE2B fe123fbef20167e07c81d0f7700a59c48dca28311329f9717283f3e7c88cc2430a1ffc26632c8c1512145b9d6fa6e432cee1677e99be3bd555247f02f7f42b67 SHA512 c4c8d349a8bbac9f234166ed9452ab221f8928e822c6ab95716b05948dbb21ae4309face4158909559698f23aa750c9faef5b2294feef7e601ccbc9a41c3b6bb

diff --git a/dev-util/dub/dub-1.38.1.ebuild b/dev-util/dub/dub-1.38.1.ebuild
new file mode 100644
index 0000000..0f3b69a
--- /dev/null
+++ b/dev-util/dub/dub-1.38.1.ebuild
@@ -0,0 +1,169 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Package and build management system for D"
+HOMEPAGE="https://code.dlang.org/"
+
+DUB_TEST_DEPS=(
+	gitcompatibledubpackage@1.0.1
+	gitcompatibledubpackage@1.0.4
+	urld@2.1.1
+)
+generate_dub_test_dependencies() {
+	local dep
+	for dep in "${DUB_TEST_DEPS[@]}"; do
+		local depName depVersion
+		depName="${dep%@*}"
+		depVersion="${dep#*@}"
+		echo "https://code.dlang.org/packages/${depName}/${depVersion}.zip -> ${depName}-${depVersion}.zip"
+	done
+}
+
+GITHUB_URI="https://codeload.github.com/dlang"
+SRC_URI="
+	${GITHUB_URI}/${PN}/tar.gz/v${PV} -> ${PN}-${PV}.tar.gz
+	test? (
+		$(generate_dub_test_dependencies)
+	)
+"
+LICENSE="MIT"
+
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+DLANG_COMPAT=( dmd-2_{106..109} gdc-1{3,4} ldc2-1_{35..39} )
+
+inherit dlang-single shell-completion
+
+REQUIRED_USE=${DLANG_REQUIRED_USE}
+DEPEND=${DLANG_DEPS}
+BDEPEND=${DLANG_DEPS}
+RDEPEND=${DLANG_DEPS}
+
+src_unpack() {
+	unpack "${P}.tar.gz"
+
+	if use test; then
+		# Copy the archives locally. Some tests do need to perform an
+		# actual fetch operation so make all of them available as
+		# archives and let dub figure out the rest.
+		local store="${T}/dub-test-deps"
+		mkdir -p "${store}" || die
+
+		local dep
+		for dep in "${DUB_TEST_DEPS[@]}"; do
+			local depName depVersion
+			depName="${dep%@*}"
+			depVersion="${dep#*@}"
+
+			cp "${DISTDIR}/${depName}-${depVersion}.zip" "${store}" || die
+		done
+
+		# Generate a settings.json file that points to the directory with all the deps.
+		cat <<EOF > "${T}/settings.json"
+{
+	"registryUrls": [
+		"file://${store}"
+	],
+	"skipRegistry": "standard"
+}
+EOF
+	fi
+}
+
+src_compile() {
+	# gdc generates unaligned memory accesses with optimizations and avx
+	# enabled. It has been fixed upstream. See:
+	# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114171
+	# Fixed in >=sys-devel/gcc-13.2.1_p20240330. Adding -mno-sse2 makes
+	# tests fail so defer to removing the common way users get avx
+	# instructions enabled (-march=native) and warn them.
+	if [[ ${ARCH} == amd64 && ${EDC} == gdc-13 && ${DCFLAGS} == *-march=native* ]]; then
+		ewarn "<sys-devel/gcc-13.2.1_p20240330 is known to generate invalid code"
+		ewarn "on amd64 with certain flags. For this reason -march=native will be"
+		ewarn "removed from your flags. Feel free to use -march=<cpu> to bypass this"
+		ewarn "precaution."
+		ewarn ""
+		ewarn "See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114171"
+		dlang-filter-dflags "gdc*" "-march=native"
+	fi
+
+	local imports=source versions="DubApplication DubUseCurl"
+	dlang_compile_bin bin/dub $(<build-files.txt)
+
+	# Generate man pages. Rebuids dub so put it behind a USE flag.
+	if use doc; then
+		einfo "Generating man pages"
+		# You're supposed to be able to do ./bin/dub scrips/man/gen_man.d
+		# but it gives linking errors with gdc.
+
+		# $imports is set up above.
+		versions=DubUseCurl
+		dlang_compile_bin scripts/man/gen_man{,.d} \
+						  $(sed '/^source\/app.d$/d' build-files.txt)
+		./scripts/man/gen_man || die "Could not generate man pages"
+	fi
+}
+
+src_test() {
+	# Setup the environment for the tests.
+	local -x DUB="${S}/bin/dub"
+	local -x DUB_HOME="${T}/dub-home" # where to put artifacts
+
+	# Note, disabling tests is possible yet very hard. You have to
+	# create a bash variable containing a regex (to be used in =~) that
+	# matches all the tests that you want *to* run. It's probably easier
+	# to delete the subdirectory under ${S}/test.
+
+	# Tries to connect to github.com and fails due to the network sandbox
+	rm -rf "${S}/test/git-dependency" || die
+	# Doesn't work on non amd64/x86
+	if [[ ${ARCH} == arm64 ]]; then
+		rm -rf test/issue1447-build-settings-vars || die
+	fi
+
+	# gdc-13 doesn't support #include's in its importC implementation.
+	if [[ ${EDC} == gdc-13 ]]; then
+		rm -rf "${S}/test/use-c-sources" || die
+	fi
+
+	# Put the configuration file relative to the dub binary:
+	# <dub-bin-dir>/../etc/dub/settings.json as per
+	# https://dub.pm/dub-reference/settings so that it's picked up
+	# automatically.
+	mkdir -p "${S}/bin/../etc/dub" || die
+	cp "${T}/settings.json" "${S}/bin/../etc/dub/" \
+		|| die "Could not copy dub configuration file"
+
+	# See https://bugs.gentoo.org/921581 we have to remove -op (preserve
+	# source path for output files) from the flags lest the sandbox
+	# trips us up. This shouldn't be a problem anymore with dlang-single.
+	dlang-filter-dflags "*" "--op" "-op"
+
+	# Append -Wno-error or equivalent
+	DCFLAGS+=" $(dlang_get_wno_error_flag)"
+
+	# Run the unittests in the source files.
+	DFLAGS="${DCFLAGS}" "${DUB}" test -v -c application
+
+	# Run the integration tests.
+	DFLAGS="${DCFLAGS}" FRONTEND="$(dlang_get_fe_version)" test/run-unittest.sh  \
+		|| die "Tests failed"
+}
+
+src_install() {
+	dobin bin/dub
+	dodoc README.md
+
+	# Make sure there are no man files in any other section.
+	use doc && doman scripts/man/*.1
+
+	newbashcomp scripts/bash-completion/${PN}.bash ${PN}
+	dozshcomp scripts/zsh-completion/_${PN}
+	dofishcomp scripts/fish-completion/${PN}.fish
+}


             reply	other threads:[~2024-07-12 18:59 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-12 18:59 Horodniceanu Andrei [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-01-03 20:34 [gentoo-commits] repo/user/dlang:master commit in: dev-util/dub/ Horodniceanu Andrei
2024-08-30  7:58 Horodniceanu Andrei
2024-06-02  5:29 Horodniceanu Andrei
2024-06-02  5:29 Horodniceanu Andrei
2024-05-30 17:28 Horodniceanu Andrei
2024-05-30 17:28 Horodniceanu Andrei
2024-04-23 17:05 Horodniceanu Andrei
2024-04-13 23:04 Horodniceanu Andrei
2024-02-20 18:59 Horodniceanu Andrei
2024-02-18 22:49 Horodniceanu Andrei
2024-02-18 22:49 Horodniceanu Andrei
2024-01-14 20:45 Horodniceanu Andrei
2024-01-14 20:45 Horodniceanu Andrei
2024-01-03 19:56 Horodniceanu Andrei

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=1720809240.82c19a58ecf3ad1b94e68eb37262c876f8132f47.a.horodniceanu@gentoo \
    --to=a.horodniceanu@proton.me \
    --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