Skip to content

Commit bb3332b

Browse files
authored
Merge pull request #283 from apple/update-the-swift-5.10-release-rpm-files
Update the Amazon Linux 2 and CentOS 7 RPM to support Swift 5.10
2 parents cd3d2bf + 3c7b3ce commit bb3332b

File tree

9 files changed

+175
-115
lines changed

9 files changed

+175
-115
lines changed

platforms/Linux/RPM/Amazonlinux/2/Dockerfile

+43
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,46 @@ RUN cd /tmp && yum-builddep -y optimization.spec
2929
# fix python six
3030
RUN mkdir -p /usr/local/lib/python3.7/site-packages/
3131
RUN easy_install-3.7 six
32+
33+
ARG SWIFT_PLATFORM=amazonlinux2
34+
ARG SWIFT_VERSION=5.8.1
35+
ARG SWIFT_BRANCH=swift-${SWIFT_VERSION}-release
36+
ARG SWIFT_TAG=swift-${SWIFT_VERSION}-RELEASE
37+
ARG SWIFT_WEBROOT=https://download.swift.org
38+
ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION}
39+
40+
ENV SWIFT_PLATFORM=$SWIFT_PLATFORM \
41+
SWIFT_VERSION=$SWIFT_VERSION \
42+
SWIFT_BRANCH=$SWIFT_BRANCH \
43+
SWIFT_TAG=$SWIFT_TAG \
44+
SWIFT_WEBROOT=$SWIFT_WEBROOT \
45+
SWIFT_PREFIX=$SWIFT_PREFIX
46+
47+
RUN set -e; \
48+
ARCH_NAME="$(rpm --eval '%{_arch}')"; \
49+
url=; \
50+
case "${ARCH_NAME##*-}" in \
51+
'x86_64') \
52+
OS_ARCH_SUFFIX=''; \
53+
;; \
54+
'aarch64') \
55+
OS_ARCH_SUFFIX='-aarch64'; \
56+
;; \
57+
*) echo >&2 "error: unsupported architecture: '$ARCH_NAME'"; exit 1 ;; \
58+
esac; \
59+
SWIFT_WEBDIR="$SWIFT_WEBROOT/$SWIFT_BRANCH/$(echo $SWIFT_PLATFORM | tr -d .)$OS_ARCH_SUFFIX" \
60+
&& SWIFT_BIN_URL="$SWIFT_WEBDIR/$SWIFT_TAG/$SWIFT_TAG-$SWIFT_PLATFORM$OS_ARCH_SUFFIX.tar.gz" \
61+
&& SWIFT_SIG_URL="$SWIFT_BIN_URL.sig" \
62+
&& echo $SWIFT_BIN_URL \
63+
# - Download the GPG keys, Swift toolchain, and toolchain signature, and verify.
64+
&& export GNUPGHOME="$(mktemp -d)" \
65+
&& curl -fsSL "$SWIFT_BIN_URL" -o swift.tar.gz "$SWIFT_SIG_URL" -o swift.tar.gz.sig \
66+
&& curl -fSsL https://swift.org/keys/all-keys.asc | gpg --import - \
67+
&& gpg --batch --verify swift.tar.gz.sig swift.tar.gz \
68+
# - Unpack the toolchain, set libs permissions, and clean up.
69+
&& mkdir -p $SWIFT_PREFIX \
70+
&& tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \
71+
&& chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \
72+
&& rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz
73+
74+
ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}"

platforms/Linux/RPM/Amazonlinux/2/patches/hwasan_symbolize.patch

-10
This file was deleted.

platforms/Linux/RPM/Amazonlinux/2/swiftlang.spec

+44-41
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,44 @@
11
%include global.inc
22
%include metadata.inc
33

