From c76194033e49dc2897a8d50a4aa7c4688a7900af Mon Sep 17 00:00:00 2001 From: onefang Date: Thu, 26 Dec 2019 15:47:41 +1000 Subject: New explanations.html page. --- apt-panopticon-report-email-web.lua | 16 +++++++--- apt-panopticon.lua | 1 + explanations.html | 60 +++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 explanations.html 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 email:close() end +local lnk = function(name, link) + if nil == link then link = name end + return name .."*" +end + local colours = { @@ -365,8 +370,9 @@ if nil == web then C("opening mirrors file - " .. e) else "

The time in the Updated column is how often the mirror updates itself.

" .. "

Mirrors with a grey background are not active (though may be usable as part of the DNS-RR).

\n" .. "

[skip] means that the test hasn't been written yet.

\n" .. - "\n" .. - "\n" + "
FTPHTTPHTTPSRSYNCDNS round robinProtocolURL sanityIntegrityUpdatedSpeed range
\n" .. + "" .. + "\n" ) for k, v in APT.orderedPairs(APT.mirrors) do local results = APT.collateAll(APT.mirrors, 'results', k) @@ -484,8 +490,10 @@ if nil == web then C("opening mirrors file - " .. e) else "

NOTE - This is not fully probing the Debian mirrors, we just collect some data from any redirects to other servers.   " .. "So this isn't a full set of tests.   Basically we don't know the shape of the Debian mirror infrastructure.

\n" .. "

EXPERIMENTAL CODE - this is even more experimental than the rest.

\n" .. - "
" .. lnk('FTP') .. "" .. lnk('HTTP') .. "" .. lnk('HTTPS') .. "" .. lnk('RSYNC') .. "" .. lnk('DNS round robin', 'DNS-RR') .. "" .. lnk('Protocol') .. "" .. lnk('URL sanity', 'URL-Sanity') .. "" .. lnk('Integrity') .. "" .. lnk('Updated') .. "" .. lnk('Speed range', 'Speed') .. "
\n" .. - "\n") + + "
FTPHTTPHTTPSRSYNCDNS round robinProtocolURL sanityIntegrityUpdatedSpeed range
\n" .. + "" .. + "\n") for k, v in APT.orderedPairs(APT.debians) do local results = APT.collateAll(APT.debians, 'results', k) 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 os.execute("rm -f results/*.html 2>/dev/null") os.execute("rm -f results/*.txt 2>/dev/null") end + os.execute('ln -s ../explanations.html results/explanations.html 2>/dev/null') if not APT.logOpen('apt-panopticon') then return end 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 @@ +apt-panopticon explanations +

Welcome to the apt-panopticon explanations page.

+

The purpose of this page is to try to explain everything shown on the results page, +so that the results page can link to the various parts for the curious.

+ +


IPV4 tests

+

Tests are tested over IPv4 if the mirror has IPv4 addresses.

+ +

IPv6

+

Tests are tested over IPv6 if the mirror has IPv6 addresses.

+ +

FTP tests

+

The FTP tests have not been written yet.

+ +

HTTP tests

+

+

+ +

HTTPS tests

+

+

+ +

rsync tests

+

The RSYNC tests have not been written yet.

+ +

DNS round robin tests

+

The "DNS round robin" column lists the IP addresses for each mirror that is part of the DNS round robin, or DNS-RR.   +The 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. +

+ +

Protocol tests

+

The Protocol test will give a warning if the protocol is changed during a redirect, HTTP -> HTTPS for example.   +While apt HTTPS transport is now the default in Beowulf / Buster, not everyone with an older release will have that installed, +so redirecting HTTP to HTTPS will break apt for those people.   +An error is given instead if that happens for mirrors in the DNS round robin.   +Servers 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. +

+ +

URL sanity tests

+

The URL sanity test replaces "/" in URLS with "///", to see if the mirror can cope with that.   +This might happen due to a mis configuration by the apt user, but decent web servers should cope with that.   +The result for a mirror that does not cope is a failed download for that use, so this is an error. +

+ +

Integrity tests

+

+ +

Updated tests

+

+ +

Speed test

+

The speed test tries to guess at a minimum and maximum speed range for each mirror.   +It does this by measuring the reported speeds from the curl commands that actually download files.   +Since apt-panopticon is trying hard to download everything from all mirrors all at the same time, this guess will be low.   +Also, the computer running the apt-panopticon might have a network connection that is busy with other things.   +Finally, the tested mirror may have a bigger network connection than the computer running the test, so wont show it's true maximum.   +So take this speed measurement with a grain of salt, it's more of an indication, the full graphs might be useful. +

+ + -- cgit v1.1
" .. lnk('FTP') .. "" .. lnk('HTTP') .. "" .. lnk('HTTPS') .. "" .. lnk('RSYNC') .. "" .. lnk('DNS round robin', 'DNS-RR') .. "" .. lnk('Protocol') .. "" .. lnk('URL sanity', 'URL-Sanity') .. "" .. lnk('Integrity') .. "" .. lnk('Updated') .. "" .. lnk('Speed range', 'Speed') .. "