From 68c44522383e731af9e3e84379fd938f7ae1a6ac Mon Sep 17 00:00:00 2001 From: Ron Olson Date: Apr 12 2020 16:39:56 +0000 Subject: Updated to include s390x and specific requirement for F30 --- diff --git a/build-setup-s390x.patch b/build-setup-s390x.patch new file mode 100644 index 0000000..83a723b --- /dev/null +++ b/build-setup-s390x.patch @@ -0,0 +1,32 @@ +--- swift/utils/build-presets.ini.orig 2020-04-11 22:32:29.178121900 +0000 ++++ swift/utils/build-presets.ini 2020-04-11 22:33:41.148121900 +0000 +@@ -736,18 +736,15 @@ + llbuild + swiftpm + xctest +-libicu + libcxx + + dash-dash + +-build-ninja + install-swift + install-lldb + install-llbuild + install-swiftpm + install-xctest +-install-libicu + install-prefix=/usr + install-libcxx + install-sourcekit-lsp +@@ -758,10 +755,8 @@ + # Executes the lit tests for the installable package that is created + # Assumes the swift-integration-tests repo is checked out + +-test-installable-package + + # Build the benchmarks against the toolchain. +-toolchain-benchmarks + + # Path to the root of the installation filesystem. + install-destdir=%(install_destdir)s diff --git a/ibm-identifier.patch b/ibm-identifier.patch new file mode 100644 index 0000000..8ed81c3 --- /dev/null +++ b/ibm-identifier.patch @@ -0,0 +1,11 @@ +--- swiftpm/Sources/Build/Triple.swift.orig 2020-04-11 19:16:00.451437120 +0000 ++++ swiftpm/Sources/Build/Triple.swift 2020-04-11 19:17:33.091437120 +0000 +@@ -135,7 +135,7 @@ + public static let x86_64Linux = try! Triple("x86_64-unknown-linux-gnu") + public static let i686Linux = try! Triple("i686-unknown-linux") + public static let ppc64leLinux = try! Triple("powerpc64le-unknown-linux") +- public static let s390xLinux = try! Triple("s390x-unknown-linux") ++ public static let s390xLinux = try! Triple("s390x-ibm-linux") + public static let arm64Linux = try! Triple("aarch64-unknown-linux-gnu") + public static let armLinux = try! Triple("armv7-unknown-linux-gnueabihf") + public static let armAndroid = try! Triple("armv7a-unknown-linux-androideabi") diff --git a/sources b/sources index 3291aa9..768a7ce 100644 --- a/sources +++ b/sources @@ -1,4 +1,3 @@ -SHA512 (cmake-3.16.5.tar.gz) = 204ce83501c8068ff660c30a68641a354764135e1600a9a95b39476d072876e400961377e19bbe03a7b18412b36dcf21a693946a2a81cff5985e637e9f193671 SHA512 (cmark.tar.gz) = c1c31dadebb7e97ffbcf451e2964ab8593ab9048713b4aa102b87720a3f72b2b2bc7eedf4988cd7194dff930bfb27a0a3b34b4f5fd81e2d5d6f6cbd727d43282 SHA512 (corelibs-foundation.tar.gz) = fca965045dcdb68c3038ddfab658cf2c26d84bcda8d29607538e583854858cf8b42c1bf55c2ca5d1d242c29666e23b0dba1f92da219b468112740681f26f0298 SHA512 (corelibs-libdispatch.tar.gz) = 6180ee085e667e4990c1b93ec506eb623c871f95e3eca38e5545c84ff258a22f2deaa9b86e640ba668ad5a0f56e36ec06b06ea5f23f060b6c25b6e0fd929a03d diff --git a/swift-lang.spec b/swift-lang.spec index aad418a..04269bc 100644 --- a/swift-lang.spec +++ b/swift-lang.spec @@ -5,40 +5,41 @@ %global swiftgithash 2e3b1b3 %global swiftgitdate 20200331 %global swiftbuild swift-source -%global cmake_version 3.16.5 -Name: swift-lang -Version: 5.2.1 -Release: 1%{?dist} -Summary: Apple's Swift programming language -License: ASL 2.0 and Unicode -URL: https://swift.org -Source0: https://github.com/apple/swift/archive/swift-%{swifttag}.tar.gz#/swift.tar.gz -Source1: https://github.com/apple/swift-corelibs-libdispatch/archive/swift-%{swifttag}.tar.gz#/corelibs-libdispatch.tar.gz -Source2: https://github.com/apple/swift-corelibs-foundation/archive/swift-%{swifttag}.tar.gz#/corelibs-foundation.tar.gz -Source3: https://github.com/apple/swift-integration-tests/archive/swift-%{swifttag}.tar.gz#/swift-integration-tests.tar.gz -Source4: https://github.com/apple/swift-corelibs-xctest/archive/swift-%{swifttag}.tar.gz#/corelibs-xctest.tar.gz -Source5: https://github.com/apple/swift-package-manager/archive/swift-%{swifttag}.tar.gz#/package-manager.tar.gz -Source6: https://github.com/apple/swift-llbuild/archive/swift-%{swifttag}.tar.gz#/llbuild.tar.gz -Source7: https://github.com/apple/swift-cmark/archive/swift-%{swifttag}.tar.gz#/cmark.tar.gz -Source8: https://github.com/apple/swift-xcode-playground-support/archive/swift-%{swifttag}.tar.gz#/swift-xcode-playground-support.tar.gz +Name: swift-lang +Version: 5.2.1 +Release: 1%{?dist} +Summary: Apple's Swift programming language +License: ASL 2.0 and Unicode +URL: https://swift.org +Source0: https://github.com/apple/swift/archive/swift-%{swifttag}.tar.gz#/swift.tar.gz +Source1: https://github.com/apple/swift-corelibs-libdispatch/archive/swift-%{swifttag}.tar.gz#/corelibs-libdispatch.tar.gz +Source2: https://github.com/apple/swift-corelibs-foundation/archive/swift-%{swifttag}.tar.gz#/corelibs-foundation.tar.gz +Source3: https://github.com/apple/swift-integration-tests/archive/swift-%{swifttag}.tar.gz#/swift-integration-tests.tar.gz +Source4: https://github.com/apple/swift-corelibs-xctest/archive/swift-%{swifttag}.tar.gz#/corelibs-xctest.tar.gz +Source5: https://github.com/apple/swift-package-manager/archive/swift-%{swifttag}.tar.gz#/package-manager.tar.gz +Source6: https://github.com/apple/swift-llbuild/archive/swift-%{swifttag}.tar.gz#/llbuild.tar.gz +Source7: https://github.com/apple/swift-cmark/archive/swift-%{swifttag}.tar.gz#/cmark.tar.gz +Source8: https://github.com/apple/swift-xcode-playground-support/archive/swift-%{swifttag}.tar.gz#/swift-xcode-playground-support.tar.gz Source9: https://github.com/apple/sourcekit-lsp/archive/swift-%{swifttag}.tar.gz#/sourcekit-lsp.tar.gz Source10: https://github.com/apple/indexstore-db/archive/swift-%{swifttag}.tar.gz#/indexstore-db.tar.gz Source11: https://github.com/apple/llvm-project/archive/swift-%{swifttag}.tar.gz#/llvm-project.tar.gz Source12: https://github.com/unicode-org/icu/archive/release-61-2.tar.gz Source13: https://github.com/apple/swift-syntax/archive/swift-%{swiftsyntax}.zip#/swift-syntax.tar.gz -Source16: https://github.com/Kitware/CMake/releases/download/v%{cmake_version}/cmake-%{cmake_version}.tar.gz Patch0: build-setup.patch Patch1: compiler-rt-fuzzer.patch Patch2: python3-2.patch Patch3: linux-tests-python-3-2.patch -Patch4: glibcpthread.patch -Patch5: swift.patch -Patch6: llvm.patch -Patch7: indexstore.patch +Patch4: glibcpthread.patch +Patch5: swift.patch +Patch6: llvm.patch +Patch7: indexstore.patch +Patch8: build-setup-s390x.patch +Patch9: ibm-identifier.patch +BuildRequires: cmake BuildRequires: clang BuildRequires: swig BuildRequires: pkgconfig @@ -57,21 +58,23 @@ BuildRequires: libuuid-devel BuildRequires: libedit-devel BuildRequires: libicu-devel BuildRequires: ninja-build -BuildRequires: make -BuildRequires: openssl-devel BuildRequires: /usr/bin/pathfix.py -Requires: glibc-devel +Requires: glibc-devel +%if 0%{?fedora} >= 31 Requires: binutils-gold +%else +Requires: binutils +%endif Requires: gcc Requires: ncurses-devel Requires: ncurses-compat-libs -Provides: %{name} = %{version}-%{release} -Obsoletes: %{name} < %{version}-%{release} -Obsoletes: %{name}-runtime < %{version}-%{release} +Provides: %{name} = %{version}-%{release} +Obsoletes: %{name} < %{version}-%{release} +Obsoletes: %{name}-runtime < %{version}-%{release} -ExclusiveArch: x86_64 aarch64 +ExclusiveArch: x86_64 aarch64 s390x %description @@ -88,13 +91,6 @@ correct programs easier for the developer. %prep -# Now we handle our own CMake (sigh) -%setup -q -c -n cmake -a 16 -mkdir cmake-build -cd cmake-build -../cmake-%{cmake_version}/bootstrap && make - - %setup -q -c -n %{swiftbuild} -a 0 -a 1 -a 2 -a 3 -a 4 -a 5 -a 6 -a 7 -a 8 -a 9 -a 10 -a 11 -a 12 -a 13 # The Swift build script requires directories to be named # in a specific way so renaming the source directories is @@ -119,7 +115,12 @@ mv icu-release-61-2 icu mv swift-syntax-swift-%{swiftsyntax} swift-syntax # Since we require ninja for building, there's no sense to rebuild it just for Swift +%ifnarch s390x %patch0 -p0 +%else +# Couple other things for s390x +%patch8 -p0 +%endif # Fixes an issue with using std::thread in a vector in compiler-rt %patch1 -p0 @@ -140,6 +141,11 @@ mv swift-syntax-swift-%{swiftsyntax} swift-syntax %patch6 -p0 %patch7 -p0 +# s390x-specific patches +%ifarch s390x +%patch9 -p0 +%endif + # Fix python to python3 pathfix.py -pni "%{__python3} %{py3_shbang_opts}" swift/utils/api_checker/swift-api-checker.py @@ -150,8 +156,6 @@ export VERBOSE=1 mkdir $PWD/binforpython ln -s /usr/bin/python3 $PWD/binforpython/python export PATH=$PWD/binforpython:$PATH -# And for CMake, which we built first -export PATH=$PWD/../cmake/cmake-build/bin:$PATH # Here we go! swift/utils/build-script --preset=buildbot_linux,no_test install_destdir=%{_builddir} installable_package=%{_builddir}/swift-%{version}-fedora.tar.gz