4-
Source0: https://github.com/apple/swift/archive/swift-%{swift_version}.tar.gz#/swift.tar.gz
5-
Source1: https://github.com/apple/swift-corelibs-libdispatch/archive/swift-%{swift_version}.tar.gz#/corelibs-libdispatch.tar.gz
6-
Source2: https://github.com/apple/swift-corelibs-foundation/archive/swift-%{swift_version}.tar.gz#/corelibs-foundation.tar.gz
7-
Source3: https://github.com/apple/swift-integration-tests/archive/swift-%{swift_version}.tar.gz#/swift-integration-tests.tar.gz
8-
Source4: https://github.com/apple/swift-corelibs-xctest/archive/swift-%{swift_version}.tar.gz#/corelibs-xctest.tar.gz
9-
Source5: https://github.com/apple/swift-package-manager/archive/swift-%{swift_version}.tar.gz#/package-manager.tar.gz
10-
Source6: https://github.com/apple/swift-llbuild/archive/swift-%{swift_version}.tar.gz#/llbuild.tar.gz
4+
Source0: https://github.com/apple/indexstore-db/archive/swift-%{swift_version}.tar.gz#/indexstore-db.tar.gz
5+
Source1: https://github.com/apple/llvm-project/archive/swift-%{swift_version}.tar.gz#/llvm-project.tar.gz
6+
Source2: https://github.com/apple/sourcekit-lsp/archive/swift-%{swift_version}.tar.gz#/sourcekit-lsp.tar.gz
7+
Source3: https://github.com/apple/swift-argument-parser/archive/%{swift_argument_parser_version}.tar.gz#/swift-argument-parser.tar.gz
8+
Source4: https://github.com/apple/swift-asn1/archive/%{swift_asn1_version}.tar.gz#/swift-asn1.tar.gz
9+
Source5: https://github.com/apple/swift-atomics/archive/%{swift_atomics_version}.tar.gz#/swift-atomics.tar.gz
10+
Source6: https://github.com/apple/swift-certificates/archive/%{swift_certificates_version}.tar.gz#/swift-certificates.tar.gz
1111
Source7: https://github.com/apple/swift-cmark/archive/swift-%{swift_version}.tar.gz#/cmark.tar.gz
12-
Source8: https://github.com/apple/swift-xcode-playground-support/archive/swift-%{swift_version}.tar.gz#/swift-xcode-playground-support.tar.gz
13-
Source9: https://github.com/apple/sourcekit-lsp/archive/swift-%{swift_version}.tar.gz#/sourcekit-lsp.tar.gz
14-
Source10: https://github.com/apple/indexstore-db/archive/swift-%{swift_version}.tar.gz#/indexstore-db.tar.gz
15-
Source11: https://github.com/apple/llvm-project/archive/swift-%{swift_version}.tar.gz#/llvm-project.tar.gz
16-
Source12: https://github.com/apple/swift-tools-support-core/archive/swift-%{swift_version}.tar.gz#/swift-tools-support-core.tar.gz
17-
Source13: https://github.com/apple/swift-argument-parser/archive/%{swift_argument_parser_version}.tar.gz#/swift-argument-parser.tar.gz
18-
Source14: https://github.com/apple/swift-driver/archive/swift-%{swift_version}.tar.gz#/swift-driver.tar.gz
19-
Source15: https://github.com/unicode-org/icu/archive/release-%{icu_version}.tar.gz#/icu.tar.gz
20-
Source16: https://github.com/apple/swift-syntax/archive/swift-%{swift_version}.zip#/swift-syntax.tar.gz
21-
Source17: https://github.com/jpsim/Yams/archive/%{yams_version}.tar.gz#/yams.tar.gz
22-
Source18: https://github.com/apple/swift-crypto/archive/refs/tags/%{swift_crypto_version}.tar.gz#/swift-crypto.tar.gz
23-
Source19: https://github.com/ninja-build/ninja/archive/refs/tags/v%{ninja_version}.tar.gz#/ninja.tar.gz
24-
Source20: https://github.com/KitWare/CMake/archive/refs/tags/v%{cmake_version}.tar.gz#/cmake.tar.gz
25-
Source21: https://github.com/apple/swift-atomics/archive/%{swift_atomics_version}.tar.gz#/swift-atomics.tar.gz
26-
Source22: https://github.com/apple/swift-cmark/archive/swift-%{swift_version}-gfm.tar.gz#/swift-cmark-gfm.tar.gz
27-
Source23: https://github.com/apple/swift-docc/archive/swift-%{swift_version}.tar.gz#/swift-docc.tar.gz
28-
Source24: https://github.com/apple/swift-docc-render-artifact/archive/swift-%{swift_version}.tar.gz#/swift-docc-render-artifact.tar.gz
29-
Source25: https://github.com/apple/swift-docc-symbolkit/archive/swift-%{swift_version}.tar.gz#/swift-docc-symbolkit.tar.gz
30-
Source26: https://github.com/apple/swift-collections/archive/%{swift_collections_version}.tar.gz#/swift-collections.tar.gz
31-
Source27: https://github.com/apple/swift-numerics/archive/%{swift_numerics_version}.tar.gz#/swift-numerics.tar.gz
32-
Source28: https://github.com/apple/swift-system/archive/%{swift_system_version}.tar.gz#/swift-system.tar.gz
33-
Source29: https://github.com/apple/swift-nio/archive/%{swift_nio_version}.tar.gz#/swift-nio.tar.gz
34-
Source30: https://github.com/apple/swift-nio-ssl/archive/%{swift_nio_ssl_version}.tar.gz#/swift-nio-ssl.tar.gz
35-
Source31: https://github.com/apple/swift-format/archive/swift-%{swift_version}.tar.gz#/swift-format.tar.gz
36-
Source32: https://github.com/apple/swift-lmdb/archive/swift-%{swift_version}.tar.gz#/swift-lmdb.tar.gz
37-
Source33: https://github.com/apple/swift-markdown/archive/swift-%{swift_version}.tar.gz#/swift-markdown.tar.gz
38-
Source34: https://github.com/apple/swift-experimental-string-processing/archive/swift-%{swift_version}.tar.gz#/swift-experimental-string-processing.tar.gz
12+
Source8: https://github.com/apple/swift-collections/archive/%{swift_collections_version}.tar.gz#/swift-collections.tar.gz
13+
Source9: https://github.com/apple/swift-corelibs-foundation/archive/swift-%{swift_version}.tar.gz#/corelibs-foundation.tar.gz
14+
Source10: https://github.com/apple/swift-corelibs-libdispatch/archive/swift-%{swift_version}.tar.gz#/corelibs-libdispatch.tar.gz
15+
Source11: https://github.com/apple/swift-corelibs-xctest/archive/swift-%{swift_version}.tar.gz#/corelibs-xctest.tar.gz
16+
Source12: https://github.com/apple/swift-crypto/archive/refs/tags/%{swift_crypto_version}.tar.gz#/swift-crypto.tar.gz
17+
Source13: https://github.com/apple/swift-docc-render-artifact/archive/swift-%{swift_version}.tar.gz#/swift-docc-render-artifact.tar.gz
18+
Source14: https://github.com/apple/swift-docc-symbolkit/archive/swift-%{swift_version}.tar.gz#/swift-docc-symbolkit.tar.gz
19+
Source15: https://github.com/apple/swift-docc/archive/swift-%{swift_version}.tar.gz#/swift-docc.tar.gz
20+
Source16: https://github.com/apple/swift-driver/archive/swift-%{swift_version}.tar.gz#/swift-driver.tar.gz
21+
Source17: https://github.com/apple/swift-experimental-string-processing/archive/swift-%{swift_version}.tar.gz#/swift-experimental-string-proce
22+
Source18: https://github.com/apple/swift-format/archive/swift-%{swift_version}.tar.gz#/swift-format.tar.gz
23+
Source19: https://github.com/apple/swift-integration-tests/archive/swift-%{swift_version}.tar.gz#/swift-integration-tests.tar.gz
24+
Source20: https://github.com/apple/swift-llbuild/archive/swift-%{swift_version}.tar.gz#/llbuild.tar.gz
25+
Source21: https://github.com/apple/swift-llvm-bindings/archive/swift-%{swift_version}.tar.gz#/swift-llvm-bindings.tar.gz
26+
Source22: https://github.com/apple/swift-lmdb/archive/swift-%{swift_version}.tar.gz#/swift-lmdb.tar.gz
27+
Source23: https://github.com/apple/swift-markdown/archive/swift-%{swift_version}.tar.gz#/swift-markdown.tar.gz
28+
Source24: https://github.com/apple/swift-nio-ssl/archive/%{swift_nio_ssl_version}.tar.gz#/swift-nio-ssl.tar.gz
29+
Source25: https://github.com/apple/swift-nio/archive/%{swift_nio_version}.tar.gz#/swift-nio.tar.gz
30+
Source26: https://github.com/apple/swift-numerics/archive/%{swift_numerics_version}.tar.gz#/swift-numerics.tar.gz
31+
Source27: https://github.com/apple/swift-package-manager/archive/swift-%{swift_version}.tar.gz#/package-manager.tar.gz
32+
Source28: https://github.com/apple/swift-syntax/archive/swift-%{swift_version}.zip#/swift-syntax.tar.gz
33+
Source29: https://github.com/apple/swift-system/archive/%{swift_system_version}.tar.gz#/swift-system.tar.gz
34+
Source30: https://github.com/apple/swift-tools-support-core/archive/swift-%{swift_version}.tar.gz#/swift-tools-support-core.tar.gz
35+
Source31: https://github.com/apple/swift-xcode-playground-support/archive/swift-%{swift_version}.tar.gz#/swift-xcode-playground-support.tar.gz
36+
Source32: https://github.com/apple/swift/archive/swift-%{swift_version}.tar.gz#/swift.tar.gz
37+
Source33: https://github.com/jpsim/Yams/archive/%{yams_version}.tar.gz#/yams.tar.gz
38+
Source34: https://github.com/KitWare/CMake/archive/refs/tags/v%{cmake_version}.tar.gz#/cmake.tar.gz
39+
Source35: https://github.com/ninja-build/ninja/archive/refs/tags/v%{ninja_version}.tar.gz#/ninja.tar.gz
40+
Source36: https://github.com/unicode-org/icu/archive/release-%{icu_version}.tar.gz#/icu.tar.gz
3941

