public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2024-06-30 16:41 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2024-06-30 16:41 UTC (permalink / raw
  To: gentoo-commits

commit:     78dba2e9d4843501eee1917f547a33e9b05219d6
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Sun Jun 30 16:39:22 2024 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Sun Jun 30 16:39:22 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=78dba2e9

dev-lang/swift: new package, add 5.10.1

Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/Manifest            |  1 +
 dev-lang/swift/metadata.xml        |  8 +++++
 dev-lang/swift/swift-5.10.1.ebuild | 63 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 72 insertions(+)

diff --git a/dev-lang/swift/Manifest b/dev-lang/swift/Manifest
new file mode 100644
index 000000000..20eea2b81
--- /dev/null
+++ b/dev-lang/swift/Manifest
@@ -0,0 +1 @@
+DIST swift-5.10.1-RELEASE-fedora39.tar.gz 701249576 BLAKE2B 37e3e989476c9676c642c604948eec1285f06998f02e8d75ed723bebb360069dc77d1eabcc8c97039461e018034d71ff7867cb9308c839fd708cca87f3ee90e1 SHA512 582e2f23e6b9dca76c908452ad1a0f20e0ab1f789b3e140568427f13736071ec9ce9c16abaa90535510cc5a08001cd5e95961ae8bb591b249c16f3881d289859

diff --git a/dev-lang/swift/metadata.xml b/dev-lang/swift/metadata.xml
new file mode 100644
index 000000000..a6dcf0dba
--- /dev/null
+++ b/dev-lang/swift/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+  <!-- maintainer needed -->
+  <upstream>
+    <remote-id type="github">swiftlang/swift</remote-id>
+  </upstream>
+</pkgmetadata>

diff --git a/dev-lang/swift/swift-5.10.1.ebuild b/dev-lang/swift/swift-5.10.1.ebuild
new file mode 100644
index 000000000..6c03b45e0
--- /dev/null
+++ b/dev-lang/swift/swift-5.10.1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit python-single-r1
+
+DESCRIPTION="A high-level general-purpose, multi-paradigm, compiled programming language"
+HOMEPAGE="https://www.swift.org/"
+SRC_URI="amd64? ( https://download.swift.org/${P}-release/fedora39/${P}-RELEASE/${P}-RELEASE-fedora39.tar.gz )"
+S="${WORKDIR}/${P}-RELEASE-fedora39/usr"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="-* ~amd64"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RESTRICT="bindist mirror test strip"
+
+RDEPEND="
+	${PYTHON_DEPS}
+	dev-db/sqlite
+	dev-lang/python
+	dev-libs/libedit
+	dev-libs/libxml2
+	dev-vcs/git
+	net-misc/curl
+	sys-devel/binutils[gold]
+	sys-devel/gcc
+	sys-libs/ncurses
+	sys-libs/zlib
+"
+
+BDEPEND="dev-util/patchelf"
+
+QA_PREBUILT="*"
+
+src_install() {
+	# lib/swift/linux/libicudataswift.so.69.1 has an empty DT_RUNPATH, which
+	# fails `rpath_security_checks`. It contains only data, so we can remove its
+	# rpath altogether.
+	patchelf --remove-rpath lib/swift/linux/libicudataswift.so.69.1
+
+	# The RELEASE tarball is a self-contained portable installation that's
+	# _significantly_ easier to leave as-is rather than attempt to splat onto
+	# the filesystem; we'll install the contents as-is into
+	# `/usr/lib64/swift-{version}` (e.g., `/usr/lib64/swift-5.10.1`) and expose
+	# the relevant binaries via linking.
+	dest_dir="/usr/lib64/swift-${PV}"
+	mkdir -p "${ED}${dest_dir}"
+	cp -pPR "${S}" "${ED}${dest_dir}"
+
+	# Swift ships with its own `clang`, `lldb`, etc.; these don't need to be
+	# exposed externally, so we'll just symlink Swift-specific binaries into
+	# `/usr/bin`.
+	find bin -maxdepth 1 \( -type f -o -type l \) \
+		\( -name "swift*" -o -name "sourcekit*" \) -executable -print0 |
+		while IFS= read -r -d '' exe_path; do
+			exe_name="$(basename "$exe_path")"
+			dosym -r "${dest_dir}/usr/bin/${exe_name}" "/usr/bin/${exe_name}"
+		done
+}


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2024-07-16 16:53 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2024-07-16 16:53 UTC (permalink / raw
  To: gentoo-commits

commit:     b67ca5142113fb660097d87e204ed77da80d027a
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Tue Jul 16 16:52:30 2024 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Tue Jul 16 16:52:30 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=b67ca514

dev-lang/swift: add myself as a maintainer

Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/metadata.xml | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/dev-lang/swift/metadata.xml b/dev-lang/swift/metadata.xml
index a6dcf0dba..810cc5c5a 100644
--- a/dev-lang/swift/metadata.xml
+++ b/dev-lang/swift/metadata.xml
@@ -1,7 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-  <!-- maintainer needed -->
+  <maintainer type="person">
+    <email>itai@itaiferber.net</email>
+    <name>Itai Ferber</name>
+  </maintainer>
   <upstream>
     <remote-id type="github">swiftlang/swift</remote-id>
   </upstream>


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2024-07-16 23:19 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2024-07-16 23:19 UTC (permalink / raw
  To: gentoo-commits

commit:     f8b6c19cab860c30df26c5b196e337d319d9cb6c
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Tue Jul 16 23:19:15 2024 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Tue Jul 16 23:19:18 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=f8b6c19c

dev-lang/swift: update SRC_URI and clean up ebuild

Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-5.10.1.ebuild | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/dev-lang/swift/swift-5.10.1.ebuild b/dev-lang/swift/swift-5.10.1.ebuild
index 6c03b45e0..8938f227e 100644
--- a/dev-lang/swift/swift-5.10.1.ebuild
+++ b/dev-lang/swift/swift-5.10.1.ebuild
@@ -8,7 +8,7 @@ inherit python-single-r1
 
 DESCRIPTION="A high-level general-purpose, multi-paradigm, compiled programming language"
 HOMEPAGE="https://www.swift.org/"
-SRC_URI="amd64? ( https://download.swift.org/${P}-release/fedora39/${P}-RELEASE/${P}-RELEASE-fedora39.tar.gz )"
+SRC_URI="https://download.swift.org/${P}-release/fedora39/${P}-RELEASE/${P}-RELEASE-fedora39.tar.gz"
 S="${WORKDIR}/${P}-RELEASE-fedora39/usr"
 
 LICENSE="Apache-2.0"
@@ -16,7 +16,7 @@ SLOT="0"
 KEYWORDS="-* ~amd64"
 REQUIRED_USE="${PYTHON_REQUIRED_USE}"
 
-RESTRICT="bindist mirror test strip"
+RESTRICT="strip"
 
 RDEPEND="
 	${PYTHON_DEPS}
@@ -47,9 +47,9 @@ src_install() {
 	# the filesystem; we'll install the contents as-is into
 	# `/usr/lib64/swift-{version}` (e.g., `/usr/lib64/swift-5.10.1`) and expose
 	# the relevant binaries via linking.
-	dest_dir="/usr/lib64/swift-${PV}"
-	mkdir -p "${ED}${dest_dir}"
-	cp -pPR "${S}" "${ED}${dest_dir}"
+	local dest_dir="/usr/lib64/swift-${PV}"
+	mkdir -p "${ED}${dest_dir}" || die
+	cp -pPR "${S}" "${ED}${dest_dir}" || die
 
 	# Swift ships with its own `clang`, `lldb`, etc.; these don't need to be
 	# exposed externally, so we'll just symlink Swift-specific binaries into
@@ -57,7 +57,7 @@ src_install() {
 	find bin -maxdepth 1 \( -type f -o -type l \) \
 		\( -name "swift*" -o -name "sourcekit*" \) -executable -print0 |
 		while IFS= read -r -d '' exe_path; do
-			exe_name="$(basename "$exe_path")"
+			local exe_name="$(basename "$exe_path")"
 			dosym -r "${dest_dir}/usr/bin/${exe_name}" "/usr/bin/${exe_name}"
 		done
 }


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2024-08-10 15:59 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2024-08-10 15:59 UTC (permalink / raw
  To: gentoo-commits

commit:     b7c90de761e043fe8af43065a199468479795c6e
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Sat Aug 10 15:55:45 2024 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Sat Aug 10 15:55:45 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=b7c90de7

dev-lang/swift: fix build-time dependencies

Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-5.10.1.ebuild | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/dev-lang/swift/swift-5.10.1.ebuild b/dev-lang/swift/swift-5.10.1.ebuild
index 229554531..a53eb87d5 100644
--- a/dev-lang/swift/swift-5.10.1.ebuild
+++ b/dev-lang/swift/swift-5.10.1.ebuild
@@ -64,13 +64,10 @@ RESTRICT="strip"
 
 RDEPEND="
 	${PYTHON_DEPS}
-	>=dev-build/cmake-3.24.2
-	>=dev-build/ninja-1.11
 	>=dev-db/sqlite-3
 	>=dev-libs/icu-69
 	>=dev-libs/libedit-20221030
 	>=dev-libs/libxml2-2.11.5
-	>=dev-vcs/git-2.39
 	>=net-misc/curl-8.4
 	>=sys-devel/lld-15
 	>=sys-libs/ncurses-6
@@ -80,8 +77,18 @@ RDEPEND="
 
 BDEPEND="
 	${PYTHON_DEPS}
+	>=dev-build/cmake-3.24.2
+	>=dev-build/ninja-1.11
+	>=dev-db/sqlite-3
+	>=dev-libs/libedit-20221030
+	>=dev-libs/libxml2-2.11.5
 	>=dev-util/patchelf-0.18
+	>=dev-vcs/git-2.39
 	>=sys-apps/coreutils-9
+	>=sys-devel/clang-15
+	>=sys-libs/ncurses-6
+	>=sys-libs/zlib-1.3
+	dev-lang/python
 "
 
 src_unpack() {


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2024-08-10 15:59 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2024-08-10 15:59 UTC (permalink / raw
  To: gentoo-commits

commit:     62e1a683e77158f26a629331aa67babdf6708c1e
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Sat Aug 10 15:53:40 2024 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Sat Aug 10 15:53:40 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=62e1a683

dev-lang/swift: disable py3.6, py3.7, py3.8, py3.9

Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-5.10.1.ebuild | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/dev-lang/swift/swift-5.10.1.ebuild b/dev-lang/swift/swift-5.10.1.ebuild
index a205ad19d..229554531 100644
--- a/dev-lang/swift/swift-5.10.1.ebuild
+++ b/dev-lang/swift/swift-5.10.1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{6..13} )
+PYTHON_COMPAT=( python3_{10..13} )
 inherit python-single-r1
 
 DESCRIPTION="A high-level, general-purpose, multi-paradigm, compiled programming language"
@@ -79,6 +79,7 @@ RDEPEND="
 "
 
 BDEPEND="
+	${PYTHON_DEPS}
 	>=dev-util/patchelf-0.18
 	>=sys-apps/coreutils-9
 "


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2024-08-10 15:59 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2024-08-10 15:59 UTC (permalink / raw
  To: gentoo-commits

commit:     4ea75ccb1674776ca811a0b2df41c83ea48fb9a2
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Sat Aug 10 15:57:24 2024 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Sat Aug 10 15:57:24 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=4ea75ccb

dev-lang/swift: ebuild correctness fixes

Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-5.10.1.ebuild | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/dev-lang/swift/swift-5.10.1.ebuild b/dev-lang/swift/swift-5.10.1.ebuild
index a53eb87d5..4037a47c9 100644
--- a/dev-lang/swift/swift-5.10.1.ebuild
+++ b/dev-lang/swift/swift-5.10.1.ebuild
@@ -49,10 +49,10 @@ SRC_URI="
 	https://github.com/unicode-org/icu/archive/refs/tags/release-69-1.tar.gz -> icu-69.1.tar.gz
 "
 
-PATCHES="
-	${FILESDIR}/${P}-link-with-lld.patch
-	${FILESDIR}/${P}-llbuild-link-ncurses-tinfo-gentoo.patch
-"
+PATCHES=(
+	"${FILESDIR}/${P}-link-with-lld.patch"
+	"${FILESDIR}/${P}-llbuild-link-ncurses-tinfo-gentoo.patch"
+)
 
 S="${WORKDIR}"
 LICENSE="Apache-2.0"
@@ -234,7 +234,7 @@ src_install() {
 	# `libicudataswift.so.69.1` has an empty `DT_RUNPATH`, which fails
 	# `rpath_security_checks`. It contains only data, so we can remove its rpath
 	# altogether.
-	patchelf --remove-rpath "${S}/stage2/usr/lib/swift/linux/libicudataswift.so.69.1"
+	patchelf --remove-rpath "${S}/stage2/usr/lib/swift/linux/libicudataswift.so.69.1" || die
 
 	# The Swift build output is intended to be self-contained, and is
 	# _significantly_ easier to leave as-is than attempt to splat onto the
@@ -249,6 +249,7 @@ src_install() {
 	# exposed externally, so we'll just symlink Swift-specific binaries into
 	# `/usr/bin`. (The majority of executables don't need to be exposed as
 	# `swift <command>` calls `swift-<command>` directly.)
+	local bin
 	for bin in swift swiftc sourcekit-lsp; do
 		dosym -r "${dest_dir}/usr/bin/${bin}" "/usr/bin/${bin}"
 	done


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2024-08-10 17:51 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2024-08-10 17:51 UTC (permalink / raw
  To: gentoo-commits

commit:     4b80fdd7ea24f22a138b85ecb35b460fc08093dc
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Sat Aug 10 17:49:48 2024 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Sat Aug 10 17:51:42 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=4b80fdd7

dev-lang/swift: remove unnecessary libicu source dependency

Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/Manifest            | 1 -
 dev-lang/swift/swift-5.10.1.ebuild | 7 -------
 2 files changed, 8 deletions(-)

diff --git a/dev-lang/swift/Manifest b/dev-lang/swift/Manifest
index 774e29780..33bc33c04 100644
--- a/dev-lang/swift/Manifest
+++ b/dev-lang/swift/Manifest
@@ -1,5 +1,4 @@
 DIST Yams-5.0.1.tar.gz 658324 BLAKE2B 8e95d96df85115b59334c9e20e03120040f6095c3a3f00110c2cd890077dd17f2f79a22452d380e05e463860c367db39b4df13815ee00ea80964707ef038c9ee SHA512 91feecb95d1997235e443dea925ff11fa665e94c12c8eca2ed066ef340a51ec0253df2545d91184c31423cb4b039e1f89ac8f743cf3f154c9d93495eecc45432
-DIST icu-69.1.tar.gz 62824536 BLAKE2B 591ba9b790e24c824cf5e1108f3ee14bee6c9bbc2379db2e3062970331bb633aefd926e1d407782ccfa754e953d390a9bb9dae5c8a8f7883373a224b0ca010a7 SHA512 4bfe07fb2ce647961ada18b1c5bfa10f38b4b95b8801c9720b3e223f92e6eddabdfc9b9f8553cc092bed309ec663e7f63873e370e390a1de9f7779c6bfe133c1
 DIST indexstore-db-5.10.1.tar.gz 909365 BLAKE2B fde150aff5a46970aafc872be8f9a57e338c648e2d3f5ea49a223d72d3cd402496a1045716551fd07c9954ea123a87070593d6fdd315a825f57d9d513f01d6b3 SHA512 1fc62360a5cd4701da314774b4c5c6a6a9cc2a8d46881962fc80331006c255d173f8ace8d743a09b3fcdbf1e92570248666396a0b78ce8be19eeff65ab6c3235
 DIST llvm-project-5.10.1.tar.gz 171145818 BLAKE2B e314f2e8716cb36b43e1ec23fe2fe212e4ab79e711f4544d54788338067f75b87abe84ecc60b1b5f073f0349d45363346d8a6b89b85f2ae6801cd09709293f52 SHA512 c659041234da1fed29a7186f0e436b0867576096483333d71f11e72828b45e2c7bd9b15db7d3da348a114af48a649f8a484ba3bd4de84d2f5cdb8a7035c5ad30
 DIST sourcekit-lsp-5.10.1.tar.gz 301167 BLAKE2B a1ff3b22c4ab2583d39687aae385fc52dcbb02237035ace8bc0fc6c705db1cd6734dae1656078080c7599ad4b75f5e03def7f60b0e0361bcb25e45bc9ea3c676 SHA512 4a2f7c2129a69c05c8d158877efb1538f092f8eb2d1b1194661cb7c6f201330ecf7fd33bb0d06dd595bc6966e19b739d103478db6c9b2a4c2d7ae351bfb398a8

diff --git a/dev-lang/swift/swift-5.10.1.ebuild b/dev-lang/swift/swift-5.10.1.ebuild
index 4037a47c9..ffcd49eb2 100644
--- a/dev-lang/swift/swift-5.10.1.ebuild
+++ b/dev-lang/swift/swift-5.10.1.ebuild
@@ -46,7 +46,6 @@ SRC_URI="
 	https://github.com/swiftlang/swift-syntax/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-syntax-${PV}.tar.gz
 	https://github.com/swiftlang/swift-tools-support-core/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-tools-support-core-${PV}.tar.gz
 	https://github.com/swiftlang/swift/archive/refs/tags/${P}-RELEASE.tar.gz -> ${P}.tar.gz
-	https://github.com/unicode-org/icu/archive/refs/tags/release-69-1.tar.gz -> icu-69.1.tar.gz
 "
 
 PATCHES=(
@@ -105,7 +104,6 @@ src_unpack() {
 
 	# Some one-off fixups:
 	pushd "${S}" \
-		&& mv 'icu-release-69' 'icu' \
 		&& mv 'swift-cmark' 'cmark' \
 		&& mv 'swift-llbuild' 'llbuild' \
 		&& mv 'swift-package-manager' 'swiftpm' \
@@ -231,11 +229,6 @@ src_compile() {
 }
 
 src_install() {
-	# `libicudataswift.so.69.1` has an empty `DT_RUNPATH`, which fails
-	# `rpath_security_checks`. It contains only data, so we can remove its rpath
-	# altogether.
-	patchelf --remove-rpath "${S}/stage2/usr/lib/swift/linux/libicudataswift.so.69.1" || die
-
 	# The Swift build output is intended to be self-contained, and is
 	# _significantly_ easier to leave as-is than attempt to splat onto the
 	# filesystem; we'll install the output versioned into `/usr/lib64` and


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2024-08-10 18:38 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2024-08-10 18:38 UTC (permalink / raw
  To: gentoo-commits

commit:     9075a897d030386761d50ffe79911de80b1ae79d
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Sat Aug 10 18:37:35 2024 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Sat Aug 10 18:37:55 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=9075a897

dev-lang/swift: add lld build-time dependency

Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-5.10.1.ebuild | 1 +
 1 file changed, 1 insertion(+)

diff --git a/dev-lang/swift/swift-5.10.1.ebuild b/dev-lang/swift/swift-5.10.1.ebuild
index ffcd49eb2..7610ec7c1 100644
--- a/dev-lang/swift/swift-5.10.1.ebuild
+++ b/dev-lang/swift/swift-5.10.1.ebuild
@@ -85,6 +85,7 @@ BDEPEND="
 	>=dev-vcs/git-2.39
 	>=sys-apps/coreutils-9
 	>=sys-devel/clang-15
+	>=sys-devel/lld-15
 	>=sys-libs/ncurses-6
 	>=sys-libs/zlib-1.3
 	dev-lang/python


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2024-08-10 20:15 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2024-08-10 20:15 UTC (permalink / raw
  To: gentoo-commits

commit:     81b6f5cdfdb2bb9be333303b1072dd1bfacee234
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Sat Aug 10 20:14:37 2024 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Sat Aug 10 20:15:00 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=81b6f5cd

dev-lang/swift: add libicu as a build-time dependency

Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-5.10.1.ebuild | 1 +
 1 file changed, 1 insertion(+)

diff --git a/dev-lang/swift/swift-5.10.1.ebuild b/dev-lang/swift/swift-5.10.1.ebuild
index 7610ec7c1..751bc6a93 100644
--- a/dev-lang/swift/swift-5.10.1.ebuild
+++ b/dev-lang/swift/swift-5.10.1.ebuild
@@ -79,6 +79,7 @@ BDEPEND="
 	>=dev-build/cmake-3.24.2
 	>=dev-build/ninja-1.11
 	>=dev-db/sqlite-3
+	>=dev-libs/icu-69
 	>=dev-libs/libedit-20221030
 	>=dev-libs/libxml2-2.11.5
 	>=dev-util/patchelf-0.18


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2024-09-13 19:35 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2024-09-13 19:35 UTC (permalink / raw
  To: gentoo-commits

commit:     c05b53a27950e05f4efa22462780df034ef3eb31
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Fri Sep 13 19:28:23 2024 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Fri Sep 13 19:33:30 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=c05b53a2

dev-lang/swift: set up Python to respect PYTHON_SINGLE_TARGET

Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-5.10.1.ebuild | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/dev-lang/swift/swift-5.10.1.ebuild b/dev-lang/swift/swift-5.10.1.ebuild
index 751bc6a93..b7cb27b91 100644
--- a/dev-lang/swift/swift-5.10.1.ebuild
+++ b/dev-lang/swift/swift-5.10.1.ebuild
@@ -113,6 +113,13 @@ src_unpack() {
 		|| die
 }
 
+src_configure() {
+	default
+
+	# Necessary to respect PYTHON_SINGLE_TARGET, if defined.
+	python_setup
+}
+
 src_compile() {
 	# The Swift 5.10 compiler is partially written in Swift itself (the new
 	# `swift-driver` + macro support via `swift-syntax`), which requires


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2024-09-13 19:35 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2024-09-13 19:35 UTC (permalink / raw
  To: gentoo-commits

commit:     6ea7d4532a6954e93be171af974a4b7de558931a
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Fri Sep 13 19:27:04 2024 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Fri Sep 13 19:34:42 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=6ea7d453

dev-lang/swift: add missing dev-python/setuptools dependency

Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-5.10.1.ebuild | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/dev-lang/swift/swift-5.10.1.ebuild b/dev-lang/swift/swift-5.10.1.ebuild
index b7cb27b91..dc70e51ae 100644
--- a/dev-lang/swift/swift-5.10.1.ebuild
+++ b/dev-lang/swift/swift-5.10.1.ebuild
@@ -90,6 +90,9 @@ BDEPEND="
 	>=sys-libs/ncurses-6
 	>=sys-libs/zlib-1.3
 	dev-lang/python
+	$(python_gen_cond_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	' python3_{12..13})
 "
 
 src_unpack() {


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2024-10-13  1:31 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2024-10-13  1:31 UTC (permalink / raw
  To: gentoo-commits

commit:     8844fcb7f0a5b0959bcc45e55bd5a0f72724143c
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Sat Oct 12 19:21:02 2024 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Sun Oct 13 01:31:24 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=8844fcb7

dev-lang/swift: update SRC_URI

Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-5.10.1.ebuild | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/dev-lang/swift/swift-5.10.1.ebuild b/dev-lang/swift/swift-5.10.1.ebuild
index 29980b12b..5cf5bf187 100644
--- a/dev-lang/swift/swift-5.10.1.ebuild
+++ b/dev-lang/swift/swift-5.10.1.ebuild
@@ -15,9 +15,7 @@ SRC_URI="
 	https://github.com/apple/swift-atomics/archive/refs/tags/1.0.2.tar.gz -> swift-atomics-1.0.2.tar.gz
 	https://github.com/apple/swift-certificates/archive/refs/tags/1.0.1.tar.gz -> swift-certificates-1.0.1.tar.gz
 	https://github.com/apple/swift-collections/archive/refs/tags/1.0.5.tar.gz -> swift-collections-1.0.5.tar.gz
-	https://github.com/apple/swift-corelibs-foundation/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-corelibs-foundation-${PV}.tar.gz
 	https://github.com/apple/swift-corelibs-libdispatch/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-corelibs-libdispatch-${PV}.tar.gz
-	https://github.com/apple/swift-corelibs-xctest/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-corelibs-xctest-${PV}.tar.gz
 	https://github.com/apple/swift-crypto/archive/refs/tags/3.0.0.tar.gz -> swift-crypto-3.0.0.tar.gz
 	https://github.com/apple/swift-nio-ssl/archive/refs/tags/2.15.0.tar.gz -> swift-nio-ssl-2.15.0.tar.gz
 	https://github.com/apple/swift-nio/archive/refs/tags/2.31.2.tar.gz -> swift-nio-2.31.2.tar.gz
@@ -29,6 +27,8 @@ SRC_URI="
 	https://github.com/swiftlang/llvm-project/archive/refs/tags/${P}-RELEASE.tar.gz -> llvm-project-${PV}.tar.gz
 	https://github.com/swiftlang/sourcekit-lsp/archive/refs/tags/${P}-RELEASE.tar.gz -> sourcekit-lsp-${PV}.tar.gz
 	https://github.com/swiftlang/swift-cmark/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-cmark-${PV}.tar.gz
+	https://github.com/swiftlang/swift-corelibs-foundation/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-corelibs-foundation-${PV}.tar.gz
+	https://github.com/swiftlang/swift-corelibs-xctest/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-corelibs-xctest-${PV}.tar.gz
 	https://github.com/swiftlang/swift-docc-render-artifact/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-docc-render-artifact-${PV}.tar.gz
 	https://github.com/swiftlang/swift-docc-symbolkit/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-docc-symbolkit-${PV}.tar.gz
 	https://github.com/swiftlang/swift-docc/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-docc-${PV}.tar.gz


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2024-10-13  1:31 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2024-10-13  1:31 UTC (permalink / raw
  To: gentoo-commits

commit:     aaf9561924991c5c79618e1837b0ad1e0673f225
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Sat Oct 12 17:41:44 2024 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Sun Oct 13 01:31:25 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=aaf95619

dev-lang/swift: add support for app-eselect/eselect-swift

Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-5.10.1-r1.ebuild | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/dev-lang/swift/swift-5.10.1-r1.ebuild b/dev-lang/swift/swift-5.10.1-r1.ebuild
index 3440d1183..f855522a2 100644
--- a/dev-lang/swift/swift-5.10.1-r1.ebuild
+++ b/dev-lang/swift/swift-5.10.1-r1.ebuild
@@ -64,6 +64,7 @@ RESTRICT="strip"
 
 RDEPEND="
 	${PYTHON_DEPS}
+	>=app-eselect/eselect-swift-1.0
 	>=dev-db/sqlite-3
 	>=dev-libs/icu-69
 	>=dev-libs/libedit-20221030
@@ -268,6 +269,27 @@ src_install() {
 	# `swift <command>` calls `swift-<command>` directly.)
 	local bin
 	for bin in swift swiftc sourcekit-lsp; do
-		dosym -r "${dest_dir}/usr/bin/${bin}" "/usr/bin/${bin}"
+		# We only install versioned symlinks; non-versioned links are maanged
+		# via `eselect swift`.
+		dosym -r "${dest_dir}/usr/bin/${bin}" "/usr/bin/${bin}-${PV}"
 	done
 }
+
+pkg_postinst() {
+	# If we're installing the latest version of Swift, then update symlinks to
+	# it. (We don't want to call `eselect swift update` unconditionally in case
+	# we're installing an older version of Swift, and the user has intentionally
+	# selected a version other than the latest.)
+	if ! has_version ">${CATEGORY}/${P}"; then
+		eselect swift update
+	fi
+}
+
+pkg_postrm() {
+	# We don't want to leave behind symlinks pointing to this Swift version on
+	# removal.
+	local eselect_swift_version="$(eselect swift show)"
+	if [[ "${eselect_swift_version}" == *"${P}" ]]; then
+		eselect swift update
+	fi
+}


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2024-10-13  1:31 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2024-10-13  1:31 UTC (permalink / raw
  To: gentoo-commits

commit:     95e178f3311434cf6cbe5e31fd875d8122f71f45
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Sat Oct 12 19:11:02 2024 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Sun Oct 13 01:31:24 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=95e178f3

dev-lang/swift: add swift-5.10.1-r1

Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-5.10.1-r1.ebuild | 273 ++++++++++++++++++++++++++++++++++
 1 file changed, 273 insertions(+)

diff --git a/dev-lang/swift/swift-5.10.1-r1.ebuild b/dev-lang/swift/swift-5.10.1-r1.ebuild
new file mode 100644
index 000000000..0a49073ff
--- /dev/null
+++ b/dev-lang/swift/swift-5.10.1-r1.ebuild
@@ -0,0 +1,273 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit python-single-r1
+
+DESCRIPTION="A high-level, general-purpose, multi-paradigm, compiled programming language"
+HOMEPAGE="https://www.swift.org"
+
+SRC_URI="
+	https://github.com/apple/swift-argument-parser/archive/refs/tags/1.2.3.tar.gz -> swift-argument-parser-1.2.3.tar.gz
+	https://github.com/apple/swift-asn1/archive/refs/tags/1.0.0.tar.gz -> swift-asn1-1.0.0.tar.gz
+	https://github.com/apple/swift-atomics/archive/refs/tags/1.0.2.tar.gz -> swift-atomics-1.0.2.tar.gz
+	https://github.com/apple/swift-certificates/archive/refs/tags/1.0.1.tar.gz -> swift-certificates-1.0.1.tar.gz
+	https://github.com/apple/swift-collections/archive/refs/tags/1.0.5.tar.gz -> swift-collections-1.0.5.tar.gz
+	https://github.com/apple/swift-corelibs-libdispatch/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-corelibs-libdispatch-${PV}.tar.gz
+	https://github.com/apple/swift-crypto/archive/refs/tags/3.0.0.tar.gz -> swift-crypto-3.0.0.tar.gz
+	https://github.com/apple/swift-nio-ssl/archive/refs/tags/2.15.0.tar.gz -> swift-nio-ssl-2.15.0.tar.gz
+	https://github.com/apple/swift-nio/archive/refs/tags/2.31.2.tar.gz -> swift-nio-2.31.2.tar.gz
+	https://github.com/apple/swift-numerics/archive/refs/tags/1.0.1.tar.gz -> swift-numerics-1.0.1.tar.gz
+	https://github.com/apple/swift-system/archive/refs/tags/1.1.1.tar.gz -> swift-system-1.1.1.tar.gz
+	https://github.com/apple/swift-xcode-playground-support/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-xcode-playground-support-${PV}.tar.gz
+	https://github.com/jpsim/Yams/archive/refs/tags/5.0.1.tar.gz -> Yams-5.0.1.tar.gz
+	https://github.com/swiftlang/indexstore-db/archive/refs/tags/${P}-RELEASE.tar.gz -> indexstore-db-${PV}.tar.gz
+	https://github.com/swiftlang/llvm-project/archive/refs/tags/${P}-RELEASE.tar.gz -> llvm-project-${PV}.tar.gz
+	https://github.com/swiftlang/sourcekit-lsp/archive/refs/tags/${P}-RELEASE.tar.gz -> sourcekit-lsp-${PV}.tar.gz
+	https://github.com/swiftlang/swift-cmark/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-cmark-${PV}.tar.gz
+	https://github.com/swiftlang/swift-corelibs-foundation/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-corelibs-foundation-${PV}.tar.gz
+	https://github.com/swiftlang/swift-corelibs-xctest/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-corelibs-xctest-${PV}.tar.gz
+	https://github.com/swiftlang/swift-docc-render-artifact/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-docc-render-artifact-${PV}.tar.gz
+	https://github.com/swiftlang/swift-docc-symbolkit/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-docc-symbolkit-${PV}.tar.gz
+	https://github.com/swiftlang/swift-docc/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-docc-${PV}.tar.gz
+	https://github.com/swiftlang/swift-driver/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-driver-${PV}.tar.gz
+	https://github.com/swiftlang/swift-experimental-string-processing/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-experimental-string-processing-${PV}.tar.gz
+	https://github.com/swiftlang/swift-format/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-format-${PV}.tar.gz
+	https://github.com/swiftlang/swift-installer-scripts/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-installer-scripts-${PV}.tar.gz
+	https://github.com/swiftlang/swift-integration-tests/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-integration-tests-${PV}.tar.gz
+	https://github.com/swiftlang/swift-llbuild/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-llbuild-${PV}.tar.gz
+	https://github.com/swiftlang/swift-llvm-bindings/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-llvm-bindings-${PV}.tar.gz
+	https://github.com/swiftlang/swift-lmdb/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-lmdb-${PV}.tar.gz
+	https://github.com/swiftlang/swift-markdown/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-markdown-${PV}.tar.gz
+	https://github.com/swiftlang/swift-package-manager/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-package-manager-${PV}.tar.gz
+	https://github.com/swiftlang/swift-stress-tester/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-stress-tester-${PV}.tar.gz
+	https://github.com/swiftlang/swift-syntax/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-syntax-${PV}.tar.gz
+	https://github.com/swiftlang/swift-tools-support-core/archive/refs/tags/${P}-RELEASE.tar.gz -> swift-tools-support-core-${PV}.tar.gz
+	https://github.com/swiftlang/swift/archive/refs/tags/${P}-RELEASE.tar.gz -> ${P}.tar.gz
+"
+
+PATCHES=(
+	"${FILESDIR}/${P}-link-with-lld.patch"
+	"${FILESDIR}/${P}-llbuild-link-ncurses-tinfo-gentoo.patch"
+	"${FILESDIR}/${P}-lldb-cmake-minimum-version.patch"
+)
+
+S="${WORKDIR}"
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RESTRICT="strip"
+
+RDEPEND="
+	${PYTHON_DEPS}
+	>=dev-db/sqlite-3
+	>=dev-libs/icu-69
+	>=dev-libs/libedit-20221030
+	>=dev-libs/libxml2-2.11.5
+	>=net-misc/curl-8.4
+	>=sys-devel/lld-15
+	>=sys-libs/ncurses-6
+	>=sys-libs/zlib-1.3
+	dev-lang/python
+"
+
+BDEPEND="
+	${PYTHON_DEPS}
+	>=dev-build/cmake-3.24.2
+	>=dev-build/ninja-1.11
+	>=dev-db/sqlite-3
+	>=dev-libs/icu-69
+	>=dev-libs/libedit-20221030
+	>=dev-libs/libxml2-2.11.5
+	>=dev-vcs/git-2.39
+	>=sys-apps/coreutils-9
+	>=sys-devel/clang-15
+	>=sys-devel/lld-15
+	>=sys-libs/ncurses-6
+	>=sys-libs/zlib-1.3
+	dev-lang/python
+	$(python_gen_cond_dep '
+		dev-python/setuptools[${PYTHON_USEDEP}]
+	' python3_{12..13})
+"
+
+src_unpack() {
+	default
+
+	# The Swift project expects a specific directory structure that we have to
+	# match. For most directories, it's enough to trim the version number at the
+	# end:
+	find "${S}" \
+		-mindepth 1 -maxdepth 1 \
+		-execdir sh -c \
+			"mv '{}' \"\$(echo '{}' | sed -e 's_-\(swift-5\.10\.1-RELEASE\|\([0-9]\+\.\)*[0-9]\+\)\$__' | tr '[:upper:]' '[:lower:]')\"" ';' \
+		|| die
+
+	# Some one-off fixups:
+	pushd "${S}" \
+		&& mv 'swift-cmark' 'cmark' \
+		&& mv 'swift-llbuild' 'llbuild' \
+		&& mv 'swift-package-manager' 'swiftpm' \
+		&& popd \
+		|| die
+}
+
+src_configure() {
+	default
+
+	# Sets `${EPYTHON}` according to `PYTHON_SINGLE_TARGET`, sets up
+	# `${T}/${EPYTHON}` with that version, and adds it to the `PATH`.
+	python_setup
+}
+
+src_compile() {
+	# The Swift 5.10 compiler is partially written in Swift itself (the new
+	# `swift-driver` + macro support via `swift-syntax`), which requires
+	# bootstrapping with an existing Swift compiler.
+	#
+	# We don't have an existing Swift compiler, but we can bootstrap it with
+	# itself in a 3-stage process:
+	#
+	# 0. We'll build LLVM+Clang and a bare Swift compiler with the old C++-based
+	#    driver and no macro support
+	# 1. We'll use that bare compiler to build a base compiler with the new
+	#    Swift-based driver and macro support, with some base libs
+	# 2. We'll then use that base compiler to build a full Swift toolchain with
+	#    all necessary libs
+	#
+	# Build products will be intentionally shared between stages as much as
+	# possible to avoid unnecessary repeated compilation.
+
+	# Building swift-driver writes to this directory for some reason, but the
+	# contents are irrelevant.
+	addpredict /var/lib/portage/home/.swiftpm
+
+	local _extra_cmake_options=(
+		# BFD doesn't link Swift symbols properly, so we have to ensure Swift is
+		# built with LLD.
+		'-DSWIFT_USE_LINKER=lld',
+
+		# We don't need to build any test code or test executables, which Swift
+		# (and some components) does by default.
+		'-DBUILD_TESTING:BOOL=NO',
+		'-DSWIFT_INCLUDE_TESTS:BOOL=NO',
+		'-DSWIFT_INCLUDE_TEST_BINARIES:BOOL=NO',
+
+		# The Clang `compiler-rt` library builds the LLVM ORC JIT component by
+		# default, which we don't need; the component builds with an executable
+		# stack, which we'd like to avoid.
+		'-DCOMPILER_RT_BUILD_ORC:BOOL=NO',
+
+		# LLDB ships with Python bindings, and uses CMake to search for Python.
+		# By default, CMake tries to find the latest version of Python available
+		# on disk (currently `python3.13`, then `python3.12`, then...). This
+		# might not be the version of Python the rest of the system uses, or
+		# which is specified by `PYTHON_SINGLE_TARGET`.
+		#
+		# Since `python_setup` already places `${EPYTHON}` in the `PATH`, we can
+		# tell CMake to use the unversioned `python` rather than a versioned
+		# one to end up respecting `PYTHON_SINGLE_TARGET`.
+		'-DPython3_FIND_UNVERSIONED_NAMES=FIRST'
+	)
+	local extra_cmake_options="$(IFS=,; echo "${_extra_cmake_options[*]}")"
+
+	# stage0:
+	# * Bare Swift compiler (no bootstrapping; no Swift driver or macros)
+	# * LLVM+Clang; this is the only stage where these are built because as a
+	#   base dependency, their flags never change, and the build products can be
+	#   reused
+	"${S}/swift/utils/build-script" \
+		--verbose-build \
+		--release \
+		--install-destdir="${S}/stage0" \
+		--extra-cmake-options="${extra_cmake_options}" \
+		--bootstrapping=off \
+		--build-swift-libexec=false \
+		--llvm-install-components='llvm-ar;llvm-cov;llvm-profdata;IndexStore;clang;clang-resource-headers;compiler-rt;clangd;lld;LTO;clang-features-file' \
+		--llvm-targets-to-build=host \
+		--skip-build-benchmarks \
+		--skip-early-swift-driver --skip-early-swiftsyntax \
+		--skip-test-cmark \
+		--skip-test-linux \
+		--skip-test-swift \
+		--install-all \
+		|| die
+
+	# stage1:
+	# * Base Swift compiler and driver (bootstrapping from stage0; with macros)
+	# * Base libs: swift-driver depends on llbuild + swiftpm, which depend on
+	#   Foundation + libdispatch + XCTest
+	local original_path="${PATH}"
+	export PATH="${S}/stage0/usr/bin:${original_path}"
+	"${S}/swift/utils/build-script" \
+		--verbose-build \
+		--release \
+		--install-destdir="${S}/stage1" \
+		--extra-cmake-options="${extra_cmake_options}" \
+		--build-swift-libexec=false \
+		--cmark --skip-test-cmark \
+		--foundation --skip-test-foundation \
+		--libdispatch --skip-test-libdispatch \
+		--llbuild --skip-test-llbuild \
+		--skip-build-benchmarks \
+		--skip-build-llvm \
+		--skip-test-linux \
+		--skip-test-swift \
+		--swift-driver --skip-test-swift-driver \
+		--swiftpm --skip-test-swiftpm \
+		--xctest --skip-test-xctest \
+		--install-all \
+		|| die
+
+	# stage2: full Swift toolchain (bootstrapping from stage1)
+	export PATH="${S}/stage1/usr/bin:${original_path}"
+	"${S}/swift/utils/build-script" \
+		--verbose-build \
+		--release \
+		--install-destdir="${S}/stage2" \
+		--extra-cmake-options="${extra_cmake_options}" \
+		--build-swift-libexec=false \
+		--foundation --skip-test-foundation \
+		--indexstore-db --skip-test-indexstore-db \
+		--libdispatch --skip-test-libdispatch \
+		--llbuild --skip-test-llbuild \
+		--lldb --skip-test-lldb \
+		--skip-build-benchmarks \
+		--skip-build-llvm \
+		--skip-test-linux \
+		--skip-test-swift \
+		--sourcekit-lsp --skip-test-sourcekit-lsp \
+		--swift-driver --skip-test-swift-driver \
+		--swift-install-components='autolink-driver;compiler;clang-resource-dir-symlink;stdlib;swift-remote-mirror;sdk-overlay;static-mirror-lib;toolchain-tools;license;sourcekit-inproc' \
+		--swiftdocc --skip-test-swiftdocc \
+		--swiftpm --skip-test-swiftpm \
+		--xctest --skip-test-xctest \
+		--install-all \
+		|| die
+
+	export PATH="${original_path}"
+}
+
+src_install() {
+	# The Swift build output is intended to be self-contained, and is
+	# _significantly_ easier to leave as-is than attempt to splat onto the
+	# filesystem; we'll install the output versioned into `/usr/lib64` and
+	# expose the relevant binaries via linking.
+	local dest_dir="/usr/lib64/${P}"
+	mkdir -p "${ED}/${dest_dir}" \
+		&& cp -pPR "${S}/stage2/." "${ED}/${dest_dir}" \
+		|| die
+
+	# Swift ships with its own `clang`, `lldb`, etc.; we don't want these to be
+	# exposed externally, so we'll just symlink Swift-specific binaries into
+	# `/usr/bin`. (The majority of executables don't need to be exposed as
+	# `swift <command>` calls `swift-<command>` directly.)
+	local bin
+	for bin in swift swiftc sourcekit-lsp; do
+		dosym -r "${dest_dir}/usr/bin/${bin}" "/usr/bin/${bin}"
+	done
+}


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2024-10-13  1:31 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2024-10-13  1:31 UTC (permalink / raw
  To: gentoo-commits

commit:     730418e323130d867f76885aef47e46e8d5f24ab
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Sat Oct 12 17:40:43 2024 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Sun Oct 13 01:31:25 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=730418e3

dev-lang/swift: add explicit SLOT

Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/metadata.xml           | 11 +++++++++++
 dev-lang/swift/swift-5.10.1-r1.ebuild |  2 +-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/dev-lang/swift/metadata.xml b/dev-lang/swift/metadata.xml
index 810cc5c5a..415909a00 100644
--- a/dev-lang/swift/metadata.xml
+++ b/dev-lang/swift/metadata.xml
@@ -8,4 +8,15 @@
   <upstream>
     <remote-id type="github">swiftlang/swift</remote-id>
   </upstream>
+  <slots>
+    <slot name="0">
+      The original slot for swift-5.10.1; should no longer be used.
+    </slot>
+    <slot name="5">
+      The Swift 5 language, compiler, and tooling.
+    </slot>
+    <subslots>
+      Minor Swift versions.
+    </subslots>
+  </slots>
 </pkgmetadata>

diff --git a/dev-lang/swift/swift-5.10.1-r1.ebuild b/dev-lang/swift/swift-5.10.1-r1.ebuild
index 0a49073ff..3440d1183 100644
--- a/dev-lang/swift/swift-5.10.1-r1.ebuild
+++ b/dev-lang/swift/swift-5.10.1-r1.ebuild
@@ -56,7 +56,7 @@ PATCHES=(
 
 S="${WORKDIR}"
 LICENSE="Apache-2.0"
-SLOT="0"
+SLOT="5/10"
 KEYWORDS="~amd64"
 REQUIRED_USE="${PYTHON_REQUIRED_USE}"
 


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2024-10-13  1:31 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2024-10-13  1:31 UTC (permalink / raw
  To: gentoo-commits

commit:     2a36ac399b06cd73f2be2c7d0df56dc82eb31fb4
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Sun Oct 13 01:27:34 2024 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Sun Oct 13 01:31:25 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=2a36ac39

dev-lang/swift: build without compiler assertions

Closes: https://bugs.gentoo.org/940500
Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-5.10.1-r1.ebuild | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/dev-lang/swift/swift-5.10.1-r1.ebuild b/dev-lang/swift/swift-5.10.1-r1.ebuild
index 145becb3f..ee233f3bb 100644
--- a/dev-lang/swift/swift-5.10.1-r1.ebuild
+++ b/dev-lang/swift/swift-5.10.1-r1.ebuild
@@ -222,6 +222,8 @@ src_compile() {
 	"${S}/swift/utils/build-script" \
 		--verbose-build \
 		--release \
+		--no-assertions \
+		--build-subdir="Ninja-Release" \
 		--install-destdir="${S}/stage0" \
 		--extra-cmake-options="${extra_cmake_options}" \
 		--bootstrapping=off \
@@ -245,6 +247,8 @@ src_compile() {
 	"${S}/swift/utils/build-script" \
 		--verbose-build \
 		--release \
+		--no-assertions \
+		--build-subdir="Ninja-Release" \
 		--install-destdir="${S}/stage1" \
 		--extra-cmake-options="${extra_cmake_options}" \
 		--build-swift-libexec=false \
@@ -267,6 +271,8 @@ src_compile() {
 	"${S}/swift/utils/build-script" \
 		--verbose-build \
 		--release \
+		--no-assertions \
+		--build-subdir="Ninja-Release" \
 		--install-destdir="${S}/stage2" \
 		--extra-cmake-options="${extra_cmake_options}" \
 		--build-swift-libexec=false \


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2024-10-13  1:31 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2024-10-13  1:31 UTC (permalink / raw
  To: gentoo-commits

commit:     ca27db7e8b92982c2e87912b5651296278309204
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Sun Oct 13 01:25:19 2024 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Sun Oct 13 01:31:25 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=ca27db7e

dev-lang/swift: use llvm-r1 to set LLVM toolchain

Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-5.10.1-r1.ebuild | 62 ++++++++++++++++++++++++++++-------
 1 file changed, 50 insertions(+), 12 deletions(-)

diff --git a/dev-lang/swift/swift-5.10.1-r1.ebuild b/dev-lang/swift/swift-5.10.1-r1.ebuild
index f855522a2..145becb3f 100644
--- a/dev-lang/swift/swift-5.10.1-r1.ebuild
+++ b/dev-lang/swift/swift-5.10.1-r1.ebuild
@@ -3,8 +3,9 @@
 
 EAPI=8
 
+LLVM_COMPAT=( {15..18} )
 PYTHON_COMPAT=( python3_{10..13} )
-inherit python-single-r1
+inherit llvm-r1 python-single-r1
 
 DESCRIPTION="A high-level, general-purpose, multi-paradigm, compiled programming language"
 HOMEPAGE="https://www.swift.org"
@@ -70,10 +71,10 @@ RDEPEND="
 	>=dev-libs/libedit-20221030
 	>=dev-libs/libxml2-2.11.5
 	>=net-misc/curl-8.4
-	>=sys-devel/lld-15
 	>=sys-libs/ncurses-6
 	>=sys-libs/zlib-1.3
 	dev-lang/python
+	$(llvm_gen_dep 'sys-devel/lld:${LLVM_SLOT}=')
 "
 
 BDEPEND="
@@ -86,16 +87,61 @@ BDEPEND="
 	>=dev-libs/libxml2-2.11.5
 	>=dev-vcs/git-2.39
 	>=sys-apps/coreutils-9
-	>=sys-devel/clang-15
-	>=sys-devel/lld-15
 	>=sys-libs/ncurses-6
 	>=sys-libs/zlib-1.3
+	$(llvm_gen_dep '
+		sys-devel/clang:${LLVM_SLOT}=
+		sys-devel/lld:${LLVM_SLOT}=
+	')
 	dev-lang/python
 	$(python_gen_cond_dep '
 		dev-python/setuptools[${PYTHON_USEDEP}]
 	' python3_{12..13})
 "
 
+# Adapted from `flag-o-matic.eclass`'s `raw-ldflags`: turns GCC-style flags
+# (`-Wl,-foo`) into Clang-style flags (`-Xlinker -foo`).
+clang-ldflags() {
+	local flag input="$@"
+	[[ -z ${input} ]] && input=${LDFLAGS}
+	set --
+	for flag in ${input//,/ } ; do
+		case ${flag} in
+			-Wl) ;;
+			*) set -- "$@" "-Xlinker ${flag}" ;;
+		esac
+	done
+	echo "$@"
+}
+
+pkg_setup() {
+	# Sets `${EPYTHON}` according to `PYTHON_SINGLE_TARGET`, sets up
+	# `${T}/${EPYTHON}` with that version, and adds it to the `PATH`.
+	python_setup
+
+	# Sets up `PATH` to point to the appropriate LLVM toolchain.
+	llvm-r1_pkg_setup
+
+	# `llvm-r1_pkg_setup` sets these tools to their absolute paths, but we need
+	# to still pick them up dynamically based on `PATH` for stage1 and stage2
+	# builds below (to keep all parts of the Swift toolchain compiling with the
+	# same internal tools).
+	export CC="clang"
+	export CXX="clang++"
+	export LD="ld.lld"
+
+	# Swift builds with CMake, which picks up `LDFLAGS` from the environment and
+	# populates `CMAKE_EXE_LINKER_FLAGS` with them. `LDFLAGS` are typically
+	# given as GCC-style flags (), which Clang understands;
+	# unfortunately, CMake passes these flags to all compilers under the
+	# assumption they support the same syntax, but `swiftc` _only_ understands
+	# Clang-style flags (`-Xlinker -foo`). In order to pass `LDFLAGS` in, we
+	# have to turn them into a format that `swiftc` will understand.
+	#
+	# We can do this because we know we're compiling with Clang specifically.
+	export LDFLAGS="$(clang-ldflags)"
+}
+
 src_unpack() {
 	default
 
@@ -117,14 +163,6 @@ src_unpack() {
 		|| die
 }
 
-src_configure() {
-	default
-
-	# Sets `${EPYTHON}` according to `PYTHON_SINGLE_TARGET`, sets up
-	# `${T}/${EPYTHON}` with that version, and adds it to the `PATH`.
-	python_setup
-}
-
 src_compile() {
 	# The Swift 5.10 compiler is partially written in Swift itself (the new
 	# `swift-driver` + macro support via `swift-syntax`), which requires


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2025-01-12 17:29 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2025-01-12 17:29 UTC (permalink / raw
  To: gentoo-commits

commit:     5958bfb28afe8914b4b798f53ad10941b42220ca
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Sun Jan 12 17:28:11 2025 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Sun Jan 12 17:28:11 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=5958bfb2

dev-lang/swift: add dev-cpp/tbb as a strong blocker for Swift 6

See https://bugs.gentoo.org/947141

Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-6.0.1-r1.ebuild | 12 ++++++++++++
 dev-lang/swift/swift-6.0.1.ebuild    | 12 ++++++++++++
 dev-lang/swift/swift-6.0.2.ebuild    | 12 ++++++++++++
 dev-lang/swift/swift-6.0.3.ebuild    | 12 ++++++++++++
 4 files changed, 48 insertions(+)

diff --git a/dev-lang/swift/swift-6.0.1-r1.ebuild b/dev-lang/swift/swift-6.0.1-r1.ebuild
index c3a52bc8d..86dc9abab 100644
--- a/dev-lang/swift/swift-6.0.1-r1.ebuild
+++ b/dev-lang/swift/swift-6.0.1-r1.ebuild
@@ -109,6 +109,18 @@ BDEPEND="
 	' python3_{12..13})
 "
 
+# Swift 6 upstream currently doesn't build with oneTBB installed because Swift's
+# `libstdcxx.h` includes `<execution>`, which, in combination with recent
+# `libstdc++` versions, causes `tbb/execution` to get picked up; this results in
+# a circular dependency back on the stdlib, failing the build.
+#
+# See:
+# * https://bugs.gentoo.org/947141
+# * https://github.com/swiftlang/swift/issues/76166
+BDEPEND+="
+	!!dev-cpp/tbb
+"
+
 # Adapted from `flag-o-matic.eclass`'s `raw-ldflags`: turns GCC-style flags
 # (`-Wl,-foo`) into Clang-style flags (`-Xlinker -foo`).
 clang-ldflags() {

diff --git a/dev-lang/swift/swift-6.0.1.ebuild b/dev-lang/swift/swift-6.0.1.ebuild
index 3b5cdb311..085c043de 100644
--- a/dev-lang/swift/swift-6.0.1.ebuild
+++ b/dev-lang/swift/swift-6.0.1.ebuild
@@ -108,6 +108,18 @@ BDEPEND="
 	' python3_{12..13})
 "
 
+# Swift 6 upstream currently doesn't build with oneTBB installed because Swift's
+# `libstdcxx.h` includes `<execution>`, which, in combination with recent
+# `libstdc++` versions, causes `tbb/execution` to get picked up; this results in
+# a circular dependency back on the stdlib, failing the build.
+#
+# See:
+# * https://bugs.gentoo.org/947141
+# * https://github.com/swiftlang/swift/issues/76166
+BDEPEND+="
+	!!dev-cpp/tbb
+"
+
 # Adapted from `flag-o-matic.eclass`'s `raw-ldflags`: turns GCC-style flags
 # (`-Wl,-foo`) into Clang-style flags (`-Xlinker -foo`).
 clang-ldflags() {

diff --git a/dev-lang/swift/swift-6.0.2.ebuild b/dev-lang/swift/swift-6.0.2.ebuild
index c3a52bc8d..86dc9abab 100644
--- a/dev-lang/swift/swift-6.0.2.ebuild
+++ b/dev-lang/swift/swift-6.0.2.ebuild
@@ -109,6 +109,18 @@ BDEPEND="
 	' python3_{12..13})
 "
 
+# Swift 6 upstream currently doesn't build with oneTBB installed because Swift's
+# `libstdcxx.h` includes `<execution>`, which, in combination with recent
+# `libstdc++` versions, causes `tbb/execution` to get picked up; this results in
+# a circular dependency back on the stdlib, failing the build.
+#
+# See:
+# * https://bugs.gentoo.org/947141
+# * https://github.com/swiftlang/swift/issues/76166
+BDEPEND+="
+	!!dev-cpp/tbb
+"
+
 # Adapted from `flag-o-matic.eclass`'s `raw-ldflags`: turns GCC-style flags
 # (`-Wl,-foo`) into Clang-style flags (`-Xlinker -foo`).
 clang-ldflags() {

diff --git a/dev-lang/swift/swift-6.0.3.ebuild b/dev-lang/swift/swift-6.0.3.ebuild
index c3a52bc8d..86dc9abab 100644
--- a/dev-lang/swift/swift-6.0.3.ebuild
+++ b/dev-lang/swift/swift-6.0.3.ebuild
@@ -109,6 +109,18 @@ BDEPEND="
 	' python3_{12..13})
 "
 
+# Swift 6 upstream currently doesn't build with oneTBB installed because Swift's
+# `libstdcxx.h` includes `<execution>`, which, in combination with recent
+# `libstdc++` versions, causes `tbb/execution` to get picked up; this results in
+# a circular dependency back on the stdlib, failing the build.
+#
+# See:
+# * https://bugs.gentoo.org/947141
+# * https://github.com/swiftlang/swift/issues/76166
+BDEPEND+="
+	!!dev-cpp/tbb
+"
+
 # Adapted from `flag-o-matic.eclass`'s `raw-ldflags`: turns GCC-style flags
 # (`-Wl,-foo`) into Clang-style flags (`-Xlinker -foo`).
 clang-ldflags() {


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2025-01-15 19:53 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2025-01-15 19:53 UTC (permalink / raw
  To: gentoo-commits

commit:     1e8cb85c79c4feabd23e999cda27c1cfbdb90cc9
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Wed Jan 15 19:50:17 2025 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Wed Jan 15 19:53:29 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=1e8cb85c

dev-lang/swift: remove dev-cpp/tbb as a strong blocker for Swift 6

Swift 6 builds with `dev-cpp/tbb` installed on systems with
>=libstdc++-11 (the minimum version currently supported by Gentoo) as
long as it's bootstrapped by swift-5.10.1-r3 or later (which has a patch
backported from Swift 6 which prevents `<execution>` from getting picked
up).

Bug: https://bugs.gentoo.org/947141
Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-6.0.1-r1.ebuild | 13 +------------
 dev-lang/swift/swift-6.0.1.ebuild    | 13 +------------
 dev-lang/swift/swift-6.0.2.ebuild    | 13 +------------
 dev-lang/swift/swift-6.0.3.ebuild    | 13 +------------
 4 files changed, 4 insertions(+), 48 deletions(-)

diff --git a/dev-lang/swift/swift-6.0.1-r1.ebuild b/dev-lang/swift/swift-6.0.1-r1.ebuild
index 86dc9abab..672e8c12a 100644
--- a/dev-lang/swift/swift-6.0.1-r1.ebuild
+++ b/dev-lang/swift/swift-6.0.1-r1.ebuild
@@ -93,6 +93,7 @@ BDEPEND="
 	>=dev-util/patchelf-0.18
 	>=dev-vcs/git-2.39
 	>=sys-apps/coreutils-9
+	>=sys-devel/gcc-11
 	>=sys-libs/ncurses-6
 	>=sys-libs/zlib-1.3
 	|| (
@@ -109,18 +110,6 @@ BDEPEND="
 	' python3_{12..13})
 "
 
-# Swift 6 upstream currently doesn't build with oneTBB installed because Swift's
-# `libstdcxx.h` includes `<execution>`, which, in combination with recent
-# `libstdc++` versions, causes `tbb/execution` to get picked up; this results in
-# a circular dependency back on the stdlib, failing the build.
-#
-# See:
-# * https://bugs.gentoo.org/947141
-# * https://github.com/swiftlang/swift/issues/76166
-BDEPEND+="
-	!!dev-cpp/tbb
-"
-
 # Adapted from `flag-o-matic.eclass`'s `raw-ldflags`: turns GCC-style flags
 # (`-Wl,-foo`) into Clang-style flags (`-Xlinker -foo`).
 clang-ldflags() {

diff --git a/dev-lang/swift/swift-6.0.1.ebuild b/dev-lang/swift/swift-6.0.1.ebuild
index 085c043de..630ea1e18 100644
--- a/dev-lang/swift/swift-6.0.1.ebuild
+++ b/dev-lang/swift/swift-6.0.1.ebuild
@@ -92,6 +92,7 @@ BDEPEND="
 	>=dev-util/patchelf-0.18
 	>=dev-vcs/git-2.39
 	>=sys-apps/coreutils-9
+	>=sys-devel/gcc-11
 	>=sys-libs/ncurses-6
 	>=sys-libs/zlib-1.3
 	|| (
@@ -108,18 +109,6 @@ BDEPEND="
 	' python3_{12..13})
 "
 
-# Swift 6 upstream currently doesn't build with oneTBB installed because Swift's
-# `libstdcxx.h` includes `<execution>`, which, in combination with recent
-# `libstdc++` versions, causes `tbb/execution` to get picked up; this results in
-# a circular dependency back on the stdlib, failing the build.
-#
-# See:
-# * https://bugs.gentoo.org/947141
-# * https://github.com/swiftlang/swift/issues/76166
-BDEPEND+="
-	!!dev-cpp/tbb
-"
-
 # Adapted from `flag-o-matic.eclass`'s `raw-ldflags`: turns GCC-style flags
 # (`-Wl,-foo`) into Clang-style flags (`-Xlinker -foo`).
 clang-ldflags() {

diff --git a/dev-lang/swift/swift-6.0.2.ebuild b/dev-lang/swift/swift-6.0.2.ebuild
index 86dc9abab..672e8c12a 100644
--- a/dev-lang/swift/swift-6.0.2.ebuild
+++ b/dev-lang/swift/swift-6.0.2.ebuild
@@ -93,6 +93,7 @@ BDEPEND="
 	>=dev-util/patchelf-0.18
 	>=dev-vcs/git-2.39
 	>=sys-apps/coreutils-9
+	>=sys-devel/gcc-11
 	>=sys-libs/ncurses-6
 	>=sys-libs/zlib-1.3
 	|| (
@@ -109,18 +110,6 @@ BDEPEND="
 	' python3_{12..13})
 "
 
-# Swift 6 upstream currently doesn't build with oneTBB installed because Swift's
-# `libstdcxx.h` includes `<execution>`, which, in combination with recent
-# `libstdc++` versions, causes `tbb/execution` to get picked up; this results in
-# a circular dependency back on the stdlib, failing the build.
-#
-# See:
-# * https://bugs.gentoo.org/947141
-# * https://github.com/swiftlang/swift/issues/76166
-BDEPEND+="
-	!!dev-cpp/tbb
-"
-
 # Adapted from `flag-o-matic.eclass`'s `raw-ldflags`: turns GCC-style flags
 # (`-Wl,-foo`) into Clang-style flags (`-Xlinker -foo`).
 clang-ldflags() {

diff --git a/dev-lang/swift/swift-6.0.3.ebuild b/dev-lang/swift/swift-6.0.3.ebuild
index 86dc9abab..672e8c12a 100644
--- a/dev-lang/swift/swift-6.0.3.ebuild
+++ b/dev-lang/swift/swift-6.0.3.ebuild
@@ -93,6 +93,7 @@ BDEPEND="
 	>=dev-util/patchelf-0.18
 	>=dev-vcs/git-2.39
 	>=sys-apps/coreutils-9
+	>=sys-devel/gcc-11
 	>=sys-libs/ncurses-6
 	>=sys-libs/zlib-1.3
 	|| (
@@ -109,18 +110,6 @@ BDEPEND="
 	' python3_{12..13})
 "
 
-# Swift 6 upstream currently doesn't build with oneTBB installed because Swift's
-# `libstdcxx.h` includes `<execution>`, which, in combination with recent
-# `libstdc++` versions, causes `tbb/execution` to get picked up; this results in
-# a circular dependency back on the stdlib, failing the build.
-#
-# See:
-# * https://bugs.gentoo.org/947141
-# * https://github.com/swiftlang/swift/issues/76166
-BDEPEND+="
-	!!dev-cpp/tbb
-"
-
 # Adapted from `flag-o-matic.eclass`'s `raw-ldflags`: turns GCC-style flags
 # (`-Wl,-foo`) into Clang-style flags (`-Xlinker -foo`).
 clang-ldflags() {


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2025-01-18 17:04 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2025-01-18 17:04 UTC (permalink / raw
  To: gentoo-commits

commit:     b153399da00eee77ab45c58bb21521227ed0a13a
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Sat Jan 18 17:00:15 2025 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Sat Jan 18 17:04:16 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=b153399d

dev-lang/swift: add explicit RDEP on app-arch/zstd

Resolves a QA warning on Tinderbox regarding a missing RDEPEND on
app-arch/zstd. Since target systems are guaranteed to already have this
already (Portage itself depends on it unconditionally), this addition is
inconsequential and not worth adding ebuild revisions for.

Closes: https://bugs.gentoo.org/948329
Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-5.10.1-r3.ebuild | 1 +
 dev-lang/swift/swift-6.0.1-r1.ebuild  | 1 +
 dev-lang/swift/swift-6.0.1.ebuild     | 1 +
 dev-lang/swift/swift-6.0.2.ebuild     | 1 +
 dev-lang/swift/swift-6.0.3.ebuild     | 1 +
 5 files changed, 5 insertions(+)

diff --git a/dev-lang/swift/swift-5.10.1-r3.ebuild b/dev-lang/swift/swift-5.10.1-r3.ebuild
index e7786d60f..2f217d618 100644
--- a/dev-lang/swift/swift-5.10.1-r3.ebuild
+++ b/dev-lang/swift/swift-5.10.1-r3.ebuild
@@ -68,6 +68,7 @@ RESTRICT="strip"
 
 RDEPEND="
 	${PYTHON_DEPS}
+	>=app-arch/zstd-1.5
 	>=app-eselect/eselect-swift-1.0
 	>=dev-db/sqlite-3
 	>=dev-libs/icu-69

diff --git a/dev-lang/swift/swift-6.0.1-r1.ebuild b/dev-lang/swift/swift-6.0.1-r1.ebuild
index 672e8c12a..dd3fd5746 100644
--- a/dev-lang/swift/swift-6.0.1-r1.ebuild
+++ b/dev-lang/swift/swift-6.0.1-r1.ebuild
@@ -70,6 +70,7 @@ RESTRICT="strip"
 RDEPEND="
 	${PYTHON_DEPS}
 	!~dev-lang/swift-5.10.1:0
+	>=app-arch/zstd-1.5
 	>=dev-db/sqlite-3
 	>=dev-libs/icu-69
 	>=dev-libs/libedit-20221030

diff --git a/dev-lang/swift/swift-6.0.1.ebuild b/dev-lang/swift/swift-6.0.1.ebuild
index 630ea1e18..1ecc32145 100644
--- a/dev-lang/swift/swift-6.0.1.ebuild
+++ b/dev-lang/swift/swift-6.0.1.ebuild
@@ -69,6 +69,7 @@ RESTRICT="strip"
 RDEPEND="
 	${PYTHON_DEPS}
 	!~dev-lang/swift-5.10.1:0
+	>=app-arch/zstd-1.5
 	>=app-eselect/eselect-swift-1.0
 	>=dev-db/sqlite-3
 	>=dev-libs/icu-69

diff --git a/dev-lang/swift/swift-6.0.2.ebuild b/dev-lang/swift/swift-6.0.2.ebuild
index 672e8c12a..dd3fd5746 100644
--- a/dev-lang/swift/swift-6.0.2.ebuild
+++ b/dev-lang/swift/swift-6.0.2.ebuild
@@ -70,6 +70,7 @@ RESTRICT="strip"
 RDEPEND="
 	${PYTHON_DEPS}
 	!~dev-lang/swift-5.10.1:0
+	>=app-arch/zstd-1.5
 	>=dev-db/sqlite-3
 	>=dev-libs/icu-69
 	>=dev-libs/libedit-20221030

diff --git a/dev-lang/swift/swift-6.0.3.ebuild b/dev-lang/swift/swift-6.0.3.ebuild
index 672e8c12a..dd3fd5746 100644
--- a/dev-lang/swift/swift-6.0.3.ebuild
+++ b/dev-lang/swift/swift-6.0.3.ebuild
@@ -70,6 +70,7 @@ RESTRICT="strip"
 RDEPEND="
 	${PYTHON_DEPS}
 	!~dev-lang/swift-5.10.1:0
+	>=app-arch/zstd-1.5
 	>=dev-db/sqlite-3
 	>=dev-libs/icu-69
 	>=dev-libs/libedit-20221030


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2025-02-10 23:46 Marco Rebhan
  0 siblings, 0 replies; 26+ messages in thread
From: Marco Rebhan @ 2025-02-10 23:46 UTC (permalink / raw
  To: gentoo-commits

commit:     a66c6fc7ab609d726fb252e471914f0fb3a631fa
Author:     Marco Rebhan <me <AT> dblsaiko <DOT> net>
AuthorDate: Mon Feb 10 19:53:45 2025 +0000
Commit:     Marco Rebhan <me <AT> dblsaiko <DOT> net>
CommitDate: Mon Feb 10 23:46:30 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=a66c6fc7

dev-lang/swift: Use lld as default linker for Swift LLVM

Signed-off-by: Marco Rebhan <me <AT> dblsaiko.net>

 dev-lang/swift/swift-5.10.1-r3.ebuild | 1 +
 1 file changed, 1 insertion(+)

diff --git a/dev-lang/swift/swift-5.10.1-r3.ebuild b/dev-lang/swift/swift-5.10.1-r3.ebuild
index 2f217d618..09858bfb7 100644
--- a/dev-lang/swift/swift-5.10.1-r3.ebuild
+++ b/dev-lang/swift/swift-5.10.1-r3.ebuild
@@ -194,6 +194,7 @@ src_compile() {
 		# BFD doesn't link Swift symbols properly, so we have to ensure Swift is
 		# built with LLD.
 		'-DSWIFT_USE_LINKER=lld',
+		'-DLLVM_USE_LINKER=lld',
 
 		# We don't need to build any test code or test executables, which Swift
 		# (and some components) does by default.


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2025-02-10 23:46 Marco Rebhan
  0 siblings, 0 replies; 26+ messages in thread
From: Marco Rebhan @ 2025-02-10 23:46 UTC (permalink / raw
  To: gentoo-commits

commit:     e725aa5030c89bec2b8883784d725568250d19b8
Author:     Marco Rebhan <me <AT> dblsaiko <DOT> net>
AuthorDate: Mon Feb 10 19:54:17 2025 +0000
Commit:     Marco Rebhan <me <AT> dblsaiko <DOT> net>
CommitDate: Mon Feb 10 23:46:30 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=e725aa50

dev-lang/swift: Always use libstdc++ when building Swift 5

Closes: https://bugs.gentoo.org/949266
Signed-off-by: Marco Rebhan <me <AT> dblsaiko.net>

 dev-lang/swift/swift-5.10.1-r3.ebuild | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/dev-lang/swift/swift-5.10.1-r3.ebuild b/dev-lang/swift/swift-5.10.1-r3.ebuild
index 09858bfb7..9bf1f8049 100644
--- a/dev-lang/swift/swift-5.10.1-r3.ebuild
+++ b/dev-lang/swift/swift-5.10.1-r3.ebuild
@@ -196,6 +196,15 @@ src_compile() {
 		'-DSWIFT_USE_LINKER=lld',
 		'-DLLVM_USE_LINKER=lld',
 
+		# Bug 949266
+		# Building Swift with llvm-core/clang-common[default-libcxx] fails
+		# with missing symbol errors due to some libraries getting linked
+		# against libc++ and some against libstdc++, and when the Swift llvm is
+		# told to link against libc++ (via -DCLANG_DEFAULT_CXX_STDLIB=libc++),
+		# Swift fails to load the c++ symbols later in the build. Therefore,
+		# unconditionally force libstdc++.
+		'-DCMAKE_CXX_FLAGS=-stdlib=libstdc++',
+
 		# We don't need to build any test code or test executables, which Swift
 		# (and some components) does by default.
 		'-DBUILD_TESTING:BOOL=NO',


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2025-03-07 20:32 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2025-03-07 20:32 UTC (permalink / raw
  To: gentoo-commits

commit:     3b7851f360ad54b7feaa7cbea4565d15309d796e
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Fri Mar  7 20:31:20 2025 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Fri Mar  7 20:32:21 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=3b7851f3

dev-lang/swift: add compatibility for LLVM 19

Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-5.10.1-r3.ebuild | 2 +-
 dev-lang/swift/swift-6.0.1-r1.ebuild  | 2 +-
 dev-lang/swift/swift-6.0.2.ebuild     | 2 +-
 dev-lang/swift/swift-6.0.3.ebuild     | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/dev-lang/swift/swift-5.10.1-r3.ebuild b/dev-lang/swift/swift-5.10.1-r3.ebuild
index 3230c2316..be8640f73 100644
--- a/dev-lang/swift/swift-5.10.1-r3.ebuild
+++ b/dev-lang/swift/swift-5.10.1-r3.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-LLVM_COMPAT=( {15..18} )
+LLVM_COMPAT=( {15..19} )
 PYTHON_COMPAT=( python3_{11..13} )
 inherit llvm-r1 python-single-r1
 

diff --git a/dev-lang/swift/swift-6.0.1-r1.ebuild b/dev-lang/swift/swift-6.0.1-r1.ebuild
index 9445ea895..5aa1381bc 100644
--- a/dev-lang/swift/swift-6.0.1-r1.ebuild
+++ b/dev-lang/swift/swift-6.0.1-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-LLVM_COMPAT=( {15..18} )
+LLVM_COMPAT=( {15..19} )
 PYTHON_COMPAT=( python3_{11..13} )
 inherit llvm-r1 python-single-r1
 

diff --git a/dev-lang/swift/swift-6.0.2.ebuild b/dev-lang/swift/swift-6.0.2.ebuild
index 9445ea895..5aa1381bc 100644
--- a/dev-lang/swift/swift-6.0.2.ebuild
+++ b/dev-lang/swift/swift-6.0.2.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-LLVM_COMPAT=( {15..18} )
+LLVM_COMPAT=( {15..19} )
 PYTHON_COMPAT=( python3_{11..13} )
 inherit llvm-r1 python-single-r1
 

diff --git a/dev-lang/swift/swift-6.0.3.ebuild b/dev-lang/swift/swift-6.0.3.ebuild
index 5df6278fa..dfab3380d 100644
--- a/dev-lang/swift/swift-6.0.3.ebuild
+++ b/dev-lang/swift/swift-6.0.3.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-LLVM_COMPAT=( {15..18} )
+LLVM_COMPAT=( {15..19} )
 PYTHON_COMPAT=( python3_{11..13} )
 inherit llvm-r1 python-single-r1
 


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2025-03-26 19:46 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2025-03-26 19:46 UTC (permalink / raw
  To: gentoo-commits

commit:     0cf9b38183d6704a78598d06b3eb6ffac99539bb
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Wed Mar 26 17:10:40 2025 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Wed Mar 26 19:46:02 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=0cf9b381

dev-lang/swift: respect MAKEOPTS -j

The Swift build system takes a '-j'/'--jobs' flag, but the value from
MAKEOPTS needs to be manually exposed to it for it to be respected.

Closes: https://bugs.gentoo.org/951202
Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-5.10.1-r4.ebuild | 23 +++++++++++++++++++++++
 dev-lang/swift/swift-6.0.3-r1.ebuild  | 19 +++++++++++++++++++
 2 files changed, 42 insertions(+)

diff --git a/dev-lang/swift/swift-5.10.1-r4.ebuild b/dev-lang/swift/swift-5.10.1-r4.ebuild
index 560efa3cf..9884caaf1 100644
--- a/dev-lang/swift/swift-5.10.1-r4.ebuild
+++ b/dev-lang/swift/swift-5.10.1-r4.ebuild
@@ -202,6 +202,26 @@ src_compile() {
 	# contents are irrelevant.
 	addpredict /var/lib/portage/home/.swiftpm
 
+	# Setting `-j<n>`/`--jobs=<n>` in MAKEOPTS needs to be manually exposed to
+	# the Swift build system.
+	local jobs_flag
+	if [[ -n "${MAKEOPTS}" ]]; then
+		local num_jobs make_opts=( $(getopt -qu -o 'j:' -l 'jobs:' -- ${MAKEOPTS}) )
+		while [[ "${#make_opts[@]}" -gt 1 ]]; do
+			case "${make_opts[0]}" in
+				-j | --jobs )
+					num_jobs="${make_opts[1]}"
+					make_opts=("${make_opts[@]:2}") ;;
+				-- ) break ;;
+				* ) make_opts=("${make_opts[@]:1}") ;;
+			esac
+		done
+
+		if [[ -n "${num_jobs}" ]]; then
+			jobs_flag="--jobs=${num_jobs}"
+		fi
+	fi
+
 	local _extra_cmake_options=(
 		# BFD doesn't link Swift symbols properly, so we have to ensure Swift is
 		# built with LLD.
@@ -243,6 +263,7 @@ src_compile() {
 		--no-assertions \
 		--build-subdir="Ninja-Release" \
 		--install-destdir="${S}/stage0" \
+		"${jobs_flag}" \
 		--extra-cmake-options="${extra_cmake_options}" \
 		--bootstrapping=off \
 		--llvm-install-components='llvm-ar;llvm-cov;llvm-profdata;IndexStore;clang;clang-resource-headers;compiler-rt;clangd;lld;LTO;clang-features-file' \
@@ -267,6 +288,7 @@ src_compile() {
 		--no-assertions \
 		--build-subdir="Ninja-Release" \
 		--install-destdir="${S}/stage1" \
+		"${jobs_flag}" \
 		--extra-cmake-options="${extra_cmake_options}" \
 		--cmark --skip-test-cmark \
 		--foundation --skip-test-foundation \
@@ -290,6 +312,7 @@ src_compile() {
 		--no-assertions \
 		--build-subdir="Ninja-Release" \
 		--install-destdir="${S}/stage2" \
+		"${jobs_flag}" \
 		--extra-cmake-options="${extra_cmake_options}" \
 		--foundation --skip-test-foundation \
 		--indexstore-db --skip-test-indexstore-db \

diff --git a/dev-lang/swift/swift-6.0.3-r1.ebuild b/dev-lang/swift/swift-6.0.3-r1.ebuild
index 09b9b0d65..bfbea3442 100644
--- a/dev-lang/swift/swift-6.0.3-r1.ebuild
+++ b/dev-lang/swift/swift-6.0.3-r1.ebuild
@@ -182,6 +182,25 @@ src_configure() {
 	cp "${FILESDIR}/${PF}/gentoo.ini" "${SWIFT_BUILD_PRESETS_INI_PATH}"
 	local extra_build_flags=()
 
+	# Setting `-j<n>`/`--jobs=<n>` in MAKEOPTS needs to be manually exposed to
+	# the Swift build system.
+	if [[ -n "${MAKEOPTS}" ]]; then
+		local num_jobs make_opts=( $(getopt -qu -o 'j:' -l 'jobs:' -- ${MAKEOPTS}) )
+		while [[ "${#make_opts[@]}" -gt 1 ]]; do
+			case "${make_opts[0]}" in
+				-j | --jobs )
+					num_jobs="${make_opts[1]}"
+					make_opts=("${make_opts[@]:2}") ;;
+				-- ) break ;;
+				* ) make_opts=("${make_opts[@]:1}") ;;
+			esac
+		done
+
+		if [[ -n "${num_jobs}" ]]; then
+			extra_build_flags+=(--jobs="${num_jobs}")
+		fi
+	fi
+
 	if [[ "$(tc-get-cxx-stdlib)" = 'libc++' ]]; then
 		# On systems which use libc++ as their default C++ stdlib (e.g. systems
 		# with the LLVM profile), we want to build the internal libc++ and


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2025-03-26 19:46 Itai Ferber
  0 siblings, 0 replies; 26+ messages in thread
From: Itai Ferber @ 2025-03-26 19:46 UTC (permalink / raw
  To: gentoo-commits

commit:     fdc4461cb862f6605de2331edad93c92084dad67
Author:     Itai Ferber <itai <AT> itaiferber <DOT> net>
AuthorDate: Wed Mar 26 19:43:03 2025 +0000
Commit:     Itai Ferber <itai <AT> itaiferber <DOT> net>
CommitDate: Wed Mar 26 19:46:02 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=fdc4461c

dev-lang/swift: fix symlinking on install

On `pkg_postinst`, `has_version` wasn't returning the expected value in
order to symlink Swift on first install; instead, we can use `eselect
swift show` itself to be able to tell whether we're eligible to update
the symlinks.

Closes: https://bugs.gentoo.org/951175
Signed-off-by: Itai Ferber <itai <AT> itaiferber.net>

 dev-lang/swift/swift-5.10.1-r4.ebuild | 28 ++++++++++++++++++++--------
 dev-lang/swift/swift-6.0.3-r1.ebuild  | 28 ++++++++++++++++++++--------
 2 files changed, 40 insertions(+), 16 deletions(-)

diff --git a/dev-lang/swift/swift-5.10.1-r4.ebuild b/dev-lang/swift/swift-5.10.1-r4.ebuild
index 9884caaf1..a317fe0da 100644
--- a/dev-lang/swift/swift-5.10.1-r4.ebuild
+++ b/dev-lang/swift/swift-5.10.1-r4.ebuild
@@ -71,7 +71,7 @@ RESTRICT="strip"
 RDEPEND="
 	${PYTHON_DEPS}
 	>=app-arch/zstd-1.5
-	>=app-eselect/eselect-swift-1.0
+	>=app-eselect/eselect-swift-1.0-r1
 	>=dev-db/sqlite-3
 	>=dev-libs/icu-69
 	>=dev-libs/libedit-20221030
@@ -106,6 +106,8 @@ BDEPEND="
 	' python3_{12..13})
 "
 
+PKG_PREINST_SWIFT_INTENTIONALLY_SET='true'
+
 # Adapted from `flag-o-matic.eclass`'s `raw-ldflags`: turns GCC-style flags
 # (`-Wl,-foo`) into Clang-style flags (`-Xlinker -foo`).
 clang-ldflags() {
@@ -357,12 +359,22 @@ src_install() {
 	done
 }
 
+pkg_preinst() {
+	# After installation, we ideally want the system to have the latest Swift
+	# version set -- but if the system already has a Swift version set and it
+	# isn't the latest version, that's likely an intentional decision that we
+	# don't want to override.
+	local current_swift_version="$(eselect swift show | tail -n1 | xargs)"
+	local latest_swift_version="$(eselect swift show --latest | tail -n1 | xargs)"
+	[[ "${current_swift_version}" == '(unset)' ]] \
+		|| [[ "${current_swift_version}" == "${latest_swift_version}" ]] \
+		&& PKG_PREINST_SWIFT_INTENTIONALLY_SET='false'
+}
+
 pkg_postinst() {
-	# If we're installing the latest version of Swift, then update symlinks to
-	# it. (We don't want to call `eselect swift update` unconditionally in case
-	# we're installing an older version of Swift, and the user has intentionally
-	# selected a version other than the latest.)
-	if ! has_version ">${CATEGORY}/${P}"; then
+	# If the system doesn't have Swift intentionally set to an older version, we
+	# can update to the latest.
+	if [[ "${PKG_PREINST_SWIFT_INTENTIONALLY_SET}" == 'false' ]]; then
 		eselect swift update
 	fi
 }
@@ -370,8 +382,8 @@ pkg_postinst() {
 pkg_postrm() {
 	# We don't want to leave behind symlinks pointing to this Swift version on
 	# removal.
-	local eselect_swift_version="$(eselect swift show)"
-	if [[ "${eselect_swift_version}" == *"${P}" ]]; then
+	local current_swift_version="$(eselect swift show | tail -n1 | xargs)"
+	if [[ "${current_swift_version}" == "${P}" ]]; then
 		eselect swift update
 	fi
 }

diff --git a/dev-lang/swift/swift-6.0.3-r1.ebuild b/dev-lang/swift/swift-6.0.3-r1.ebuild
index bfbea3442..71daf387e 100644
--- a/dev-lang/swift/swift-6.0.3-r1.ebuild
+++ b/dev-lang/swift/swift-6.0.3-r1.ebuild
@@ -72,6 +72,7 @@ RDEPEND="
 	${PYTHON_DEPS}
 	!~dev-lang/swift-5.10.1:0
 	>=app-arch/zstd-1.5
+	>=app-eselect/eselect-swift-1.0-r1
 	>=dev-db/sqlite-3
 	>=dev-libs/icu-69
 	>=dev-libs/libedit-20221030
@@ -79,7 +80,6 @@ RDEPEND="
 	>=net-misc/curl-8.4
 	>=sys-libs/ncurses-6
 	>=sys-libs/zlib-1.3
-	app-eselect/eselect-swift
 	dev-lang/python
 	$(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}=')
 "
@@ -114,6 +114,7 @@ BDEPEND="
 
 SWIFT_BUILD_PRESETS_INI_PATH="${S}/gentoo-build-presets.ini"
 SWIFT_BUILD_PRESET='gentoo'
+PKG_PREINST_SWIFT_INTENTIONALLY_SET='true'
 
 # Adapted from `flag-o-matic.eclass`'s `raw-ldflags`: turns GCC-style flags
 # (`-Wl,-foo`) into Clang-style flags (`-Xlinker -foo`).
@@ -276,12 +277,22 @@ src_install() {
 	done
 }
 
+pkg_preinst() {
+	# After installation, we ideally want the system to have the latest Swift
+	# version set -- but if the system already has a Swift version set and it
+	# isn't the latest version, that's likely an intentional decision that we
+	# don't want to override.
+	local current_swift_version="$(eselect swift show | tail -n1 | xargs)"
+	local latest_swift_version="$(eselect swift show --latest | tail -n1 | xargs)"
+	[[ "${current_swift_version}" == '(unset)' ]] \
+		|| [[ "${current_swift_version}" == "${latest_swift_version}" ]] \
+		&& PKG_PREINST_SWIFT_INTENTIONALLY_SET='false'
+}
+
 pkg_postinst() {
-	# If we're installing the latest version of Swift, then update symlinks to
-	# it. (We don't want to call `eselect swift update` unconditionally in case
-	# we're installing an older version of Swift, and the user has intentionally
-	# selected a version other than the latest.)
-	if ! has_version ">${CATEGORY}/${P}"; then
+	# If the system doesn't have Swift intentionally set to an older version, we
+	# can update to the latest.
+	if [[ "${PKG_PREINST_SWIFT_INTENTIONALLY_SET}" == 'false' ]]; then
 		eselect swift update
 	fi
 }
@@ -289,8 +300,9 @@ pkg_postinst() {
 pkg_postrm() {
 	# We don't want to leave behind symlinks pointing to this Swift version on
 	# removal.
-	local eselect_swift_version="$(eselect swift show)"
-	if [[ "${eselect_swift_version}" == *"${P}" ]]; then
+	local current_swift_version="$(eselect swift show | tail -n1 | xargs)"
+	if [[ "${current_swift_version}" == "${P}" ]]; then
 		eselect swift update
 	fi
 }
+


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

* [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/
@ 2025-07-05 17:45 Marco Rebhan
  0 siblings, 0 replies; 26+ messages in thread
From: Marco Rebhan @ 2025-07-05 17:45 UTC (permalink / raw
  To: gentoo-commits

commit:     788804b6b5175f0513f970a1e7bb1ab9e7897f5a
Author:     Katalin Rebhan <me <AT> dblsaiko <DOT> net>
AuthorDate: Sat Jul  5 17:32:31 2025 +0000
Commit:     Marco Rebhan <me <AT> dblsaiko <DOT> net>
CommitDate: Sat Jul  5 17:44:18 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=788804b6

dev-lang/swift: Correctly merge extra build flags

The build script complains when the same option occurs multiple
times in the same preset, but merges them when they occur in separate
presets. Therefore restore the code that creates a stack of presets
with one for each subsequent argument, instead of packing them all
into a single preset.

Signed-off-by: Katalin Rebhan <me <AT> dblsaiko.net>

 dev-lang/swift/swift-6.0.3-r2.ebuild | 26 ++++++++++++++++----------
 dev-lang/swift/swift-6.1.1.ebuild    | 26 ++++++++++++++++----------
 dev-lang/swift/swift-6.1.2-r1.ebuild | 26 ++++++++++++++++----------
 dev-lang/swift/swift-6.1.ebuild      | 26 ++++++++++++++++----------
 4 files changed, 64 insertions(+), 40 deletions(-)

diff --git a/dev-lang/swift/swift-6.0.3-r2.ebuild b/dev-lang/swift/swift-6.0.3-r2.ebuild
index 838810f56c..3bfb618be6 100644
--- a/dev-lang/swift/swift-6.0.3-r2.ebuild
+++ b/dev-lang/swift/swift-6.0.3-r2.ebuild
@@ -214,16 +214,22 @@ src_configure() {
 
 	extra_build_flags+=(${SWIFT_EXTRA_BUILD_FLAGS})
 
-	if [[ ${#extra_build_flags[@]} -gt 0 ]]; then
-		SWIFT_BUILD_PRESET='gentoo,custom'
-		{
-			echo "[preset: gentoo,custom]"
-			echo "mixin-preset=gentoo"
-			for flag in "${extra_build_flags[@]}"; do
-				echo "${flag#--}"
-			done
-		} >> "${SWIFT_BUILD_PRESETS_INI_PATH}"
-	fi
+	local orig_preset="${SWIFT_BUILD_PRESET}"
+	local preset="${orig_preset}"
+	local n=1
+
+	{
+		for arg in "${extra_build_flags[@]}"; do
+			local next="${orig_preset},${n}"
+			printf '[preset: %s]\n' "${next}"
+			printf 'mixin-preset=%s\n' "${preset}"
+			echo "${arg#--}"
+			preset="${next}"
+			n="$((n + 1))"
+		done
+	} >> "${SWIFT_BUILD_PRESETS_INI_PATH}"
+
+	SWIFT_BUILD_PRESET="${preset}"
 }
 
 src_compile() {

diff --git a/dev-lang/swift/swift-6.1.1.ebuild b/dev-lang/swift/swift-6.1.1.ebuild
index 5567d0b1f0..864a87fbae 100644
--- a/dev-lang/swift/swift-6.1.1.ebuild
+++ b/dev-lang/swift/swift-6.1.1.ebuild
@@ -215,16 +215,22 @@ src_configure() {
 
 	extra_build_flags+=(${SWIFT_EXTRA_BUILD_FLAGS})
 
-	if [[ ${#extra_build_flags[@]} -gt 0 ]]; then
-		SWIFT_BUILD_PRESET='gentoo,custom'
-		{
-			echo "[preset: gentoo,custom]"
-			echo "mixin-preset=gentoo"
-			for flag in "${extra_build_flags[@]}"; do
-				echo "${flag#--}"
-			done
-		} >> "${SWIFT_BUILD_PRESETS_INI_PATH}"
-	fi
+	local orig_preset="${SWIFT_BUILD_PRESET}"
+	local preset="${orig_preset}"
+	local n=1
+
+	{
+		for arg in "${extra_build_flags[@]}"; do
+			local next="${orig_preset},${n}"
+			printf '[preset: %s]\n' "${next}"
+			printf 'mixin-preset=%s\n' "${preset}"
+			echo "${arg#--}"
+			preset="${next}"
+			n="$((n + 1))"
+		done
+	} >> "${SWIFT_BUILD_PRESETS_INI_PATH}"
+
+	SWIFT_BUILD_PRESET="${preset}"
 }
 
 src_compile() {

diff --git a/dev-lang/swift/swift-6.1.2-r1.ebuild b/dev-lang/swift/swift-6.1.2-r1.ebuild
index 52b3f0ee15..7908e1dc60 100644
--- a/dev-lang/swift/swift-6.1.2-r1.ebuild
+++ b/dev-lang/swift/swift-6.1.2-r1.ebuild
@@ -215,16 +215,22 @@ src_configure() {
 
 	extra_build_flags+=(${SWIFT_EXTRA_BUILD_FLAGS})
 
-	if [[ ${#extra_build_flags[@]} -gt 0 ]]; then
-		SWIFT_BUILD_PRESET='gentoo,custom'
-		{
-			echo "[preset: gentoo,custom]"
-			echo "mixin-preset=gentoo"
-			for flag in "${extra_build_flags[@]}"; do
-				echo "${flag#--}"
-			done
-		} >> "${SWIFT_BUILD_PRESETS_INI_PATH}"
-	fi
+	local orig_preset="${SWIFT_BUILD_PRESET}"
+	local preset="${orig_preset}"
+	local n=1
+
+	{
+		for arg in "${extra_build_flags[@]}"; do
+			local next="${orig_preset},${n}"
+			printf '[preset: %s]\n' "${next}"
+			printf 'mixin-preset=%s\n' "${preset}"
+			echo "${arg#--}"
+			preset="${next}"
+			n="$((n + 1))"
+		done
+	} >> "${SWIFT_BUILD_PRESETS_INI_PATH}"
+
+	SWIFT_BUILD_PRESET="${preset}"
 }
 
 src_compile() {

diff --git a/dev-lang/swift/swift-6.1.ebuild b/dev-lang/swift/swift-6.1.ebuild
index 5567d0b1f0..864a87fbae 100644
--- a/dev-lang/swift/swift-6.1.ebuild
+++ b/dev-lang/swift/swift-6.1.ebuild
@@ -215,16 +215,22 @@ src_configure() {
 
 	extra_build_flags+=(${SWIFT_EXTRA_BUILD_FLAGS})
 
-	if [[ ${#extra_build_flags[@]} -gt 0 ]]; then
-		SWIFT_BUILD_PRESET='gentoo,custom'
-		{
-			echo "[preset: gentoo,custom]"
-			echo "mixin-preset=gentoo"
-			for flag in "${extra_build_flags[@]}"; do
-				echo "${flag#--}"
-			done
-		} >> "${SWIFT_BUILD_PRESETS_INI_PATH}"
-	fi
+	local orig_preset="${SWIFT_BUILD_PRESET}"
+	local preset="${orig_preset}"
+	local n=1
+
+	{
+		for arg in "${extra_build_flags[@]}"; do
+			local next="${orig_preset},${n}"
+			printf '[preset: %s]\n' "${next}"
+			printf 'mixin-preset=%s\n' "${preset}"
+			echo "${arg#--}"
+			preset="${next}"
+			n="$((n + 1))"
+		done
+	} >> "${SWIFT_BUILD_PRESETS_INI_PATH}"
+
+	SWIFT_BUILD_PRESET="${preset}"
 }
 
 src_compile() {


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

end of thread, other threads:[~2025-07-05 17:45 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-05 17:45 [gentoo-commits] repo/proj/guru:dev commit in: dev-lang/swift/ Marco Rebhan
  -- strict thread matches above, loose matches on Subject: below --
2025-03-26 19:46 Itai Ferber
2025-03-26 19:46 Itai Ferber
2025-03-07 20:32 Itai Ferber
2025-02-10 23:46 Marco Rebhan
2025-02-10 23:46 Marco Rebhan
2025-01-18 17:04 Itai Ferber
2025-01-15 19:53 Itai Ferber
2025-01-12 17:29 Itai Ferber
2024-10-13  1:31 Itai Ferber
2024-10-13  1:31 Itai Ferber
2024-10-13  1:31 Itai Ferber
2024-10-13  1:31 Itai Ferber
2024-10-13  1:31 Itai Ferber
2024-10-13  1:31 Itai Ferber
2024-09-13 19:35 Itai Ferber
2024-09-13 19:35 Itai Ferber
2024-08-10 20:15 Itai Ferber
2024-08-10 18:38 Itai Ferber
2024-08-10 17:51 Itai Ferber
2024-08-10 15:59 Itai Ferber
2024-08-10 15:59 Itai Ferber
2024-08-10 15:59 Itai Ferber
2024-07-16 23:19 Itai Ferber
2024-07-16 16:53 Itai Ferber
2024-06-30 16:41 Itai Ferber

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