|
@@ -18,52 +18,52 @@ were command line based. The other was there was/is no tool for |
|
|
extracting the info hash and building the magnet link. There may be |
|
|
extracting the info hash and building the magnet link. There may be |
|
|
tools now, but I couldn't find any when I started 3 years ago. |
|
|
tools now, but I couldn't find any when I started 3 years ago. |
|
|
|
|
|
|
|
|
The following steps are based upon the recent release of FreeBSD 11.2-R, |
|
|
|
|
|
|
|
|
The following steps are based upon the recent release of FreeBSD 11.2‑R, |
|
|
adjust as necessary. |
|
|
adjust as necessary. |
|
|
|
|
|
|
|
|
1. Fetch FreeBSD into a directory (I create a per release directory). There |
|
|
|
|
|
|
|
|
<ol> |
|
|
|
|
|
<li>Fetch FreeBSD into a directory (I create a per release directory). There |
|
|
are a few directories that you have mirror, I use wget for this. The |
|
|
are a few directories that you have mirror, I use wget for this. The |
|
|
mirroring feature for wget isn't great. After each command I have to |
|
|
mirroring feature for wget isn't great. After each command I have to |
|
|
remove the `CHECKSUM.SHA256`, `CHECKSUM.SHA512` and `index.html*` files. |
|
|
|
|
|
|
|
|
remove the <code>CHECKSUM.SHA256</code>, <code>CHECKSUM.SHA512</code> and <code>index.html*</code> files. |
|
|
<pre class="fullwidth"><code> |
|
|
<pre class="fullwidth"><code> |
|
|
$ wget -c -r -l 1 -nd --limit-rate=800k https://download.freebsd.org/ftp/releases/ISO-IMAGES/11.2/ |
|
|
$ wget -c -r -l 1 -nd --limit-rate=800k https://download.freebsd.org/ftp/releases/ISO-IMAGES/11.2/ |
|
|
$ wget -c -r -l 1 -nd --limit-rate=800k https://download.freebsd.org/ftp/releases/VM-IMAGES/11.2-RELEASE/aarch64/Latest/ |
|
|
$ wget -c -r -l 1 -nd --limit-rate=800k https://download.freebsd.org/ftp/releases/VM-IMAGES/11.2-RELEASE/aarch64/Latest/ |
|
|
$ wget -c -r -l 1 -nd --limit-rate=800k https://download.freebsd.org/ftp/releases/VM-IMAGES/11.2-RELEASE/amd64/Latest/ |
|
|
$ wget -c -r -l 1 -nd --limit-rate=800k https://download.freebsd.org/ftp/releases/VM-IMAGES/11.2-RELEASE/amd64/Latest/ |
|
|
$ wget -c -r -l 1 -nd --limit-rate=800k https://download.freebsd.org/ftp/releases/VM-IMAGES/11.2-RELEASE/i386/Latest/ |
|
|
$ wget -c -r -l 1 -nd --limit-rate=800k https://download.freebsd.org/ftp/releases/VM-IMAGES/11.2-RELEASE/i386/Latest/ |
|
|
</code></pre> |
|
|
</code></pre> |
|
|
2. Fetch the signature files: |
|
|
|
|
|
|
|
|
<li>Fetch the signature files: |
|
|
<pre class="fullwidth"><code> |
|
|
<pre class="fullwidth"><code> |
|
|
$ wget https://www.freebsd.org/releases/11.2R/CHECKSUM.SHA512-FreeBSD-11.2-RELEASE-{amd64,i386,powerpc,powerpc-powerpc64,sparc64,arm64-aarch64}.asc |
|
|
$ wget https://www.freebsd.org/releases/11.2R/CHECKSUM.SHA512-FreeBSD-11.2-RELEASE-{amd64,i386,powerpc,powerpc-powerpc64,sparc64,arm64-aarch64}.asc |
|
|
$ wget https://www.freebsd.org/releases/11.2R/CHECKSUM.SHA512-FreeBSD-11.2-RELEASE-{amd64,i386,arm64-aarch64}-vm.asc |
|
|
$ wget https://www.freebsd.org/releases/11.2R/CHECKSUM.SHA512-FreeBSD-11.2-RELEASE-{amd64,i386,arm64-aarch64}-vm.asc |
|
|
$ wget https://www.freebsd.org/releases/11.2R/CHECKSUM.SHA512-FreeBSD-11.2-RELEASE-arm-armv6-{BANANAPI,BEAGLEBONE,CUBIEBOARD,CUBIEBOARD2,CUBBOX-HUMMINGBOARD,GUMSTIX,PANDABOARD,RPI-B,RPI2,WANDBOARD}.asc |
|
|
$ wget https://www.freebsd.org/releases/11.2R/CHECKSUM.SHA512-FreeBSD-11.2-RELEASE-arm-armv6-{BANANAPI,BEAGLEBONE,CUBIEBOARD,CUBIEBOARD2,CUBBOX-HUMMINGBOARD,GUMSTIX,PANDABOARD,RPI-B,RPI2,WANDBOARD}.asc |
|
|
</code></pre> |
|
|
</code></pre> |
|
|
3. Verify the GPG key that signed the above files. This is usually Glen |
|
|
|
|
|
|
|
|
<li>Verify the GPG key that signed the above files. This is usually Glen |
|
|
Barber's key, but not always. I have met and verified his fingerprint |
|
|
Barber's key, but not always. I have met and verified his fingerprint |
|
|
in person, If you have verified someone's key who has signed Glen's |
|
|
in person, If you have verified someone's key who has signed Glen's |
|
|
key, that is another good way. |
|
|
key, that is another good way. |
|
|
4. Verify the checksum files: |
|
|
|
|
|
|
|
|
<li>Verify the checksum files: |
|
|
<pre class="fullwidth"><code> |
|
|
<pre class="fullwidth"><code> |
|
|
$ for i in *.asc; do gpg --verify $i; done |
|
|
$ for i in *.asc; do gpg --verify $i; done |
|
|
You should see a bunch of lines like: |
|
|
You should see a bunch of lines like: |
|
|
Warning: using insecure memory! |
|
|
Warning: using insecure memory! |
|
|
gpg: Signature made Fri Jun 22 09:33:50 2018 PDT |
|
|
gpg: Signature made Fri Jun 22 09:33:50 2018 PDT |
|
|
gpg: using RSA key 0x031458A5478FE293 |
|
|
gpg: using RSA key 0x031458A5478FE293 |
|
|
gpg: Good signature from "Glen Barber <gjb@FreeBSD.org>" [full] |
|
|
|
|
|
gpg: aka "Glen Barber <glen.j.barber@gmail.com>" [full] |
|
|
|
|
|
gpg: aka "Glen Barber <gjb@glenbarber.us>" [full] |
|
|
|
|
|
gpg: aka "Glen Barber <gjb@keybase.io>" [unknown] |
|
|
|
|
|
|
|
|
gpg: Good signature from "Glen Barber <gjb@FreeBSD.org>" [full] |
|
|
|
|
|
gpg: aka "Glen Barber <glen.j.barber@gmail.com>" [full] |
|
|
|
|
|
gpg: aka "Glen Barber <gjb@glenbarber.us>" [full] |
|
|
|
|
|
gpg: aka "Glen Barber <gjb@keybase.io>" [unknown] |
|
|
gpg: WARNING: not a detached signature; file 'CHECKSUM.SHA512-FreeBSD-11.2-RELEASE-amd64-vm' was NOT verified! |
|
|
gpg: WARNING: not a detached signature; file 'CHECKSUM.SHA512-FreeBSD-11.2-RELEASE-amd64-vm' was NOT verified! |
|
|
</code></pre> |
|
|
|
|
|
The last line can be ignored. The non-`.asc` files were d/l'd and will |
|
|
|
|
|
not be used. Make sure that all of the files report Good signature. |
|
|
|
|
|
5. In the past I have used BitTornado for other things, so I ended up |
|
|
|
|
|
|
|
|
</code></pre>The last line can be ignored. The non-<code>.asc</code> files were d/l'd and will |
|
|
|
|
|
not be used. Make sure that all of the files report <code>Good signature</code>. |
|
|
|
|
|
<li>In the past I have used BitTornado for other things, so I ended up |
|
|
using it as the basis to make the tool for creating trackerless torrent |
|
|
using it as the basis to make the tool for creating trackerless torrent |
|
|
files. The modifications were simple. It appears that the original |
|
|
files. The modifications were simple. It appears that the original |
|
|
BitTornado CVS tree is off-line (anyways, it was served insecurely), |
|
|
BitTornado CVS tree is off-line (anyways, it was served insecurely), |
|
|
but it looks like |
|
|
but it looks like |
|
|
[effigies/BitTornado](https://github.com/effigies/BitTornado) is |
|
|
|
|
|
|
|
|
<a href="https://github.com/effigies/BitTornado">effigies/BitTornado</a> is |
|
|
similar enough that it could be modified and used. I copied |
|
|
similar enough that it could be modified and used. I copied |
|
|
`btmakemetafile.py` to `btmaketrackerless.py` and applied the following |
|
|
|
|
|
|
|
|
<code>btmakemetafile.py</code> to <code>btmaketrackerless.py</code> and applied the following |
|
|
patch: |
|
|
patch: |
|
|
<pre class="fullwidth"><code> |
|
|
<pre class="fullwidth"><code> |
|
|
$ diff -u btmakemetafile.py btmaketrackerless.py |
|
|
$ diff -u btmakemetafile.py btmaketrackerless.py |
|
@@ -73,11 +73,11 @@ adjust as necessary. |
|
|
def prog(amount): |
|
|
def prog(amount): |
|
|
print '%.1f%% complete\r' % (amount * 100), |
|
|
print '%.1f%% complete\r' % (amount * 100), |
|
|
|
|
|
|
|
|
-if len(argv) < 3: |
|
|
|
|
|
+if len(argv) < 2: |
|
|
|
|
|
|
|
|
-if len(argv) < 3: |
|
|
|
|
|
+if len(argv) < 2: |
|
|
a,b = split(argv[0]) |
|
|
a,b = split(argv[0]) |
|
|
- print 'Usage: ' + b + ' <trackerurl> <file> [file...] [params...]' |
|
|
|
|
|
+ print 'Usage: ' + b + ' <file> [file...] [params...]' |
|
|
|
|
|
|
|
|
- print 'Usage: ' + b + ' <trackerurl> <file> [file...] [params...]' |
|
|
|
|
|
+ print 'Usage: ' + b + ' <file> [file...] [params...]' |
|
|
print |
|
|
print |
|
|
print formatDefinitions(defaults, 80) |
|
|
print formatDefinitions(defaults, 80) |
|
|
print_announcelist_details() |
|
|
print_announcelist_details() |
|
@@ -97,9 +97,9 @@ adjust as necessary. |
|
|
|
|
|
|
|
|
</code></pre> |
|
|
</code></pre> |
|
|
If you notice, the only thing that is done is to drop the first argument, |
|
|
If you notice, the only thing that is done is to drop the first argument, |
|
|
and instead of passing it into `make_meta_file`, a `None` is passed |
|
|
|
|
|
|
|
|
and instead of passing it into <code>make_meta_file</code>, a <code>None</code> is passed |
|
|
instead. This will simply not add trackers to the torrent file. |
|
|
instead. This will simply not add trackers to the torrent file. |
|
|
6. I then run the following script to verify the downloaded files, and |
|
|
|
|
|
|
|
|
<li>I then run the following script to verify the downloaded files, and |
|
|
generate the torrent files: |
|
|
generate the torrent files: |
|
|
<pre class="fullwidth"><code> |
|
|
<pre class="fullwidth"><code> |
|
|
$ cat cmp.sh |
|
|
$ cat cmp.sh |
|
@@ -112,7 +112,7 @@ adjust as necessary. |
|
|
# wget https://www.freebsd.org/releases/11.2R/CHECKSUM.SHA512-FreeBSD-11.2-RELEASE-{amd64,i386,arm64-aarch64}-vm.asc |
|
|
# wget https://www.freebsd.org/releases/11.2R/CHECKSUM.SHA512-FreeBSD-11.2-RELEASE-{amd64,i386,arm64-aarch64}-vm.asc |
|
|
# wget https://www.freebsd.org/releases/11.2R/CHECKSUM.SHA512-FreeBSD-11.2-RELEASE-arm-armv6-{BANANAPI,BEAGLEBONE,CUBIEBOARD,CUBIEBOARD2,CUBBOX-HUMMINGBOARD,GUMSTIX,PANDABOARD,RPI-B,RPI2,WANDBOARD}.asc |
|
|
# wget https://www.freebsd.org/releases/11.2R/CHECKSUM.SHA512-FreeBSD-11.2-RELEASE-arm-armv6-{BANANAPI,BEAGLEBONE,CUBIEBOARD,CUBIEBOARD2,CUBBOX-HUMMINGBOARD,GUMSTIX,PANDABOARD,RPI-B,RPI2,WANDBOARD}.asc |
|
|
|
|
|
|
|
|
grep -h '^SHA512' CHECK*.asc | sed -e 's/SHA512 (\(.*\)) = \(.*\)/\2 \1/' | sort -k 2 > sha512.from.asc |
|
|
|
|
|
|
|
|
grep -h '^SHA512' CHECK*.asc | sed -e 's/SHA512 (\(.*\)) = \(.*\)/\2 \1/' | sort -k 2 > sha512.from.asc |
|
|
|
|
|
|
|
|
while read hash fname; do |
|
|
while read hash fname; do |
|
|
if [ -e "$fname" ]; then |
|
|
if [ -e "$fname" ]; then |
|
@@ -132,9 +132,9 @@ adjust as necessary. |
|
|
echo missing "$fname" |
|
|
echo missing "$fname" |
|
|
exit 1 |
|
|
exit 1 |
|
|
fi |
|
|
fi |
|
|
done < sha512.from.asc |
|
|
|
|
|
|
|
|
done < sha512.from.asc |
|
|
</code></pre> |
|
|
</code></pre> |
|
|
7. Once all the torrents have been generated, I then make the magnet |
|
|
|
|
|
|
|
|
<li>Once all the torrents have been generated, I then make the magnet |
|
|
links: |
|
|
links: |
|
|
<pre class="fullwidth"><code> |
|
|
<pre class="fullwidth"><code> |
|
|
$ cat btmakemagnet.sh |
|
|
$ cat btmakemagnet.sh |
|
@@ -156,8 +156,12 @@ adjust as necessary. |
|
|
}' |
|
|
}' |
|
|
done |
|
|
done |
|
|
</code></pre> |
|
|
</code></pre> |
|
|
8. I then create the magnet links file, and update the |
|
|
|
|
|
[Torrents](https://wiki.freebsd.org/Torrents) wiki page. |
|
|
|
|
|
|
|
|
<li>I then create the magnet links file, and update the |
|
|
|
|
|
<a href="https://wiki.freebsd.org/Torrents">Torrents</a> wiki page. |
|
|
|
|
|
</ol> |
|
|
|
|
|
|
|
|
<s>Sorry about the code formatting. I don't know how to make it look better |
|
|
<s>Sorry about the code formatting. I don't know how to make it look better |
|
|
in blogger.</s> |
|
|
|
|
|
|
|
|
in blogger.</s><label for="sn-blogger" class="margin-toggle |
|
|
|
|
|
sidenote-number"></label><input type="checkbox" id="sn-blogger" |
|
|
|
|
|
class="margin-toggle"/><span class="sidenote" id="sn-blogger">The blog |
|
|
|
|
|
no longer uses blogger.</span> |