From 70760d90a3ce6322b87efb0f372b8a31658f4dc0 Mon Sep 17 00:00:00 2001
From: Emanuele Aina <emanuele.aina@collabora.com>
Date: Tue, 12 Jan 2021 03:16:38 +0100
Subject: [PATCH] pkg-pull-updates: Fix package name quoting

When querying madison, the package name needs to be quoted or special
characters may cause issues. For instance, the `+` in the `gtk+3.0`
package needs to be escaped, or madison returns no matches:

    $ curl 'https://qa.debian.org/madison.php?package=gtk+3.0&yaml=on&s=jessie'
    --- {}
    $ curl 'https://qa.debian.org/madison.php?package=gtk%2B3.0&yaml=on&s=jessie'
    ---
    gtk+3.0:
      3.14.5-1+deb8u1:
        jessie:
          - source

Signed-off-by: Emanuele Aina <emanuele.aina@collabora.com>
---
 .../overlay/usr/bin/apertis-pkg-pull-updates               | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/package-source-builder/overlay/usr/bin/apertis-pkg-pull-updates b/package-source-builder/overlay/usr/bin/apertis-pkg-pull-updates
index ab5e715..6990b75 100755
--- a/package-source-builder/overlay/usr/bin/apertis-pkg-pull-updates
+++ b/package-source-builder/overlay/usr/bin/apertis-pkg-pull-updates
@@ -15,6 +15,7 @@ import shlex
 import subprocess
 import sys
 import tempfile
+import urllib.parse
 import urllib.request
 import yaml
 
@@ -101,8 +102,12 @@ def get_remote_version(suite, package):
     >>> get_remote_version('jessie', 'dash')
     fetch https://qa.debian.org/madison.php?package=dash&yaml=on&s=jessie
     Version('0.5.7-4')
+    >>> get_remote_version('jessie', 'gtk+3.0')
+    fetch https://qa.debian.org/madison.php?package=gtk%2B3.0&yaml=on&s=jessie
+    Version('3.14.5-1+deb8u1')
     """
-    url = f'https://qa.debian.org/madison.php?package={package}&yaml=on&s={suite}'
+    quoted_package = urllib.parse.quote(package)
+    url = f'https://qa.debian.org/madison.php?package={quoted_package}&yaml=on&s={suite}'
     print('fetch', url)
     with urllib.request.urlopen(url) as response:
         data = yaml.safe_load(response.read().decode('utf-8'))
-- 
GitLab