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 +}