40-
Patch0: patches/hwasan_symbolize.patch
4142

4243
BuildRequires: clang
4344
BuildRequires: curl-devel
@@ -59,13 +60,16 @@ BuildRequires: python-devel
5960
BuildRequires: python-pkgconfig
6061
BuildRequires: python-six
6162
BuildRequires: python3-devel
63+
BuildRequires: python3-psutil
6264
BuildRequires: rsync
6365
BuildRequires: sqlite-devel
6466
BuildRequires: swig
6567
BuildRequires: tzdata
68+
BuildRequires: unzip
6669
BuildRequires: uuid-devel
6770
BuildRequires: wget
6871
BuildRequires: which
72+
BuildRequires: zip
6973

7074
Requires: binutils
7175
Requires: gcc
@@ -91,7 +95,7 @@ ExclusiveArch: x86_64 aarch64
9195
%include description.inc
9296

9397
%prep
94-
%setup -q -c -n %{swift_source_location} -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 -a 14 -a 15 -a 16 -a 17 -a 18 -a 19 -a 20 -a 21 -a 22 -a 23 -a 24 -a 25 -a 26 -a 27 -a 28 -a 29 -a 30 -a 31 -a 32 -a 33 -a 34
98+
%setup -q -c -n %{swift_source_location} -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 -a 14 -a 15 -a 16 -a 17 -a 18 -a 19 -a 20 -a 21 -a 22 -a 23 -a 24 -a 25 -a 26 -a 27 -a 28 -a 29 -a 30 -a 31 -a 32 -a 33 -a 34 -a 35 -a 36
9599

