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_ini.pyfrom releng scripts underscripts_new/release_process_torrents/and change it to executablecd ~ wget https://pagure.io/releng/raw/main/f/scripts_new/release-process/torrents/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/ 
- 
Run the torrent-generatorscript to convert the.inifile to atorrents.jsonfile/srv/torrent/torrent-generator/torrent-generator 
- 
If you are updating the torrents outside of a normal release cycle (i.e., not 12 hours before a release), manually trigger a rebuild of the website oc start-build -n websites bc/websites-build 
- 
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 ›