{"id":13495200,"url":"https://github.com/futurejones/swift-arm64","last_synced_at":"2025-03-17T14:10:13.903Z","repository":{"id":62621930,"uuid":"132290719","full_name":"futurejones/swift-arm64","owner":"futurejones","description":"Swift for Arm64/aarch64 Servers and SBC's - Rock64, RaspberryPi3 and many more","archived":false,"fork":false,"pushed_at":"2024-07-02T22:51:32.000Z","size":5378,"stargazers_count":184,"open_issues_count":0,"forks_count":7,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-10-14T00:06:54.676Z","etag":null,"topics":["raspberry-pi","swift","swift-development"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/futurejones.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"futurejones","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2018-05-05T22:59:40.000Z","updated_at":"2024-07-02T22:51:35.000Z","dependencies_parsed_at":"2023-01-29T01:45:40.242Z","dependency_job_id":"c2720474-5332-4ab2-ac39-f31cc37e5fce","html_url":"https://github.com/futurejones/swift-arm64","commit_stats":null,"previous_names":[],"tags_count":77,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futurejones%2Fswift-arm64","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futurejones%2Fswift-arm64/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futurejones%2Fswift-arm64/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futurejones%2Fswift-arm64/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/futurejones","download_url":"https://codeload.github.com/futurejones/swift-arm64/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244047631,"owners_count":20389206,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["raspberry-pi","swift","swift-development"],"created_at":"2024-07-31T19:01:32.376Z","updated_at":"2025-03-17T14:10:13.862Z","avatar_url":"https://github.com/futurejones.png","language":"Dockerfile","funding_links":["https://ko-fi.com/futurejones"],"categories":["Dockerfile"],"sub_categories":[],"readme":"### *Please Note: This project is no longer active.*\n\n# Swift for Arm64/AArch64 Servers and SBC's\n## Latest build info from our CI server\nThanks to the great support from the [Works on Arm](https://www.worksonarm.com/) project we have received an awesome update to our CI Server!  \nThe Cavium ThunderX from [Packet Bare Metal Servers](https://www.packet.com/cloud/servers/c1-large-arm/)  who are now [Equinox Metal](https://metal.equinix.com/) has been upgraded to the latest [Ampere Altra](https://amperecomputing.com/altra/) server.  \n* 80 cpu cores @ 3.0GHz\n* 256GB sdram\n* 960GB NVME SSD  \n\nWe are seeing a massive increase in overall performance and a huge reduction in build times.\n\n## [The Swift Arm Community CI Server](https://ci.swiftlang.xyz)\n\n### Debian 11 Bullseye  \nmain branch \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; [![Build Status](https://ci.swiftlang.xyz/job/swift-main-debian-bullseye/badge/icon)](https://ci.swiftlang.xyz/job/swift-main-debian-bullseye/)   \nrelease/6.0 branch \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;[![Build Status](https://ci.swiftlang.xyz/job/swift-6.0-debian-bullseye/badge/icon)](https://ci.swiftlang.xyz/job/swift-6.0-debian-bullseye/)\n\n### Debian 12 Bookworm \nmain branch \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; [![Build Status](https://ci.swiftlang.xyz/job/swift-main-debian-bookworm/badge/icon)](https://ci.swiftlang.xyz/job/swift-main-debian-bookworm/)   \nrelease/6.0 branch \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;[![Build Status](https://ci.swiftlang.xyz/job/swift-6.0-debian-bookworm/badge/icon)](https://ci.swiftlang.xyz/job/swift-6.0-debian-bookworm/)\n\n### Ubuntu 24.04 Noble  \nmain branch \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; [![Build Status](https://ci.swiftlang.xyz/job/swift-main-ubuntu-noble/badge/icon)](https://ci.swiftlang.xyz/job/swift-main-ubuntu-noble/)  \nrelease/6.0 branch \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;[![Build Status](https://ci.swiftlang.xyz/job/swift-6.0-ubuntu-noble/badge/icon)](https://ci.swiftlang.xyz/job/swift-6.0-ubuntu-noble/)\n\n\n# Swift-Arm64\nSwift for Arm64/aarch64 Servers and SBC's - Rock64, RaspberryPi3 and many more\n\n## [The Swift Community Apt Repository](https://swiftlang.xyz)\nInstall packages are now available for arm64/aarch64 compatible Servers and SBC's for Ubuntu and Debian based OS's in the\nnew [Swift Community Apt Repository](https://swiftlang.xyz)\n\nAdd repo\n\n```bash\ncurl -s https://archive.swiftlang.xyz/install.sh | sudo bash\n``` \n\nInstall Swift\n\n```bash\nsudo apt-get install swiftlang\n```  \nFor more information about the repository please see the [User Guide](https://www.swiftlang.xyz/user-guide)\n\n### Tested Servers\n*Ampere Altra Mt Snow* - [Equinox Metal](https://metal.equinix.com/)  \n*Cavium ThunderX* - [Packet Bare Metal Servers](https://www.packet.com/cloud/servers/c1-large-arm/)  \n*Amazon EC2 Arm64 instances* - [AWS](https://aws.amazon.com/ec2/instance-types/a1/)\n### Tested Boards and OS's\n\n*Rock64 / RockPro64* - Debian/Stretch Ubuntu/Xenial - [http://pine64.org](http://pine64.org)  \n*RaspberryPi 3 / 4 models* - Ubuntu 18.04 / 20.04 / 20.10 64bit  \n*ODROID-C2* - Ubuntu 16.04.4 LTS xenial\n\n### RaspberyPi 3 / 4 64bit OS\n\nAn official 64 bit Ubuntu install image is now available for Raspberry Pi 2/3/4.\n\n### Ubuntu Focal available for Raspberry Pi  \nDownload images here - https://ubuntu.com/download/raspberry-pi  \n\n\n## Building Swift With Docker\nYou can now build Swift for multiple OS releases all from the same build server using Docker containers. - [Build with Docker](https://github.com/futurejones/swift-arm64/blob/master/swift-ci-docker/README.md)\n\n## Building Swift\n\n*Swift development on AArch64 systems is currently possible on Ubuntu 16.04 and 18.04.*  \n*The following build instructions are for Ubuntu 16.04 and 18.04.*\n\n### Setting up the Swift development environment\n* If possible start with a new clean install of Ubuntu 16.04 / 18.04 and then update and upgrade your system:  \n```$ sudo apt-get update```  \n```$ sudo apt-get upgrade```\n* Install development dependencies:  \n```$ sudo apt-get install git cmake ninja-build clang python uuid-dev libicu-dev icu-devtools libbsd-dev libedit-dev libxml2-dev libsqlite3-dev swig libpython-dev libncurses5-dev pkg-config libblocksruntime-dev libcurl4-openssl-dev systemtap-sdt-dev tzdata rsync python-six```  \n\n### CMake minimum version.\n* Swift build now requires cmake version 3.15.1 or greater.  \nThe version you have installed will depend your OS version.  \nTo check cmake version run -  \n```cmake --version```  \nIf your version is less than 3.15.2 you have 2 choices  \n1. Do nothing. Swift build will automatically download the cmake source code and build cmake version 3.15.1. before starting the swift build. NOTE* This will take considerable time depending on your build machine.  \n2. Download and install cmake 3.15.2 from swift-arm/build_tools repo  \n```$ curl -s https://packagecloud.io/install/repositories/swift-arm/build_tools/script.deb.sh | sudo bash```  \n```$ sudo apt-get install cmake```  \n\n*NOTE: Minimum CMake version for Swift 5.3: is now 3.16.5*\n\n### Getting Sources for Swift and Related Projects\n* First create a directory for all of the Swift sources:  \n```mkdir swift-source```  \n```cd swift-source```\n\n* Next clone the Swift repository:  \n```$ git clone https://github.com/apple/swift.git```\n\n* Next use the \"update-checkout\" utility to clone the related repositories. When using this utility we can use either a `--tag` to specify a release or `--scheme` to specify a branch. If no tag or scheme is used then the master will be used as default.  \nThe following command will clone and checkout all necessary repositories to build a 4.2.1 release.  \n```$ ./swift/utils/update-checkout --clone --tag swift-4.2.1-RELEASE```  \nThe following command will clone and checkout all necessary repositories to build the swift-5.0-branch.  \n```$ ./swift/utils/update-checkout --clone --scheme swift-5.0-branch```\n\n### Applying Patches\n* Some branches require additional patches for successful builds.  \n  * swift-4.2-branch:  \n  ```$ cd swift```  \n  ```$ wget https://github.com/futurejones/swift-arm64/raw/master/swift-4.2-patches/swift-4.2-aarch64-VarArgs.patch```  \n  ```$ git apply swift-4.2-aarch64-VarArgs.patch```  \n  ```$ wget https://github.com/futurejones/swift-arm64/raw/master/swift-4.2-patches/swift-4.2-pm-fix.patch```  \n  ```$ git apply swift-4.2-pm-fix.patch```  \n  ```$ cd -```  \n  NOTE: From v4.2.3 swift-4.2-branch no longer needs patching.\n  \n  * swift-5.0-branch:  \n  From 2019-01-30 changes have been merged with the `swift-5.0-branch` so patches are no longer required.\n\n  * swift-5.2-branch:  \n  Currently requires a patch for the swift package manager.  \n  ~~```$ cd swift```~~  \n  ~~```$ wget https://github.com/futurejones/swift-arm64/raw/master/swiftpm/triple-gnu.patch```~~  \n  ~~```$ git apply triple-gnu.patch```~~  \n  fixed  \n\n  * release/5.3:  \n  No patches required.  \n  \n  * master:  \n  Currently requires a patch for the swift package manager.  \n  ~~```$ cd swift```~~  \n  ~~```$ wget https://github.com/futurejones/swift-arm64/raw/master/swiftpm/triple-gnu.patch```~~  \n  ~~```$ git apply triple-gnu.patch```~~  \n  fixed\n  \n\n### Building with Ninja\n* The ```build-script``` is a high-level build automation script that supports basic options such as building a Swift-compatible LLDB, building the Swift Package Manager, building for various platforms, running tests after builds, and more.  \nWe will be using ```buildbot_linux``` presets to specify OS, install directories and package names.  \n*NOTE: Replace [USER] with your user name. You should also rename \"swift-4.2.1-aarch64-RELEASE-Ubuntu-16.04.tar.gz\" tarball to match your build if needed*  \n```$ ./swift/utils/build-script --preset=buildbot_linux,no_test install_destdir=/home/[USER]/swift-source/install installable_package=/home/[USER]/swift-source/install/swift-4.2.1-aarch64-RELEASE-Ubuntu-16.04.tar.gz -n```  \nUsing the \"-n\" tag on the end of the command enables a \"dry run\" to check the commands are correct before running the actual build.  \nIf everything is correct then you can remove \"-n\" and proceed with the build.  \nDepending on your build system the build can take from 1.5hrs to 15hrs or more.  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuturejones%2Fswift-arm64","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffuturejones%2Fswift-arm64","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuturejones%2Fswift-arm64/lists"}