96100
# The Swift build script requires directories to be named
97101
# in a specific way so renaming the source directories is
@@ -103,9 +107,10 @@ mv llvm-project-swift-%{swift_version} llvm-project
103107
mv ninja-%{ninja_version} ninja
104108
mv sourcekit-lsp-swift-%{swift_version} sourcekit-lsp
105109
mv swift-argument-parser-%{swift_argument_parser_version} swift-argument-parser
110+
mv swift-asn1-%{swift_asn1_version} swift-asn1
106111
mv swift-atomics-%{swift_atomics_version} swift-atomics
112+
mv swift-certificates-%{swift_certificates_version} swift-certificates
107113
mv swift-cmark-swift-%{swift_version} cmark
108-
mv swift-cmark-swift-%{swift_version}-gfm swift-cmark-gfm
109114
mv swift-collections-%{swift_collections_version} swift-collections
110115
mv swift-corelibs-foundation-swift-%{swift_version} swift-corelibs-foundation
111116
mv swift-corelibs-libdispatch-swift-%{swift_version} swift-corelibs-libdispatch
@@ -115,9 +120,11 @@ mv swift-docc-render-artifact-swift-%{swift_version} swift-docc-render-artifact
115120
mv swift-docc-swift-%{swift_version} swift-docc
116121
mv swift-docc-symbolkit-swift-%{swift_version} swift-docc-symbolkit
117122
mv swift-driver-swift-%{swift_version} swift-driver
123+
mv swift-experimental-string-processing-swift-%{swift_version} swift-experimental-string-processing
118124
mv swift-format-swift-%{swift_version} swift-format
119125
mv swift-integration-tests-swift-%{swift_version} swift-integration-tests
120126
mv swift-llbuild-swift-%{swift_version} llbuild
127+
mv swift-llvm-bindings-swift-%{swift_version} swift-llvm-bindings
121128
mv swift-lmdb-swift-%{swift_version} swift-lmdb
122129
mv swift-markdown-swift-%{swift_version} swift-markdown
123130
mv swift-nio-%{swift_nio_version} swift-nio
@@ -130,10 +137,6 @@ mv swift-system-%{swift_system_version} swift-system
130137
mv swift-tools-support-core-swift-%{swift_version} swift-tools-support-core
131138
mv swift-xcode-playground-support-swift-%{swift_version} swift-xcode-playground-support
132139
mv Yams-%{yams_version} yams
133-
mv swift-experimental-string-processing-swift-%{swift_version} swift-experimental-string-processing
134-
135-
# Adjust python version hwasan_symbolize
136-
%patch0 -p1
137140

