public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/user/dlang:master commit in: dev-util/dub/files/, dev-util/dub/
@ 2022-08-19 10:29 Marco Leise
  0 siblings, 0 replies; 2+ messages in thread
From: Marco Leise @ 2022-08-19 10:29 UTC (permalink / raw
  To: gentoo-commits

commit:     beae9775d4a49f0dbe72b15c5b0b17d48bcdedf1
Author:     Horodniceanu Andrei <a.horodniceanu <AT> protonmail <DOT> com>
AuthorDate: Sun Aug 14 11:39:39 2022 +0000
Commit:     Marco Leise <marco.leise <AT> gmx <DOT> de>
CommitDate: Sun Aug 14 11:41:41 2022 +0000
URL:        https://gitweb.gentoo.org/repo/user/dlang.git/commit/?id=beae9775

dev-util/dub version bump

Also added man pages support.

Signed-off-by: Horodniceanu Andrei <a.horodniceanu <AT> protonmail.com>

 dev-util/dub/Manifest                                     |  2 +-
 dev-util/dub/{dub-1.25.0.ebuild => dub-1.29.0.ebuild}     | 15 ++++++++++++---
 ...dmd-pathfix.patch => dub-1.29.0-gdc-dmd-pathfix.patch} |  0
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/dev-util/dub/Manifest b/dev-util/dub/Manifest
index b53e909..4c543e0 100644
--- a/dev-util/dub/Manifest
+++ b/dev-util/dub/Manifest
@@ -1 +1 @@
-DIST dub-1.25.0.tar.gz 1303972 BLAKE2B 64579b3150904b3e2ce76aa0dd5930f8d861afa7bb4ab0a2cf7b5796161adb61c0f510f07bea2b82bc23f64fd1f614c9222cec12c3254e0d18b510f4fa39aff1 SHA512 9694d79933283c79ef9e272a52f141f49097d65d2e203b78443da2b6e10ed249fe4ce4614f8357d11fb1de0bddfd56ea8cd2dd2b243ec25231ee1f7db5538d8c
+DIST dub-1.29.0.tar.gz 1321720 BLAKE2B c24f55cb4d356538a22eda86b8abec0d0ccdb3ede6bc1e49424ba8350d0ac95b2c3b9307c6eaa9b9547be6a040548824ea32a019aac62287f8410c9beec07bd2 SHA512 f851ceccb7aa1ee00560c64fca2cf4239f0b260c7c2eee5c3688a555f7f37ff7bc4894cbc944ec0cf3a5b1cb1cf33d6d1e9cf23b24b42e098ccb3f432354a97c

diff --git a/dev-util/dub/dub-1.25.0.ebuild b/dev-util/dub/dub-1.29.0.ebuild
similarity index 61%
rename from dev-util/dub/dub-1.25.0.ebuild
rename to dev-util/dub/dub-1.29.0.ebuild
index e60575b..29c03c0 100644
--- a/dev-util/dub/dub-1.25.0.ebuild
+++ b/dev-util/dub/dub-1.29.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -8,14 +8,15 @@ HOMEPAGE="https://code.dlang.org/"
 LICENSE="MIT"
 
 SLOT="0"
-KEYWORDS="amd64 ~arm x86"
+KEYWORDS="~amd64 ~arm ~x86"
 IUSE="debug"
 
 GITHUB_URI="https://codeload.github.com/dlang"
 SRC_URI="${GITHUB_URI}/${PN}/tar.gz/v${PV} -> ${PN}-${PV}.tar.gz"
 PATCHES="${FILESDIR}/${P}-gdc-dmd-pathfix.patch"
 
-DLANG_VERSION_RANGE="2.081-"
+# Upstream recommends the latest version available
+DLANG_VERSION_RANGE="2.083-"
 DLANG_PACKAGE_TYPE="single"
 
 inherit dlang
