From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <gentoo-commits+bounces-1652348-garchives=archives.gentoo.org@lists.gentoo.org> Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 4F589158004 for <garchives@archives.gentoo.org>; Fri, 12 Jul 2024 18:59:45 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 976092BC0BE; Fri, 12 Jul 2024 18:59:44 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 76AE42BC0BE for <gentoo-commits@lists.gentoo.org>; Fri, 12 Jul 2024 18:59:44 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 878AE342FB3 for <gentoo-commits@lists.gentoo.org>; Fri, 12 Jul 2024 18:59:43 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id C8C5A1E15 for <gentoo-commits@lists.gentoo.org>; Fri, 12 Jul 2024 18:59:40 +0000 (UTC) From: "Horodniceanu Andrei" <a.horodniceanu@proton.me> To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Horodniceanu Andrei" <a.horodniceanu@proton.me> Message-ID: <1720809240.82c19a58ecf3ad1b94e68eb37262c876f8132f47.a.horodniceanu@gentoo> Subject: [gentoo-commits] repo/user/dlang:master commit in: dev-util/dub/ X-VCS-Repository: repo/user/dlang X-VCS-Files: dev-util/dub/Manifest dev-util/dub/dub-1.38.1.ebuild X-VCS-Directories: dev-util/dub/ X-VCS-Committer: a.horodniceanu X-VCS-Committer-Name: Horodniceanu Andrei X-VCS-Revision: 82c19a58ecf3ad1b94e68eb37262c876f8132f47 X-VCS-Branch: master Date: Fri, 12 Jul 2024 18:59:40 +0000 (UTC) Precedence: bulk List-Post: <mailto:gentoo-commits@lists.gentoo.org> List-Help: <mailto:gentoo-commits+help@lists.gentoo.org> List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org> List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org> List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org> X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 59b70658-819d-4e5d-a751-f9f6c69e9c6a X-Archives-Hash: 3eecd7f0dd71ffbde89da5b4092d79fe 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 +}