138141
%build
139142
export VERBOSE=1

platforms/Linux/RPM/Centos/7/Dockerfile

+33-2
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,40 @@ RUN echo -e "Name: optimization\nVersion: optimization\nRelease: optimization\nS
2424
RUN cat /tmp/swiftlang.spec | grep BuildRequires >> /tmp/optimization.spec
2525
RUN echo -e "\n%description" >> /tmp/optimization.spec
2626
# install the build requirements
27-
RUN cd /tmp && yum-builddep -y optimization.spec
27+
RUN cd /tmp && yum-builddep --enablerepo=centosplus -y optimization.spec
2828

2929
# Workaround to support clang-3.5 or a later version
30-
RUN echo -e ". /opt/rh/sclo-git25/enable\n. /opt/rh/llvm-toolset-7/enable\n. /opt/rh/devtoolset-8/enable\n" >> $HOME/.bashrc
30+
RUN echo -e ". /opt/rh/sclo-git25/enable\n. /opt/rh/devtoolset-8/enable\n" >> $HOME/.bashrc
3131
RUN source $HOME/.bashrc
3232
RUN sed -i -e 's/\*__block/\*__libc_block/g' /usr/include/unistd.h
33+
34+
ARG SWIFT_PLATFORM=centos7
35+
ARG SWIFT_VERSION=5.8.1
36+
ARG SWIFT_BRANCH=swift-${SWIFT_VERSION}-release
37+
ARG SWIFT_TAG=swift-${SWIFT_VERSION}-RELEASE
38+
ARG SWIFT_WEBROOT=https://download.swift.org
39+
ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION}
40+
41+
ENV SWIFT_PLATFORM=$SWIFT_PLATFORM \
42+
SWIFT_VERSION=$SWIFT_VERSION \
43+
SWIFT_BRANCH=$SWIFT_BRANCH \
44+
SWIFT_TAG=$SWIFT_TAG \
45+
SWIFT_WEBROOT=$SWIFT_WEBROOT \
46+
SWIFT_PREFIX=$SWIFT_PREFIX
47+
48+
RUN set -e; \
49+
SWIFT_WEBDIR="$SWIFT_WEBROOT/$SWIFT_BRANCH/$(echo $SWIFT_PLATFORM | tr -d .)" \
50+
&& SWIFT_BIN_URL="$SWIFT_WEBDIR/$SWIFT_TAG/$SWIFT_TAG-$SWIFT_PLATFORM.tar.gz" \
51+
&& SWIFT_SIG_URL="$SWIFT_BIN_URL.sig" \
52+
# - Download the GPG keys, Swift toolchain, and toolchain signature, and verify.
53+
&& export GNUPGHOME="$(mktemp -d)" \
54+
&& curl -fsSL "$SWIFT_BIN_URL" -o swift.tar.gz "$SWIFT_SIG_URL" -o swift.tar.gz.sig \
55+
&& curl -fSsL https://swift.org/keys/all-keys.asc | gpg --import - \
56+
&& gpg --batch --verify swift.tar.gz.sig swift.tar.gz \
57+
# - Unpack the toolchain, set libs permissions, and clean up.
58+
&& mkdir -p $SWIFT_PREFIX \
59+
&& tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \
60+
&& chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \
61+
&& rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz
62+
63+
ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}"

platforms/Linux/RPM/Centos/7/docker-compose.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,14 @@ services:
1818

1919
docker-setup:
2020
image: centos-7-rpm-builder
21+
platform: linux/amd64
2122
build:
2223
context: .
2324
dockerfile: Dockerfile
2425

2526
common: &common
2627
image: centos-7-rpm-builder
28+
platform: linux/amd64
2729
depends_on: [docker-setup]
2830
# https://bugs.swift.org/browse/SR-15343
2931
security_opt:

platforms/Linux/RPM/Centos/7/patches/hwasan_symbolize.patch

-10
This file was deleted.

0 commit comments

Comments
 (0)