aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rwxr-xr-xapt-panopticon-report-email-web.lua16
-rwxr-xr-xapt-panopticon.lua1
-rw-r--r--explanations.html60
3 files changed, 73 insertions, 4 deletions
diff --git a/apt-panopticon-report-email-web.lua b/apt-panopticon-report-email-web.lua
index 62cb8a5..3703972 100755
--- a/apt-panopticon-report-email-web.lua
+++ b/apt-panopticon-report-email-web.lua
@@ -264,6 +264,11 @@ if nil == email then C("opening mirrors file - " .. e) else
264 email:close() 264 email:close()
265end 265end
266 266
267local lnk = function(name, link)
268 if nil == link then link = name end
269 return name .."<a href='explanations.html#" .. link .. "'>*"
270end
271
267 272
268local colours = 273local colours =
269{ 274{
@@ -365,8 +370,9 @@ if nil == web then C("opening mirrors file - " .. e) else
365 "<p>The time in the Updated column is how often the mirror updates itself.</p>" .. 370 "<p>The time in the Updated column is how often the mirror updates itself.</p>" ..
366 "<p>Mirrors with a <font style='background-color:dimgrey'>grey background</font> are not active (though may be usable as part of the DNS-RR).</p>\n" .. 371 "<p>Mirrors with a <font style='background-color:dimgrey'>grey background</font> are not active (though may be usable as part of the DNS-RR).</p>\n" ..
367 "<p>[<font color='grey'><b>skip</b></font>] means that the test hasn't been written yet.</p>\n" .. 372 "<p>[<font color='grey'><b>skip</b></font>] means that the test hasn't been written yet.</p>\n" ..
368 "<table>\n<tr><th></th><th>FTP</th><th>HTTP</th><th>HTTPS</th><th>RSYNC</th><th>DNS round robin</th>" .. 373 "<table>\n<tr><th></th><th>" .. lnk('FTP') .. "</a></th><th>" .. lnk('HTTP') .. "</th><th>" .. lnk('HTTPS') .. "</th><th>" .. lnk('RSYNC') .. "</th>" ..
369 "<th>Protocol</th><th>URL sanity</th><th>Integrity</th><th>Updated</th><th colspan='2'>Speed range</th></tr>\n" 374 "<th>" .. lnk('DNS round robin', 'DNS-RR') .. "</th><th>" .. lnk('Protocol') .. "</th><th>" .. lnk('URL sanity', 'URL-Sanity') .. "</th><th>" .. lnk('Integrity') .. "</th>" ..
375 "<th>" .. lnk('Updated') .. "</th><th colspan='2'>" .. lnk('Speed range', 'Speed') .. "</th></tr>\n"
370 ) 376 )
371 for k, v in APT.orderedPairs(APT.mirrors) do 377 for k, v in APT.orderedPairs(APT.mirrors) do
372 local results = APT.collateAll(APT.mirrors, 'results', k) 378 local results = APT.collateAll(APT.mirrors, 'results', k)
@@ -484,8 +490,10 @@ if nil == web then C("opening mirrors file - " .. e) else
484 "<p>NOTE - This is not fully probing the Debian mirrors, we just collect some data from any redirects to other servers. &nbsp; " .. 490 "<p>NOTE - This is not fully probing the Debian mirrors, we just collect some data from any redirects to other servers. &nbsp; " ..
485 "So this isn't a full set of tests. &nbsp Basically we don't know the shape of the Debian mirror infrastructure.</p>\n" .. 491 "So this isn't a full set of tests. &nbsp Basically we don't know the shape of the Debian mirror infrastructure.</p>\n" ..
486 "<p><font style='background-color:red; color:black'>EXPERIMENTAL CODE - this is even more experimental than the rest.</font></p>\n" .. 492 "<p><font style='background-color:red; color:black'>EXPERIMENTAL CODE - this is even more experimental than the rest.</font></p>\n" ..
487 "<table>\n<tr><th></th><th>FTP</th><th>HTTP</th><th>HTTPS</th><th>RSYNC</th><th>DNS round robin</th>" .. 493
488 "<th>Protocol</th><th>URL sanity</th><th>Integrity</th><th>Updated</th><th colspan='2'>Speed range</th></tr>\n") 494 "<table>\n<tr><th></th><th>" .. lnk('FTP') .. "</a></th><th>" .. lnk('HTTP') .. "</th><th>" .. lnk('HTTPS') .. "</th><th>" .. lnk('RSYNC') .. "</th>" ..
495 "<th>" .. lnk('DNS round robin', 'DNS-RR') .. "</th><th>" .. lnk('Protocol') .. "</th><th>" .. lnk('URL sanity', 'URL-Sanity') .. "</th><th>" .. lnk('Integrity') .. "</th>" ..
496 "<th>" .. lnk('Updated') .. "</th><th colspan='2'>" .. lnk('Speed range', 'Speed') .. "</th></tr>\n")
489 for k, v in APT.orderedPairs(APT.debians) do 497 for k, v in APT.orderedPairs(APT.debians) do
490 local results = APT.collateAll(APT.debians, 'results', k) 498 local results = APT.collateAll(APT.debians, 'results', k)
491 local active = "" 499 local active = ""
diff --git a/apt-panopticon.lua b/apt-panopticon.lua
index 9d2b783..c15c369 100755
--- a/apt-panopticon.lua
+++ b/apt-panopticon.lua
@@ -1075,6 +1075,7 @@ else
1075 os.execute("rm -f results/*.html 2>/dev/null") 1075 os.execute("rm -f results/*.html 2>/dev/null")
1076 os.execute("rm -f results/*.txt 2>/dev/null") 1076 os.execute("rm -f results/*.txt 2>/dev/null")
1077 end 1077 end
1078 os.execute('ln -s ../explanations.html results/explanations.html 2>/dev/null')
1078 1079
1079 if not APT.logOpen('apt-panopticon') then return end 1080 if not APT.logOpen('apt-panopticon') then return end
1080 I("Starting tests " .. table.concat(APT.options.tests.value, ", ")) 1081 I("Starting tests " .. table.concat(APT.options.tests.value, ", "))
diff --git a/explanations.html b/explanations.html
new file mode 100644
index 0000000..5ce0376
--- /dev/null
+++ b/explanations.html
@@ -0,0 +1,60 @@
1<html><head><title>apt-panopticon explanations</title>
2</head><body bgcolor="black" text="white"><h1>Welcome to the apt-panopticon explanations page.</h1>
3<p>The purpose of this page is to try to explain everything shown on <a href="results/Report-web.html">the results page</a>,
4so that the results page can link to the various parts for the curious.<p>
5
6<hr><h1 id="IPv4">IPV4 tests</h1>
7<p>Tests are tested over IPv4 if the mirror has IPv4 addresses.</p>
8
9<hr><h1 id="IPv6">IPv6</h1>
10<p>Tests are tested over IPv6 if the mirror has IPv6 addresses.</p>
11
12<hr><h1 id="FTP">FTP tests</h1>
13<p>The FTP tests have not been written yet.</p>
14
15<hr><h1 id="HTTP">HTTP tests</h1>
16<p>
17</p>
18
19<hr><h1 id="HTTPS">HTTPS tests</h1>
20<p>
21</p>
22
23<hr><h1 id="RSYNC">rsync tests</h1>
24<p>The RSYNC tests have not been written yet.</p>
25
26<hr><h1 id="DNS-RR">DNS round robin tests</h1>
27<p>The "DNS round robin" column lists the IP addresses for each mirror that is part of the DNS round robin, or DNS-RR. &nbsp;
28The IPs are linked to the log for that specific IP when used via the DNS round robin, and is followed by the number of errors, warnings, or timeouts of any.
29</p>
30
31<hr><h1 id="Protocol">Protocol tests</h1>
32<p>The Protocol test will give a warning if the protocol is changed during a redirect, HTTP -> HTTPS for example. &nbsp;
33While apt HTTPS transport is now the default in Beowulf / Buster, not everyone with an older release will have that installed,
34so redirecting HTTP to HTTPS will break apt for those people. &nbsp;
35An error is given instead if that happens for mirrors in the DNS round robin. &nbsp;
36Servers in the DNS round robin will not have the HTTPS certificate for the round robin domain, so redirecting to HTTPS for that is a mistake.
37</p>
38
39<hr><h1 id="URL-Sanity">URL sanity tests</h1>
40<p>The URL sanity test replaces "/" in URLS with "///", to see if the mirror can cope with that. &nbsp;
41This might happen due to a mis configuration by the apt user, but decent web servers should cope with that. &nbsp;
42The result for a mirror that does not cope is a failed download for that use, so this is an error.
43</p>
44
45<hr><h1 id="Integrity">Integrity tests</h1>
46<p></p>
47
48<hr><h1 id="Updated">Updated tests</h1>
49<p></p>
50
51<hr><h1 id="Speed">Speed test</h1>
52<p>The speed test tries to guess at a minimum and maximum speed range for each mirror. &nbsp;
53It does this by measuring the reported speeds from the curl commands that actually download files. &nbsp;
54Since apt-panopticon is trying hard to download everything from all mirrors all at the same time, this guess will be low. &nbsp;
55Also, the computer running the apt-panopticon might have a network connection that is busy with other things. &nbsp;
56Finally, the tested mirror may have a bigger network connection than the computer running the test, so wont show it's true maximum. &nbsp;
57So take this speed measurement with a grain of salt, it's more of an indication, the <a href="apt-panopticon_cgp/index.php">full graphs</a> might be useful.
58</p>
59
60</body></html>