Comment 1 for bug 1561215

Revision history for this message
Xavier Aragon (xarax-lp) wrote :

This problem only seems to affect Kubuntu upgrades, where the graphical frontend 'DistUpgradeViewKDE' is used.

If the text mode upgrade is used (e.g. 'do-release-upgrade -d') the release notes are not shown at all. Also if the GTK graphical frontend is used (e.g. 'do-release-upgrade -d --frontend=DistUpgradeViewGtk3') there is no problem, the release notes are correctly downloaded and shown. But with the KDE frontend ('do-release-upgrade -d --frontend=DistUpgradeViewKDE' or 'kubuntu-devel-release-upgrade'), the HTTP request is made with an illegal URI containing a space. In presence of a strict firewall that request may be dropped, and the upgrade doesn't proceed.

The reason why the GTK frontend works is that the invalid URI is passed to WebKit, which "fixes" the URI, i.e. encodes the space in the URI as %20 before sending the HTTP request to the server. With the KDE frontend, however, the URI is passed to python's urllib.request.urlopen() function, which doesn't "fix" the URI, i.e. the HTTP request is made with the illegal URI containing a space (coming from the version string '16.04 LTS', i.e. this problem only affects upgrades to LTS releases).

I believe this is a bug in MetaRelease.py which produces the 'dist.releaseNotesHtmlUri' but doesn't encode it properly for use as an URI.