@@ -26,6 +27,9 @@ RDEPEND="${DEPEND}"
 d_src_compile() {
 	local imports=source versions="DubApplication DubUseCurl" libs="curl z"
 	dlang_compile_bin bin/dub $(<build-files.txt)
+
+	# Generate man pages
+	bin/dub scripts/man/gen_man.d || die "Could not generate man pages."
 }
 
 d_src_test() {
@@ -36,4 +40,9 @@ d_src_test() {
 d_src_install() {
 	dobin bin/dub
 	dodoc README.md
+
+	# All the files in the directory below, with the exception of gen_man.d and README, are man pages.
+	# To keep the ebuild simple, we will just glob on the files that end in .1 since there are currently
+	# no man pages in a different section.
+	doman scripts/man/*.1
 }

diff --git a/dev-util/dub/files/dub-1.25.0-gdc-dmd-pathfix.patch b/dev-util/dub/files/dub-1.29.0-gdc-dmd-pathfix.patch
similarity index 100%
rename from dev-util/dub/files/dub-1.25.0-gdc-dmd-pathfix.patch
rename to dev-util/dub/files/dub-1.29.0-gdc-dmd-pathfix.patch


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [gentoo-commits] repo/user/dlang:master commit in: dev-util/dub/files/, dev-util/dub/
@ 2024-02-20 18:54 Horodniceanu Andrei
  0 siblings, 0 replies; 2+ messages in thread
From: Horodniceanu Andrei @ 2024-02-20 18:54 UTC (permalink / raw
  To: gentoo-commits

commit:     51b60bbc3e404fad03b2fa9d111f986d9fdd5ae3
Author:     Horodniceanu Andrei <a.horodniceanu <AT> proton <DOT> me>
AuthorDate: Tue Feb 20 18:41:47 2024 +0000
Commit:     Horodniceanu Andrei <a.horodniceanu <AT> proton <DOT> me>
CommitDate: Tue Feb 20 18:42:18 2024 +0000
URL:        https://gitweb.gentoo.org/repo/user/dlang.git/commit/?id=51b60bbc

dev-util/dub: add 1.36.0

Additional changes:
- install bash/zsh/fish completions
- generate man pages with USE=doc

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

 dev-util/dub/Manifest                              |   1 +
 dev-util/dub/dub-1.36.0.ebuild                     | 174 +++++++++++++++++++++
 .../dub-1.36.0-fix-wno-error-not-applying.patch    | 110 +++++++++++++
 dev-util/dub/metadata.xml                          |   6 +-
 4 files changed, 290 insertions(+), 1 deletion(-)

diff --git a/dev-util/dub/Manifest b/dev-util/dub/Manifest
index ce30927..2bf5f79 100644
--- a/dev-util/dub/Manifest
+++ b/dev-util/dub/Manifest
@@ -1,4 +1,5 @@
 DIST dub-1.35.1.tar.gz 1494965 BLAKE2B 400e210584660f7ac67732006ca6d88156adbbf2bf221aa244e317bf7c2772a6a01d9e141252fbf0cfde4c07302ee533593f3a2f418f9e120edc7359a83180cf SHA512 a371a7ec7003a4a4fb642a3567fce0685c99f4940a02de94d026bdc6fe4e84512b16e4bb57673da4d3b8e25177cc3df329da41862086cecc7b98aec1ebf9e4e7
+DIST dub-1.36.0.tar.gz 1502081 BLAKE2B 2ae9503d5c8725de801d65a06fab07e9e3b8fbb007159b1e90fda18d2ca1f0361b055cf2de4e4290828a7fb401168b15c1a85eca872a58d7ce0d5eb5f979ff4e SHA512 7a0e5c5432bbe6d67be8f98e8bc7ef0350e9eb358b13f795b9c18ef9a781dc3092074d88b7a846cf69e1ba648641c6acd8b766ec4bf119ce9b380d886f87b4c3
 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.36.0.ebuild b/dev-util/dub/dub-1.36.0.ebuild
new file mode 100644
index 0000000..7bae587
--- /dev/null
+++ b/dev-util/dub/dub-1.36.0.ebuild
@@ -0,0 +1,174 @@
+# 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/"
+LICENSE="MIT"
+
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="debug doc test"
+RESTRICT="!test? ( test )"
+
+DUB_TEST_DEPS=(
+	gitcompatibledubpackage@1.0.1
+	gitcompatibledubpackage@1.0.4
+	urld@2.1.1
+)
+generate_dub_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_dependencies)
+)
+"
+
+PATCHES=(
+	"${FILESDIR}/${PF}-fix-wno-error-not-applying.patch"
+)
+
+# Upstream recommends the latest version available
+DLANG_VERSION_RANGE="2.100-2.107"
+DLANG_PACKAGE_TYPE="single"
+
+inherit dlang shell-completion
+
+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": "all"
+}
+EOF
+	fi
+}
+
+d_src_compile() {
+	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
+}
+
+d_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
+
+	if [[ ${DLANG_VENDOR} == GNU ]]; then
+		# Should be skipped on dmd and gdc but $DC being in the form
+		# ${CHOST}-gdc makes the unittest script not skip it.
+		rm -rf test/depen-build-settings || die
+	fi
+
+	local dropImportCTest
+	# We have an importC test and not all compilers pass it properly.
+	# gdc doesn't support #include's in its importC implementation yet.
+	# Only check == 13 since 12 is skipped by the script.
+	[[ ${DLANG_VENDOR} == GNU ]] && [[ ${DC_VERSION} == 13 ]] && dropImportCTest=1
+	# Nor does <=ldc2-1.32.
+	[[ ${DLANG_VENDOR} == LDC ]] && $(ver_test ${DC_VERSION} -le 1.32) && dropImportCTest=1
+	# dmd can do #include's but there are some other errors about
+	# __float128 in <=dmd-2.102 on x86.
+	[[ ${DLANG_VENDOR} == DigitalMars ]] && $(ver_test ${DC_VERSION} -le 2.102) \
+		&& [[ ${ARCH} == x86 ]] && dropImportCTest=1
+	if [[ ${dropImportCTest} ]]; 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.
+	local newDflags="${DCFLAGS//--op/}"
+	newDflags="${newDflags//-op/}"
+
+	# Append -Wno-error or equivalent
+	newDflags+=" $(get_wno_error_flag)"
+
+	DFLAGS="${newDflags}" FRONTEND="${DLANG_VERSION}" test/run-unittest.sh  \
+		|| die "Tests failed"
+}
+
+d_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
+}
+
+get_wno_error_flag() {
+	case "${DLANG_VENDOR}" in
+		DigitalMars) echo "-wi" ;;
+		GNU) echo "-Wno-error" ;;
+		LDC) echo "--wi" ;;
+	esac
+}

diff --git a/dev-util/dub/files/dub-1.36.0-fix-wno-error-not-applying.patch b/dev-util/dub/files/dub-1.36.0-fix-wno-error-not-applying.patch
new file mode 100644
index 0000000..835414e
--- /dev/null
+++ b/dev-util/dub/files/dub-1.36.0-fix-wno-error-not-applying.patch
@@ -0,0 +1,110 @@
+commit 2ace85947547a5d97ecf740ec4e3e36903b5ad1a
+Author: Andrei Horodniceanu <a.horodniceanu@proton.me>
+Date:   Sat Jan 13 11:42:16 2024 +0200
+
+    Let uesr $DFLAGS override build settings as much as possible
+    
+    Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>
+
+diff --git a/source/dub/compilers/dmd.d b/source/dub/compilers/dmd.d
+index 78fd9d4b..5b59d2b9 100644
+--- a/source/dub/compilers/dmd.d
++++ b/source/dub/compilers/dmd.d
+@@ -230,6 +230,11 @@ config    /etc/dmd.conf
+ 	{
+ 		enforceBuildRequirements(settings);
+ 
++		// Keep the current dflags at the end of the array so that they will overwrite other flags.
++		// This allows user $DFLAGS to modify flags added by us.
++		const dflagsTail = settings.dflags;
++		settings.dflags = [];
++
+ 		if (!(fields & BuildSetting.options)) {
+ 			foreach (t; s_options)
+ 				if (settings.options & t[0])
+@@ -282,6 +287,8 @@ config    /etc/dmd.conf
+ 		if (platform.platform.canFind("posix") && (settings.options & BuildOption.pic))
+ 			settings.addDFlags("-fPIC");
+ 
++		settings.addDFlags(dflagsTail);
++
+ 		assert(fields & BuildSetting.dflags);
+ 		assert(fields & BuildSetting.copyFiles);
+ 	}
+diff --git a/source/dub/compilers/gdc.d b/source/dub/compilers/gdc.d
+index 0d34446e..3df8eda6 100644
+--- a/source/dub/compilers/gdc.d
++++ b/source/dub/compilers/gdc.d
+@@ -89,6 +89,11 @@ class GDCCompiler : Compiler {
+ 	{
+ 		enforceBuildRequirements(settings);
+ 
++		// Keep the current dflags at the end of the array so that they will overwrite other flags.
++		// This allows user $DFLAGS to modify flags added by us.
++		const dflagsTail = settings.dflags;
++		settings.dflags = [];
++
+ 		if (!(fields & BuildSetting.options)) {
+ 			foreach (t; s_options)
+ 				if (settings.options & t[0])
+@@ -138,6 +143,8 @@ class GDCCompiler : Compiler {
+ 		if (settings.options & BuildOption.pic)
+ 			settings.addDFlags("-fPIC");
+ 
++		settings.addDFlags(dflagsTail);
++
+ 		assert(fields & BuildSetting.dflags);
+ 		assert(fields & BuildSetting.copyFiles);
+ 	}
+diff --git a/source/dub/compilers/ldc.d b/source/dub/compilers/ldc.d
+index 3cb90e5b..3959df61 100644
+--- a/source/dub/compilers/ldc.d
++++ b/source/dub/compilers/ldc.d
+@@ -107,6 +107,11 @@ config    /etc/ldc2.conf (x86_64-pc-linux-gnu)
+ 		import std.format : format;
+ 		enforceBuildRequirements(settings);
+ 
++		// Keep the current dflags at the end of the array so that they will overwrite other flags.
++		// This allows user $DFLAGS to modify flags added by us.
++		const dflagsTail = settings.dflags;
++		settings.dflags = [];
++
+ 		if (!(fields & BuildSetting.options)) {
+ 			foreach (t; s_options)
+ 				if (settings.options & t[0])
+@@ -170,6 +175,8 @@ config    /etc/ldc2.conf (x86_64-pc-linux-gnu)
+ 			}
+ 		}
+ 
++		settings.addDFlags(dflagsTail);
++
+ 		assert(fields & BuildSetting.dflags);
+ 		assert(fields & BuildSetting.copyFiles);
+ 	}
+diff --git a/source/dub/package_.d b/source/dub/package_.d
+index 307ad78d..79be1ed2 100644
+--- a/source/dub/package_.d
++++ b/source/dub/package_.d
+@@ -422,10 +422,6 @@ class Package {
+ 	*/
+ 	void addBuildTypeSettings(ref BuildSettings settings, in BuildPlatform platform, string build_type)
+ 	const {
+-		import std.process : environment;
+-		string dflags = environment.get("DFLAGS", "");
+-		settings.addDFlags(dflags.split());
+-
+ 		if (auto pbt = build_type in m_info.buildTypes) {
+ 			logDiagnostic("Using custom build type '%s'.", build_type);
+ 			pbt.getPlatformSettings(settings, platform, this.path);
+@@ -450,6 +446,11 @@ class Package {
+ 				case "syntax": settings.addOptions(syntaxOnly); break;
+ 			}
+ 		}
++
++		// Add environment DFLAGS last so that user specified values are not overriden by us.
++		import std.process : environment;
++		string dflags = environment.get("DFLAGS", "");
++		settings.addDFlags(dflags.split());
+ 	}
+ 
+ 	/** Returns the selected configuration for a certain dependency.

diff --git a/dev-util/dub/metadata.xml b/dev-util/dub/metadata.xml
index 920817d..6f5df05 100644
--- a/dev-util/dub/metadata.xml
+++ b/dev-util/dub/metadata.xml
@@ -1,3 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata/>
\ No newline at end of file
+<pkgmetadata>
+  <use>
+    <flag name="doc">Generate and install man pages. Requires building dub twice.</flag>
+  </use>
+</pkgmetadata>


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-02-20 18:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-19 10:29 [gentoo-commits] repo/user/dlang:master commit in: dev-util/dub/files/, dev-util/dub/ Marco Leise
  -- strict thread matches above, loose matches on Subject: below --
2024-02-20 18:54 Horodniceanu Andrei

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox