Torrent Releases Infrastructure SOP
http://torrent.fedoraproject.org/ is our master torrent server for Fedora distribution. It runs out of ibiblio.
Contact Information
- Owner
-
Fedora Infrastructure Team
- Contact
-
#fedora-admin, sysadmin-torrent group
- Location
-
ibiblio
- Servers
-
torrent.fedoraproject.org
- Purpose
-
Provides the torrent master server for Fedora distribution
Torrent Release
When you want to add a new torrent to the tracker at http://torrent.fedoraproject.org you need to take the following steps to have it listed correctly:
-
login to torrent01.fedoraproject.org. If you are unable to do so please contact the fedora infrastructure group about access. This procedure requires membership in the torrentadmin group.
-
Change the group ID to torrentadmin
newgrp torrentadmin
-
Remove everything from the working directory
/srv/torrent/new/fedora/
rm -r /srv/torrent/new/fedora/*
-
rsync all the iso’s from ibiblio
rsync -avhHP4 rsync://download-ib01.fedoraproject.org/fedora-buffet0/fedora/linux/releases/test/<Version>_<Release>/*/*/iso/ /srv/torrent/new/fedora/
-
cd into
/srv/torrent/new/fedora/
to change the directory structurecd /srv/torrent/new/fedora/
-
Directories should be created by removing Label in the iso’s name
for iso in $(ls *iso); do dest=$(echo $iso|sed -e 's|-<Label>.iso||g' ); mkdir $dest; mv $iso $dest; done
-
Verify that the checksums files are all signed.
cat *CHECKSUM*
-
Copy the checksum’s into the associated directories
for checksum in $(ls *CHECKSUM); do for file in $(cat $checksum | grep "SHA256 (" | awk '{print $2}' | sed -e 's/(\|)//g' | awk -F'-<Label>' '{print $1}'); do cp $checksum $file ; done; done
-
Verify if all the checksums are copied into the right locations
ls */
-
Remove the manifest files and checksums for netinst (since we dont mirror netinst images) and other files (This includes currently the workstation osbuild iso)
rm -rf *manifest *netinst* *CHECKSUM
-
Run the maketorrent script from
/srv/torrent/new/fedora/
../maketorrent *
Next steps should be run 12 hours before the release time which is generally 14:00 UTC on Tuesday.
-
Grab
fedora-torrent-init.py
from releng scripts and change it to executablecd ~ wget https://pagure.io/releng/raw/main/f/scripts/fedora-torrent-ini.py chmod 755 ~/fedora-torrent-ini.py
-
Run the following command from
/srv/torrent/new/fedora/
~/fedora-torrent-ini.py <Version>_<Release> <Current_Date> > <Version>_<Release>.ini
-
Copy all the torrents to
/srv/web/torrents/
cp *torrent /srv/web/torrents/
-
Copy everything in
/srv/torrent/new/fedora/
to/srv/torrent/btholding/
cp -rl * /srv/torrent/btholding/
-
Copy the .ini file created in step 12 to
/srv/torrent/torrent-generator/
sudo cp <Version>_<Release>.ini /srv/torrent/torrent-generator/
-
Restart rtorrent and opentracker services
systemctl restart opentracker-ipv4 opentracker-ipv6 sudo -i tmux (or tmux attach if the session is already running, generally named att) control-q if rtorrent is already running. cd /srv/torrent/btholding rtorrent *.torrent control-b d (disconnect from tmux)
Release is empty for Final release |
For final release, remove all the alpha and beta directories and torrent
files corresponding to the release in |
At EOL of a release, remove all the directories and torrent files
corresponding to the release in |
If |
Want to help? Learn how to contribute to Fedora Docs ›