New Swift Package Repository for Ubuntu/Debian Linux Distributions

Awesome @SteveM. Getting it upstream would be the best, of course. In the meantime though, perhaps @futurejones could publish his infrastructure so that someone else could provide the server.

3 Likes

any updates on repo viability ?

@gabin8 sorry I have no good news.
The main issue is the total lack of support for the repository from Swift.org and Apple.
Without official recognition and support from Swift.org / Apple it is not possible to continue.
Swift.org has even refused to put a simple link on the website informing people that the repository exists.

In the month since I announced the repository was going offline not a single person has come forward asking what was needed or how they could help support the repository.

Several people have suggested that I should hand over all my work (for free) so that somebody else can continue to provide the service (again for free).
I find these suggestions very disappointing as they imply that the work I have been doing for years has no value and show a lack of knowledge of what infrastructure is needed to set up and maintain the repository.

So at this point in time the Swift Community Apt Repository is closed until further notice.

Support for Swift on Arm, Raspberry Pi etc.

I will be continuing to support the Swift on Arm community as I have done for the last 8 years.
You can find the latest swift for arm releases on Github and .deb install packages at the Swift-Arm Package Repository

7 Likes

I suggest looking into this for more :slightly_smiling_face:

1 Like

i can sympathize, last month i suggested that a link to swiftinit.org be added to the 5.9 blog post PR, which received no response.

it appears there are few substitutes to actually having a seat on the website working group if you want to promote your own community resource.

Since you left such a short note here last month ("The Swift Community Apt Repository will be offline until further notice while I reassess the viability of continuing."), people would have to guess at the reason you took it offline, and most may just assume you got busy with other work.

Clearly it has value or nobody would ask, but maybe those who asked just wanted to keep not paying.

Have you thought about bringing it back as a subscription service? That way you can cover your costs, and I've always found that to work much better than donations.

1 Like

FWIW, that‘s not true. I DID ask what happened and since I guessed it might have been the server costs or a lack of time (after all, you didn‘t provide any reasoning in your notice), I asked whether you wanted to move with your work to another server.

Clearly there is a demand for this repo.
But obviously not at the expense of @futurejones (be it through time and/or money).

So, how do we move forward from here?

2 Likes

This is true. If you had asked for donations I think you would have gotten more of the responses you were looking for. Instead I think people (definitely myself) were just waiting for a followup post as to the assessed viability.
To be honest I have absolutely no idea what it costs to run the server or the time commitment it takes to build the packages, and I wasn't about to derail this thread by asking those questions that would lead it down another path before the results were in as to what you had decided.
I would offer support, but I don't know what's needed.

2 Likes

I run a nonprofit that teaches software development to low income high school students of color. Upon graduating high school, we help them secure jobs. We rely on these packages for our students. If open source is not in your sights, please reach out to me with what the costs are for the server. There may be a way we can help. We get lots of our required infrastructure hosted for free. Thank you. I appreciate all your work.

5 Likes

not everybody is comfortable with (or believes in) asking for donations.

regarding your specific question, it is likely that bandwidth is the limiting factor — on AWS at least, you get 1 TB of data transfer for free each month, and the cost rises sharply after that. for the vast majority of web services, these costs are negligible, but a package repository is special because it needs to serve a lot of large files with virtually no opportunity to display ads alongside the content. you can serve many millions of HTML pages on a 1 TB budget, but you can only serve a few hundred toolchain downloads with that budget.

moving to a subscription-based model for this type of service is also challenging because all of the tooling that interacts with the service needs to be reworked to enforce DRM, and a lot of tooling was not designed with DRM considerations in mind.

Could Cloudflare’s free static content caching save a lot of transfers from the server?

the wholesale price of bandwidth is about 8¢ per GB, which means a single toolchain download will cost about 8¢. if you want to, conservatively, serve 100 downloads per day (manual downloads, CI actions, random bots and scrapers, malicious actors), you’re looking at a cloud bill in the range of $200-300 a month.

it’s reasonable to assume one might be able to abuse the free tier for a while, perhaps forever, but my hunch is that anyone uploading files of that size would quickly get flagged as a problem user and throttled/kicked off the platform.

Hi everybody,

I feel I need to disclose some personal information about myself so that people may understand better and not be offended by any of my forum posts or replies.
I am neurodiverse and while this may be looked on as a disability I try to see it more as a gift.
That said I find using social media particularly stressful and it always feels like I am negotiating a minefield.
Some people may find what I say as too direct or confrontational. Please understand that my mind is wired differently and seeing the subtle differences between what is written and its implied meaning can sometimes be very difficult.

Thank you for your understanding.

13 Likes

I feel for you! How can people support?

1 Like

Hello,

I'm trying to recreate Swift 5.7.1 debian package using your package here : pkg-llvm / swiftlang · GitLab

But I have some issues. It seems script are for Swift 5.6.3.

Here is what I do :

cd swiftlang-main
./debian/fetch_sources_and_prep_build.sh
dpkg-source -b -i swiftlang
mk-build-deps --install --root-cmd sudo --remove
dpkg-buildpackage -b -uc -us

but I get the following error :
make[1]: swift/utils/build-script: No such file or directory

swift/utils only contains cmake directory. Did I make a mistake ?

Thanks for your help,

David

Hi @David_Screve the link you have posted is not mine and has nothing to do with the swiftlang.xyz repository.
You need to talk to @SteveM.
Is there a particular reason you want to rebuild the entire swift toolchain just to make a debian package? It is fairly straight forward to build a deb package directly from the swift release .tar.gz files and takes a fraction of the time.

No, there's no particular reason...I'm not an expert with debian package creation et is just looking how to rebuild the debian packages you built (ARM and Intel) because I was using your repo.
May you could tell me how to build this kind of package ?

Regards,

David

I use a packaging tool called FPM to build the packages directly from the official Swift releases.

First you need to download the Swift toolchain (.tar.gz) from Swift.org - Download Swift and then run the fpm command with the correct parameters with the source as the .tar.gz file. and the output will be your debian package.

This is an oversimplification but posting a detailed tutorial here would be too long for a forum post. FPM is well documented and there are plenty of online examples that should help you.

Note: As Swift does not support Debian officially you will need to build the Debian swift toolchain first or you can download one of mine from swift-arm64/releases.

If you just want the debian packages you can find all the releases that were on swiftlang.xyz on my other Swift package repository here - packagecloud.io/swift-arm

Could you post just your FPM configuration or command line ?

1 Like