SUMMARY Sometimes downloading the latest KDE Neon release image (ISO) can be slow as well as unreliable. Download speeds can range in 200KB/s range and sometimes after waiting for 30 minutes the download simply fails, even when the client-side has a network connection that can easily handle 15MB/s. STEPS TO REPRODUCE 1. Go to neon.kde.org 2. Download an ISO image OBSERVED RESULT Download is slow and sometimes fails. Since most users download via web browsers the failed downloads often cannot be resumed without additional workarounds. EXPECTED RESULT A 1.4GB download shouldn't take that long and shouldn't be a bottleneck to setting up KDE Neon for the first time. ADDITIONAL INFORMATION The current proposed solution on neon.kde.org is to use Metalink files as one is generated for every file that is mirrored. However, Metalink isn't well adopted so most users don't know how to use the files and the software availability for some platforms may be scarce. The metalink files themselves do contain enough information in them to generate .torrent files that don't require any additional infrastructure. This means users can use their BitTorrent clients to download KDE Neon and the files will get pulled from the mirror servers via HTTP while also allowing any peers to seed to each other potentially reducing the bandwidth footprint on the mirrors. I created a Python tool that converts .meta4 files into .torrent files with web seeds that shows how this can be done. An example of this is also hosted at https://metalink.xyz to show it works. Please let me know what roadblocks exist in getting this functionality on neon.kde.org for downloads.
metalink-to-torrent source code https://github.com/krisives/metalink-to-torrent/blob/master/generate-torrent.py
Stellar work! This looks like a really smart solution. Before we can do anything you'll need to make your code free software though. We have a wiki page going into great detail on the matter [1], what you want to do is a pick a license an stick a license header into your source file. https://community.kde.org/Policies/Licensing_Policy
Thanks for reminding me. I have released it under the MIT license. Please let me know if there is anything else I can do to help.
Perfect, thanks. I've opened a task to implement this https://phabricator.kde.org/T11388