From 5df91b3ef0c60c7711f3c719cb12ea028b012c0c Mon Sep 17 00:00:00 2001 From: Mishal Shah Date: Mon, 11 Oct 2021 17:30:13 -0700 Subject: [PATCH 1/5] Update the README with Linux package / installer info (RPM/DEB) --- README.md | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/README.md b/README.md index 1f50cce8..8efb7ed0 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,71 @@ swift-installer-scripts └ ... ~~~ +## Linux Packages (RPM/Deb) + +Currently Swift on Linux is distributed via tarball and Docker, and +we would like to start supporting RPM and Debs officially on swift.org. +The goal is to provide a seamless install process for Swift on Linux by +utilizing the platform’s native package manager (RPM/Deb). + + +* Step 1. Develop native packages / installers for the distributions +* Step 2. Offer the native packages / installers through swift.org + * Support all officially supported Linux platforms + * Code signed by swift.org certificate + * Repository hosted on swift.org +* Step 3. Offer the native packages / installer through official repositories +for the various platforms + * Work with official repositories to accept package specs + * Deprecate swift.org packages / installer repository +* Step 4. Deprecate swift.org Linux tarballs + +### Package Info +* Package name: swiftlang +* License: Apache 2.0 +* Maintainer: swift-infrastructure@forums.swift.org +* URL: https://swift.org +* Description: +``` +Swift is a general-purpose programming language built using +a modern approach to safety, performance, and software design +patterns. + +The goal of the Swift project is to create the best available +language for uses ranging from systems programming, to mobile +and desktop apps, scaling up to cloud services. Most +importantly, Swift is designed to make writing and maintaining +correct programs easier for the developer. +``` + +## Tasks + +### RPM Package Manager (RPM)* + +- [ ] SR-### Create spec file +- [ ] SR-### Setup CI job to build the rpm package +- [ ] SR-### Code sign rpm package with swift.org certificate +- [ ] SR-### Host the rpm package on swift.org +- [ ] SR-### Host the rpm repository on swift.org +- [ ] SR-### Verify the rpm package and repository +- [ ] SR-### Update swift.org download page +- [ ] SR-### Work with official repositories to accept package specs + +*For each platform, we will start with CentOS 8. + +### Debian Package (Deb)* + +- [ ] SR-### Create Debs spec file +- [ ] SR-### Setup CI to build the deb package +- [ ] SR-### Code sign package with swift.org certificate +- [ ] SR-### Host the deb package on swift.org +- [ ] SR-### Host the deb repository on swift.org +- [ ] SR-### Verify the deb package and repository +- [ ] SR-### Update swift.org download page +- [ ] SR-### Work with official repositories to accept package specs + +*For each platform, we will start with Ubuntu 20.04 + ## Contributing Before contributing, please read [CONTRIBUTING.md](CONTRIBUTING.md). From 52ef4abc2a9c5f9e886623515b5ab72c538c5f81 Mon Sep 17 00:00:00 2001 From: Mishal Shah Date: Mon, 11 Oct 2021 19:42:07 -0700 Subject: [PATCH 2/5] Update the Task list to include feedback --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8efb7ed0..aa11f2b7 100644 --- a/README.md +++ b/README.md @@ -66,26 +66,26 @@ correct programs easier for the developer. ### RPM Package Manager (RPM)* -- [ ] SR-### Create spec file +- [ ] SR-### Create RPM spec file - [ ] SR-### Setup CI job to build the rpm package - [ ] SR-### Code sign rpm package with swift.org certificate - [ ] SR-### Host the rpm package on swift.org - [ ] SR-### Host the rpm repository on swift.org - [ ] SR-### Verify the rpm package and repository -- [ ] SR-### Update swift.org download page +- [ ] SR-### Update swift.org download / install page - [ ] SR-### Work with official repositories to accept package specs *For each platform, we will start with CentOS 8. ### Debian Package (Deb)* -- [ ] SR-### Create Debs spec file +- [ ] SR-### Create Debs control file - [ ] SR-### Setup CI to build the deb package - [ ] SR-### Code sign package with swift.org certificate - [ ] SR-### Host the deb package on swift.org - [ ] SR-### Host the deb repository on swift.org - [ ] SR-### Verify the deb package and repository -- [ ] SR-### Update swift.org download page +- [ ] SR-### Update swift.org download / install page - [ ] SR-### Work with official repositories to accept package specs *For each platform, we will start with Ubuntu 20.04 From 68db9c2c718a656b386c3a344d5156c921b585fd Mon Sep 17 00:00:00 2001 From: Mishal Shah Date: Thu, 14 Oct 2021 09:00:22 -0700 Subject: [PATCH 3/5] Update task list with bugs.swift.org issues --- README.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index aa11f2b7..4cab0ae5 100644 --- a/README.md +++ b/README.md @@ -66,27 +66,27 @@ correct programs easier for the developer. ### RPM Package Manager (RPM)* -- [ ] SR-### Create RPM spec file -- [ ] SR-### Setup CI job to build the rpm package -- [ ] SR-### Code sign rpm package with swift.org certificate -- [ ] SR-### Host the rpm package on swift.org -- [ ] SR-### Host the rpm repository on swift.org -- [ ] SR-### Verify the rpm package and repository -- [ ] SR-### Update swift.org download / install page -- [ ] SR-### Work with official repositories to accept package specs +- [ ] [SR-15325](https://bugs.swift.org/browse/SR-15325) Create RPM spec file +- [ ] [SR-15326](https://bugs.swift.org/browse/SR-15326) Setup CI job to build the rpm package +- [ ] [SR-15327](https://bugs.swift.org/browse/SR-15327) Code sign rpm package with swift.org certificate +- [ ] [SR-15328](https://bugs.swift.org/browse/SR-15328) Host the rpm package on swift.org +- [ ] [SR-15329](https://bugs.swift.org/browse/SR-15329) Host the rpm repository on swift.org +- [ ] [SR-15330](https://bugs.swift.org/browse/SR-15330) Verify the rpm package and repository +- [ ] [SR-15331](https://bugs.swift.org/browse/SR-15331) Update swift.org download / install page +- [ ] [SR-15332](https://bugs.swift.org/browse/SR-15332) Work with official repositories to accept package specs *For each platform, we will start with CentOS 8. ### Debian Package (Deb)* -- [ ] SR-### Create Debs control file -- [ ] SR-### Setup CI to build the deb package -- [ ] SR-### Code sign package with swift.org certificate -- [ ] SR-### Host the deb package on swift.org -- [ ] SR-### Host the deb repository on swift.org -- [ ] SR-### Verify the deb package and repository -- [ ] SR-### Update swift.org download / install page -- [ ] SR-### Work with official repositories to accept package specs +- [ ] [SR-15334](https://bugs.swift.org/browse/SR-15334) Create Debs control file +- [ ] [SR-15335](https://bugs.swift.org/browse/SR-15335) Setup CI to build the deb package +- [ ] [SR-15336](https://bugs.swift.org/browse/SR-15336) Code sign package with swift.org certificate +- [ ] [SR-15337](https://bugs.swift.org/browse/SR-15337) Host the deb package on swift.org +- [ ] [SR-15338](https://bugs.swift.org/browse/SR-15338) Host the deb repository on swift.org +- [ ] [SR-15339](https://bugs.swift.org/browse/SR-15339) Verify the deb package and repository +- [ ] [SR-15340](https://bugs.swift.org/browse/SR-15340) Update swift.org download / install page +- [ ] [SR-15341](https://bugs.swift.org/browse/SR-15341) Work with official repositories to accept package control files *For each platform, we will start with Ubuntu 20.04 From 9c7ad47b226ad95866dfdc7d14f4826478c42174 Mon Sep 17 00:00:00 2001 From: Mishal Shah Date: Mon, 18 Oct 2021 16:20:19 -0700 Subject: [PATCH 4/5] Adding open questions --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index 4cab0ae5..d48db39f 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,20 @@ correct programs easier for the developer. *For each platform, we will start with Ubuntu 20.04 +## Open Questions + +* Where should swiftlang be installed on the system? + * Option 1: Diverge the install location between platform to best fit the platform requirements. + * symlink the toolchain into /usr/ to avoid conflicting with llvm.org binaries. + * Option 2: Install in /usr and rename llvm-project binaries (example: swift-lldb/lldb-swift ...) + * [GitHub discussion](https://github.com/apple/swift-installer-scripts/pull/37#discussion_r726707320) +* Should we support multiple swiftlang versions on the system? +* Multiple packages: + * swiftlang + * swiftlang-runtime + + + ## Contributing Before contributing, please read [CONTRIBUTING.md](CONTRIBUTING.md). From 314e83ce000d0092fab342cc232b483dad56abd9 Mon Sep 17 00:00:00 2001 From: Mishal Shah Date: Wed, 20 Oct 2021 01:05:20 -0700 Subject: [PATCH 5/5] Add RPM naming convention info to the README --- README.md | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d48db39f..2b2435ab 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,27 @@ importantly, Swift is designed to make writing and maintaining correct programs easier for the developer. ``` +### RPM Naming Convention: + +Package naming convention: `swiftlang--...rpm` +Pakcage structure: `/repo//releases///` +Repository configuration: `/repo//releases//swiftlang.repo` + + +#### Example + +**Package structure:** +``` +/repo/centos/releases/8/x86_64/swiftlang-5.5.0-1.el8.x86_64.rpm +/repo/centos/releases/8/aarch64/swiftlang-5.5.0-1.el8.aarch64.rpm +``` + +**Package URL:** +https://download.swift.org/repo/centos/releases/8/aarch64/swiftlang-5.5.0-1.el8.aarch64.rpm + +**Repository configuration file URL:** +https://download.swift.org/repo/centos/releases/8/swiftlang.repo + ## Tasks ### RPM Package Manager (RPM)* @@ -96,13 +117,11 @@ correct programs easier for the developer. * Option 1: Diverge the install location between platform to best fit the platform requirements. * symlink the toolchain into /usr/ to avoid conflicting with llvm.org binaries. * Option 2: Install in /usr and rename llvm-project binaries (example: swift-lldb/lldb-swift ...) - * [GitHub discussion](https://github.com/apple/swift-installer-scripts/pull/37#discussion_r726707320) + * [GitHub discussion](https://github.com/apple/swift-installer-scripts/pull/37#discussion_r726707320) * Should we support multiple swiftlang versions on the system? * Multiple packages: * swiftlang - * swiftlang-runtime - - + * swiftlang-runtime ## Contributing