Package: tracker.debian.org
Severity: normal

A package with a + in its name, like
<https://tracker.debian.org/pkg/libgetopt++>, has a broken link for
popcon:
<https://qa.debian.org/popcon.php?package=libgetopt++> doesn't work,
because + is interpreted as space in the query string. The correct link
would be <https://qa.debian.org/popcon.php?package=libgetopt%2B%2B>.

Other broken links seen for the same reason:

/accounts/logout/?next=/pkg/libgetopt++ (when logged-in)
https://qa.debian.org/madison.php?package=libgetopt++

Package names in query-strings should be escaped with urllib.quote_plus()
instead of urllib.quote(). The "buildd logs" link seems to do this
correctly, and so do the BTS links.

(It would also be OK to use quote_plus in many other contexts, although
it might be necessary to use quote_plus(..., safe='/') if the string
being substituted includes a directory name.)

Reply via email to