aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Horodniceanu <a.horodniceanu@proton.me>2024-05-03 13:02:47 +0300
committerAndrei Horodniceanu <a.horodniceanu@proton.me>2024-05-03 13:03:47 +0300
commita323fcc0ee344d95222c59fba35010056ea387f6 (patch)
tree7d4d339bc276a6100494d9737520757ad3b5e346
parentdlang-utils.eclass: add dlang_get_debug_flag (diff)
downloaddlang-a323fcc0ee344d95222c59fba35010056ea387f6.tar.gz
dlang-a323fcc0ee344d95222c59fba35010056ea387f6.tar.bz2
dlang-a323fcc0ee344d95222c59fba35010056ea387f6.zip
dev-util/dscanner: add 0.16.0_beta4
Additional changes: - strip -march=native with gdc - run integration tests - respect LDFLAGS Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114171 Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>
-rw-r--r--dev-util/dscanner/Manifest1
-rw-r--r--dev-util/dscanner/dscanner-0.16.0_beta4.ebuild111
-rw-r--r--dev-util/dscanner/files/makefile-respect-ldflags.patch22
3 files changed, 134 insertions, 0 deletions
diff --git a/dev-util/dscanner/Manifest b/dev-util/dscanner/Manifest
index 323d067..c1cb9f1 100644
--- a/dev-util/dscanner/Manifest
+++ b/dev-util/dscanner/Manifest
@@ -1,6 +1,7 @@
DIST DCD-1c60c5480f70db568279e4637a5033953c777406.tar.gz 199435 BLAKE2B d32410769e210d1eebf70c9007e4cf939df7e2104d5535f913c22a08503cd048b0b6a82563ee15fe47ce87e55fbbeef1d7e9893714d75f8ffd4beaeaf87ec5de SHA512 9f445134a97a58079e4805f3584bf9816e9c158db07c5409e63f2b5f371769b2fe66b2d66b1c4883279960d9d4fb020a6f20b83e4d32ad9c9c2d180940d7cb4e
DIST containers-116a02872039efbd0289828cd5eeff6f60bdf539.tar.gz 55518 BLAKE2B 466c2452724b3d377ca2cec8793e27b8599e4388644ef7058de4e535d5f095f6e713e6aaf7e934f944b68726f9a96aed3f093100f993cfe4db1efd5dbd9e6cd4 SHA512 e98ecc56b7dac12c347b591f65b33fc213a183e22c455e6bd2727d9797922069db70143240d935d72c38738fc43b579ede33c4a6d8e7ac0e5194001d3b0d773f
DIST dscanner-0.15.2.tar.gz 103122 BLAKE2B cff0637596cf094a9811bd49721b9328fada3de04d29edb69045d01111482f7dbf8631f6db296054d23d2ad66ca94a4c1fe8d23e4bae5aa3dbb01269ef30c164 SHA512 92ba1be469de5cf1edfa4e6e53b6c4acd6a2e2ef6a451650d5a652ce161b47c88255a8539a9cf716212449e7f6c16aa4950fa1445b287040c83deb54c978dcaf
+DIST dscanner-0.16.0-beta.4.tar.gz 119703 BLAKE2B 3d51cdfb5e3e894a4e9e48432a836a11f33eac543aeb236804fcc07bd43919bd23b5d9f00d02e4638ec4c17d494f435ea94bd5f2a39bf6b96fcabe98a0645738 SHA512 fdb64b5edc320dfd51ba76fe7ce1b8fe148f2f58da7b5c15511071186a5421c86be1e9eb18224c26c92fa082d2cecb6199c5952f9a54cf8b15fdc4d8c28140f5
DIST inifiled-cecaff8037a60db2a51c9bded4802c87d938a44e.tar.gz 8251 BLAKE2B fa0bb78c11f69e257a0974c16188475d50fcf2a56138fc288d6262be91604b8e706bfab2572b2d0e358c8366b400a2c5a3af6ba87d5243825ddf26a5a03fbfe2 SHA512 9a3c66eca2b48350c798fd0a54d37c8714d6a499e8412983f1bda2f00cda6fe1439bfbc6766d32529f3d7cc708a0528c52c077f9169727b492616691833c52d0
DIST libddoc-fbbfb8245728484e5f96d717994d4b404a9789a4.tar.gz 21113 BLAKE2B 419de2c211c609e81e9c65e85ac7ea22beb9490ae953ec8ffa996d538c4777732c21b1dc9bceb0551d5b83da94b493dd3c6b8ad9093fe839e5007dce63dbc036 SHA512 ccf6566da9d668ecb651bd26c17077669e4d9cba4832a424f57f271ef80b8b779c78e3c03b8736f3766d6653a6415ba65bc7de687648e370865127db2571655e
DIST libdparse-fe6d1e38fb4fc04323170389cfec67ed7fd4e24a.tar.gz 158963 BLAKE2B 4fc7b52921d0c163051b4115076a1473fd7138244bad8052e79298beaccb1ed3c737bbf0ae754f2596133d32cede71704e4ac43c486d69a4390e5654c1993bfa SHA512 cb36b7bfc7d33c0c2c9be25bf4bea1abdbad7c7c9860bbbe725be7d5859255f937fb3b4a2241b47eb4131dd1879819e47704eaadeeb660d5b245008f594107cf
diff --git a/dev-util/dscanner/dscanner-0.16.0_beta4.ebuild b/dev-util/dscanner/dscanner-0.16.0_beta4.ebuild
new file mode 100644
index 0000000..a0fbb7e
--- /dev/null
+++ b/dev-util/dscanner/dscanner-0.16.0_beta4.ebuild
@@ -0,0 +1,111 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Swiss-army knife for D source code"
+HOMEPAGE="https://github.com/dlang-community/D-Scanner"
+
+MY_PV=$(ver_rs 3 - 4 .) # For beta releases 0.16.0_beta4 -> 0.16.0-beta.4
+DCD="1c60c5480f70db568279e4637a5033953c777406"
+CONTAINERS="116a02872039efbd0289828cd5eeff6f60bdf539"
+INIFILED="cecaff8037a60db2a51c9bded4802c87d938a44e"
+LIBDDOC="fbbfb8245728484e5f96d717994d4b404a9789a4"
+LIBDPARSE="fe6d1e38fb4fc04323170389cfec67ed7fd4e24a"
+GITHUB_URI="https://codeload.github.com"
+SRC_URI="
+ ${GITHUB_URI}/dlang-community/${PN}/tar.gz/v${MY_PV} -> ${PN}-${MY_PV}.tar.gz
+ ${GITHUB_URI}/dlang-community/containers/tar.gz/${CONTAINERS} -> containers-${CONTAINERS}.tar.gz
+ ${GITHUB_URI}/dlang-community/DCD/tar.gz/${DCD} -> DCD-${DCD}.tar.gz
+ ${GITHUB_URI}/burner/inifiled/tar.gz/${INIFILED} -> inifiled-${INIFILED}.tar.gz
+ ${GITHUB_URI}/dlang-community/libddoc/tar.gz/${LIBDDOC} -> libddoc-${LIBDDOC}.tar.gz
+ ${GITHUB_URI}/dlang-community/libdparse/tar.gz/${LIBDPARSE} -> libdparse-${LIBDPARSE}.tar.gz
+ "
+S="${WORKDIR}/D-Scanner-${MY_PV}"
+LICENSE="Boost-1.0"
+
+PATCHES=(
+ "${FILESDIR}/0.15.2-makefile-fixes.patch"
+ "${FILESDIR}/makefile-respect-ldflags.patch"
+)
+
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="debug test"
+RESTRICT="!test? ( test )"
+
+DLANG_COMPAT=( dmd-2_{106..108} gdc-13 ldc2-1_{35..37} )
+
+inherit dlang-single
+
+REQUIRED_USE=${DLANG_REQUIRED_USE}
+DEPEND=${DLANG_DEPS}
+BDEPEND="
+ ${DLANG_DEPS}
+ test? ( app-misc/jq )
+"
+RDEPEND=${DLANG_DEPS}
+
+src_prepare() {
+ move_git_submodules
+
+ mkdir "${S}"/bin || die "Failed to create 'bin' directory."
+ # Stop the makefile from executing git
+ echo "v${PV}" > "${S}"/bin/githash.txt || die "Could not generate githash"
+
+ # Apply patches
+ default
+}
+
+src_compile() {
+ if [[ ${EDC} == gdc* && ${DCFLAGS} == *-march=native* ]]; then
+ # At this point I wonder if we should have been stripping it in the eclass.
+ # Fixed for >=sys-devel/gcc-13.2.1_p20240330
+ ewarn '-march=native has been removed from your flags.'
+ ewarn 'See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114171'
+ dlang-filter-dflags "gdc*" "-march=native"
+ fi
+
+ if use debug; then
+ # Add a -debug compiler specific flag and enable the dparse_verbose version,
+ # like the debug target in the makefile except that it doesn't build everything in 1 go.
+ DCFLAGS+=" $(dlang_get_version_flag)=dparse_verbose $(dlang_get_debug_flag)"
+ fi
+
+ emake DFLAGS="${DCFLAGS}"
+}
+
+src_test() {
+ # We can specify user flags in (DMD|LDC|GDC)_TEST_FLAGS
+ local flagName=${EDC::3}
+ flagName="${flagName^^}_TEST_FLAGS"
+
+ emake test "${flagName}=${DCFLAGS}"
+
+ # Set CI to non-empty to prevent rebuilding with dub
+ CI="gentoo" ./tests/it.sh || die "Integration tests failed"
+}
+
+src_install() {
+ dobin bin/dscanner
+ dodoc README.md LICENSE_1_0.txt
+}
+
+move_git_submodules() {
+ # Move all submodule dependencies into the appropriate folders.
+ # They have to be moved from ${WORKDIR}/${name}-${hash} to ${S}/${name}
+ local submodule submodules=(
+ "DCD" "containers" "inifiled" "libddoc" "libdparse"
+ )
+ for submodule in "${submodules[@]}"; do
+ # make the name uppercase: inifiled -> INIFILED
+ local submodule_hash_var="${submodule^^}"
+ # and extract the hash
+ local submodule_hash="${!submodule_hash_var}"
+
+ local submodule_directory="${WORKDIR}/${submodule}-${submodule_hash}"
+
+ mv -T "${submodule_directory}" "${S}/${submodule}" \
+ || die "Could not move submodule '${submodule}' to its subdirectory"
+ done
+}
diff --git a/dev-util/dscanner/files/makefile-respect-ldflags.patch b/dev-util/dscanner/files/makefile-respect-ldflags.patch
new file mode 100644
index 0000000..f0660e1
--- /dev/null
+++ b/dev-util/dscanner/files/makefile-respect-ldflags.patch
@@ -0,0 +1,22 @@
+diff --git a/makefile b/makefile
+index 7b1def6..1213435 100644
+--- a/makefile
++++ b/makefile
+@@ -98,7 +98,7 @@ $(UT_OBJ_DIR)/$(DC)/%.o: %.d
+ ${DC} ${DC_TEST_FLAGS} ${VERSIONS} ${INCLUDE_PATHS} -c $< ${WRITE_TO_TARGET_NAME}
+
+ ${DSCANNER_BIN}: ${GITHASH} ${OBJ_BY_DC} | ${DSCANNER_BIN_DIR}
+- ${DC} ${OBJ_BY_DC} ${WRITE_TO_TARGET_NAME}
++ ${DC} ${DLANG_LDFLAGS} ${OBJ_BY_DC} ${WRITE_TO_TARGET_NAME}
+
+ ${OBJ_BY_DC}: | ${OBJ_BY_DC_DIR}
+
+@@ -135,7 +135,7 @@ ${UT_DSCANNER_LIB}: ${LIB_SRC} | ${UT_DSCANNER_LIB_DIR}
+ test: ${UT_DSCANNER_BIN}
+
+ ${UT_DSCANNER_BIN}: ${UT_DSCANNER_LIB} ${GITHASH} ${UT_OBJ_BY_DC} | ${DSCANNER_BIN_DIR}
+- ${DC} ${UT_DSCANNER_LIB} ${UT_OBJ_BY_DC} ${WRITE_TO_TARGET_NAME}
++ ${DC} ${DLANG_LDFLAGS} ${UT_DSCANNER_LIB} ${UT_OBJ_BY_DC} ${WRITE_TO_TARGET_NAME}
+ ./${UT_DSCANNER_BIN}
+
+ lint: ${DSCANNER_BIN}