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 [46]http://torrent.fedoraproject.org you need to take the following steps to have it listed correctly:
-
login to torrent02.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 -avhHP rsync://download-ib01.fedoraproject.org/fedora-stage/<Version>_<Release>-<Label>/*/*/iso/ /srv/torrent/new/fedora/
Then cd into /srv/torrent/new/fedora/ to change the directory structure
cd /srv/torrent/new/fedora/
The 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
Now copy the checksum’s into the associated directories
for checksum in $(ls *CHECKSUM); do for file in $(grep "SHA256 (" $checksum |sed -e 's|SHA256 (||g' -e 's|-<Label>.*||g' ); 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
rm -rf *manifest *netinst* *CHECKSUM *i386 *x86_64
Run the maketorrent script from /srv/torrent/new/fedora/
../maketorrent *
Note
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 executable
cd ~
wget https://pagure.io/releng/raw/master/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
su -s /bin/bash torrent
tmux (or tmux attach if the session is already running)
control-q if rtorrent is already running.
cd /srv/torrent/btholding
rtorrent *.torrent
control-b d (disconnect from tmux)
Note
For final release, remove all the alpha and beta directories and torrent files corresponding to the release in /srv/torrent/btholding/ directory. |
Note
At EOL of a release, remove all the directories and torrent files corresponding to the release in /srv/torrent/btholding/ directory. |