Merge ~3v1n0/ubuntu-desktop-versions:py3+upstream-links-parsing into ubuntu-desktop-versions:master

Proposed by Marco Trevisan (Treviño)
Status: Needs review
Proposed branch: ~3v1n0/ubuntu-desktop-versions:py3+upstream-links-parsing
Merge into: ubuntu-desktop-versions:master
Diff against target: 2673 lines (+949/-894)
2 files modified
packages.py (+899/-881)
versions.py (+50/-13)
Reviewer Review Type Date Requested Status
Sebastien Bacher Needs Information
Review via email: mp+393487@code.launchpad.net

Description of the change

Make the script to run in python3, given that the current LTS and dev version doesn't contain anymore the packages needed to run this script.

Add lots of cleanups in the regex generation functions

Add more matching to the tags, and use this to compute the upstream links, so that now upstream versions are linked to:
 - The news file if possible (GNOME and all the gitlab/github repos containing a NEWS file)
 - The tag link if any (mostly in gitlab/github)
 - The matched upstream tarball (as fallback)

See single commits for more details

To post a comment you must log in.
Revision history for this message
Sebastien Bacher (seb128) wrote :

Thanks Marco but please talk to me first next time, I've a python3 port done locally (see my activity report from previous weeks), it's just that the production machine is on precise and doesn't have the needed bindings to use it...

review: Disapprove
Revision history for this message
Sebastien Bacher (seb128) wrote :

K, giving some extra review comments, there are probably parts we should merge

* a87e2c7...

you are not doing anything from matched_url and I fail to see what difference it's making. Is that for local debug purpose and adding manually a print() or something?

* it's a bit confusing but none of your commit mention python3 in its description?

* what's the point of adding parsing using the .news or the github api for releases? do you expect that to be more efficient? or do you have an example which wasn't working and is working now?

review: Needs Information
Revision history for this message
Sebastien Bacher (seb128) wrote :

also why adding the new tag properties?

Revision history for this message
Sebastien Bacher (seb128) wrote :

> * it's a bit confusing but none of your commit mention python3 in its description?

seems like it's a launchpad UI bug, I can see the commit on a command line log

Revision history for this message
Sebastien Bacher (seb128) wrote :

Ok, I did cherry pick the python3 support since you had conditional checks to make it still work with old python versions, thanks! Let's discuss the other changes next, I'm unsure to understand the rational to read tags and news now

Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote :

> Thanks Marco but please talk to me first next time, I've a python3 port done
> locally (see my activity report from previous weeks), it's just that the
> production machine is on precise and doesn't have the needed bindings to use
> it...

Sorry, I've not seen that, but as you can see from the timestamps those commits are quite old, and I decided to use some free time during the weekend to finish what was needed.

Didn't want to overlap, even though the py3 port shouldn't be really a big change, is it?

Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote :

> Ok, I did cherry pick the python3 support since you had conditional checks to
> make it still work with old python versions, thanks! Let's discuss the other
> changes next, I'm unsure to understand the rational to read tags and news now

Sooo... I suppose seeing the results is better than the code, so check what this script generates:

https://people.ubuntu.com/~3v1n0/versions/

As you can see for most packages now, the upstream version has a valid link, that points to:
 - NEWS (file or tag)
 - The archive

This is something has always been quite itching me as when a new version has been released I want to know what it changed, so all the times I've to manually browse to the repo location, while this change will just make the upstream version to be more informative about.

Previous changes were mostly clanups to make maintaining the script easier, as for many well-known repositories it should not be trivial to add parsers, without having to repeat the same regexes all the times, which is unmaintainable in the long term.

1ecd1f0... by Marco Trevisan (Treviño)

versions: Support getting the upstream version link for CPAN packages

9fd50b8... by Marco Trevisan (Treviño)

versions: Check only http(s) archive links

For FTPs links we already assume it exists, as we listed it

9feea17... by Marco Trevisan (Treviño)

versions: Add proxy support to check_url_exists

6aa51b5... by Marco Trevisan (Treviño)

versions: Parse hostname instead of netlock to check upstream links

So that it will ignore ports, in case they're set.

Unmerged commits

9feea17... by Marco Trevisan (Treviño)

versions: Add proxy support to check_url_exists

6aa51b5... by Marco Trevisan (Treviño)

versions: Parse hostname instead of netlock to check upstream links

So that it will ignore ports, in case they're set.

9fd50b8... by Marco Trevisan (Treviño)

versions: Check only http(s) archive links

For FTPs links we already assume it exists, as we listed it

1ecd1f0... by Marco Trevisan (Treviño)

versions: Support getting the upstream version link for CPAN packages

84b783e... by Marco Trevisan (Treviño)

packages: Get LLVM toolchain infos from GitHub, and add toolchain 10

a01a9ae... by Marco Trevisan (Treviño)

packages: Add some more test packages to the dummy section

Those have interesting aspects that it's nice to test

686215c... by Marco Trevisan (Treviño)

packages: Prefer TAGS matching instead of file matching for FDO repos

This will allow us to get tags links easier

220b06a... by Marco Trevisan (Treviño)

packages: Add more types of URI to tests into dummy packages

38bdbbb... by Marco Trevisan (Treviño)

packages: Make GITHUB_URL function more flexible and use it to match more repos

9118cdf... by Marco Trevisan (Treviño)

packages: Use more specialized function to generate Xorg URIs

So we can avoid to repeat regexes around

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/packages.py b/packages.py
2index c86690f..db0118e 100644
3--- a/packages.py
4+++ b/packages.py
5@@ -10,130 +10,137 @@ UNTRACKED = 'UNTRACKED'
6 EXT = '\.(?:tar\.(?:gz|bz2|xz)|tgz|zip)+'
7
8 def GNOME_FTP_URL (name, version = '([0-9.]+)'):
9- return ('https://ftp.gnome.org/pub/gnome/sources/%s/%s' % (name, version), '%s-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+' % re.escape (name))
10+ return ('https://ftp.gnome.org/pub/gnome/sources/%s/%s' % (name, version), '%s-([0-9][0-9.]*)%s' % (re.escape (name), EXT))
11 GNOME_STABLE_SERIES = '3.38'
12
13 def KDE_FTP_URL (name, subdir = ''):
14- return ('http://download.kde.org/stable/%s([0-9.]+)/src/' % subdir, '%s-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+' % name)
15+ return ('http://download.kde.org/stable/%s([0-9.]+)/src/' % subdir, '%s-([0-9][0-9.]*)%s' % (name, EXT))
16+
17+def FDO_URL (namespace, repo, version='([0-9][0-9.]*)'):
18+ return ('https://gitlab.freedesktop.org/{}/{}/tags'.format(namespace, repo), 'tags/(?:{}-)?v?{}'.format(repo, version))
19+
20+def XORG_URL (category, name, version='([0-9][0-9.]*)'):
21+ return FDO_URL ('xorg/{}'.format(category), name.lower(), '(?:{}-)?{}'.format(name, version))
22
23 def GSTREAMER_URL (name, series='([0-9.]+)'):
24- return ('https://gstreamer.freedesktop.org/src/%s/' % name, '%s-(%s\.[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+' % (name, series))
25+ return ('https://gstreamer.freedesktop.org/src/%s/' % name, '%s-(%s\.[0-9.]*)%s' % (name, series, EXT))
26 GST_STABLE_SERIES = '1.18'
27
28 def PYPI_URL (name):
29- return ('https://pypi.python.org/pypi/%s/' % name, '%s-([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+' % name)
30+ return ('https://pypi.python.org/pypi/%s/' % name, '%s-([0-9][0-9a-zA-Z.]*)%s' % (name, EXT))
31
32 def CPAN_URL (name):
33- return ('http://search.cpan.org/dist/%s/' % name, '%s-v?([0-9][a-zA-Z0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+' % name)
34+ return ('http://search.cpan.org/dist/%s/' % name, '%s-v?([0-9][a-zA-Z0-9.]*)%s' % (name, EXT))
35
36 def LIBREOFFICE_URL (name):
37- return ('http://dev-www.libreoffice.org/src/', '%s-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+' % name)
38+ return ('http://dev-www.libreoffice.org/src/', '%s-([0-9][0-9.]*)%s' % (name, EXT))
39
40 def LAUNCHPAD_URL (project, name = None):
41 if name is None:
42 name = project
43- return ('https://launchpad.net/%s/+download' % project, '%s[-_]([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+' % name)
44+ return ('https://launchpad.net/%s/+download' % project, '%s[-_]([0-9][0-9a-zA-Z.]*)%s' % (name, EXT))
45
46 def SOURCEFORGE_URL (project, dir, filename):
47 return ('https://sourceforge.net/projects/' + project + '/files/' + dir, filename)
48
49-def GITHUB_URL (username, repository, tag_regex):
50- return ('https://github.com/' + username + '/' + repository + '/releases/latest', 'tag/' + tag_regex)
51+def GITHUB_URL (username, repository, prefix=None, tag_regex='v?([0-9][0-9.]*)'):
52+ prefix = prefix if prefix else repository
53+ return ('https://github.com/' + username + '/' + repository + '/releases/latest', 'tag/' + '(?:{}[-_])?'.format(prefix) + tag_regex)
54
55 GERMINATE_OUTPUT = 'http://people.canonical.com/~ubuntu-archive/germinate-output'
56
57 ubuntu_package_info = [
58 ('a11y-profile-manager', LAUNCHPAD_URL ('a11y-profile-manager'), None, []),
59- ('aalib', SOURCEFORGE_URL ('aa-project', 'aa-lib/([0-9.]+)', 'aalib-([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
60+ ('aalib', SOURCEFORGE_URL ('aa-project', 'aa-lib/([0-9.]+)', 'aalib-([0-9][0-9a-zA-Z.]*)' + EXT), None, []),
61 ('accerciser', GNOME_FTP_URL ('accerciser', '([\d\.]+[02468])'), GNOME_FTP_URL ('accerciser'), ['gnome']),
62- ('accountsservice', ('https://freedesktop.org/software/accountsservice/', 'accountsservice-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
63- ('acl', ('https://download.savannah.gnu.org/releases/acl/', 'acl-([0-9][0-9.]*).src.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
64- ('acpid', SOURCEFORGE_URL ('acpid2', '', 'acpid-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
65+ ('accountsservice', FDO_URL ('accountsservice', 'accountsservice'), None, []),
66+ ('acl', ('https://download.savannah.gnu.org/releases/acl/', 'acl-([0-9][0-9.]*).src' + EXT), None, []),
67+ ('acpid', SOURCEFORGE_URL ('acpid2', '', 'acpid-([0-9][0-9.]*)' + EXT), None, []),
68 ('acpi-support', UBUNTU, None, []),
69 ('adduser', DEBIAN, None, []),
70 ('adium-theme-ubuntu', LAUNCHPAD_URL ('adium-theme-ubuntu'), None, []),
71 ('adwaita-icon-theme', GNOME_FTP_URL ('adwaita-icon-theme', GNOME_STABLE_SERIES), GNOME_FTP_URL ('adwaita-icon-theme'), ['gnome']),
72-# ('aiksaurus', SOURCEFORGE_URL ('aiksaurus', 'aiksaurus', 'aiksaurus-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
73+# ('aiksaurus', SOURCEFORGE_URL ('aiksaurus', 'aiksaurus', 'aiksaurus-([0-9][0-9.]*)' + EXT), None, []),
74 ('aisleriot', GNOME_FTP_URL ('aisleriot', '3.22'), GNOME_FTP_URL ('aisleriot'), ['gnome']),
75 # ('alacarte', GNOME_FTP_URL ('alacarte'), GNOME_FTP_URL ('alacarte'), ['gnome']),
76- ('alsa-driver', ('ftp://ftp.alsa-project.org/pub/driver/', 'alsa-driver-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
77- ('alsa-lib', ('ftp://ftp.alsa-project.org/pub/lib/', 'alsa-lib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
78- ('alsa-plugins', ('ftp://ftp.alsa-project.org/pub/plugins/', 'alsa-plugins-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
79- ('alsa-topology-conf', ('https://github.com/alsa-project/alsa-topology-conf/tags', 'v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
80- ('alsa-ucm-conf', ('https://github.com/alsa-project/alsa-ucm-conf/tags', 'v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
81- ('alsa-utils', ('ftp://ftp.alsa-project.org/pub/utils/', 'alsa-utils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
82+ ('alsa-driver', ('ftp://ftp.alsa-project.org/pub/driver/', 'alsa-driver-([0-9][0-9.]*)' + EXT), None, []),
83+ ('alsa-lib', ('ftp://ftp.alsa-project.org/pub/lib/', 'alsa-lib-([0-9][0-9.]*)' + EXT), None, []),
84+ ('alsa-plugins', ('ftp://ftp.alsa-project.org/pub/plugins/', 'alsa-plugins-([0-9][0-9.]*)' + EXT), None, []),
85+ ('alsa-topology-conf', GITHUB_URL ('alsa-project', 'alsa-topology-conf'), None, []),
86+ ('alsa-ucm-conf', GITHUB_URL ('alsa-project', 'alsa-ucm-conf'), None, []),
87+ ('alsa-utils', ('ftp://ftp.alsa-project.org/pub/utils/', 'alsa-utils-([0-9][0-9.]*)' + EXT), None, []),
88 ('amd64-microcode', DEBIAN, None, []),
89- ('anacron', SOURCEFORGE_URL ('anacron', 'anacron/([0-9.]+)', 'anacron-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
90+ ('anacron', SOURCEFORGE_URL ('anacron', 'anacron/([0-9.]+)', 'anacron-([0-9][0-9.]*)' + EXT), None, []),
91 ('anjuta', GNOME_FTP_URL ('anjuta'), GNOME_FTP_URL ('anjuta'), ['gnome']),
92 ('anjuta-extras', GNOME_FTP_URL ('anjuta-extras'), GNOME_FTP_URL ('anjuta-extras'), ['gnome']),
93-# ('anthy', ('https://osdn.net/projects/anthy/releases/', 'anthy-([0-9][a-zA-Z0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
94-# ('apache2', ('http://archive.apache.org/dist/httpd/', 'httpd-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
95- ('apg', ('https://github.com/jabenninghoff/apg/tags', 'v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
96+# ('anthy', ('https://osdn.net/projects/anthy/releases/', 'anthy-([0-9][a-zA-Z0-9.]*)' + EXT), None, []),
97+# ('apache2', ('http://archive.apache.org/dist/httpd/', 'httpd-([0-9][0-9.]*)' + EXT), None, []),
98+ ('apg', GITHUB_URL ('jabenninghoff', 'apg'), None, []),
99 ('apparmor', LAUNCHPAD_URL ('apparmor'), None, []),
100 ('app-install-data-partner', UBUNTU, None, []),
101 ('apport', LAUNCHPAD_URL ('apport'), None, []),
102 ('apport-symptoms', UBUNTU, None, []),
103- ('appstream', ('https://freedesktop.org/software/appstream/releases/', 'AppStream-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
104- ('appstream-glib', ('https://people.freedesktop.org/~hughsient/appstream-glib/releases/', 'appstream-glib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
105+ ('appstream', GITHUB_URL ('ximion', 'appstream'), None, ['gnome']),
106+ ('appstream-glib', GITHUB_URL ('hughsie', 'appstream-glib', None, '[a-z_]+_([0-9][a0-9_]*)'), None, ['gnome']),
107 ('aptdaemon', UBUNTU, None, []),
108 ('apt', DEBIAN, None, []),
109 ('apturl', UBUNTU, None, []),
110- ('argon2', ('https://github.com/P-H-C/phc-winner-argon2/tags', '([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
111- ('argyll', ('http://www.argyllcms.com/downloadsrc.html', 'Argyll_V([0-9][0-9.]*)_src.zip'), None, ['gnome']),
112+ ('argon2', GITHUB_URL ('P-H-C', 'phc-winner-argon2'), None, ['gnome']),
113+ ('argyll', ('http://www.argyllcms.com/downloadsrc.html', 'Argyll_V([0-9][0-9.]*)_src' + EXT), None, ['gnome']),
114 ('asn1crypto', PYPI_URL ('asn1crypto'), None, []),
115- ('aspell-en', ('https://ftp.gnu.org/gnu/aspell/dict/en/', 'aspell[0-9]+-en-([0-9][0-9.-]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
116- ('aspell', ('https://ftp.gnu.org/gnu/aspell/', 'aspell-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
117- ('attr', ('http://download.savannah.gnu.org/releases/attr/', 'attr-([0-9][0-9.]*).src.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
118+ ('aspell-en', ('https://ftp.gnu.org/gnu/aspell/dict/en/', 'aspell[0-9]+-en-([0-9][0-9.-]*)' + EXT), None, []),
119+ ('aspell', ('https://ftp.gnu.org/gnu/aspell/', 'aspell-([0-9][0-9.]*)' + EXT), None, []),
120+ ('attr', ('http://download.savannah.gnu.org/releases/attr/', 'attr-([0-9][0-9.]*).src' + EXT), None, []),
121 ('atk1.0', GNOME_FTP_URL ('atk', '2.36'), GNOME_FTP_URL ('atk'), ['gnome']),
122 ('atkmm1.6', GNOME_FTP_URL ('atkmm', '2.28'), GNOME_FTP_URL ('atkmm'), ['gnome']),
123 ('atomix', GNOME_FTP_URL ('atomix'), GNOME_FTP_URL ('atomix'), ['gnome']),
124 ('at-spi2-atk', GNOME_FTP_URL ('at-spi2-atk'), GNOME_FTP_URL ('at-spi2-atk'), ['gnome']),
125 ('at-spi2-core', GNOME_FTP_URL ('at-spi2-core', '2.36'), GNOME_FTP_URL ('at-spi2-core'), ['gnome']),
126-# ('audacious', ('http://distfiles.audacious-media-player.org/', 'audacious-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
127-# ('audacious-plugins', ('http://distfiles.audacious-media-player.org/', 'audacious-plugins-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
128- ('audit', ('https://people.redhat.com/sgrubb/audit/', 'audit-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
129-# ('autogen', ('https://ftp.gnu.org/gnu/autogen/rel([0-9.]+)/', 'autogen-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
130- ('avahi', ('http://avahi.org/download/', 'avahi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
131- ('babeltrace', ('https://www.efficios.com/files/babeltrace/', 'babeltrace-([\d\.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
132- ('babl', ('https://download.gimp.org/pub/babl/([0-9.]+)/', 'babl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
133+# ('audacious', ('http://distfiles.audacious-media-player.org/', 'audacious-([0-9][0-9.]*)' + EXT), None, []),
134+# ('audacious-plugins', ('http://distfiles.audacious-media-player.org/', 'audacious-plugins-([0-9][0-9.]*)' + EXT), None, []),
135+ ('audit', ('https://people.redhat.com/sgrubb/audit/', 'audit-([0-9][0-9.]*)' + EXT), None, []),
136+# ('autogen', ('https://ftp.gnu.org/gnu/autogen/rel([0-9.]+)/', 'autogen-([0-9][0-9.]*)' + EXT), None, []),
137+ ('avahi', ('http://avahi.org/download/', 'avahi-([0-9][0-9.]*)' + EXT), None, []),
138+ ('babeltrace', ('https://www.efficios.com/files/babeltrace/', 'babeltrace-([\d\.]*)' + EXT), None, ['xorg']),
139+ ('babl', ('https://download.gimp.org/pub/babl/([0-9.]+)/', 'babl-([0-9][0-9.]*)' + EXT), None, ['gnome']),
140 # ('banshee', GNOME_FTP_URL ('banshee'), None, ['gnome']),
141 ('baobab', GNOME_FTP_URL ('baobab'), GNOME_FTP_URL ('baobab'), ['gnome']),
142- ('bash-completion', ('https://github.com/scop/bash-completion/tags', '([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
143- ('bc', ('https://ftp.gnu.org/gnu/bc/', 'bc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
144- ('beautifulsoup4', ('https://www.crummy.com/software/BeautifulSoup/bs4/download/([0-9.]+)', 'beautifulsoup4-([0-9][a-zA-Z0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
145+ ('bash-completion', GITHUB_URL ('scop', 'bash-completion'), None, []),
146+ ('bc', ('https://ftp.gnu.org/gnu/bc/', 'bc-([0-9][0-9.]*)' + EXT), None, []),
147+ ('beautifulsoup4', ('https://www.crummy.com/software/BeautifulSoup/bs4/download/([0-9.]+)', 'beautifulsoup4-([0-9][a-zA-Z0-9.]*)' + EXT), None, ['gnome']),
148 ('bijiben', GNOME_FTP_URL ('bijiben'), GNOME_FTP_URL ('bijiben'), ['gnome']),
149 ('bind9', ('https://ftp.isc.org/isc/bind9/', '(9.10.[0-9.]+[P0-9-]*)/'), ('https://ftp.isc.org/isc/bind9/', '(9.1[0-9.]+[P0-9-]*)/'), []),
150- ('binutils', ('https://ftp.gnu.org/gnu/binutils/', 'binutils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
151-# ('bison', ('https://ftp.gnu.org/gnu/bison/', 'bison-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
152- ('blinker', ('https://github.com/jek/blinker/tags', 'rel-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
153- ('bluez', ('https://www.kernel.org/pub/linux/bluetooth/', 'bluez-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
154- ('bolt', ('https://gitlab.freedesktop.org/bolt/bolt/tags', 'bolt-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
155+ ('binutils', ('https://ftp.gnu.org/gnu/binutils/', 'binutils-([0-9][0-9.]*)' + EXT), None, []),
156+# ('bison', ('https://ftp.gnu.org/gnu/bison/', 'bison-([0-9][0-9.]*)' + EXT), None, []),
157+ ('blinker', GITHUB_URL ('jek', 'blinker', 'rel'), None, []),
158+ ('bluez', ('https://www.kernel.org/pub/linux/bluetooth/', 'bluez-([0-9][0-9.]*)' + EXT), None, []),
159+ ('bolt', FDO_URL ('bolt', 'bolt'), None, []),
160 # ('bogofilter', SOURCEFORGE_URL ('bogofilter', 'bogofilter-stable', 'bogofilter-stable/bogofilter-([0-9][0-9.]+)'), None, []),
161 ('boost1.71', ('https://dl.bintray.com/boostorg/release/', '(1.71.[0-9][0-9.]*)/'), None, []),
162 ('branding-ubuntu', UBUNTU, None, []),
163 ('brasero', GNOME_FTP_URL ('brasero'), GNOME_FTP_URL ('brasero'), ['gnome']),
164- ('brlaser', GITHUB_URL ('pdewacht', 'brlaser', 'v([0-9][0-9.]*)'), None, []),
165- ('brltty', ('http://mielke.cc/brltty/download.html', 'brltty-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
166- ('brotli', GITHUB_URL ('google', 'brotli', 'v([0-9][0-9.]*)'), None, []),
167+ ('brlaser', GITHUB_URL ('pdewacht', 'brlaser'), None, []),
168+ ('brltty', ('http://mielke.cc/brltty/download.html', 'brltty-([0-9][0-9.]*)' + EXT), None, []),
169+ ('brotli', GITHUB_URL ('google', 'brotli'), None, []),
170 ('bsdmainutils', DEBIAN, None, []),
171 # ('bsh', ('http://www.beanshell.org/download.html', 'bsh-([0-9][0-9.b]*).jar'), None, []),
172- ('bubblewrap', GITHUB_URL ('projectatomic', 'bubblewrap', 'v([0-9][0-9.]*)'), None, []),
173+ ('bubblewrap', GITHUB_URL ('projectatomic', 'bubblewrap'), None, []),
174 ('build-essential', DEBIAN, None, []),
175- ('busybox', ('https://busybox.net/downloads/', 'busybox-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
176+ ('busybox', ('https://busybox.net/downloads/', 'busybox-([0-9][0-9.]*)' + EXT), None, []),
177 ('bzip2', ('https://sourceware.org/git/?p=bzip2.git;a=tags', 'bzip2-([0-9][0-9.]*)'), None, []),
178 # ('bzr', LAUNCHPAD_URL ('bzr'), None, []),
179- ('c2esp', SOURCEFORGE_URL ('cupsdriverkodak', '', 'c2esp([0-9]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
180+ ('c2esp', SOURCEFORGE_URL ('cupsdriverkodak', '', 'c2esp([0-9]+)' + EXT), None, []),
181 ('ca-certificates', DEBIAN, None, []),
182- ('cairo', ('https://cairographics.org/releases/', '>cairo-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+<'), ('https://cairographics.org/snapshots/', 'cairo-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), []),
183- ('cairomm', ('https://cairographics.org/releases/', 'cairomm-(1.12[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ('https://cairographics.org/releases/', 'cairomm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), []),
184- ('capnproto', ('https://capnproto.org/install.html', 'capnproto-c\+\+-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
185-# ('c-ares', ('http://c-ares.haxx.se/download/', 'c-ares-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
186+ ('cairo', ('https://cairographics.org/releases/', '>cairo-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+<'), ('https://cairographics.org/snapshots/', 'cairo-([0-9][0-9.]*)' + EXT), []),
187+ ('cairomm', ('https://cairographics.org/releases/', 'cairomm-(1.12[0-9.]*)' + EXT), ('https://cairographics.org/releases/', 'cairomm-([0-9][0-9.]*)' + EXT), []),
188+ ('capnproto', ('https://capnproto.org/install.html', 'capnproto-c\+\+-([0-9][0-9.]*)' + EXT), None, []),
189+# ('c-ares', ('http://c-ares.haxx.se/download/', 'c-ares-([0-9][0-9.]*)' + EXT), None, []),
190 ('caribou', GNOME_FTP_URL ('caribou'), None, ['gnome']),
191-# ('catfish', ('http://www.twotoasts.de/media/catfish/', 'catfish-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
192- ('cdparanoia', ('http://downloads.xiph.org/releases/cdparanoia/', 'cdparanoia-III-([0-9][0-9.]*).src.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
193- ('cdrdao', SOURCEFORGE_URL ('cdrdao', 'cdrdao/([0-9]\.[0-9.]+)', 'cdrdao-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
194+# ('catfish', ('http://www.twotoasts.de/media/catfish/', 'catfish-([0-9][0-9.]*)' + EXT), None, []),
195+ ('cdparanoia', ('http://downloads.xiph.org/releases/cdparanoia/', 'cdparanoia-III-([0-9][0-9.]*).src' + EXT), None, []),
196+ ('cdrdao', SOURCEFORGE_URL ('cdrdao', 'cdrdao/([0-9]\.[0-9.]+)', 'cdrdao-([0-9][0-9.]*)' + EXT), None, []),
197 ('cdrkit', DEBIAN, None, []), # Website is down but Debian is upstream anyway
198-# ('cdrkit', ('http://cdrkit.org/releases/', 'cdrkit-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
199+# ('cdrkit', ('http://cdrkit.org/releases/', 'cdrkit-([0-9][0-9.]*)' + EXT), None, []),
200 ('chardet', PYPI_URL ('chardet'), None, []),
201 # ('checkbox', UBUNTU, None, []),
202 # ('checkbox-ng', LAUNCHPAD_URL ('checkbox-ng'), None, []),
203@@ -141,36 +148,36 @@ ubuntu_package_info = [
204 ('cheese', GNOME_FTP_URL ('cheese'), GNOME_FTP_URL ('cheese'), ['gnome']),
205
206 ('chrome-gnome-shell', GNOME_FTP_URL ('chrome-gnome-shell'), None, ['gnome']),
207-# ('cln', ('ftp://ftpthep.physik.uni-mainz.de/pub/gnu/', 'cln-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
208-# ('cloog', ('http://www.bastoul.net/cloog/pages/download/', 'cloog-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
209-# ('cloog-ppl', ('http://www.bastoul.net/cloog/pages/download/', 'cloog-parma-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
210- ('clucene-core', SOURCEFORGE_URL ('clucene', 'clucene-core-stable', 'clucene-core-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
211+# ('cln', ('ftp://ftpthep.physik.uni-mainz.de/pub/gnu/', 'cln-([0-9][0-9.]*)' + EXT), None, []),
212+# ('cloog', ('http://www.bastoul.net/cloog/pages/download/', 'cloog-([0-9][0-9.]*)' + EXT), None, []),
213+# ('cloog-ppl', ('http://www.bastoul.net/cloog/pages/download/', 'cloog-parma-([0-9][0-9.]*)' + EXT), None, []),
214+ ('clucene-core', SOURCEFORGE_URL ('clucene', 'clucene-core-stable', 'clucene-core-([0-9][0-9.]*)' + EXT), None, []),
215 ('clutter-1.0', GNOME_FTP_URL ('clutter'), GNOME_FTP_URL ('clutter'), ['gnome']),
216 ('clutter-gst-3.0', GNOME_FTP_URL ('clutter-gst'), GNOME_FTP_URL ('clutter-gst'), ['gnome']),
217 ('clutter-gtk', GNOME_FTP_URL ('clutter-gtk'), GNOME_FTP_URL ('clutter-gtk'), ['gnome']),
218 # ('cmocka', ('https://cmocka.org/', 'cmocka ([0-9][0-9.]*)'), None, []),
219 ('cogl', GNOME_FTP_URL ('cogl'), None, ['gnome']),
220- ('colord', ('https://freedesktop.org/software/colord/releases/', 'colord-(1.4[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ('https://freedesktop.org/software/colord/releases/', 'colord-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), []),
221- ('colord-gtk', ('https://freedesktop.org/software/colord/releases/', 'colord-gtk-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
222+ ('colord', ('https://freedesktop.org/software/colord/releases/', 'colord-(1.4[0-9.]*)' + EXT), ('https://freedesktop.org/software/colord/releases/', 'colord-([0-9][0-9.]*)' + EXT), []),
223+ ('colord-gtk', ('https://freedesktop.org/software/colord/releases/', 'colord-gtk-([0-9][0-9.]*)' + EXT), None, []),
224 ('command-not-found', UBUNTU, None, []),
225 # ('configobj', PYPI_URL ('configobj'), None, []),
226- ('coreutils', ('https://ftp.gnu.org/gnu/coreutils/', 'coreutils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
227- ('cpio', ('https://ftp.gnu.org/gnu/cpio/', 'cpio-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
228+ ('coreutils', ('https://ftp.gnu.org/gnu/coreutils/', 'coreutils-([0-9][0-9.]*)' + EXT), None, []),
229+ ('cpio', ('https://ftp.gnu.org/gnu/cpio/', 'cpio-([0-9][0-9.]*)' + EXT), None, []),
230 # ('cppunit', LIBREOFFICE_URL ('cppunit'), None, []),
231- ('cracklib2', ('https://github.com/cracklib/cracklib/tags', 'archive/v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
232- ('crda', ('https://mirrors.edge.kernel.org/pub/software/network/crda/', 'crda-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
233+ ('cracklib2', GITHUB_URL ('cracklib', 'cracklib'), None, []),
234+ ('crda', ('https://mirrors.edge.kernel.org/pub/software/network/crda/', 'crda-([0-9][0-9.]*)' + EXT), None, []),
235 ('cron', ('https://ftp.isc.org/isc/cron/', 'cron_([0-9][0-9.]*).shar'), None, []),
236- ('cryptsetup', ('https://mirrors.edge.kernel.org/pub/linux/utils/cryptsetup/(v[0-9.]+)/', 'cryptsetup-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
237- ('cups-filters', ('http://www.openprinting.org/download/cups-filters/', 'cups-filters-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
238- ('cups', GITHUB_URL ('apple', 'cups', 'v([0-9][0-9.]*)'), None, []),
239- ('cups-pk-helper', ('http://freedesktop.org/software/cups-pk-helper/releases/', 'cups-pk-helper-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
240- ('curl', ('http://curl.haxx.se/download.html', 'curl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
241- ('cyrus-sasl2', ('https://github.com/cyrusimap/cyrus-sasl/tags', 'cyrus-sasl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
242+ ('cryptsetup', ('https://mirrors.edge.kernel.org/pub/linux/utils/cryptsetup/(v[0-9.]+)/', 'cryptsetup-([0-9][0-9.]*)' + EXT), None, []),
243+ ('cups-filters', ('http://www.openprinting.org/download/cups-filters/', 'cups-filters-([0-9][0-9.]*)' + EXT), None, []),
244+ ('cups', GITHUB_URL ('apple', 'cups'), None, []),
245+ ('cups-pk-helper', FDO_URL ('cups-pk-helper', 'cups-pk-helper'), None, []),
246+ ('curl', ('http://curl.haxx.se/download.html', 'curl-([0-9][0-9.]*)' + EXT), None, []),
247+ ('cyrus-sasl2', GITHUB_URL ('cyrusimap', 'cyrus-sasl'), None, []),
248 ('dasher', GNOME_FTP_URL ('dasher'), None, ['gnome']),
249- ('db5.3', ('http://www.oracle.com/technetwork/products/berkeleydb/downloads/index-082944.html', 'db-(5.3.[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
250- ('dbus-glib', ('https://dbus.freedesktop.org/releases/dbus-glib/', 'dbus-glib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
251- ('dbus', ('https://dbus.freedesktop.org/releases/dbus/', 'dbus-(1.[0-9]+[02468]+.[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ('http://dbus.freedesktop.org/releases/dbus/', 'dbus-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), []),
252- ('dbus-python', ('https://dbus.freedesktop.org/releases/dbus-python/', 'dbus-python-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
253+ ('db5.3', ('http://www.oracle.com/technetwork/products/berkeleydb/downloads/index-082944.html', 'db-(5.3.[0-9.]*)' + EXT), None, []),
254+ ('dbus-glib', FDO_URL ('dbus', 'dbus-glib'), None, []),
255+ ('dbus', FDO_URL ('dbus', 'dbus', '(1.[0-9]+[02468]+.[0-9.]*)'), FDO_URL ('dbus', 'dbus', '([0-9][0-9.]*)'), []),
256+ ('dbus-python', FDO_URL ('dbus', 'dbus-python'), None, ['python']),
257 ('dconf', GNOME_FTP_URL ('dconf', '0.36'), GNOME_FTP_URL ('dconf'), ['gnome']),
258 ('dconf-editor', GNOME_FTP_URL ('dconf-editor', GNOME_STABLE_SERIES), GNOME_FTP_URL ('dconf-editor'), ['gnome']),
259 ('debconf', DEBIAN, None, []),
260@@ -178,94 +185,94 @@ ubuntu_package_info = [
261 # ('debootstrap', DEBIAN, None, []),
262 ('dee', UBUNTU, None, []),
263 ('deja-dup', LAUNCHPAD_URL ('deja-dup'), None, []),
264- ('desktop-file-utils', ('https://freedesktop.org/software/desktop-file-utils/releases/', 'desktop-file-utils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
265+ ('desktop-file-utils', FDO_URL ('xdg', 'desktop-file-utils'), None, []),
266 ('devhelp', GNOME_FTP_URL ('devhelp'), GNOME_FTP_URL ('devhelp'), ['gnome']),
267 ('d-feet', GNOME_FTP_URL ('d-feet'), None, ['gnome']),
268 ('dia', GNOME_FTP_URL ('dia'), None, ['gnome']),
269 # ('dialer-app', UBUNTU, None, []),
270-# ('dialog', ('ftp://invisible-island.net/dialog/', 'dialog-([0-9][0-9.-]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
271+# ('dialog', ('ftp://invisible-island.net/dialog/', 'dialog-([0-9][0-9.-]*)' + EXT), None, []),
272 ('dictionaries-common', DEBIAN, None, []),
273 ('diffstat', DEBIAN, None, []), # FIXME: No versioned releases
274-# ('dirac', ('http://diracvideo.org/download/dirac-research/', 'dirac-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
275-# ('directfb', ('http://www.directfb.org/download/DirectFB/', 'DirectFB-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
276+# ('dirac', ('http://diracvideo.org/download/dirac-research/', 'dirac-([0-9][0-9.]*)' + EXT), None, []),
277+# ('directfb', ('http://www.directfb.org/download/DirectFB/', 'DirectFB-([0-9][0-9.]*)' + EXT), None, []),
278 # ('dirspec', LAUNCHPAD_URL ('dirspec'), None, []),
279 ('distro-info', DEBIAN, None, []),
280- ('dleyna-connector-dbus', ('https://01.org/dleyna/downloads', 'dleyna-connector-dbus-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
281- ('dleyna-core', ('https://01.org/dleyna/downloads', 'dleyna-core-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
282- ('dleyna-renderer', ('https://01.org/dleyna/downloads', 'dleyna-renderer-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
283- ('dleyna-server', ('https://01.org/dleyna/downloads', 'dleyna-server-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
284- ('djvulibre', SOURCEFORGE_URL ('djvu', 'DjVuLibre/([0-9.]+)', 'djvulibre-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
285- ('dmidecode', ('http://download.savannah.gnu.org/releases/dmidecode/', 'dmidecode-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
286+ ('dleyna-connector-dbus', ('https://01.org/dleyna/downloads', 'dleyna-connector-dbus-([0-9][0-9.]*)' + EXT), None, []),
287+ ('dleyna-core', ('https://01.org/dleyna/downloads', 'dleyna-core-([0-9][0-9.]*)' + EXT), None, []),
288+ ('dleyna-renderer', ('https://01.org/dleyna/downloads', 'dleyna-renderer-([0-9][0-9.]*)' + EXT), None, []),
289+ ('dleyna-server', ('https://01.org/dleyna/downloads', 'dleyna-server-([0-9][0-9.]*)' + EXT), None, []),
290+ ('djvulibre', SOURCEFORGE_URL ('djvu', 'DjVuLibre/([0-9.]+)', 'djvulibre-([0-9][0-9.]*)' + EXT), None, []),
291+ ('dmidecode', ('http://download.savannah.gnu.org/releases/dmidecode/', 'dmidecode-([0-9][0-9.]*)' + EXT), None, []),
292 ('dmz-cursor-theme', DEBIAN, None, []), # As far as I can tell Debian is doing the versioning for this
293- ('dnsmasq', ('http://www.thekelleys.org.uk/dnsmasq/', 'dnsmasq-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
294+ ('dnsmasq', ('http://www.thekelleys.org.uk/dnsmasq/', 'dnsmasq-([0-9][0-9.]*)' + EXT), None, []),
295 ('dns-root-data', DEBIAN, None, []),
296 ('doc-base', DEBIAN, None, []),
297-# ('dogtail', ('https://fedorahosted.org/released/dogtail/', 'dogtail-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
298-# ('docbook2x', SOURCEFORGE_URL ('docbook2x', 'docbook2x', 'docbook2X-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
299- ('dosfstools', GITHUB_URL ('dosfstools', 'dosfstools', 'v([0-9][0-9.]*)'), None, []),
300+# ('dogtail', ('https://fedorahosted.org/released/dogtail/', 'dogtail-([0-9][0-9.]*)' + EXT), None, []),
301+# ('docbook2x', SOURCEFORGE_URL ('docbook2x', 'docbook2x', 'docbook2X-([0-9][0-9.]*)' + EXT), None, []),
302+ ('dosfstools', GITHUB_URL ('dosfstools', 'dosfstools'), None, []),
303 # consider Debian as upstream, that project is unactive and its website down
304 ('dotconf', DEBIAN, None, []),
305-# ('double-conversion', GITHUB_URL ('google', 'double-conversion', 'v([0-9][0-9.]*)'), None, []),
306+# ('double-conversion', GITHUB_URL ('google', 'double-conversion'), None, []),
307 ('dpkg', DEBIAN, None, []),
308 # ('duplicity', LAUNCHPAD_URL ('duplicity'), None, []),
309- ('dvd+rw-tools', ('http://fy.chalmers.se/~appro/linux/DVD+RW/tools/', 'dvd[+]rw-tools-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
310+ ('dvd+rw-tools', ('http://fy.chalmers.se/~appro/linux/DVD+RW/tools/', 'dvd[+]rw-tools-([0-9][0-9.]*)' + EXT), None, []),
311 ('e2fsprogs', SOURCEFORGE_URL ('e2fsprogs', 'e2fsprogs', 'e2fsprogs/v([0-9][0-9.]+)'), None, []),
312 ('easytag', GNOME_FTP_URL ('easytag'), GNOME_FTP_URL ('easytag'), ['gnome']),
313 # ('ecryptfs-utils', LAUNCHPAD_URL ('ecryptfs', 'ecryptfs-utils'), None, []),
314- ('ed', ('https://ftp.gnu.org/gnu/ed/', 'ed-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
315- ('efibootmgr', GITHUB_URL ('rhinstaller', 'efibootmgr', '([0-9][a-zA-Z0-9.]*)'), None, []),
316- ('efivar', GITHUB_URL ('rhinstaller', 'efivar', '([0-9][a-zA-Z0-9.]*)'), None, []),
317+ ('ed', ('https://ftp.gnu.org/gnu/ed/', 'ed-([0-9][0-9.]*)' + EXT), None, []),
318+ ('efibootmgr', GITHUB_URL ('rhinstaller', 'efibootmgr'), None, []),
319+ ('efivar', GITHUB_URL ('rhinstaller', 'efivar'), None, []),
320 # ('ekiga', GNOME_FTP_URL ('ekiga'), None, ['gnome']),
321- ('elfutils', ('ftp://sourceware.org/pub/elfutils/', 'elfutils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
322+ ('elfutils', ('ftp://sourceware.org/pub/elfutils/', 'elfutils-([0-9][0-9.]*)' + EXT), None, []),
323 ('emacsen-common', DEBIAN, None, []),
324 ('empathy', GNOME_FTP_URL ('empathy'), None, ['gnome']),
325- ('enca', ('https://cihar.com/software/enca/', 'enca-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
326- ('enchant', ('http://www.abisource.com/downloads/enchant/1.6.0/', 'enchant-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
327- ('enchant-2', ('https://github.com/AbiWord/enchant/tags', 'v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
328- ('entrypoints', ('https://github.com/takluyver/entrypoints/tags', '([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
329+ ('enca', ('https://cihar.com/software/enca/', 'enca-([0-9][0-9.]*)' + EXT), None, []),
330+ ('enchant', ('http://www.abisource.com/downloads/enchant/1.6.0/', 'enchant-([0-9][0-9.]*)' + EXT), None, []),
331+ ('enchant-2', GITHUB_URL ('AbiWord', 'enchant'), None, []),
332+ ('entrypoints', GITHUB_URL ('takluyver', 'entrypoints'), None, []),
333 # ('enum34', PYPI_URL ('enum34'), None, []),
334 ('eog', GNOME_FTP_URL ('eog', GNOME_STABLE_SERIES), GNOME_FTP_URL ('eog'), ['gnome']),
335 ('eog-plugins', GNOME_FTP_URL ('eog-plugins'), GNOME_FTP_URL ('eog-plugins'), ['gnome']),
336 ('epiphany-browser', GNOME_FTP_URL ('epiphany', GNOME_STABLE_SERIES), GNOME_FTP_URL ('epiphany'), ['gnome']),
337- ('espeak-ng', GITHUB_URL ('espeak-ng', 'espeak-ng', '([0-9][0-9.]*)'), None, []),
338-# ('espa-nol', ('http://www.datsi.fi.upm.es/~coes/espell_leame.html', 'espa~nol-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
339-# ('ethtool', ('https://www.kernel.org/pub/software/network/ethtool/', 'ethtool-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
340+ ('espeak-ng', GITHUB_URL ('espeak-ng', 'espeak-ng'), None, []),
341+# ('espa-nol', ('http://www.datsi.fi.upm.es/~coes/espell_leame.html', 'espa~nol-([0-9][0-9.]*)' + EXT), None, []),
342+# ('ethtool', ('https://www.kernel.org/pub/software/network/ethtool/', 'ethtool-([0-9][0-9.]*)' + EXT), None, []),
343 ('evince', GNOME_FTP_URL ('evince', GNOME_STABLE_SERIES), GNOME_FTP_URL ('evince'), ['gnome']),
344 ('evolution-data-server', GNOME_FTP_URL ('evolution-data-server', GNOME_STABLE_SERIES), GNOME_FTP_URL ('evolution-data-server'), ['gnome']),
345 ('evolution', GNOME_FTP_URL ('evolution', GNOME_STABLE_SERIES), GNOME_FTP_URL ('evolution'), ['gnome']),
346 ('evolution-ews', GNOME_FTP_URL ('evolution-ews', GNOME_STABLE_SERIES), GNOME_FTP_URL ('evolution-ews'), ['gnome']),
347 ('example-content', UBUNTU, None, []),
348- ('exempi', ('https://gitlab.freedesktop.org/libopenraw/exempi/tags', 'tags/([0-9][0-9.]*)'), None, []),
349- ('exfat-utils', GITHUB_URL ('relan', 'exfat', 'v([0-9][0-9.]*)'), None, []),
350- ('exiv2', ('http://www.exiv2.org/download.html', 'exiv2-([0-9][0-9.]*)-linux.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
351- ('expat', SOURCEFORGE_URL ('expat', 'expat/([0-9.]+)', 'expat-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
352-# ('faad2', SOURCEFORGE_URL ('faac', 'faad2-src/faad2-([0-9.]+)', 'faad2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
353-# ('fakechroot', GITHUB_URL ('dex4er', 'fakechroot', '([0-9][a-zA-Z0-9.]*)'), None, []),
354+ ('exempi', FDO_URL ('libopenraw', 'exempi'), None, []),
355+ ('exfat-utils', GITHUB_URL ('relan', 'exfat'), None, []),
356+ ('exiv2', ('http://www.exiv2.org/download.html', 'exiv2-([0-9][0-9.]*)-linux' + EXT), None, []),
357+ ('expat', SOURCEFORGE_URL ('expat', 'expat/([0-9.]+)', 'expat-([0-9][0-9.]*)' + EXT), None, []),
358+# ('faad2', SOURCEFORGE_URL ('faac', 'faad2-src/faad2-([0-9.]+)', 'faad2-([0-9][0-9.]*)' + EXT), None, []),
359+# ('fakechroot', GITHUB_URL ('dex4er', 'fakechroot', None, '([0-9][a-zA-Z0-9.]*)'), None, []),
360 ('fakeroot', DEBIAN, None, []),
361-# ('feedparser', GITHUB_URL ('kurtmckee', 'feedparser', 'v([0-9][0-9.]*)'), None, []),
362- ('farstream-0.2', ('https://freedesktop.org/software/farstream/releases/farstream/', 'farstream-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['ubuntu-touch']),
363- ('fcitx', GITHUB_URL ('fcitx', 'fcitx', '([0-9][0-9.]*)'), None, []),
364-# ('fcitx-configtool', ('http://download.fcitx-im.org/fcitx-configtool/', 'fcitx-configtool-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
365-# ('fcitx-qt5', ('http://download.fcitx-im.org/fcitx-qt5/', 'fcitx-qt5-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
366- ('ffmpeg', ('https://ffmpeg.org/releases/', 'ffmpeg-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
367- ('fftw3', ('http://www.fftw.org/download.html', 'fftw-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
368- ('file', ('ftp://ftp.astron.com/pub/file/', 'file-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
369+# ('feedparser', GITHUB_URL ('kurtmckee', 'feedparser'), None, []),
370+ ('farstream-0.2', FDO_URL ('farstream', 'farstream'), None, ['ubuntu-touch']),
371+ ('fcitx', GITHUB_URL ('fcitx', 'fcitx'), None, []),
372+# ('fcitx-configtool', ('http://download.fcitx-im.org/fcitx-configtool/', 'fcitx-configtool-([0-9][0-9.]*)' + EXT), None, []),
373+# ('fcitx-qt5', ('http://download.fcitx-im.org/fcitx-qt5/', 'fcitx-qt5-([0-9][0-9.]*)' + EXT), None, []),
374+ ('ffmpeg', ('https://ffmpeg.org/releases/', 'ffmpeg-([0-9][0-9.]*)' + EXT), None, []),
375+ ('fftw3', ('http://www.fftw.org/download.html', 'fftw-([0-9][0-9.]*)' + EXT), None, []),
376+ ('file', ('ftp://ftp.astron.com/pub/file/', 'file-([0-9][0-9.]*)' + EXT), None, []),
377 ('file-roller', GNOME_FTP_URL ('file-roller', GNOME_STABLE_SERIES), GNOME_FTP_URL ('file-roller'), ['gnome']),
378-# ('findutils', ('http://ftp.gnu.org/pub/gnu/findutils/', 'findutils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ('http://alpha.gnu.org/gnu/findutils/', 'findutils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), []),
379+# ('findutils', ('http://ftp.gnu.org/pub/gnu/findutils/', 'findutils-([0-9][0-9.]*)' + EXT), ('http://alpha.gnu.org/gnu/findutils/', 'findutils-([0-9][0-9.]*)' + EXT), []),
380 ('firefox', ('http://archive.mozilla.org/pub/firefox/releases/', 'releases/([0-9][0-9.]*)/'), None, []),
381 ('five-or-more', GNOME_FTP_URL ('five-or-more'), GNOME_FTP_URL ('five-or-more'), ['gnome']),
382- ('flac', SOURCEFORGE_URL ('flac', 'flac-src/flac-([0-9.]+)-src', 'flac-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
383- ('flatpak', GITHUB_URL ('flatpak', 'flatpak', '([0-9][0-9.]*)'), None, []),
384-# ('flex', SOURCEFORGE_URL ('flex', '', 'flex-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
385-# ('flite', ('http://www.speech.cs.cmu.edu/flite/packed/flite-([0-9.]+)', 'flite-([0-9][0-9.]*)-release.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
386-# ('fluidsynth', SOURCEFORGE_URL ('fluidsynth', 'fluidsynth-([0-9.]+)', 'fluidsynth-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
387+ ('flac', SOURCEFORGE_URL ('flac', 'flac-src/flac-([0-9.]+)-src', 'flac-([0-9][0-9.]*)' + EXT), None, []),
388+ ('flatpak', GITHUB_URL ('flatpak', 'flatpak'), None, []),
389+# ('flex', SOURCEFORGE_URL ('flex', '', 'flex-([0-9][0-9.]*)' + EXT), None, []),
390+# ('flite', ('http://www.speech.cs.cmu.edu/flite/packed/flite-([0-9.]+)', 'flite-([0-9][0-9.]*)-release' + EXT), None, []),
391+# ('fluidsynth', SOURCEFORGE_URL ('fluidsynth', 'fluidsynth-([0-9.]+)', 'fluidsynth-([0-9][0-9.]*)' + EXT), None, []),
392 ('folks', GNOME_FTP_URL ('folks'), None, ['gnome']),
393- ('fontconfig', ('http://fontconfig.org/release/', 'fontconfig-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
394+ ('fontconfig', ('http://fontconfig.org/release/', 'fontconfig-([0-9][0-9.]*)' + EXT), None, []),
395 ('fonts-android', DEBIAN, None, []), # can't find upstream
396 ('fonts-beng', DEBIAN, None, []),
397 ('fonts-beng-extra', DEBIAN, None, []),
398 ('fonts-cantarell', GNOME_FTP_URL ('cantarell-fonts'), None, ['gnome']),
399- ('fonts-dejavu', ('https://dejavu-fonts.github.io/Download.html', 'dejavu-fonts-ttf-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
400+ ('fonts-dejavu', ('https://dejavu-fonts.github.io/Download.html', 'dejavu-fonts-ttf-([0-9][0-9.]*)' + EXT), None, []),
401 ('fonts-deva', DEBIAN, None, []),
402 ('fonts-deva-extra', DEBIAN, None, []),
403 ('fonts-freefont', DEBIAN, None, []),
404@@ -282,25 +289,25 @@ ubuntu_package_info = [
405 ('fonts-khmeros', DEBIAN, None, []), # can't find upstream
406 ('fonts-knda', DEBIAN, None, []),
407 ('fonts-lao', DEBIAN, None, []), # can't find upstream
408- ('fonts-liberation', ('https://releases.pagure.org/liberation-fonts/', 'liberation-fonts-(1[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
409- ('fonts-liberation2', ('https://releases.pagure.org/liberation-fonts/', 'liberation-fonts-(2[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
410- ('fonts-lohit-beng-assamese', ('https://releases.pagure.org/lohit/', 'lohit-assamese-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
411- ('fonts-lohit-beng-bengali', ('https://releases.pagure.org/lohit/', 'lohit-bengali-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
412- ('fonts-lohit-deva', ('https://releases.pagure.org/lohit/', 'lohit-devanagari-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
413- ('fonts-lohit-gujr', ('https://releases.pagure.org/lohit/', 'lohit-gujarati-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
414- ('fonts-lohit-guru', ('https://releases.pagure.org/lohit/', 'lohit-punjabi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
415- ('fonts-lohit-knda', ('https://releases.pagure.org/lohit/', 'lohit-kannada-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
416- ('fonts-lohit-mlym', ('https://releases.pagure.org/lohit/', 'lohit-malayalam-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
417- ('fonts-lohit-orya', ('https://releases.pagure.org/lohit/', 'lohit-odia-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
418- ('fonts-lohit-taml', ('https://releases.pagure.org/lohit/', 'lohit-tamil-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
419- ('fonts-lohit-taml-classical', ('https://releases.pagure.org/lohit/', 'lohit-tamil-classical-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
420- ('fonts-lohit-telu', ('https://releases.pagure.org/lohit/', 'lohit-telugu-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
421+ ('fonts-liberation', ('https://releases.pagure.org/liberation-fonts/', 'liberation-fonts-(1[0-9.]*)' + EXT), None, []),
422+ ('fonts-liberation2', ('https://releases.pagure.org/liberation-fonts/', 'liberation-fonts-(2[0-9.]*)' + EXT), None, []),
423+ ('fonts-lohit-beng-assamese', ('https://releases.pagure.org/lohit/', 'lohit-assamese-([0-9][0-9.]*)' + EXT), None, []),
424+ ('fonts-lohit-beng-bengali', ('https://releases.pagure.org/lohit/', 'lohit-bengali-([0-9][0-9.]*)' + EXT), None, []),
425+ ('fonts-lohit-deva', ('https://releases.pagure.org/lohit/', 'lohit-devanagari-([0-9][0-9.]*)' + EXT), None, []),
426+ ('fonts-lohit-gujr', ('https://releases.pagure.org/lohit/', 'lohit-gujarati-([0-9][0-9.]*)' + EXT), None, []),
427+ ('fonts-lohit-guru', ('https://releases.pagure.org/lohit/', 'lohit-punjabi-([0-9][0-9.]*)' + EXT), None, []),
428+ ('fonts-lohit-knda', ('https://releases.pagure.org/lohit/', 'lohit-kannada-([0-9][0-9.]*)' + EXT), None, []),
429+ ('fonts-lohit-mlym', ('https://releases.pagure.org/lohit/', 'lohit-malayalam-([0-9][0-9.]*)' + EXT), None, []),
430+ ('fonts-lohit-orya', ('https://releases.pagure.org/lohit/', 'lohit-odia-([0-9][0-9.]*)' + EXT), None, []),
431+ ('fonts-lohit-taml', ('https://releases.pagure.org/lohit/', 'lohit-tamil-([0-9][0-9.]*)' + EXT), None, []),
432+ ('fonts-lohit-taml-classical', ('https://releases.pagure.org/lohit/', 'lohit-tamil-classical-([0-9][0-9.]*)' + EXT), None, []),
433+ ('fonts-lohit-telu', ('https://releases.pagure.org/lohit/', 'lohit-telugu-([0-9][0-9.]*)' + EXT), None, []),
434 ('fonts-lklug-sinhala', DEBIAN, None, []),
435 ('fonts-mlym', DEBIAN, None, []),
436 ('fonts-nanum', DEBIAN, None, []), # can't find upstream
437 ('fonts-nakula', DEBIAN, None, []),
438 ('fonts-navilu', DEBIAN, None, []),
439- ('fonts-noto', GITHUB_URL ('googlei18n', 'noto-fonts', 'v([0-9][0-9.-]*[0-9])'), None, []),
440+ ('fonts-noto', GITHUB_URL ('googlei18n', 'noto-fonts', None, 'v([0-9][0-9.-]*[0-9])'), None, []),
441 ('fonts-noto-cjk', DEBIAN, None, []),
442 ('fonts-noto-color-emoji',DEBIAN, None, []),
443 ('fonts-orya', DEBIAN, None, []),
444@@ -324,7 +331,7 @@ ubuntu_package_info = [
445 ('fonts-smc-uroob', DEBIAN, None, []),
446 ('fonts-sil-abyssinica', DEBIAN, None, []),
447 ('fonts-sil-padauk', DEBIAN, None, []), # can't find upstream
448-# ('fonts-stix', SOURCEFORGE_URL ('stixfonts', '', 'STIXv([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
449+# ('fonts-stix', SOURCEFORGE_URL ('stixfonts', '', 'STIXv([0-9][0-9.]*)' + EXT), None, []),
450 ('fonts-takao', DEBIAN, None, []), # can't find upstream
451 ('fonts-taml', DEBIAN, None, []),
452 ('fonts-telu', DEBIAN, None, []),
453@@ -336,76 +343,76 @@ ubuntu_package_info = [
454 ('fonts-urw-base35', DEBIAN, None, []),
455 ('fonts-yrsa-rasa', DEBIAN, None, []),
456 ('foo2zjs', DEBIAN, None, []),
457-# ('foomatic-db-engine', ('http://www.openprinting.org/download/foomatic/', 'foomatic-db-engine-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
458- ('fprintd', ('https://gitlab.freedesktop.org/libfprint/fprintd/tags', 'fprintd-([0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ('https://gitlab.freedesktop.org/libfprint/fprintd/tags', 'fprintd-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), []),
459- ('foomatic-db', ('http://www.openprinting.org/download/foomatic/', 'foomatic-db-4.0-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
460-# ('foomatic-filters', ('http://www.openprinting.org/download/foomatic/', 'foomatic-filters-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
461+# ('foomatic-db-engine', ('http://www.openprinting.org/download/foomatic/', 'foomatic-db-engine-([0-9][0-9.]*)' + EXT), None, []),
462+ ('fprintd', FDO_URL ('libfprint', 'fprintd', '([0-9.]*)'), FDO_URL ('libfprint', 'fprintd', '([0-9][0-9.]*)'), []),
463+ ('foomatic-db', ('http://www.openprinting.org/download/foomatic/', 'foomatic-db-4.0-([0-9][0-9.]*)' + EXT), None, []),
464+# ('foomatic-filters', ('http://www.openprinting.org/download/foomatic/', 'foomatic-filters-([0-9][0-9.]*)' + EXT), None, []),
465 # ('four-in-a-row', GNOME_FTP_URL ('four-in-a-row'), None, ['gnome']),
466 # ('frame', LAUNCHPAD_URL ('frame'), None, []),
467- ('freerdp2', GITHUB_URL ('FreeRDP', 'FreeRDP', '([0-9][0-9.]*)'), None, []),
468- ('freetype', SOURCEFORGE_URL ('freetype', 'freetype2/([0-9.]+)', 'freetype-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
469+ ('freerdp2', GITHUB_URL ('FreeRDP', 'FreeRDP'), None, []),
470+ ('freetype', SOURCEFORGE_URL ('freetype', 'freetype2/([0-9.]+)', 'freetype-([0-9][0-9.]*)' + EXT), None, []),
471 ('friendly-recovery', UBUNTU, None, []),
472 ('frogr', GNOME_FTP_URL ('frogr'), None, ['gnome']),
473 # ('f-spot', GNOME_FTP_URL ('f-spot'), None, ['gnome']),
474- ('fuse', ('https://github.com/libfuse/libfuse/releases', 'fuse-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
475- ('fuse-exfat', ('https://github.com/relan/exfat/releases', 'fuse-exfat-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
476- ('fwupd', GITHUB_URL ('hughsie', 'fwupd', '([0-9][0-9.]*)'), None, []),
477+ ('fuse', GITHUB_URL ('libfuse', 'libfuse', 'fuse'), None, []),
478+ ('fuse-exfat', GITHUB_URL ('relan', 'exfat', 'fuse-exfat'), None, []),
479+ ('fwupd', GITHUB_URL ('hughsie', 'fwupd'), None, []),
480 ('fwupd-signed', UBUNTU, None, []),
481- ('fwupdate', GITHUB_URL ('rhinstaller', 'fwupdate', '([0-9][0-9.]*)'), None, []),
482- ('game-music-emu', ('https://bitbucket.org/mpyne/game-music-emu/downloads', 'game-music-emu-([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
483+ ('fwupdate', GITHUB_URL ('rhinstaller', 'fwupdate'), None, []),
484+ ('game-music-emu', ('https://bitbucket.org/mpyne/game-music-emu/downloads', 'game-music-emu-([0-9][0-9.]+)' + EXT), None, []),
485 ('gcab', GNOME_FTP_URL ('gcab'), None, ['gnome']),
486-# ('gcc-6', ('https://ftp.gnu.org/gnu/gcc/gcc-(6.[0-9.]+)/', 'gcc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
487- ('gcc-7', ('https://ftp.gnu.org/gnu/gcc/gcc-(7.[0-9.]+)/', 'gcc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
488- ('gcc-8', ('https://ftp.gnu.org/gnu/gcc/gcc-(8.[0-9.]+)/', 'gcc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
489- ('gcc-10', ('https://ftp.gnu.org/gnu/gcc/gcc-(10.[0-9.]+)/', 'gcc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
490+# ('gcc-6', ('https://ftp.gnu.org/gnu/gcc/gcc-(6.[0-9.]+)/', 'gcc-([0-9][0-9.]*)' + EXT), None, []),
491+ ('gcc-7', ('https://ftp.gnu.org/gnu/gcc/gcc-(7.[0-9.]+)/', 'gcc-([0-9][0-9.]*)' + EXT), None, []),
492+ ('gcc-8', ('https://ftp.gnu.org/gnu/gcc/gcc-(8.[0-9.]+)/', 'gcc-([0-9][0-9.]*)' + EXT), None, []),
493+ ('gcc-10', ('https://ftp.gnu.org/gnu/gcc/gcc-(10.[0-9.]+)/', 'gcc-([0-9][0-9.]*)' + EXT), None, []),
494 ('gcc-defaults', DEBIAN, None, []),
495 ('gconf', GNOME_FTP_URL ('GConf'), None, ['gnome']),
496 # ('gconfmm2.6', GNOME_FTP_URL ('gconfmm'), None, ['gnome']),
497 ('gcr', GNOME_FTP_URL ('gcr', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gcr'), ['gnome']),
498- ('gdb', ('https://ftp.gnu.org/gnu/gdb/', 'gdb-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
499- ('gdbm', ('https://ftp.gnu.org/gnu/gdbm/', 'gdbm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
500+ ('gdb', ('https://ftp.gnu.org/gnu/gdb/', 'gdb-([0-9][0-9.]*)' + EXT), None, []),
501+ ('gdbm', ('https://ftp.gnu.org/gnu/gdbm/', 'gdbm-([0-9][0-9.]*)' + EXT), None, []),
502 # ('gdebi', DEBIAN, None, []),
503- ('gdisk', SOURCEFORGE_URL ('gptfdisk', 'gptfdisk/([0-9.]+)', 'gptfdisk-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
504+ ('gdisk', SOURCEFORGE_URL ('gptfdisk', 'gptfdisk/([0-9.]+)', 'gptfdisk-([0-9][0-9.]*)' + EXT), None, []),
505 ('gdk-pixbuf', GNOME_FTP_URL ('gdk-pixbuf'), GNOME_FTP_URL ('gdk-pixbuf'), ['gnome']),
506 # ('gdl', GNOME_FTP_URL ('gdl'), None, ['gnome']),
507 ('gdm3', GNOME_FTP_URL ('gdm', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gdm'), ['gnome']),
508-# ('gdome2', ('http://gdome2.cs.unibo.it/tarball', 'gdome2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
509+# ('gdome2', ('http://gdome2.cs.unibo.it/tarball', 'gdome2-([0-9][0-9.]*)' + EXT), None, []),
510 ('geary', GNOME_FTP_URL ('geary', GNOME_STABLE_SERIES), GNOME_FTP_URL ('geary'), ['gnome']),
511 ('gedit', GNOME_FTP_URL ('gedit', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gedit'), ['gnome']),
512 ('gedit-plugins', GNOME_FTP_URL ('gedit-plugins', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gedit-plugins'), ['gnome']),
513- ('gegl', ('https://download.gimp.org/pub/gegl/([0-9.]+)/', 'gegl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
514+ ('gegl', ('https://download.gimp.org/pub/gegl/([0-9.]+)/', 'gegl-([0-9][0-9.]*)' + EXT), None, ['gnome']),
515 ('genius', GNOME_FTP_URL ('genius'), None, ['gnome']),
516-# ('geoclue', ('https://freedesktop.org/software/geoclue/releases/(1.[0-9.])', 'geoclue-(1.[0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
517- ('geoclue-2.0', ('https://gitlab.freedesktop.org/geoclue/geoclue/-/tags', 'tags/([0-9][0-9.]*)'), None, ['gnome']),
518+# ('geoclue', ('https://freedesktop.org/software/geoclue/releases/(1.[0-9.])', 'geoclue-(1.[0-9][0-9.]*)' + EXT), None, []),
519+ ('geoclue-2.0', FDO_URL ('geoclue', 'geoclue'), None, ['gnome']),
520 ('geocode-glib', GNOME_FTP_URL ('geocode-glib'), GNOME_FTP_URL ('geocode-glib'), ['gnome']),
521 ('geoip-database', DEBIAN, None, []),
522- ('geoip', ('https://github.com/maxmind/geoip-api-c/releases', 'tag/v([0-9][0-9.]*)'), None, []),
523+ ('geoip', GITHUB_URL ('maxmind', 'geoip-api-c'), None, []),
524 ('geonames', UBUNTU, None, []),
525- ('gettext', ('https://ftp.gnu.org/gnu/gettext/', 'gettext-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
526+ ('gettext', ('https://ftp.gnu.org/gnu/gettext/', 'gettext-([0-9][0-9.]*)' + EXT), None, []),
527 ('gexiv2', GNOME_FTP_URL ('gexiv2'), None, ['gnome']),
528-# ('gflags', ('https://github.com/gflags/gflags/releases', 'archive/v([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
529+# ('gflags', GITHUB_URL ('gflags', 'gflags'), None, []),
530 ('ghex', GNOME_FTP_URL ('ghex'), GNOME_FTP_URL ('ghex'), ['gnome']),
531 ('gfbgraph', GNOME_FTP_URL ('gfbgraph'), None, ['gnome']),
532- ('ghostscript', ('https://www.ghostscript.com/download/gsdnld.html', 'ghostscript-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+') , None, []),
533-# ('giblib', ('http://linuxbrit.co.uk/downloads/', 'giblib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
534- ('giflib', SOURCEFORGE_URL ('giflib', 'giflib-4.x/giflib-([0-9.]+)', 'giflib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
535-# ('gigolo', ('http://www.uvena.de/gigolo/download.html', 'gigolo-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
536- ('gimp', ('https://ftp.gtk.org/pub/gimp/v2.10', 'gimp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
537+ ('ghostscript', ('https://www.ghostscript.com/download/gsdnld.html', 'ghostscript-([0-9][0-9.]*)' + EXT) , None, []),
538+# ('giblib', ('http://linuxbrit.co.uk/downloads/', 'giblib-([0-9][0-9.]*)' + EXT), None, []),
539+ ('giflib', SOURCEFORGE_URL ('giflib', 'giflib-4.x/giflib-([0-9.]+)', 'giflib-([0-9][0-9.]*)' + EXT), None, []),
540+# ('gigolo', ('http://www.uvena.de/gigolo/download.html', 'gigolo-([0-9][0-9.]*)' + EXT), None, []),
541+ ('gimp', ('https://ftp.gtk.org/pub/gimp/v2.10', 'gimp-([0-9][0-9.]*)' + EXT), None, ['gnome']),
542 # ('girl', GNOME_FTP_URL ('girl'), None, ['gnome']),
543 ('gitg', GNOME_FTP_URL ('gitg', '3.32'), GNOME_FTP_URL ('gitg'), ['gnome']),
544 ('gjs', GNOME_FTP_URL ('gjs'), GNOME_FTP_URL ('gjs'), ['gnome']),
545-# ('gksu', ('http://people.debian.org/~kov/gksu/', '"gksu-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
546+# ('gksu', ('http://people.debian.org/~kov/gksu/', '"gksu-([0-9][0-9.]*)' + EXT), None, []),
547 ('glade', GNOME_FTP_URL ('glade'), None, ['gnome']),
548-# ('glew', SOURCEFORGE_URL ('glew', 'glew/([0-9.]+)', 'glew-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
549+# ('glew', SOURCEFORGE_URL ('glew', 'glew/([0-9.]+)', 'glew-([0-9][0-9.]*)' + EXT), None, []),
550 ('glib2.0', GNOME_FTP_URL ('glib'), None, ['gnome']),
551- ('glibc', ('https://ftp.gnu.org/gnu/glibc/', 'glibc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
552+ ('glibc', ('https://ftp.gnu.org/gnu/glibc/', 'glibc-([0-9][0-9.]*)' + EXT), None, []),
553 ('glibmm2.4', GNOME_FTP_URL ('glibmm'), None, ['gnome']),
554 ('glib-networking', GNOME_FTP_URL ('glib-networking'), None, ['gnome']),
555 ('glom', GNOME_FTP_URL ('glom', '([\d\.]+[02468])'), GNOME_FTP_URL ('glom'), ['gnome']),
556-# ('gmetadom', SOURCEFORGE_URL ('gmetadom', 'gmetadom/([0-9.]+)', 'gmetadom-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
557+# ('gmetadom', SOURCEFORGE_URL ('gmetadom', 'gmetadom/([0-9.]+)', 'gmetadom-([0-9][0-9.]*)' + EXT), None, []),
558 ('gmime', GNOME_FTP_URL ('gmime'), None, ['gnome']),
559- ('gmp', ('https://gmplib.org/', 'gmp-([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
560-# ('gmusicbrowser', ('http://gmusicbrowser.org/download/', 'gmusicbrowser-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
561+ ('gmp', ('https://gmplib.org/', 'gmp-([0-9][0-9.]+)' + EXT), None, []),
562+# ('gmusicbrowser', ('http://gmusicbrowser.org/download/', 'gmusicbrowser-([0-9][0-9.]*)' + EXT), None, []),
563 ('gnome-2048', GNOME_FTP_URL ('gnome-2048'), GNOME_FTP_URL ('gnome-2048'), ['gnome']),
564 ('gnome-applets', GNOME_FTP_URL ('gnome-applets'), None, ['gnome']),
565 # ('gnome-audio', GNOME_FTP_URL ('gnome-audio'), None, ['gnome']),
566@@ -487,36 +494,36 @@ ubuntu_package_info = [
567 ('gnome-video-effects', GNOME_FTP_URL ('gnome-video-effects'), None, ['gnome']),
568 ('gnome-weather', GNOME_FTP_URL ('gnome-weather'), GNOME_FTP_URL ('gnome-weather'), ['gnome']),
569 # ('gnote', GNOME_FTP_URL ('gnote'), None, ['gnome']),
570-# ('gnuchess', ('https://ftp.gnu.org/gnu/chess/', 'gnuchess-([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
571+# ('gnuchess', ('https://ftp.gnu.org/gnu/chess/', 'gnuchess-([0-9][0-9a-zA-Z.]*)' + EXT), None, []),
572 # ('gnuchess-book', ('https://ftp.gnu.org/gnu/chess/', 'book_([0-9][0-9a-zA-Z.]*).pgn.gz'), None, []),
573 ('gnumeric', GNOME_FTP_URL ('gnumeric'), None, ['gnome']),
574- ('gnupg2', ('https://gnupg.org/ftp/gcrypt/gnupg/', 'gnupg-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
575-# ('gnupginterface', SOURCEFORGE_URL ('py-gnupg', 'GnuPGInterface/([0-9.]+)', 'GnuPGInterface-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
576- ('gnutls28', ('https://gnupg.org/ftp/gcrypt/gnutls/v3.(\d+)', 'gnutls-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
577+ ('gnupg2', ('https://gnupg.org/ftp/gcrypt/gnupg/', 'gnupg-([0-9][0-9.]*)' + EXT), None, []),
578+# ('gnupginterface', SOURCEFORGE_URL ('py-gnupg', 'GnuPGInterface/([0-9.]+)', 'GnuPGInterface-([0-9][0-9.]*)' + EXT), None, []),
579+ ('gnutls28', ('https://gnupg.org/ftp/gcrypt/gnutls/v3.(\d+)', 'gnutls-([0-9][0-9.]*)' + EXT), None, []),
580 ('gobject-introspection', GNOME_FTP_URL ('gobject-introspection'), None, ['gnome']),
581 ('goffice', GNOME_FTP_URL ('goffice'), None, ['gnome']),
582 # ('goocanvas-2.0', GNOME_FTP_URL ('goocanvas'), None, ['gnome']),
583 # ('goocanvasmm-2.0', GNOME_FTP_URL ('goocanvasmm'), None, ['gnome']),
584-# ('google-glog', ('https://github.com/google/glog/releases', 'archive/v([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
585-# ('golang-1.7', ('https://golang.org/dl/', 'go(1.7.[0-9][0-9.]*).src.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
586+# ('google-glog', GITHUB_URL ('google', 'glog'), None, []),
587+# ('golang-1.7', ('https://golang.org/dl/', 'go(1.7.[0-9][0-9.]*).src' + EXT), None, []),
588 ('gom', GNOME_FTP_URL ('gom'), None, ['gnome']),
589- ('gpgme1.0', ('https://gnupg.org/ftp/gcrypt/gpgme/', 'gpgme-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
590-# ('gpicview', SOURCEFORGE_URL ('lxde', 'GPicView%20%28image%20Viewer%29/GpicView%20([0-9.]+)', 'gpicview-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
591- ('gpm', ('http://www.nico.schottelius.org/software/gpm/archives/', 'gpm-(1.20[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ('http://www.nico.schottelius.org/software/gpm/archives/', 'gpm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), []),
592-# ('gpsd', ('http://download-mirror.savannah.gnu.org/releases/gpsd/', 'gpsd-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+') , None, []),
593+ ('gpgme1.0', ('https://gnupg.org/ftp/gcrypt/gpgme/', 'gpgme-([0-9][0-9.]*)' + EXT), None, []),
594+# ('gpicview', SOURCEFORGE_URL ('lxde', 'GPicView%20%28image%20Viewer%29/GpicView%20([0-9.]+)', 'gpicview-([0-9][0-9.]*)' + EXT), None, []),
595+ ('gpm', ('http://www.nico.schottelius.org/software/gpm/archives/', 'gpm-(1.20[0-9.]*)' + EXT), ('http://www.nico.schottelius.org/software/gpm/archives/', 'gpm-([0-9][0-9.]*)' + EXT), []),
596+# ('gpsd', ('http://download-mirror.savannah.gnu.org/releases/gpsd/', 'gpsd-([0-9][0-9.]*)' + EXT) , None, []),
597 # ('grail', LAUNCHPAD_URL ('grail'), None, []),
598-# ('grantlee', ('http://downloads.grantlee.org/', 'grantlee-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
599- ('graphene', ('https://github.com/ebassi/graphene/releases', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
600- ('graphite2', GITHUB_URL ('silnrsi', 'graphite', '([0-9][0-9.]*)'), None, []),
601+# ('grantlee', ('http://downloads.grantlee.org/', 'grantlee-([0-9][0-9.]*)' + EXT), None, []),
602+ ('graphene', GITHUB_URL ('ebassi', 'graphene'), None, []),
603+ ('graphite2', GITHUB_URL ('silnrsi', 'graphite'), None, []),
604 ('grilo', GNOME_FTP_URL ('grilo'), None, ['gnome']),
605 ('grilo-plugins', GNOME_FTP_URL ('grilo-plugins'), None, ['gnome']),
606- ('groff', ('https://ftp.gnu.org/gnu/groff/', 'groff-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
607- ('grub2', ('https://ftp.gnu.org/gnu/grub/', 'grub-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
608+ ('groff', ('https://ftp.gnu.org/gnu/groff/', 'groff-([0-9][0-9.]*)' + EXT), None, []),
609+ ('grub2', ('https://ftp.gnu.org/gnu/grub/', 'grub-([0-9][0-9.]*)' + EXT), None, []),
610 ('grub-gfxpayload-lists', UBUNTU, None, []),
611 ('gsettings-desktop-schemas', GNOME_FTP_URL ('gsettings-desktop-schemas', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gsettings-desktop-schemas'), ['gnome']),
612 ('gsettings-ubuntu-touch-schemas', UBUNTU, None, []),
613- ('gsfonts', SOURCEFORGE_URL ('gs-fonts', 'gs-fonts', 'ghostscript-fonts-std-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
614-# ('gsl', ('https://ftp.gnu.org/gnu/gsl/', 'gsl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
615+ ('gsfonts', SOURCEFORGE_URL ('gs-fonts', 'gs-fonts', 'ghostscript-fonts-std-([0-9][0-9.]*)' + EXT), None, []),
616+# ('gsl', ('https://ftp.gnu.org/gnu/gsl/', 'gsl-([0-9][0-9.]*)' + EXT), None, []),
617 ('gsound', GNOME_FTP_URL ('gsound'), None, ['gnome']),
618 ('gspell', GNOME_FTP_URL ('gspell'), None, ['gnome']),
619 ('gssdp', GNOME_FTP_URL ('gssdp'), None, ['gnome']),
620@@ -526,7 +533,7 @@ ubuntu_package_info = [
621 ('gstreamer1.0', GSTREAMER_URL ('gstreamer', GST_STABLE_SERIES), GSTREAMER_URL ('gstreamer'), []),
622 # ('gstreamermm', GNOME_FTP_URL ('gstreamermm'), None, ['gnome']),
623 # ('gtetrinet', GNOME_FTP_URL ('gtetrinet'), None, ['gnome']),
624-# ('googletest', GITHUB_URL ('google', 'googletest', 'release-([0-9][0-9.]*)'), None, []),
625+# ('googletest', GITHUB_URL ('google', 'googletest', 'release'), None, []),
626 ('gthumb', GNOME_FTP_URL ('gthumb'), None, ['gnome']),
627 # ('gtk2-engines', GNOME_FTP_URL ('gtk-engines', '2.20'), None, ['gnome']),
628 ('gtk2-engines-murrine', GNOME_FTP_URL ('murrine'), None, ['gnome']),
629@@ -534,55 +541,55 @@ ubuntu_package_info = [
630 ('gtk+3.0', GNOME_FTP_URL ('gtk+', '3.24'), None, ['gnome']),
631 ('gtk+4.0', GNOME_FTP_URL ('gtk+'), None, ['gnome']),
632 # ('gtk-doc', GNOME_FTP_URL ('gtk-doc'), None, ['gnome']),
633-# ('gtkmathview', ('http://helm.cs.unibo.it/mml-widget/sources/', 'gtkmathview-([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
634+# ('gtkmathview', ('http://helm.cs.unibo.it/mml-widget/sources/', 'gtkmathview-([0-9][0-9a-zA-Z.]*)' + EXT), None, []),
635 ('gtkmm3.0', GNOME_FTP_URL ('gtkmm', '3.22'), None, ['gnome']),
636 ('gtkmm4.0', GNOME_FTP_URL ('gtkmm'), None, ['gnome']),
637 ('gtk-sharp2', GNOME_FTP_URL ('gtk-sharp', '2.12'), GNOME_FTP_URL ('gtk-sharp'), ['gnome']),
638 ('gtksourceview3', GNOME_FTP_URL ('gtksourceview', '(3.2[0-9]+)'), None, ['gnome']),
639 ('gtksourceview4', GNOME_FTP_URL ('gtksourceview'), None, ['gnome']),
640-# ('gtkspell3', SOURCEFORGE_URL ('gtkspell', '', 'gtkspell3-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
641+# ('gtkspell3', SOURCEFORGE_URL ('gtkspell', '', 'gtkspell3-([0-9][0-9.]*)' + EXT), None, []),
642 # ('gtk-vnc', GNOME_FTP_URL ('gtk-vnc'), None, ['gnome']),
643 # ('gtranslator', GNOME_FTP_URL ('gtranslator'), None, ['gnome']),
644 ('gucharmap', ('https://gitlab.gnome.org/GNOME/gucharmap/-/tags', 'Version ([0-9][0-9.]*)'), None, ['gnome']),
645- ('guile-2.2', ('https://ftp.gnu.org/gnu/guile/', 'guile-(2.2[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
646+ ('guile-2.2', ('https://ftp.gnu.org/gnu/guile/', 'guile-(2.2[0-9.]*)' + EXT), None, []),
647 ('gupnp', GNOME_FTP_URL ('gupnp'), None, ['gnome']),
648 ('gupnp-av', GNOME_FTP_URL ('gupnp-av'), None, ['gnome']),
649 ('gupnp-dlna', GNOME_FTP_URL ('gupnp-dlna'), None, ['gnome']),
650 ('gupnp-igd', GNOME_FTP_URL ('gupnp-igd'), None, ['gnome']),
651- ('gutenprint', SOURCEFORGE_URL ('gimp-print', 'gutenprint-([0-9.]+)', 'gutenprint-([0-9][0-9.]*(-pre[0-9])?).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
652-# ('guvcview', SOURCEFORGE_URL ('guvcview', 'source', 'guvcview-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
653+ ('gutenprint', SOURCEFORGE_URL ('gimp-print', 'gutenprint-([0-9.]+)', 'gutenprint-([0-9][0-9.]*(-pre[0-9])?)' + EXT), None, []),
654+# ('guvcview', SOURCEFORGE_URL ('guvcview', 'source', 'guvcview-src-([0-9][0-9.]*)' + EXT), None, []),
655 ('gvfs', GNOME_FTP_URL ('gvfs', '1.46'), GNOME_FTP_URL ('gvfs'), ['gnome']),
656 # ('hamster-applet', GNOME_FTP_URL ('hamster-applet'), None, ['gnome']),
657-# ('hardinfo', ('http://developer.berlios.de/project/showfiles.php?group_id=5897', 'hardinfo-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
658- ('harfbuzz', ('https://freedesktop.org/software/harfbuzz/release/', 'harfbuzz-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
659- ('hdparm', SOURCEFORGE_URL ('hdparm', 'hdparm', 'hdparm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
660- ('heimdal', ('https://github.com/heimdal/heimdal/tags', 'heimdal-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
661- ('hicolor-icon-theme', ('https://icon-theme.freedesktop.org/releases/', 'hicolor-icon-theme-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
662+# ('hardinfo', ('http://developer.berlios.de/project/showfiles.php?group_id=5897', 'hardinfo-([0-9][0-9.]*)' + EXT), None, []),
663+ ('harfbuzz', GITHUB_URL ('harfbuzz', 'harfbuzz'), None, []),
664+ ('hdparm', SOURCEFORGE_URL ('hdparm', 'hdparm', 'hdparm-([0-9][0-9.]*)' + EXT), None, []),
665+ ('heimdal', GITHUB_URL ('heimdal', 'heimdal'), None, []),
666+ ('hicolor-icon-theme', FDO_URL ('xdg', 'default-icon-theme'), None, []),
667 ('hitori', GNOME_FTP_URL ('hitori'), GNOME_FTP_URL ('hitori'), ['gnome']),
668- ('hplip', SOURCEFORGE_URL ('hplip', 'hplip/([0-9.]+)', 'hplip-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
669-# ('hspell', ('http://hspell.ivrix.org.il/download.html', 'hspell-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
670-# ('html5lib', ('https://github.com/html5lib/html5lib-python/releases', 'archive/([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
671+ ('hplip', SOURCEFORGE_URL ('hplip', 'hplip/([0-9.]+)', 'hplip-([0-9][0-9.]*)' + EXT), None, []),
672+# ('hspell', ('http://hspell.ivrix.org.il/download.html', 'hspell-([0-9][0-9.]*)' + EXT), None, []),
673+# ('html5lib', GITHUB_URL ('html5lib', 'html5lib-python'), None, ['python']),
674 ('humanity-icon-theme', UBUNTU, None, []),
675- ('hunspell', SOURCEFORGE_URL ('hunspell', 'Hunspell/([0-9.]+)', 'hunspell-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
676+ ('hunspell', SOURCEFORGE_URL ('hunspell', 'Hunspell/([0-9.]+)', 'hunspell-([0-9][0-9.]*)' + EXT), None, []),
677 # ('hunspell-ar', DEBIAN, None, []),
678-# ('hunspell-ca', ('https://github.com/Softcatala/catalan-dict-tools/releases', 'ca.([0-9][0-9.]*)-hunspell.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
679+# ('hunspell-ca', GITHUB_URL ('Softcatala', 'catalan-dict-tools'), None, []),
680 # ('hunspell-en-us', DEBIAN, None, []),
681-# ('hunspell-fr', ('http://www.dicollecte.org/download.php?prj=fr', 'hunspell-french-dictionaries-v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
682-# ('hwdata', ('https://fedorahosted.org/releases/h/w/hwdata/', 'hwdata-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
683- ('hyphen', SOURCEFORGE_URL ('hunspell', 'Hyphen/([0-9.]+)', 'hyphen-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
684+# ('hunspell-fr', ('http://www.dicollecte.org/download.php?prj=fr', 'hunspell-french-dictionaries-v([0-9][0-9.]*)' + EXT), None, []),
685+# ('hwdata', ('https://fedorahosted.org/releases/h/w/hwdata/', 'hwdata-([0-9][0-9.]*)' + EXT), None, []),
686+ ('hyphen', SOURCEFORGE_URL ('hunspell', 'Hyphen/([0-9.]+)', 'hyphen-([0-9][0-9.]*)' + EXT), None, []),
687 ('iagno', GNOME_FTP_URL ('iagno'), GNOME_FTP_URL ('iagno'), ['gnome']),
688- ('ibus', GITHUB_URL ('ibus', 'ibus', '([0-9][0-9.]*)'), None, []),
689- ('ibus-table', GITHUB_URL ('kaio', 'ibus-table', '([0-9][0-9.]*)'), None, []),
690- ('icu', ('http://download.icu-project.org/files/icu4c/([0-9.]+)/', 'icu4c-([0-9][0-9_]*)-src.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
691- ('iio-sensor-proxy', GITHUB_URL ('hadess', 'iio-sensor-proxy', '([0-9][0-9.]*)'), None, []),
692+ ('ibus', GITHUB_URL ('ibus', 'ibus'), None, []),
693+ ('ibus-table', GITHUB_URL ('kaio', 'ibus-table'), None, []),
694+ ('icu', ('http://download.icu-project.org/files/icu4c/([0-9.]+)/', 'icu4c-([0-9][0-9_]*)-src' + EXT), None, []),
695+ ('iio-sensor-proxy', GITHUB_URL ('hadess', 'iio-sensor-proxy'), None, []),
696 # ('igaelic', DEBIAN, None, []),
697-# ('igerman98', ('http://www.j3e.de/ispell/igerman98/dict/', 'igerman98-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
698+# ('igerman98', ('http://www.j3e.de/ispell/igerman98/dict/', 'igerman98-([0-9][0-9.]*)' + EXT), None, []),
699 # ('ido-gtk2', LAUNCHPAD_URL ('indicators-gtk2', 'ido'), None, []),
700 ('ifupdown', DEBIAN, None, []),
701- ('ilmbase', ('http://www.openexr.com/downloads.html', 'ilmbase-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
702- ('isl', ('http://isl.gforge.inria.fr/', 'isl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
703- ('ijs', ('http://www.openprinting.org/download/ijs/download/', 'ijs-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
704- ('imagemagick', ('https://www.imagemagick.org/download/', 'ImageMagick-([0-9][0-9.-]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
705+ ('ilmbase', ('http://www.openexr.com/downloads.html', 'ilmbase-([0-9][0-9.]*)' + EXT), None, []),
706+ ('isl', ('http://isl.gforge.inria.fr/', 'isl-([0-9][0-9.]*)' + EXT), None, []),
707+ ('ijs', ('http://www.openprinting.org/download/ijs/download/', 'ijs-([0-9][0-9.]*)' + EXT), None, []),
708+ ('imagemagick', ('https://www.imagemagick.org/download/', 'ImageMagick-([0-9][0-9.-]*)' + EXT), None, []),
709 ('im-config', DEBIAN, None, []),
710 ('indicator-bluetooth', UBUNTU, None, ['unity']),
711 ('indicator-datetime', UBUNTU, None, ['unity']),
712@@ -593,143 +600,143 @@ ubuntu_package_info = [
713 ('indicator-sound', UBUNTU, None, ['unity']),
714 ('initramfs-tools', DEBIAN, None, []),
715 ('init-system-helpers', DEBIAN, None, []),
716- ('inkscape', ('https://launchpad.net/inkscape/+download/', 'inkscape-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
717-# ('insserv', ('http://ftp.suse.com/pub/projects/init/', 'insserv-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
718- ('intel-compute-runtime', ('https://github.com/intel/compute-runtime/tags', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
719- ('intel-gmmlib', ('https://github.com/intel/gmmlib/tags', 'intel-gmmlib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
720- ('intel-gpu-tools', ('https://xorg.freedesktop.org/releases/individual/app/', 'intel-gpu-tools-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
721- ('intel-media-driver', ('https://github.com/intel/media-driver/tags', 'intel-media-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
722- ('intel-processor-trace', ('https://github.com/01org/processor-trace/tags', 'v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
723+ ('inkscape', ('https://launchpad.net/inkscape/+download/', 'inkscape-([0-9][0-9.]*)' + EXT), None, ['gnome']),
724+# ('insserv', ('http://ftp.suse.com/pub/projects/init/', 'insserv-([0-9][0-9.]*)' + EXT), None, []),
725+ ('intel-compute-runtime', GITHUB_URL ('intel', 'compute-runtime'), None, ['xorg']),
726+ ('intel-gmmlib', GITHUB_URL ('intel', 'gmmlib', 'intel-gmmlib'), None, ['xorg']),
727+ ('intel-gpu-tools', ('https://xorg.freedesktop.org/releases/individual/app/', 'intel-gpu-tools-([0-9][0-9.]*)' + EXT), None, ['xorg']),
728+ ('intel-media-driver', GITHUB_URL ('intel', 'media-driver'), None, ['xorg']),
729+ ('intel-processor-trace', GITHUB_URL ('01org', 'processor-trace'), None, ['xorg']),
730 ('intel-microcode', ('https://downloadcenter.intel.com/search?keyword=linux+microcode', '(201[0-9.]*)'), None, []),
731- ('intel-vaapi-driver', ('https://github.com/intel/intel-vaapi-driver/tags', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
732+ ('intel-vaapi-driver', GITHUB_URL ('intel', 'intel-vaapi-driver'), None, ['xorg']),
733 ('intltool-debian', DEBIAN, None, []),
734 ('io-stringy', CPAN_URL ('IO-stringy'), None, ['perl']),
735-# ('ipolish', ('http://www.sjp.pl/slownik/en/', 'sjp-ispell-pl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
736- ('iptables', ('http://ftp.netfilter.org/pub/iptables/', 'iptables-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
737- ('ippusbxd', GITHUB_URL ('tillkamppeter', 'ippusbxd', '([0-9][0-9.]*)'), None, []),
738- ('ipp-usb', GITHUB_URL ('OpenPrinting', 'ipp-usb', '([0-9][0-9.]*)'), None, []),
739- ('iputils', ('https://github.com/iputils/iputils/tags', 's([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
740- ('irqbalance', GITHUB_URL ('Irqbalance','irqbalance', 'v([0-9][0-9.]*)'), None, []),
741-# ('isc-dhcp', ('https://ftp.isc.org/isc/dhcp/([\d\.]*)/', 'dhcp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
742+# ('ipolish', ('http://www.sjp.pl/slownik/en/', 'sjp-ispell-pl-([0-9][0-9.]*)' + EXT), None, []),
743+ ('iptables', ('http://ftp.netfilter.org/pub/iptables/', 'iptables-([0-9][0-9.]*)' + EXT), None, []),
744+ ('ippusbxd', GITHUB_URL ('tillkamppeter', 'ippusbxd'), None, []),
745+ ('ipp-usb', GITHUB_URL ('OpenPrinting', 'ipp-usb'), None, []),
746+ ('iputils', GITHUB_URL ('iputils', 'iputils', None, 's([0-9][0-9.]*)'), None, []),
747+ ('irqbalance', GITHUB_URL ('Irqbalance','irqbalance'), None, []),
748+# ('isc-dhcp', ('https://ftp.isc.org/isc/dhcp/([\d\.]*)/', 'dhcp-([0-9][0-9.]*)' + EXT), None, []),
749 # ('isodate', PYPI_URL ('isodate'), None, []),
750 # ('ispell-czech', DEBIAN, None, []),
751 # ('ispell-uk', SOURCEFORGE_URL ('ispell-uk', 'spell-uk', 'spell-uk-([0-9][0-9.]*).tgz'), None, []),
752- ('iso-codes', ('https://salsa.debian.org/iso-codes-team/iso-codes/tags', 'iso-codes-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
753- ('itstool', ('http://files.itstool.org/itstool/', 'itstool-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
754- ('iucode-tool', ('https://gitlab.com/iucode-tool/releases', 'iucode-tool_([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
755- ('iw', ('https://www.kernel.org/pub/software/network/iw/', 'iw-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
756- ('jackd2', ('http://jackaudio.org/downloads', 'v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
757-# ('jam', ('http://swarm.workshop.perforce.com/projects/perforce_software-jam/files/main', 'jam-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
758- ('jansson', ('http://www.digip.org/jansson/releases/', 'jansson-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
759-# ('javacc', ('https://java.net/projects/javacc/downloads', 'javacc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
760+ ('iso-codes', ('https://salsa.debian.org/iso-codes-team/iso-codes/tags', 'iso-codes-([0-9][0-9.]*)' + EXT), None, []),
761+ ('itstool', ('http://files.itstool.org/itstool/', 'itstool-([0-9][0-9.]*)' + EXT), None, []),
762+ ('iucode-tool', ('https://gitlab.com/iucode-tool/releases', 'iucode-tool_([0-9][0-9.]*)' + EXT), None, []),
763+ ('iw', ('https://www.kernel.org/pub/software/network/iw/', 'iw-([0-9][0-9.]*)' + EXT), None, []),
764+ ('jackd2', ('http://jackaudio.org/downloads', 'v([0-9][0-9.]*)' + EXT), None, []),
765+# ('jam', ('http://swarm.workshop.perforce.com/projects/perforce_software-jam/files/main', 'jam-([0-9][0-9.]*)' + EXT), None, []),
766+ ('jansson', ('http://www.digip.org/jansson/releases/', 'jansson-([0-9][0-9.]*)' + EXT), None, []),
767+# ('javacc', ('https://java.net/projects/javacc/downloads', 'javacc-([0-9][0-9.]*)' + EXT), None, []),
768 ('jbig2dec', ('http://git.ghostscript.com/?p=jbig2dec.git;a=summary', '.a=log;h=refs/tags/(\d[\d.]*)'), None, []),
769- ('jbigkit', ('https://www.cl.cam.ac.uk/~mgk25/jbigkit/download/', 'jbigkit-([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
770+ ('jbigkit', ('https://www.cl.cam.ac.uk/~mgk25/jbigkit/download/', 'jbigkit-([0-9][0-9.]+)' + EXT), None, []),
771 ('jhbuild', GNOME_FTP_URL ('jhbuild'), None, ['gnome']),
772- ('jigit', ('http://www.einval.com/~steve/software/JTE/download/', 'jigit-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
773+ ('jigit', ('http://www.einval.com/~steve/software/JTE/download/', 'jigit-([0-9][0-9.]*)' + EXT), None, []),
774 # ('jinja2', PYPI_URL ('Jinja2'), None, []),
775 # ('jockey', LAUNCHPAD_URL ('jockey'), None, []),
776- ('joystick', SOURCEFORGE_URL ('linuxconsole', '', 'linuxconsoletools-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
777+ ('joystick', SOURCEFORGE_URL ('linuxconsole', '', 'linuxconsoletools-([0-9][0-9.]*)' + EXT), None, []),
778 # ('jquery', ('https://code.jquery.com/', 'jquery-([0-9][0-9.]*).js'), None, []),
779-# ('json-c', ('http://oss.metaparadigm.com/json-c/', 'json-c-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
780+# ('json-c', ('http://oss.metaparadigm.com/json-c/', 'json-c-([0-9][0-9.]*)' + EXT), None, []),
781 ('json-glib', GNOME_FTP_URL ('json-glib'), None, ['gnome']),
782 ('jsonrpc-glib', GNOME_FTP_URL ('jsonrpc-glib'), GNOME_FTP_URL ('jsonrpc-glib'), ['gnome']),
783 ('kerneloops', UBUNTU, None, []),
784-# ('keybinder', ('http://kaizer.se/publicfiles/keybinder/', 'keybinder-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
785+# ('keybinder', ('http://kaizer.se/publicfiles/keybinder/', 'keybinder-([0-9][0-9.]*)' + EXT), None, []),
786 ('keyrings.alt', PYPI_URL ('keyrings.alt'), None, []),
787- ('keyutils', ('http://people.redhat.com/~dhowells/keyutils/', 'keyutils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
788- ('klibc', ('https://www.kernel.org/pub/linux/libs/klibc/([0-9.]+)', 'klibc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
789- ('kmod', ('https://www.kernel.org/pub/linux/utils/kernel/kmod/', 'kmod-([0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
790- ('krb5', ('http://web.mit.edu/kerberos/dist/index.html', 'krb5-([0-9][0-9.]*).tar.gz'), None, []),
791+ ('keyutils', ('http://people.redhat.com/~dhowells/keyutils/', 'keyutils-([0-9][0-9.]*)' + EXT), None, []),
792+ ('klibc', ('https://www.kernel.org/pub/linux/libs/klibc/([0-9.]+)', 'klibc-([0-9][0-9.]*)' + EXT), None, []),
793+ ('kmod', ('https://www.kernel.org/pub/linux/utils/kernel/kmod/', 'kmod-([0-9.]*)' + EXT), None, []),
794+ ('krb5', ('http://web.mit.edu/kerberos/dist/index.html', 'krb5-([0-9][0-9.]*)' + EXT), None, []),
795 # ('labyrinth', GNOME_FTP_URL ('labyrinth'), None, ['gnome']),
796- ('lame', SOURCEFORGE_URL ('lame', 'lame/([0-9.]+)', 'lame-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
797+ ('lame', SOURCEFORGE_URL ('lame', 'lame/([0-9.]+)', 'lame-([0-9][0-9.]*)' + EXT), None, []),
798 ('language-selector', UBUNTU, None, []),
799- ('lapack', ('http://www.netlib.org/lapack/', 'lapack-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
800+ ('lapack', ('http://www.netlib.org/lapack/', 'lapack-([0-9][0-9.]*)' + EXT), None, []),
801 ('laptop-detect', DEBIAN, None, []),
802 ('lazr.restfulclient', LAUNCHPAD_URL ('lazr.restfulclient'), None, []),
803 ('lazr.uri', LAUNCHPAD_URL ('lazr.uri'), None, []),
804- ('lcms2', SOURCEFORGE_URL ('lcms', 'lcms/([0-9.]+)', 'lcms2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
805- ('ldb', ('https://download.samba.org/pub/ldb/', 'ldb-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
806- ('leveldb', GITHUB_URL ('google', 'leveldb', '([0-9][0-9.]*)'), None, []),
807- ('libaacs', ('https://download.videolan.org/pub/videolan/libaacs/([0-9.]+)/', 'libaacs-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
808+ ('lcms2', SOURCEFORGE_URL ('lcms', 'lcms/([0-9.]+)', 'lcms2-([0-9][0-9.]*)' + EXT), None, []),
809+ ('ldb', ('https://download.samba.org/pub/ldb/', 'ldb-([0-9][0-9.]*)' + EXT), None, []),
810+ ('leveldb', GITHUB_URL ('google', 'leveldb'), None, []),
811+ ('libaacs', ('https://download.videolan.org/pub/videolan/libaacs/([0-9.]+)/', 'libaacs-([0-9][0-9.]*)' + EXT), None, []),
812 ('libabw', LIBREOFFICE_URL ('libabw'), None, []),
813 ('libaccounts-glib', UBUNTU, None, []),
814 # ('libalgorithm-diff-perl', CPAN_URL ('Algorithm-Diff'), None, ['perl']), # Seems to have an old version here
815 # ('libalgorithm-diff-xs-perl', CPAN_URL ('Algorithm-Diff-XS'), None, ['perl']),
816 # ('libalgorithm-merge-perl', CPAN_URL ('Algorithm-Merge'), None, ['perl']),
817- ('libao', ('http://downloads.xiph.org/releases/ao/', 'libao-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
818+ ('libao', ('http://downloads.xiph.org/releases/ao/', 'libao-([0-9][0-9.]*)' + EXT), None, []),
819 ('libappindicator', UBUNTU, None, []),
820 ('libapt-pkg-perl', DEBIAN, None, ['perl']),
821- ('libarchive', GITHUB_URL ('libarchive', 'libarchive', 'v([0-9][0-9.]*)'), None, []),
822+ ('libarchive', GITHUB_URL ('libarchive', 'libarchive'), None, []),
823 # ('libarchive-extract-perl', CPAN_URL ('Archive-Extract'), None, ['perl']),
824 ('libarchive-zip-perl', CPAN_URL ('Archive-Zip'), None, ['perl']),
825 ('libart-lgpl', GNOME_FTP_URL ('libart_lgpl'), None, ['gnome']),
826- ('libassuan', ('https://gnupg.org/ftp/gcrypt/libassuan/', 'libassuan-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
827- ('libasyncns', ('http://0pointer.de/lennart/projects/libasyncns/', 'libasyncns-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
828+ ('libassuan', ('https://gnupg.org/ftp/gcrypt/libassuan/', 'libassuan-([0-9][0-9.]*)' + EXT), None, []),
829+ ('libasyncns', ('http://0pointer.de/lennart/projects/libasyncns/', 'libasyncns-([0-9][0-9.]*)' + EXT), None, []),
830 ('libatasmart', ('http://git.0pointer.net/libatasmart.git/', 'tag/\?h=v([0-9][0-9.]*)'), None, []),
831 ('libauthen-sasl-perl', CPAN_URL ('Authen-SASL'), None, ['perl']),
832- ('libavc1394', SOURCEFORGE_URL ('libavc1394', 'libavc1394/([0-9.]+)', 'libavc1394-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
833- ('libbdplus', ('https://download.videolan.org/pub/videolan/libbdplus/([0-9.]+)/', 'libbdplus-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
834-# ('libbinio', SOURCEFORGE_URL ('libbinio', 'libbinio/([0-9.]+)', 'libbinio-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
835- ('libblockdev', ('https://github.com/storaged-project/libblockdev/tags', '([0-9][0-9.]*)-1.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
836- ('libbluray', ('https://download.videolan.org/pub/videolan/libbluray/([0-9.]+)/', 'libbluray-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
837-# ('libbs2b', SOURCEFORGE_URL ('bs2b', 'libbs2b/([0-9.]+)', 'libbs2b-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
838+ ('libavc1394', SOURCEFORGE_URL ('libavc1394', 'libavc1394/([0-9.]+)', 'libavc1394-([0-9][0-9.]*)' + EXT), None, []),
839+ ('libbdplus', ('https://download.videolan.org/pub/videolan/libbdplus/([0-9.]+)/', 'libbdplus-([0-9][0-9.]*)' + EXT), None, []),
840+# ('libbinio', SOURCEFORGE_URL ('libbinio', 'libbinio/([0-9.]+)', 'libbinio-([0-9][0-9.]*)' + EXT), None, []),
841+ ('libblockdev', GITHUB_URL ('storaged-project', 'libblockdev', tag_regex='v?([0-9][0-9.-]*)'), None, []),
842+ ('libbluray', ('https://download.videolan.org/pub/videolan/libbluray/([0-9.]+)/', 'libbluray-([0-9][0-9.]*)' + EXT), None, []),
843+# ('libbs2b', SOURCEFORGE_URL ('bs2b', 'libbs2b/([0-9.]+)', 'libbs2b-([0-9][0-9.]*)' + EXT), None, []),
844 ('libburn', ('http://files.libburnia-project.org/releases/', 'libburn-([0-9][0-9.][0-9]*)'), None, []),
845 ('libcaca', GITHUB_URL ('cacalabs', 'libcaca', 'v([0-9][a-zA-Z0-9.]*)+'), None, []),
846 ('libcairo-perl', CPAN_URL ('Cairo'), None, ['perl']),
847 ('libcairo-gobject-perl', CPAN_URL ('Cairo-GObject'), None, ['perl']),
848- ('libcanberra', ('http://0pointer.de/lennart/projects/libcanberra/', 'libcanberra-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
849-# ('libcap2', ('https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/', 'libcap-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
850- ('libcap-ng', ('http://people.redhat.com/sgrubb/libcap-ng/', 'libcap-ng-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
851- ('libcbor', ('https://github.com/PJK/libcbor/tags', 'v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
852-# ('libcdaudio', SOURCEFORGE_URL ('libcdaudio', 'libcdaudio/([0-9.]+)', 'libcdaudio-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
853-# ('libcddb', SOURCEFORGE_URL ('libcddb', 'libcddb/([0-9.]+)', 'libcddb-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
854- ('libcdio', ('https://ftp.gnu.org/gnu/libcdio/', 'libcdio-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
855- ('libcdio-paranoia', ('https://ftp.gnu.org/gnu/libcdio/', 'libcdio-paranoia-([0-9][0-9.+]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
856+ ('libcanberra', ('http://0pointer.de/lennart/projects/libcanberra/', 'libcanberra-([0-9][0-9.]*)' + EXT), None, []),
857+# ('libcap2', ('https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/', 'libcap-([0-9][0-9.]*)' + EXT), None, []),
858+ ('libcap-ng', ('http://people.redhat.com/sgrubb/libcap-ng/', 'libcap-ng-([0-9][0-9.]*)' + EXT), None, []),
859+ ('libcbor', GITHUB_URL ('PJK', 'libcbor'), None, []),
860+# ('libcdaudio', SOURCEFORGE_URL ('libcdaudio', 'libcdaudio/([0-9.]+)', 'libcdaudio-([0-9][0-9.]*)' + EXT), None, []),
861+# ('libcddb', SOURCEFORGE_URL ('libcddb', 'libcddb/([0-9.]+)', 'libcddb-([0-9][0-9.]*)' + EXT), None, []),
862+ ('libcdio', ('https://ftp.gnu.org/gnu/libcdio/', 'libcdio-([0-9][0-9.]*)' + EXT), None, []),
863+ ('libcdio-paranoia', ('https://ftp.gnu.org/gnu/libcdio/', 'libcdio-paranoia-([0-9][0-9.+]*)' + EXT), None, []),
864 ('libcdr', LIBREOFFICE_URL ('libcdr'), None, []),
865- ('libcgi-fast-perl', ('https://github.com/leejo/cgi-fast/releases', 'tag/v([0-9][0-9.]*)'), None, ['perl']),
866+ ('libcgi-fast-perl', GITHUB_URL ('leejo', 'cgi-fast'), None, ['perl']),
867 ('libcgi-pm-perl', CPAN_URL ('CGI'), None, ['perl']),
868-# ('libchewing', ('https://github.com/chewing/libchewing/releases', 'archive/v([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
869+# ('libchewing', GITHUB_URL ('chewing', 'libchewing'), None, []),
870 ('libchamplain', GNOME_FTP_URL ('libchamplain'), None, ['gnome']),
871 ('libclass-accessor-perl', CPAN_URL ('Class-Accessor'), None, ['perl']),
872 # ('libclass-isa-perl', CPAN_URL ('Class-ISA'), None, ['perl']),
873 ('libclone-perl', CPAN_URL ('Clone'), None, ['perl']),
874- ('libcmis', SOURCEFORGE_URL ('libcmis', '', 'libcmis-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
875+ ('libcmis', SOURCEFORGE_URL ('libcmis', '', 'libcmis-([0-9][0-9.]*)' + EXT), None, []),
876 ('libcroco', GNOME_FTP_URL ('libcroco'), None, ['gnome']),
877 # ('libcrypt-passwdmd5-perl', CPAN_URL ('Crypt-PasswdMD5'), None, ['perl']),
878 ('libcryptui', GNOME_FTP_URL ('libcryptui'), None, ['gnome']),
879- ('libcue', GITHUB_URL ('lipnitsk', 'libcue', 'v([0-9][0-9.]*)'), None, []),
880- ('libdaemon', ('http://0pointer.de/lennart/projects/libdaemon/', 'libdaemon-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
881+ ('libcue', GITHUB_URL ('lipnitsk', 'libcue'), None, []),
882+ ('libdaemon', ('http://0pointer.de/lennart/projects/libdaemon/', 'libdaemon-([0-9][0-9.]*)' + EXT), None, []),
883 ('libdata-dump-perl', CPAN_URL ('Data-Dump'), None, ['perl']),
884- ('libdatrie', ('http://linux.thai.net/pub/ThaiLinux/software/libthai/', 'libdatrie-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
885+ ('libdatrie', ('http://linux.thai.net/pub/ThaiLinux/software/libthai/', 'libdatrie-([0-9][0-9.]*)' + EXT), None, []),
886 ('libdazzle', GNOME_FTP_URL ('libdazzle', GNOME_STABLE_SERIES), GNOME_FTP_URL ('libdazzle'), ['gnome']),
887 ('libdbusmenu', UBUNTU, None, []),
888-# ('libdca', ('http://download.videolan.org/pub/videolan/libdca/([0-9.]+)/', 'libdca-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
889+# ('libdca', ('http://download.videolan.org/pub/videolan/libdca/([0-9.]+)/', 'libdca-([0-9][0-9.]*)' + EXT), None, []),
890 # ('libdigest-crc-perl', CPAN_URL ('Digest-CRC'), None, ['perl']),
891 ('libdigest-hmac-perl', CPAN_URL ('Digest-HMAC'), None, ['perl']),
892 ('libdigest-bubblebabble-perl', CPAN_URL ('Digest-BubbleBabble'), None, ['perl']),
893-# ('libdiscid', ('http://ftp.musicbrainz.org/pub/musicbrainz/libdiscid/', 'libdiscid-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
894- ('libdmapsharing', ('https://www.flyn.org/projects/libdmapsharing/', 'libdmapsharing-(2.9[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ('https://www.flyn.org/projects/libdmapsharing/', 'libdmapsharing-(3.9[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), []),
895- ('libdrm', ('https://dri.freedesktop.org/libdrm/', 'libdrm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
896+# ('libdiscid', ('http://ftp.musicbrainz.org/pub/musicbrainz/libdiscid/', 'libdiscid-([0-9][0-9.]*)' + EXT), None, []),
897+ ('libdmapsharing', ('https://www.flyn.org/projects/libdmapsharing/', 'libdmapsharing-(2.9[0-9.]*)' + EXT), ('https://www.flyn.org/projects/libdmapsharing/', 'libdmapsharing-(3.9[0-9.]*)' + EXT), []),
898+ ('libdrm', FDO_URL ('mesa', 'drm', 'libdrm-([0-9][0-9.]*)'), None, ['xorg']),
899 ('libexporter-tiny-perl', CPAN_URL ('Exporter-Tiny'), None, ['perl']),
900- ('libe-book', SOURCEFORGE_URL ('libebook', 'libe-book-([0-9.]+)', 'libe-book-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
901- ('libdv', SOURCEFORGE_URL ('libdv', 'libdv/([0-9.]+)', 'libdv-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
902- ('libedit', ('http://www.thrysoee.dk/editline/', 'libedit-([0-9][0-9.-]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
903+ ('libe-book', SOURCEFORGE_URL ('libebook', 'libe-book-([0-9.]+)', 'libe-book-([0-9][0-9.]*)' + EXT), None, []),
904+ ('libdv', SOURCEFORGE_URL ('libdv', 'libdv/([0-9.]+)', 'libdv-([0-9][0-9.]*)' + EXT), None, []),
905+ ('libedit', ('http://www.thrysoee.dk/editline/', 'libedit-([0-9][0-9.-]*)' + EXT), None, []),
906 ('libemail-valid-perl', CPAN_URL ('Email-Valid'), None, ['perl']),
907 ('libencode-locale-perl', CPAN_URL ('Encode-Locale'), None, ['perl']),
908 # ('libept', DEBIAN, None, []),
909- ('libeot', GITHUB_URL ('umanwizard', 'libeot', 'v([0-9][0-9.]*)'), None, []),
910- ('libepoxy', GITHUB_URL ('anholt', 'libepoxy', '([0-9][0-9.]*)'), None, []),
911- ('libepubgen', ('https://sourceforge.net/projects/libepubgen/', 'libepubgen-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
912+ ('libeot', GITHUB_URL ('umanwizard', 'libeot'), None, []),
913+ ('libepoxy', GITHUB_URL ('anholt', 'libepoxy'), None, []),
914+ ('libepubgen', ('https://sourceforge.net/projects/libepubgen/', 'libepubgen-([0-9][0-9.]*)' + EXT), None, []),
915 # ('liberror-perl', CPAN_URL ('Error'), None, ['perl']), # FIXME: Needs version mangling? 0.17021
916 ('libetonyek', LIBREOFFICE_URL ('libetonyek'), None, []),
917- ('libevdev', ('https://freedesktop.org/software/libevdev/', 'libevdev-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
918- ('libevent', ('https://github.com/libevent/libevent/downloads', 'libevent-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
919- ('libexif', SOURCEFORGE_URL ('libexif', 'libexif/([0-9.]+)', 'libexif-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
920+ ('libevdev', FDO_URL ('libevdev', 'libevdev'), None, ['xorg']),
921+ ('libevent', GITHUB_URL ('libevent', 'libevent', 'release', '([0-9][0-9a-z.-]*)'), None, []),
922+ ('libexif', SOURCEFORGE_URL ('libexif', 'libexif/([0-9.]+)', 'libexif-([0-9][0-9.]*)' + EXT), None, []),
923 ('libexttextcat', LIBREOFFICE_URL('libexttextcat'), None, []),
924 # ('libextutils-depends-perl', CPAN_URL ('ExtUtils-Depends'), None, ['perl']),
925 # ('libextutils-pkgconfig-perl', CPAN_URL ('ExtUtils-PkgConfig'), None, ['perl']),
926 ('libfcgi-perl', CPAN_URL ('FCGI'), None, ['perl']),
927- ('libffi', ('ftp://sourceware.org/pub/libffi/', 'libffi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
928+ ('libffi', ('ftp://sourceware.org/pub/libffi/', 'libffi-([0-9][0-9.]*)' + EXT), None, []),
929 ('libfile-basedir-perl', CPAN_URL ('File-BaseDir'), None, ['perl']),
930 ('libfile-copy-recursive-perl', CPAN_URL ('File-Copy-Recursive'), None, ['perl']),
931 ('libfile-desktopentry-perl', CPAN_URL ('File-DesktopEntry'), None, ['perl']),
932@@ -737,24 +744,24 @@ ubuntu_package_info = [
933 ('libfile-listing-perl', CPAN_URL ('File-Listing'), None, ['perl']),
934 ('libfile-mimeinfo-perl', CPAN_URL ('File-MimeInfo'), None, ['perl']),
935 ('libfont-afm-perl', CPAN_URL ('Font-AFM'), None, ['perl']),
936- ('libfontenc', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libfontenc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
937+ ('libfontenc', XORG_URL ('lib', 'libfontenc'), None, ['xorg']),
938 # ('libfont-freetype-perl', CPAN_URL ('Font-FreeType'), None, ['perl']),
939-# ('libgadu', ('http://libgadu.net/', 'libgadu-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
940- ('libfprint', ('https://gitlab.freedesktop.org/libfprint/libfprint/tags', 'libfprint-([0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ('https://gitlab.freedesktop.org/libfprint/libfprint/tags', 'libfprint-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), []),
941+# ('libgadu', ('http://libgadu.net/', 'libgadu-([0-9][0-9.]*)' + EXT), None, []),
942+ ('libfprint', FDO_URL ('libfprint', 'libfprint', '([0-9.]*)'), FDO_URL ('libfprint', 'libfprint', '([0-9][0-9.]*)'), []),
943 ('libfreehand', LIBREOFFICE_URL('libfreehand'), None, []),
944- ('libgc', ('https://github.com/ivmai/bdwgc/tags', 'v([0-9][0-9._]*[a-z]?).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
945- ('libgcrypt20', ('https://gnupg.org/ftp/gcrypt/libgcrypt/', 'libgcrypt-(1[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
946- ('libgd2', ('https://bitbucket.org/libgd/gd-libgd/downloads', 'libgd-([0-9][0-9.]*)(-alpha[0-9]).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
947+ ('libgc', GITHUB_URL ('ivmai', 'bdwgc'), None, []),
948+ ('libgcrypt20', ('https://gnupg.org/ftp/gcrypt/libgcrypt/', 'libgcrypt-(1[0-9.]*)' + EXT), None, []),
949+ ('libgd2', ('https://bitbucket.org/libgd/gd-libgd/downloads', 'libgd-([0-9][0-9.]*)(-alpha[0-9])' + EXT), None, []),
950 ('libgda5', GNOME_FTP_URL ('libgda', '5.2'), None, ['gnome']),
951 ('libgdata', GNOME_FTP_URL ('libgdata'), None, ['gnome']),
952 ('libgee-0.8', GNOME_FTP_URL ('libgee'), None, ['gnome']),
953 ('libgepub', GNOME_FTP_URL ('libgepub'), None, ['gnome']),
954 ('libgit2-glib', GNOME_FTP_URL ('libgit2-glib'), GNOME_FTP_URL ('libgit2-glib'), ['gnome']),
955-# ('libgksu', ('http://people.debian.org/~kov/gksu/', 'libgksu-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
956+# ('libgksu', ('http://people.debian.org/~kov/gksu/', 'libgksu-([0-9][0-9.]*)' + EXT), None, []),
957 ('libglib-object-introspection-perl', CPAN_URL ('Glib-Object-Introspection'), None, ['perl']),
958 ('libglib-perl', CPAN_URL ('Glib'), None, ['perl']),
959- ('libglu', ('https://mesa.freedesktop.org/archive/glu', 'glu-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
960- ('libglvnd', ('https://github.com/NVIDIA/libglvnd/releases', 'v([0-9][0-9._]*[a-z]?).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
961+ ('libglu', FDO_URL ('mesa', 'glu'), None, ['xorg']),
962+ ('libglvnd', GITHUB_URL ('NVIDIA', 'libglvnd'), None, []),
963 # ('libgnome', GNOME_FTP_URL ('libgnome'), None, ['gnome']),
964 ('libgnome-games-support', GNOME_FTP_URL ('libgnome-games-support'), GNOME_FTP_URL ('libgnome-games-support'), ['gnome']),
965 ('libgnomekbd', GNOME_FTP_URL ('libgnomekbd'), None, ['gnome']),
966@@ -762,9 +769,9 @@ ubuntu_package_info = [
967 # ('libgnomeui', GNOME_FTP_URL ('libgnomeui'), None, ['gnome']),
968 ('libgom', GNOME_FTP_URL ('gom'), None, ['gnome']),
969 # ('libgovirt', GNOME_FTP_URL ('libgovirt'), None, ['gnome']),
970- ('libgpg-error', ('https://gnupg.org/ftp/gcrypt/libgpg-error/', 'libgpg-error-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
971- ('libgphoto2', SOURCEFORGE_URL ('gphoto', 'libgphoto/([0-9.]+)', 'libgphoto2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
972- ('libgpod', SOURCEFORGE_URL ('gtkpod', 'libgpod/libgpod-([0-9.]+)', 'libgpod-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
973+ ('libgpg-error', ('https://gnupg.org/ftp/gcrypt/libgpg-error/', 'libgpg-error-([0-9][0-9.]*)' + EXT), None, []),
974+ ('libgphoto2', SOURCEFORGE_URL ('gphoto', 'libgphoto/([0-9.]+)', 'libgphoto2-([0-9][0-9.]*)' + EXT), None, []),
975+ ('libgpod', SOURCEFORGE_URL ('gtkpod', 'libgpod/libgpod-([0-9.]+)', 'libgpod-([0-9][0-9.]*)' + EXT), None, []),
976 ('libgsf', GNOME_FTP_URL ('libgsf'), None, ['gnome']),
977 # ('libgstreamer-perl', CPAN_URL ('GStreamer'), None, ['perl']),
978 # ('libgtk2-notify-perl', CPAN_URL ('Gtk2-Notify'), None, ['perl']),
979@@ -773,11 +780,11 @@ ubuntu_package_info = [
980 # ('libgtksourceviewmm', GNOME_FTP_URL ('gtksourceviewmm'), None, ['gnome']),
981 ('libgtop2', GNOME_FTP_URL ('libgtop'), GNOME_FTP_URL ('libgtop'), ['gnome']),
982 ('libgudev', GNOME_FTP_URL ('libgudev'), None, ['gnome']),
983- ('libhandy-1', GNOME_FTP_URL ('libhandy'), None, ['gnome']),
984-# ('libguess', ('http://distfiles.atheme.org/', 'libguess-([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
985- ('libgusb', ('https://people.freedesktop.org/~hughsient/releases/', 'libgusb-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
986+# ('libguess', ('http://distfiles.atheme.org/', 'libguess-([0-9][0-9a-zA-Z.]*)' + EXT), None, []),
987+ ('libgusb', GITHUB_URL ('hughsie', 'libgusb'), None, []),
988 ('libgweather', GNOME_FTP_URL ('libgweather'), GNOME_FTP_URL ('libgweather'), ['gnome']),
989 ('libgxps', GNOME_FTP_URL ('libgxps'), None, ['gnome']),
990+ ('libhandy-1', GNOME_FTP_URL ('libhandy'), None, ['gnome']),
991 ('libhtml-format-perl', CPAN_URL ('HTML-Format'), None, ['perl']),
992 ('libhtml-form-perl', CPAN_URL ('HTML-Form'), None, ['perl']),
993 ('libhtml-parser-perl', CPAN_URL ('HTML-Parser'), None, ['perl']),
994@@ -788,17 +795,17 @@ ubuntu_package_info = [
995 ('libhttp-date-perl', CPAN_URL ('HTTP-Date'), None, ['perl']),
996 ('libhttp-message-perl', CPAN_URL ('HTTP-Message'), None, ['perl']),
997 ('libhttp-negotiate-perl', CPAN_URL ('HTTP-Negotiate'), None, ['perl']),
998- ('libical3', ('https://github.com/libical/libical/releases/latest', 'libical-(3.[0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
999+ ('libical3', GITHUB_URL ('libical', 'libical'), None, []),
1000 # ('libical-glib', GNOME_FTP_URL ('libical-glib'), None, ['gnome']),
1001- ('libice', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libICE-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1002- ('libidn', ('https://ftp.gnu.org/gnu/libidn/', 'libidn-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1003- ('libidn2', ('https://ftp.gnu.org/gnu/libidn/', 'libidn2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1004- ('libiec61883', ('https://www.kernel.org/pub/linux/libs/ieee1394/', 'libiec61883-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1005- ('libieee1284', SOURCEFORGE_URL ('libieee1284', 'libieee1284/([0-9.]+)', 'libieee1284-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1006- ('libimagequant', ('https://github.com/ImageOptim/libimagequant/tags', '([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1007- ('libimobiledevice', ('http://www.libimobiledevice.org/', 'libimobiledevice-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1008+ ('libice', XORG_URL ('lib', 'libICE'), None, ['xorg']),
1009+ ('libidn', ('https://ftp.gnu.org/gnu/libidn/', 'libidn-([0-9][0-9.]*)' + EXT), None, []),
1010+ ('libidn2', ('https://ftp.gnu.org/gnu/libidn/', 'libidn2-([0-9][0-9.]*)' + EXT), None, []),
1011+ ('libiec61883', ('https://www.kernel.org/pub/linux/libs/ieee1394/', 'libiec61883-([0-9][0-9.]*)' + EXT), None, []),
1012+ ('libieee1284', SOURCEFORGE_URL ('libieee1284', 'libieee1284/([0-9.]+)', 'libieee1284-([0-9][0-9.]*)' + EXT), None, []),
1013+ ('libimagequant', GITHUB_URL ('ImageOptim', 'libimagequant'), None, []),
1014+ ('libimobiledevice', ('http://www.libimobiledevice.org/', 'libimobiledevice-([0-9][0-9.]*)' + EXT), None, []),
1015 ('libindicator', UBUNTU, None, []),
1016- ('libinput', ('http://freedesktop.org/software/libinput/', 'libinput-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1017+ ('libinput', ('http://freedesktop.org/software/libinput/', 'libinput-([0-9][0-9.]*)' + EXT), None, ['xorg']),
1018 # ('libintl-perl', CPAN_URL ('libintl-perl'), None, ['perl']),
1019 ('libio-html-perl', CPAN_URL ('IO-HTML'), None, ['perl']),
1020 ('libio-pty-perl', CPAN_URL ('IO-Tty'), None, ['perl']),
1021@@ -807,42 +814,42 @@ ubuntu_package_info = [
1022 ('libio-string-perl', CPAN_URL ('IO-String'), None, ['perl']),
1023 ('libipc-run-perl', CPAN_URL ('IPC-Run'), None, ['perl']),
1024 ('libipc-system-simple-perl', CPAN_URL ('IPC-System-Simple'), None, ['perl']),
1025- ('libiptcdata', SOURCEFORGE_URL ('libiptcdata', 'libiptcdata/([0-9.]+)', 'libiptcdata-([0-9]\.[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1026- ('libisofs', ('http://files.libburnia-project.org/releases/', 'libisofs-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1027- ('libjcat', ('https://github.com/hughsie/libjcat/tags', '([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1028-# ('libixion', ('https://gitlab.com/ixion/ixion', 'libixion-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1029+ ('libiptcdata', SOURCEFORGE_URL ('libiptcdata', 'libiptcdata/([0-9.]+)', 'libiptcdata-([0-9]\.[0-9.]*)' + EXT), None, []),
1030+ ('libisofs', ('http://files.libburnia-project.org/releases/', 'libisofs-([0-9][0-9.]*)' + EXT), None, []),
1031+ ('libjcat', GITHUB_URL ('hughsie', 'libjcat'), None, []),
1032+# ('libixion', ('https://gitlab.com/ixion/ixion', 'libixion-([0-9][0-9.]*)' + EXT), None, []),
1033 ('libjpeg8-empty', UBUNTU, None, []), # Transition package
1034- ('libjpeg-turbo', ('https://github.com/libjpeg-turbo/libjpeg-turbo/releases', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1035-# ('libjsoncpp', ('https://github.com/open-source-parsers/jsoncpp/releases', 'archive/([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1036- ('libksba', ('https://gnupg.org/ftp/gcrypt/libksba/', 'libksba-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1037- ('liblangtag', ('https://bitbucket.org/tagoh/liblangtag/downloads/', 'liblangtag-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1038-# ('liblastfm', SOURCEFORGE_URL ('liblastfm', '', 'liblastfm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1039+ ('libjpeg-turbo', GITHUB_URL ('libjpeg-turbo', 'libjpeg-turbo'), None, []),
1040+# ('libjsoncpp', GITHUB_URL ('open-source-parsers', 'jsoncpp'), None, []),
1041+ ('libksba', ('https://gnupg.org/ftp/gcrypt/libksba/', 'libksba-([0-9][0-9.]*)' + EXT), None, []),
1042+ ('liblangtag', ('https://bitbucket.org/tagoh/liblangtag/downloads/', 'liblangtag-([0-9][0-9.]*)' + EXT), None, []),
1043+# ('liblastfm', SOURCEFORGE_URL ('liblastfm', '', 'liblastfm-([0-9][0-9.]*)' + EXT), None, []),
1044 # ('liblist-moreutils-perl', CPAN_URL ('List-MoreUtils'), None, ['perl']),
1045 ('liblocale-gettext-perl', CPAN_URL ('gettext'), None, ['perl']),
1046 # ('liblog-message-simple-perl', CPAN_URL ('Log-Message-Simple'), None, ['perl']),
1047 ('liblist-moreutils-perl', CPAN_URL ('List-MoreUtils'), None, ['perl']),
1048 ('liblouis', GITHUB_URL ('liblouis', 'liblouis', 'v([\d\.]*)'), None, []),
1049 ('liblouisutdml', GITHUB_URL ('liblouis', 'liblouisutdml', 'v([\d\.]*)'), None, []),
1050- ('liblqr', ('http://liblqr.wikidot.com/en:download-page', 'liblqr-1-([\d\.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1051+ ('liblqr', ('http://liblqr.wikidot.com/en:download-page', 'liblqr-1-([\d\.]*)' + EXT), None, []),
1052 ('liblwp-mediatypes-perl', CPAN_URL ('LWP-MediaTypes'), None, ['perl']),
1053 ('liblwp-protocol-https-perl', CPAN_URL ('LWP-Protocol-https'), None, ['perl']),
1054 ('libmailtools-perl', CPAN_URL ('MailTools'), None, ['perl']),
1055 ('libmanette', GNOME_FTP_URL ('libmanette'), None, ['gnome']),
1056 ('libmediaart', GNOME_FTP_URL ('libmediaart'), None, ['gnome']),
1057- ('libmaxminddb', ('https://github.com/maxmind/libmaxminddb/releases', 'libmaxminddb-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1058-# ('libmimic', SOURCEFORGE_URL ('farsight', 'libmimic/libmimic-([0-9.]+)', 'libmimic-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1059-# ('libmms', SOURCEFORGE_URL ('libmms', 'libmms/([0-9.]+)', 'libmms-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1060- ('libmbim', ('https://freedesktop.org/software/libmbim/', 'libmbim-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1061-# ('libmng', SOURCEFORGE_URL ('libmng', 'libmng-devel/([0-9][0-9.]*)', 'libmng-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1062-# ('libmnl', ('ftp://ftp.netfilter.org/pub/libmnl/', 'libmnl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1063- ('libmwaw', SOURCEFORGE_URL ('libmwaw', 'libmwaw/([0-9.]+)', 'libmwaw-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1064-# ('libmodplug', SOURCEFORGE_URL ('modplug-xmms', 'libmodplug/([0-9.]+)', 'libmodplug-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1065+ ('libmaxminddb', GITHUB_URL ('maxmind', 'libmaxminddb', 'libmaxminddb'), None, []),
1066+# ('libmimic', SOURCEFORGE_URL ('farsight', 'libmimic/libmimic-([0-9.]+)', 'libmimic-([0-9][0-9.]*)' + EXT), None, []),
1067+# ('libmms', SOURCEFORGE_URL ('libmms', 'libmms/([0-9.]+)', 'libmms-([0-9][0-9.]*)' + EXT), None, []),
1068+ ('libmbim', FDO_URL ('mobile-broadband', 'libmbim'), None, []),
1069+# ('libmng', SOURCEFORGE_URL ('libmng', 'libmng-devel/([0-9][0-9.]*)', 'libmng-([0-9][0-9.]*)' + EXT), None, []),
1070+# ('libmnl', ('ftp://ftp.netfilter.org/pub/libmnl/', 'libmnl-([0-9][0-9.]*)' + EXT), None, []),
1071+ ('libmwaw', SOURCEFORGE_URL ('libmwaw', 'libmwaw/([0-9.]+)', 'libmwaw-([0-9][0-9.]*)' + EXT), None, []),
1072+# ('libmodplug', SOURCEFORGE_URL ('modplug-xmms', 'libmodplug/([0-9.]+)', 'libmodplug-([0-9][0-9.]*)' + EXT), None, []),
1073 # ('libmodule-pluggable-perl', CPAN_URL ('Module-Pluggable'), None, ['perl']),
1074-# ('libmowgli', ('http://distfiles.atheme.org/', 'libmowgli-([0-9][a-zA-Z0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1075+# ('libmowgli', ('http://distfiles.atheme.org/', 'libmowgli-([0-9][a-zA-Z0-9.]*)' + EXT), None, []),
1076 ('libmspub', LIBREOFFICE_URL ('libmspub'), None, []),
1077- ('libmtp', SOURCEFORGE_URL ('libmtp', 'libmtp/([0-9.]+)', 'libmtp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1078+ ('libmtp', SOURCEFORGE_URL ('libmtp', 'libmtp/([0-9.]+)', 'libmtp-([0-9][0-9.]*)' + EXT), None, []),
1079 ('libmusicbrainz5', GITHUB_URL ('metabrainz', 'libmusicbrainz', 'release-([0-9][0-9.]*)'), None, []),
1080- ('libnatpmp', ('http://miniupnp.free.fr/files/', 'libnatpmp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1081+ ('libnatpmp', ('http://miniupnp.free.fr/files/', 'libnatpmp-([0-9][0-9.]*)' + EXT), None, []),
1082 ('libndp', GITHUB_URL ('jpirko', 'libndp', 'v([\d\.]*)'), None, []),
1083 ('libnet-dbus-perl', CPAN_URL ('Net-DBus'), None, ['perl']),
1084 ('libnet-dns-perl', CPAN_URL ('Net-DNS'), None, ['perl']),
1085@@ -854,86 +861,86 @@ ubuntu_package_info = [
1086 ('libnet-smtp-ssl-perl', CPAN_URL ('Net-SMTP-SSL'), None, ['perl']),
1087 ('libnet-ssleay-perl', CPAN_URL ('Net-SSLeay'), None, ['perl']),
1088 # ('libnetaddr-ip-perl', CPAN_URL ('NetAddr-IP'), None, ['perl']),
1089- ('libnetfilter-conntrack', ('ftp://ftp.netfilter.org/pub/libnetfilter_conntrack/', 'libnetfilter_conntrack-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1090- ('libnfnetlink', ('ftp://ftp.netfilter.org/pub/libnfnetlink/', 'libnfnetlink-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1091- ('libnice', ('https://libnice.freedesktop.org/', 'libnice-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['ubuntu-touch']),
1092- ('libnl3', ('http://www.infradead.org/~tgr/libnl/files/', 'libnl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1093+ ('libnetfilter-conntrack', ('ftp://ftp.netfilter.org/pub/libnetfilter_conntrack/', 'libnetfilter_conntrack-([0-9][0-9.]*)' + EXT), None, []),
1094+ ('libnfnetlink', ('ftp://ftp.netfilter.org/pub/libnfnetlink/', 'libnfnetlink-([0-9][0-9.]*)' + EXT), None, []),
1095+ ('libnice', FDO_URL ('libnice', 'libnice'), None, ['ubuntu-touch']),
1096+ ('libnl3', ('http://www.infradead.org/~tgr/libnl/files/', 'libnl-([0-9][0-9.]*)' + EXT), None, []),
1097 ('libnotify', GNOME_FTP_URL ('libnotify'), None, ['gnome']),
1098 ('libnma', GNOME_FTP_URL ('libnma'), None, ['gnome']),
1099- ('libnsl', ('https://github.com/thkukuk/libnsl/releases', 'libnsl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1100- ('libnss-nis', ('https://github.com/thkukuk/libnss_nis/releases', 'libnss_nis-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1101- ('libnss-nisplus', ('https://github.com/thkukuk/libnss_nisplus/releases', 'libnss_nisplus-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1102- ('liboauth', SOURCEFORGE_URL ('liboauth', '', 'liboauth-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1103+ ('libnsl', GITHUB_URL ('thkukuk', 'libnsl'), None, []),
1104+ ('libnss-nis', GITHUB_URL ('thkukuk', 'libnss_nis'), None, []),
1105+ ('libnss-nisplus', GITHUB_URL ('thkukuk', 'libnss_nisplus'), None, []),
1106+ ('liboauth', SOURCEFORGE_URL ('liboauth', '', 'liboauth-([0-9][0-9.]*)' + EXT), None, []),
1107 ('libodfgen', LIBREOFFICE_URL ('libodfgen'), None, []),
1108- ('libogg', ('http://downloads.xiph.org/releases/ogg/', 'libogg-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1109+ ('libogg', ('http://downloads.xiph.org/releases/ogg/', 'libogg-([0-9][0-9.]*)' + EXT), None, []),
1110 # ('liboobs', GNOME_FTP_URL ('liboobs'), None, ['gnome']),
1111 ('libopenmpt', ('https://lib.openmpt.org/libopenmpt/download/', 'libopenmpt-([0-9][0-9.\-a-zA-Z]*)'), None, []),
1112- ('libopenobex', SOURCEFORGE_URL ('openobex', 'openobex', 'openobex-([0-9][0-9.]*)-Source.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1113+ ('libopenobex', SOURCEFORGE_URL ('openobex', 'openobex', 'openobex-([0-9][0-9.]*)-Source' + EXT), None, []),
1114 ('liborcus', ('https://gitlab.com/orcus/orcus/tags', 'tags/([0-9][0-9.]*)'), None, []),
1115- ('libosinfo', ('https://releases.pagure.org/libosinfo/', 'libosinfo-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1116-# ('libotr', ('http://www.cypherpunks.ca/otr/', 'libotr-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1117+ ('libosinfo', ('https://releases.pagure.org/libosinfo/', 'libosinfo-([0-9][0-9.]*)' + EXT), None, []),
1118+# ('libotr', ('http://www.cypherpunks.ca/otr/', 'libotr-([0-9][0-9.]*)' + EXT), None, []),
1119 ('libpagemaker', LIBREOFFICE_URL ('libpagemaker'), None, []),
1120 # ('libpam-freerdp', LAUNCHPAD_URL ('libpam-freerdp'), None, []),
1121 ('libpango-perl', CPAN_URL ('Pango'), None, ['perl']),
1122 ('libpaper', DEBIAN, None, []),
1123- ('libparse-debianchangelog-perl', ('http://www.djpig.de/software/', 'Parse-DebianChangelog-([0-9][a-zA-Z0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['perl']),
1124- ('libpcap', ('http://www.tcpdump.org/release/', 'libpcap-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1125- ('libpciaccess', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libpciaccess-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1126+ ('libparse-debianchangelog-perl', ('http://www.djpig.de/software/', 'Parse-DebianChangelog-([0-9][a-zA-Z0-9.]*)' + EXT), None, ['perl']),
1127+ ('libpcap', ('http://www.tcpdump.org/release/', 'libpcap-([0-9][0-9.]*)' + EXT), None, []),
1128+ ('libpciaccess', XORG_URL ('lib', 'libpciaccess'), None, ['xorg']),
1129 ('libpeas', GNOME_FTP_URL ('libpeas'), GNOME_FTP_URL ('libpeas'), ['gnome']),
1130 ('libperl4-corelibs-perl', CPAN_URL ('Perl4-CoreLibs'), None, ['perl']),
1131 ('libperlio-gzip-perl', CPAN_URL ('PerlIO-gzip'), None, ['perl']),
1132- ('libpgm', ('https://github.com/steve-o/openpgm/tags', 'release-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1133+ ('libpgm', GITHUB_URL ('steve-o', 'openpgm', 'release', '([0-9][0-9.-]*)'), None, []),
1134 ('libphonenumber', GITHUB_URL ('googlei18n', 'libphonenumber', 'v([0-9][a-zA-Z0-9.]*)+'), None, []),
1135-# ('libiphb', ('https://github.com/nemomobile/libiphb/releases', 'libiphb/archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1136-# ('libpinyin', ('https://github.com/libpinyin/libpinyin/releases', '([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1137+# ('libiphb', GITHUB_URL ('nemomobile', 'libiphb'), None, []),
1138+# ('libpinyin', GITHUB_URL ('libpinyin', 'libpinyin'), None, []),
1139 ('libpipeline', LAUNCHPAD_URL ('libpipeline'), None, []),
1140- ('libplist', ('http://www.libimobiledevice.org/', 'libplist-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1141+ ('libplist', ('http://www.libimobiledevice.org/', 'libplist-([0-9][0-9.]*)' + EXT), None, []),
1142 ('libpng1.6', SOURCEFORGE_URL ('libpng', 'libpng16', 'libpng16/(1.[0-9.]*)'), None, []), # FIXME: Two regexes required
1143 # ('libpod-latex-perl', CPAN_URL ('Pod-LaTeX'), None, ['perl']),
1144- ('libproxy', GITHUB_URL ('libproxy', 'libproxy', '([0-9][0-9.]*)'), None, []),
1145-# ('libpst', ('http://www.five-ten-sg.com/libpst/packages/', 'libpst-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1146- ('libpsl', ('https://github.com/rockdaboot/libpsl/releases/latest', 'libpsl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1147- ('libpwquality', ('https://github.com/libpwquality/libpwquality/releases', 'libpwquality-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1148-# ('libqalculate', SOURCEFORGE_URL ('qalculate', 'libqalculate/libqalculate-([0-9.]+)', 'libqualculate-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1149- ('libqmi', ('https://freedesktop.org/software/libqmi/', 'libqmi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1150-# ('libqtgtl', ('http://download.opengtl.org/', 'libQtGTL-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1151- ('libquvi', SOURCEFORGE_URL ('quvi', '([0-9.]+)/libquvi', 'libquvi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1152- ('libquvi-scripts', SOURCEFORGE_URL ('quvi', '([0-9.]+)/libquvi-scripts', 'libquvi-scripts-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1153- ('libraw1394', ('https://www.kernel.org/pub/linux/libs/ieee1394/', 'libraw1394-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1154- ('libraw', ('http://www.libraw.org/download', 'LibRaw-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1155-# ('librcc', SOURCEFORGE_URL ('rusxmms', 'Charset%20Conversion%20Library/([0-9.]+)', 'librcc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1156-# ('librcd', SOURCEFORGE_URL ('rusxmms', 'Charset%20Detection%20Library/(0[0-0.]*)', 'librcd-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []), # Note only suport 0.x because there is a bogus 1.1.10 directory
1157- ('libreoffice', ('http://download.documentfoundation.org/libreoffice/src/', 'release[a-zA-Z0-9.-]*-((\d.\d.\d)).[\d].log'), ('http://download.documentfoundation.org/libreoffice/src/([0-9.]+)/', 'libreoffice-([0-9][a-zA-Z0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), []),
1158-# ('libreoffice-dictionaries', ('http://download.documentfoundation.org/libreoffice/src/', 'release[a-zA-Z0-9.-]*-((\d.\d.\d)).[\d].log'), ('http://download.documentfoundation.org/libreoffice/src/([0-9.]+)/', 'libreoffice-dictionaries-([0-9][a-zA-Z0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), []),
1159+ ('libproxy', GITHUB_URL ('libproxy', 'libproxy'), None, []),
1160+# ('libpst', ('http://www.five-ten-sg.com/libpst/packages/', 'libpst-([0-9][0-9.]*)' + EXT), None, []),
1161+ ('libpsl', GITHUB_URL ('rockdaboot', 'libpsl'), None, []),
1162+ ('libpwquality', GITHUB_URL ('libpwquality', 'libpwquality'), None, []),
1163+# ('libqalculate', SOURCEFORGE_URL ('qalculate', 'libqalculate/libqalculate-([0-9.]+)', 'libqualculate-([0-9][0-9.]*)' + EXT), None, []),
1164+ ('libqmi', FDO_URL ('mobile-broadband', 'libqmi'), None, []),
1165+# ('libqtgtl', ('http://download.opengtl.org/', 'libQtGTL-([0-9][0-9.]*)' + EXT), None, []),
1166+ ('libquvi', SOURCEFORGE_URL ('quvi', '([0-9.]+)/libquvi', 'libquvi-([0-9][0-9.]*)' + EXT), None, []),
1167+ ('libquvi-scripts', SOURCEFORGE_URL ('quvi', '([0-9.]+)/libquvi-scripts', 'libquvi-scripts-([0-9][0-9.]*)' + EXT), None, []),
1168+ ('libraw1394', ('https://www.kernel.org/pub/linux/libs/ieee1394/', 'libraw1394-([0-9][0-9.]*)' + EXT), None, []),
1169+ ('libraw', ('http://www.libraw.org/download', 'LibRaw-([0-9][0-9.]*)' + EXT), None, []),
1170+# ('librcc', SOURCEFORGE_URL ('rusxmms', 'Charset%20Conversion%20Library/([0-9.]+)', 'librcc-([0-9][0-9.]*)' + EXT), None, []),
1171+# ('librcd', SOURCEFORGE_URL ('rusxmms', 'Charset%20Detection%20Library/(0[0-0.]*)', 'librcd-([0-9][0-9.]*)' + EXT), None, []), # Note only suport 0.x because there is a bogus 1.1.10 directory
1172+ ('libreoffice', ('http://download.documentfoundation.org/libreoffice/src/', 'release[a-zA-Z0-9.-]*-((\d.\d.\d)).[\d].log'), ('http://download.documentfoundation.org/libreoffice/src/([0-9.]+)/', 'libreoffice-([0-9][a-zA-Z0-9.]*)' + EXT), []),
1173+# ('libreoffice-dictionaries', ('http://download.documentfoundation.org/libreoffice/src/', 'release[a-zA-Z0-9.-]*-((\d.\d.\d)).[\d].log'), ('http://download.documentfoundation.org/libreoffice/src/([0-9.]+)/', 'libreoffice-dictionaries-([0-9][a-zA-Z0-9.]*)' + EXT), []),
1174 ('librest', GNOME_FTP_URL ('rest'), None, ['gnome']),
1175- ('librevenge', SOURCEFORGE_URL ('libwpd', 'librevenge/librevenge-([0-9.]+)', 'librevenge-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1176+ ('librevenge', SOURCEFORGE_URL ('libwpd', 'librevenge/librevenge-([0-9.]+)', 'librevenge-([0-9][0-9.]*)' + EXT), None, []),
1177 ('librsvg', GNOME_FTP_URL ('librsvg', '2.50'), GNOME_FTP_URL ('librsvg'), ['gnome']),
1178- ('librsync', ('https://github.com/librsync/librsync/releases', 'librsync-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1179- ('libsamplerate', ('http://www.mega-nerd.com/SRC/download.html', 'libsamplerate-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1180- ('libsdl1.2', ('http://www.libsdl.org/release/', 'SDL-([\d\.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1181+ ('librsync', GITHUB_URL ('librsync', 'librsync'), None, []),
1182+ ('libsamplerate', ('http://www.mega-nerd.com/SRC/download.html', 'libsamplerate-([0-9][0-9.]*)' + EXT), None, []),
1183+ ('libsdl1.2', ('http://www.libsdl.org/release/', 'SDL-([\d\.]*)' + EXT), None, []),
1184 ('libsecret', GNOME_FTP_URL ('libsecret'), None, ['gnome']),
1185- ('libseccomp', ('https://github.com/seccomp/libseccomp/tags', 'archive/v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1186- ('libselinux', ('https://github.com/SELinuxProject/selinux/wiki/Releases', 'libselinux-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1187- ('libsemanage', ('https://github.com/SELinuxProject/selinux/wiki/Releases', 'libsemanage-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1188- ('libsepol', ('https://github.com/SELinuxProject/selinux/wiki/Releases', 'libsepol-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1189-# ('libsexy', ('http://releases.chipx86.com/libsexy/libsexy/', 'libsexy-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1190- ('libshout', ('http://downloads.xiph.org/releases/libshout/', 'libshout-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1191+ ('libseccomp', GITHUB_URL ('seccomp', 'libseccomp'), None, []),
1192+ ('libselinux', GITHUB_URL ('SELinuxProject', 'selinux', 'libselinux'), None, []),
1193+ ('libsemanage', GITHUB_URL ('SELinuxProject', 'selinux', 'libsemanage'), None, []),
1194+ ('libsepol', GITHUB_URL ('SELinuxProject', 'selinux', 'libsepol'), None, []),
1195+# ('libsexy', ('http://releases.chipx86.com/libsexy/libsexy/', 'libsexy-([0-9][0-9.]*)' + EXT), None, []),
1196+ ('libshout', ('http://downloads.xiph.org/releases/libshout/', 'libshout-([0-9][0-9.]*)' + EXT), None, []),
1197 ('libsigc++-2.0', GNOME_FTP_URL ('libsigc++', '(2[\d\.]+[02468])'), GNOME_FTP_URL ('libsigc++', '(2.[0123][0-9])'), ['gnome']),
1198 ('libsignon-glib', UBUNTU, None, []),
1199- ('libsm', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libSM-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1200+ ('libsm', XORG_URL ('lib', 'libSM'), None, ['xorg']),
1201 ('libsmbios', GITHUB_URL ('dell', 'libsmbios', 'v([\d\.]*)'), None, []),
1202- ('libsndfile', ('http://www.mega-nerd.com/libsndfile/files', 'libsndfile-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1203+ ('libsndfile', ('http://www.mega-nerd.com/libsndfile/files', 'libsndfile-([0-9][0-9.]*)' + EXT), None, []),
1204 ('libsocket6-perl', CPAN_URL ('Socket6'), None, ['perl']),
1205 ('libsodium', GITHUB_URL ('jedisct1', 'libsodium', '([\d\.]*)'), None, []),
1206 ('libsoup2.4', GNOME_FTP_URL ('libsoup', '2.70'), GNOME_FTP_URL ('libsoup'), ['gnome']),
1207- ('libsoxr', ('https://sourceforge.net/projects/soxr/', 'soxr-([0-9][0-9.]*)-Source.tar.xz'), None, []),
1208- ('libspectre', ('https://libspectre.freedesktop.org/releases/', 'libspectre-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1209- ('libssh', ('https://git.libssh.org/projects/libssh.git/', 'libssh-([0-9][0-9.]*).tar'), None, []),
1210+ ('libsoxr', ('https://sourceforge.net/projects/soxr/', 'soxr-([0-9][0-9.]*)-Source' + EXT), None, []),
1211+ ('libspectre', FDO_URL ('libspectre', 'libspectre'), None, []),
1212+ ('libssh', ('https://git.libssh.org/projects/libssh.git/', 'libssh-([0-9][0-9.]*)' + EXT), None, []),
1213 ('libsub-name-perl', CPAN_URL ('Sub-Name'), None, ['perl']),
1214 # ('libswitch-perl', CPAN_URL ('Switch'), None, ['perl']),
1215 # ('libsys-hostname-long-perl', CPAN_URL ('Sys-Hostname-Long'), None, ['perl']),
1216- ('libtasn1-6', ('https://ftp.gnu.org/gnu/libtasn1/', 'libtasn1-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1217- ('libteam', ('http://libteam.org/', 'libteam-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1218+ ('libtasn1-6', ('https://ftp.gnu.org/gnu/libtasn1/', 'libtasn1-([0-9][0-9.]*)' + EXT), None, []),
1219+ ('libteam', ('http://libteam.org/', 'libteam-([0-9][0-9.]*)' + EXT), None, []),
1220 # ('libterm-ui-perl', CPAN_URL ('Term-UI'), None, ['perl']),
1221 # ('libtest-consistentversion-perl', CPAN_URL ('Test-ConsistentVersion'), None, ['perl']),
1222 # ('libtest-number-delta-perl', CPAN_URL ('Test-Number-Delta'), None, ['perl']),
1223@@ -943,67 +950,67 @@ ubuntu_package_info = [
1224 ('libtext-iconv-perl', CPAN_URL ('Text-Iconv'), None, ['perl']),
1225 # ('libtext-soundex-perl', CPAN_URL ('Text-Soundex'), None, ['perl']), # Seems to be out of date
1226 ('libtext-wrapi18n-perl', CPAN_URL ('Text-WrapI18N'), None, ['perl']),
1227- ('libthai', ('http://linux.thai.net/pub/ThaiLinux/software/libthai/', '>libthai-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []), # '>' to filter out *-libthai
1228- ('libtheora', ('http://downloads.xiph.org/releases/theora/', 'libtheora-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1229+ ('libthai', ('http://linux.thai.net/pub/ThaiLinux/software/libthai/', '>libthai-([0-9][0-9.]*)' + EXT), None, []), # '>' to filter out *-libthai
1230+ ('libtheora', ('http://downloads.xiph.org/releases/theora/', 'libtheora-([0-9][0-9.]*)' + EXT), None, []),
1231 ('libtie-ixhash-perl', CPAN_URL ('Tie-IxHash'), None, ['perl']),
1232 ('libtimedate-perl', CPAN_URL ('TimeDate'), None, ['perl']),
1233 ('libtimezonemap', UBUNTU, None, ['unity']),
1234- ('libtool', ('http://mirror.aarnet.edu.au/pub/gnu/libtool/', 'libtool-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1235+ ('libtool', ('http://mirror.aarnet.edu.au/pub/gnu/libtool/', 'libtool-([0-9][0-9.]*)' + EXT), None, []),
1236 ('libtry-tiny-perl', CPAN_URL ('Try-Tiny'), None, ['perl']),
1237- ('libu2f-host', ('https://developers.yubico.com/libu2f-host/Releases/', 'libu2f-host-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1238+ ('libu2f-host', ('https://developers.yubico.com/libu2f-host/Releases/', 'libu2f-host-([0-9][0-9.]*)' + EXT), None, []),
1239 # ('libunique3', GNOME_FTP_URL ('libunique'), None, ['gnome']),
1240- ('libunistring', ('https://ftp.gnu.org/gnu/libunistring/', 'libunistring-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1241+ ('libunistring', ('https://ftp.gnu.org/gnu/libunistring/', 'libunistring-([0-9][0-9.]*)' + EXT), None, []),
1242 ('libunity', UBUNTU, None, []),
1243- ('libunwind', ('http://download.savannah.gnu.org/releases/libunwind/', 'libunwind-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1244-# ('liburcu', ('https://lttng.org/files/urcu/', 'userspace-rcu-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1245- ('libusb-1.0', ('http://sourceforge.net/projects/libusb/files/libusb-1.0/', 'libusb-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1246- ('libusbmuxd', GITHUB_URL ('libimobiledevice', 'libusbmuxd', '([0-9][0-9.]*)'), None, []),
1247+ ('libunwind', ('http://download.savannah.gnu.org/releases/libunwind/', 'libunwind-([0-9][0-9.]*)' + EXT), None, []),
1248+# ('liburcu', ('https://lttng.org/files/urcu/', 'userspace-rcu-([0-9][0-9.]*)' + EXT), None, []),
1249+ ('libusb-1.0', ('http://sourceforge.net/projects/libusb/files/libusb-1.0/', 'libusb-([0-9][0-9.]*)' + EXT), None, []),
1250+ ('libusbmuxd', GITHUB_URL ('libimobiledevice', 'libusbmuxd'), None, []),
1251 ('liburi-perl', CPAN_URL ('URI'), None, ['perl']),
1252- ('libutempter', ('http://ftp.altlinux.org/pub/people/ldv/utempter/', 'libutempter-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1253+ ('libutempter', ('http://ftp.altlinux.org/pub/people/ldv/utempter/', 'libutempter-([0-9][0-9.]*)' + EXT), None, []),
1254 ('libuuid-perl', CPAN_URL ('UUID'), None, ['perl']),
1255- ('libva', ('https://www.freedesktop.org/software/vaapi/releases/libva/', 'libva-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1256- ('libvdpau', ('https://people.freedesktop.org/~aplattner/vdpau/', 'libvdpau-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1257-# ('libvigraimpex', ('http://ukoethe.github.io/vigra/', 'vigra-([0-9][0-9.]*)-src-with-docu.tar.gz'), None, []),
1258-# ('libvirt', ('http://libvirt.org/sources/', 'libvirt-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1259-# ('libvirt-glib', ('http://libvirt.org/sources/glib/', 'libvirt-glib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1260- ('libuv1', ('https://github.com/libuv/libuv/releases', 'v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1261+ ('libva', ('https://www.freedesktop.org/software/vaapi/releases/libva/', 'libva-([0-9][0-9.]*)' + EXT), None, []),
1262+ ('libvdpau', FDO_URL ('vdpau', 'libvdpau'), None, []),
1263+# ('libvigraimpex', ('http://ukoethe.github.io/vigra/', 'vigra-([0-9][0-9.]*)-src-with-docu' + EXT), None, []),
1264+# ('libvirt', ('http://libvirt.org/sources/', 'libvirt-([0-9][0-9.]*)' + EXT), None, []),
1265+# ('libvirt-glib', ('http://libvirt.org/sources/glib/', 'libvirt-glib-([0-9][0-9.]*)' + EXT), None, []),
1266+ ('libuv1', GITHUB_URL ('libuv', 'libuv'), None, []),
1267 ('libvisio', LIBREOFFICE_URL ('libvisio'), None, []),
1268- ('libvisual', SOURCEFORGE_URL ('libvisual', 'libvisual/libvisual-([0-9.]+)', 'libvisual-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1269-# ('libvisual-plugins', SOURCEFORGE_URL ('libvisual', 'libvisual-plugins/libvisual-plugins-([0-9.]+)', 'libvisual-plugins-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1270- ('libvncserver', SOURCEFORGE_URL ('libvncserver', 'libvncserver/([0-9.]+)', 'LibVNCServer-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1271- ('libvorbis', ('http://downloads.xiph.org/releases/vorbis/', 'libvorbis-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1272+ ('libvisual', SOURCEFORGE_URL ('libvisual', 'libvisual/libvisual-([0-9.]+)', 'libvisual-([0-9][0-9.]*)' + EXT), None, []),
1273+# ('libvisual-plugins', SOURCEFORGE_URL ('libvisual', 'libvisual-plugins/libvisual-plugins-([0-9.]+)', 'libvisual-plugins-([0-9][0-9.]*)' + EXT), None, []),
1274+ ('libvncserver', SOURCEFORGE_URL ('libvncserver', 'libvncserver/([0-9.]+)', 'LibVNCServer-([0-9][0-9.]*)' + EXT), None, []),
1275+ ('libvorbis', ('http://downloads.xiph.org/releases/vorbis/', 'libvorbis-([0-9][0-9.]*)' + EXT), None, []),
1276 ('libvpx', ('https://chromium.googlesource.com/webm/libvpx', 'tags/v([0-9][0-9.]*)'), None, []),
1277 ('libwacom', GITHUB_URL ('linuxwacom', 'libwacom', 'libwacom-([0-9][0-9.]*)'), None, ['xorg']),
1278- ('libwebp', ('http://downloads.webmproject.org/releases/webp/index.html', 'libwebp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1279- ('libwmf', SOURCEFORGE_URL ('wvware', 'libwmf/([0-9.]+)', 'libwmf-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1280+ ('libwebp', ('http://downloads.webmproject.org/releases/webp/index.html', 'libwebp-([0-9][0-9.]*)' + EXT), None, []),
1281+ ('libwmf', SOURCEFORGE_URL ('wvware', 'libwmf/([0-9.]+)', 'libwmf-([0-9][0-9.]*)' + EXT), None, []),
1282 ('libwnck3', GNOME_FTP_URL ('libwnck', '3.30'), None, ['gnome']),
1283- ('libwpd', SOURCEFORGE_URL ('libwpd', 'libwpd/libwpd-([0-9.]+)', 'libwpd-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1284- ('libwpg', SOURCEFORGE_URL ('libwpg', 'libwpg/libwpg-([0-9.]+)', 'libwpg-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1285- ('libwps', SOURCEFORGE_URL ('libwps', 'libwps/libwps-([0-9.]+)', 'libwps-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1286+ ('libwpd', SOURCEFORGE_URL ('libwpd', 'libwpd/libwpd-([0-9.]+)', 'libwpd-([0-9][0-9.]*)' + EXT), None, []),
1287+ ('libwpg', SOURCEFORGE_URL ('libwpg', 'libwpg/libwpg-([0-9.]+)', 'libwpg-([0-9][0-9.]*)' + EXT), None, []),
1288+ ('libwps', SOURCEFORGE_URL ('libwps', 'libwps/libwps-([0-9.]+)', 'libwps-([0-9][0-9.]*)' + EXT), None, []),
1289 ('libwww-perl', CPAN_URL ('libwww-perl'), None, ['perl']),
1290 ('libwww-robotrules-perl', CPAN_URL ('WWW-RobotRules'), None, ['perl']),
1291- ('libx11', ('http://xorg.freedesktop.org/releases/individual/lib/', 'libX11-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1292+ ('libx11', ('http://xorg.freedesktop.org/releases/individual/lib/', 'libX11-([0-9][0-9.]*)' + EXT), None, ['xorg']),
1293 ('libx11-protocol-perl', CPAN_URL ('X11-Protocol'), None, ['perl']),
1294-# ('libx86', ('http://www.codon.org.uk/~mjg59/libx86/downloads/', 'libx86-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1295- ('libxau', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXau-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1296- ('libxaw', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXaw-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1297- ('libxcb', ('https://xorg.freedesktop.org/releases/individual/xcb/', 'libxcb-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1298- ('libxcomposite', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXcomposite-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1299- ('libxcursor', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXcursor-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1300- ('libxcr ypt', ('https://github.com/besser82/libxcrypt/releases', 'v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1301- ('libxdamage', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXdamage-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1302- ('libxdmcp', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXdmcp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1303- ('libdmx', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libdmx-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1304- ('libxext', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXext-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1305- ('libxfixes', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXfixes-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1306- ('libxfont', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXfont2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1307- ('libxi', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1308- ('libxinerama', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXinerama-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1309- ('libxkbcommon', ('https://xkbcommon.org/', 'libxkbcommon-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1310- ('libxkbfile', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libxkbfile-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1311+# ('libx86', ('http://www.codon.org.uk/~mjg59/libx86/downloads/', 'libx86-([0-9][0-9.]*)' + EXT), None, []),
1312+ ('libxau', XORG_URL ('lib', 'libXau'), None, ['xorg']),
1313+ ('libxaw', XORG_URL ('lib', 'libXaw'), None, ['xorg']),
1314+ ('libxcb', XORG_URL ('lib', 'libxcb'), None, ['xorg']),
1315+ ('libxcomposite', XORG_URL ('lib', 'libXcomposite'), None, ['xorg']),
1316+ ('libxcrypt', GITHUB_URL ('besser82', 'libxcrypt'), None, []),
1317+ ('libxcursor', XORG_URL ('lib', 'libXcursor'), None, ['xorg']),
1318+ ('libxdamage', XORG_URL ('lib', 'libXdamage'), None, ['xorg']),
1319+ ('libxdmcp', XORG_URL ('lib', 'libXdmcp'), None, ['xorg']),
1320+ ('libdmx', XORG_URL ('lib', 'libdmx'), None, ['xorg']),
1321+ ('libxext', XORG_URL ('lib', 'libXext'), None, ['xorg']),
1322+ ('libxfixes', XORG_URL ('lib', 'libXfixes'), None, ['xorg']),
1323+ ('libxfont', XORG_URL ('lib', 'libxfont', 'libXfont2-([0-9][0-9.]*)'), None, ['xorg']),
1324+ ('libxi', XORG_URL ('lib', 'libXi'), None, ['xorg']),
1325+ ('libxinerama', XORG_URL ('lib', 'libXinerama'), None, ['xorg']),
1326+ ('libxkbcommon', ('https://xkbcommon.org/', 'libxkbcommon-([0-9][0-9.]*)' + EXT), None, ['xorg']),
1327+ ('libxkbfile', XORG_URL ('lib', 'libxkbfile'), None, ['xorg']),
1328 ('libxklavier', GNOME_FTP_URL ('libxklavier'), None, ['xorg', 'gnome']), # GNOME FTP doesn't have libxklavier 5.4...
1329- ('libxmlb', ('https://github.com/hughsie/libxmlb/tags', '([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1330- ('libxml2', ('ftp://xmlsoft.org/libxml2/', 'libxml2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1331+ ('libxmlb', GITHUB_URL ('hughsie', 'libxmlb'), None, []),
1332+ ('libxml2', ('ftp://xmlsoft.org/libxml2/', 'libxml2-([0-9][0-9.]*)' + EXT), None, []),
1333 # ('libxml-filter-buffertext-perl', CPAN_URL ('XML-Filter-BufferText'), None, ['perl']),
1334 # ('libxml-handler-yawriter-perl', CPAN_URL ('XML-Handler-YAWriter'), None, ['perl']),
1335 ('libxml-libxml-perl', CPAN_URL ('XML-LibXML'), None, ['perl']),
1336@@ -1018,30 +1025,30 @@ ubuntu_package_info = [
1337 ('libxml-twig-perl', CPAN_URL ('XML-Twig'), None, ['perl']),
1338 # ('libxml-xpath-perl', CPAN_URL ('XML-XPath'), None, ['perl']),
1339 ('libxml-xpathengine-perl', CPAN_URL ('XML-XPathEngine'), None, ['perl']),
1340- ('libxmu', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXmu-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1341- ('libxpm', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXpm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1342- ('libxrandr', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXrandr-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1343- ('libxrender', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXrender-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1344- ('libxres', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXres-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1345- ('libxshmfence', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libxshmfence-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1346- ('libxslt', ('ftp://xmlsoft.org/libxslt/', 'libxslt-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1347- ('libxss', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXScrnSaver-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1348- ('libxt', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXt-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1349- ('libxtst', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXtst-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1350- ('libxv', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXv-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1351- ('libxvmc', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXvMC-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1352- ('libxxf86dga', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXxf86dga-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1353- ('libxxf86vm', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXxf86vm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1354-# ('libyaml', ('http://pyyaml.org/download/libyaml/', 'yaml-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1355+ ('libxmu', XORG_URL ('lib', 'libXmu'), None, ['xorg']),
1356+ ('libxpm', XORG_URL ('lib', 'libXpm'), None, ['xorg']),
1357+ ('libxrandr', XORG_URL ('lib', 'libXrandr'), None, ['xorg']),
1358+ ('libxrender', XORG_URL ('lib', 'libXrender'), None, ['xorg']),
1359+ ('libxres', XORG_URL ('lib', 'libXres'), None, ['xorg']),
1360+ ('libxshmfence', XORG_URL ('lib', 'libxshmfence'), None, ['xorg']),
1361+ ('libxslt', ('ftp://xmlsoft.org/libxslt/', 'libxslt-([0-9][0-9.]*)' + EXT), None, []),
1362+ ('libxss', XORG_URL ('lib', 'libXScrnSaver'), None, ['xorg']),
1363+ ('libxt', XORG_URL ('lib', 'libXt'), None, ['xorg']),
1364+ ('libxtst', XORG_URL ('lib', 'libXtst'), None, ['xorg']),
1365+ ('libxv', XORG_URL ('lib', 'libXv'), None, ['xorg']),
1366+ ('libxvmc', XORG_URL ('lib', 'libXvMC'), None, ['xorg']),
1367+ ('libxxf86dga', XORG_URL ('lib', 'libXxf86dga'), None, ['xorg']),
1368+ ('libxxf86vm', XORG_URL ('lib', 'libXxf86vm'), None, ['xorg']),
1369+# ('libyaml', ('http://pyyaml.org/download/libyaml/', 'yaml-([0-9][0-9.]*)' + EXT), None, []),
1370 ('libyaml-libyaml-perl', CPAN_URL ('YAML-LibYAML'), None, ['perl']),
1371 ('libyaml-tiny-perl', CPAN_URL ('YAML-Tiny'), None, ['perl']),
1372-# ('libytnef', SOURCEFORGE_URL ('ytnef', 'libytnef/([0-9.]+)', 'libytnef-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1373+# ('libytnef', SOURCEFORGE_URL ('ytnef', 'libytnef/([0-9.]+)', 'libytnef-([0-9][0-9.]*)' + EXT), None, []),
1374 ('libzapojit', GNOME_FTP_URL ('libzapojit'), None, ['gnome']),
1375- ('libzstd', ('https://github.com/facebook/zstd/tags', 'v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1376+ ('libzstd', GITHUB_URL ('facebook', 'zstd'), None, []),
1377 # ('libzeitgeist', LAUNCHPAD_URL ('libzeitgeist'), None, []),
1378-# ('libzip', ('http://nih.at/libzip/', 'libzip-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1379+# ('libzip', ('http://nih.at/libzip/', 'libzip-([0-9][0-9.]*)' + EXT), None, []),
1380 # ('lightdm-gtk-greeter', LAUNCHPAD_URL ('lightdm-gtk-greeter'), None, []),
1381- ('lightdm', ('https://github.com/CanonicalLtd/lightdm/tags', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1382+ ('lightdm', GITHUB_URL ('CanonicalLtd', 'lightdm'), None, []),
1383 ('lightsoff', GNOME_FTP_URL ('lightsoff'), GNOME_FTP_URL ('lightsoff'), ['gnome']),
1384 ('lintian', DEBIAN, None, []),
1385 ('linux-signed', UBUNTU, None, []),
1386@@ -1049,411 +1056,412 @@ ubuntu_package_info = [
1387 ('linux-base', DEBIAN, None, []),
1388 ('linux-firmware', UBUNTU, None, []),
1389 ('linux-meta', UBUNTU, None, []),
1390- ('lirc', SOURCEFORGE_URL ('lirc', 'LIRC/([0-9.]+)', 'lirc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1391- ('llvm-toolchain-8', ('https://releases.llvm.org/download.html', 'llvm-([0-9][0-9.]*).(src.tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1392- ('lmdb', ('https://github.com/LMDB/lmdb/releases', 'LMDB_([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1393+ ('lirc', SOURCEFORGE_URL ('lirc', 'LIRC/([0-9.]+)', 'lirc-([0-9][0-9.]*)' + EXT), None, []),
1394+ ('llvm-toolchain-8', ('https://api.github.com/repos/llvm/llvm-project/releases', 'llvm-(8\.[0-9][0-9.]*)\.src' + EXT), None, []),
1395+ ('llvm-toolchain-10', ('https://api.github.com/repos/llvm/llvm-project/releases', 'llvm-(10\.[0-9][0-9.]*)\.src' + EXT), None, []),
1396+ ('lmdb', GITHUB_URL ('LMDB', 'lmdb', 'LMDB'), None, []),
1397 ('lm-sensors', GITHUB_URL ('groeck', 'lm-sensors', 'V([0-9][0-9.-]*)'), None, []),
1398 # ('loudmouth', GNOME_FTP_URL ('loudmouth'), None, ['gnome']),
1399- ('lp-solve', SOURCEFORGE_URL ('lpsolve', 'lpsolve/([\d\.]+)/', 'lp_solve_([0-9][0-9a-zA-Z.]*)_source.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1400+ ('lp-solve', SOURCEFORGE_URL ('lpsolve', 'lpsolve/([\d\.]+)/', 'lp_solve_([0-9][0-9a-zA-Z.]*)_source' + EXT), None, []),
1401 ('lsb', DEBIAN, None, []),
1402- ('lshw', ('http://ezix.org/software/files/', 'lshw-B.([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1403- ('lsof', ('ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/', 'lsof_([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1404+ ('lshw', ('http://ezix.org/software/files/', 'lshw-B.([0-9][0-9.]*)' + EXT), None, []),
1405+ ('lsof', ('ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/', 'lsof_([0-9][0-9.]*)' + EXT), None, []),
1406 ('ltrace', DEBIAN, None, []), # Seems to be maintained in Debian http://ltrace.org/
1407- ('lua5.2', ('http://www.lua.org/ftp/', 'lua-(5.2[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1408- ('lua5.3', ('http://www.lua.org/ftp/', 'lua-(5.3[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1409- ('lvm2', ('ftp://sources.redhat.com/pub/lvm2/', 'LVM2.([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1410-# ('lxcfs', ('https://linuxcontainers.org/lxcfs/downloads/', 'lxcfs-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1411+ ('lua5.2', ('http://www.lua.org/ftp/', 'lua-(5.2[0-9.]*)' + EXT), None, []),
1412+ ('lua5.3', ('http://www.lua.org/ftp/', 'lua-(5.3[0-9.]*)' + EXT), None, []),
1413+ ('lvm2', ('ftp://sources.redhat.com/pub/lvm2/', 'LVM2.([0-9][0-9.]*)' + EXT), None, []),
1414+# ('lxcfs', ('https://linuxcontainers.org/lxcfs/downloads/', 'lxcfs-([0-9][0-9.]*)' + EXT), None, []),
1415 # ('lxd', GITHUB_URL ('lxc', 'lxd', 'lxd-([0-9][0-9.]*)'), None, []),
1416-# ('lyx', ('http://ftp.lyx.org/pub/lyx/stable/([0-9.x]+)', 'lyx-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1417- ('lzo2', ('http://www.oberhumer.com/opensource/lzo/download/', 'lzo-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1418- ('lz4', ('https://github.com/lz4/lz4/tags', 'v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1419+# ('lyx', ('http://ftp.lyx.org/pub/lyx/stable/([0-9.x]+)', 'lyx-([0-9][0-9.]*)' + EXT), None, []),
1420+ ('lzo2', ('http://www.oberhumer.com/opensource/lzo/download/', 'lzo-([0-9][0-9.]*)' + EXT), None, []),
1421+ ('lz4', GITHUB_URL ('lz4', 'lz4'), None, []),
1422 ('m2300w', ('https://sourceforge.net/projects/m2300w/files/m2300w/', 'm2300w-([0-9][0-9.]*)/'), None, []),
1423 # ('m2crypto', PYPI_URL ('M2Crypto'), None, []),
1424-# ('m4', ('https://ftp.gnu.org/gnu/m4/', 'm4-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1425-# ('maliit-framework', ('https://github.com/maliit/framework/releases', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1426+# ('m4', ('https://ftp.gnu.org/gnu/m4/', 'm4-([0-9][0-9.]*)' + EXT), None, []),
1427+# ('maliit-framework', GITHUB_URL ('maliit', 'framework'), None, []),
1428 # ('mail-spf-perl', CPAN_URL ('Mail-SPF'), None, ['perl']),
1429- ('make-dfsg', ('https://ftp.gnu.org/gnu/make/', 'make-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1430+ ('make-dfsg', ('https://ftp.gnu.org/gnu/make/', 'make-([0-9][0-9.]*)' + EXT), None, []),
1431 ('mako', ('http://www.makotemplates.org/download.html', '<b>([0-9][0-9.]*)'), None, []),
1432- ('man-db', ('https://download.savannah.nongnu.org/releases/man-db/', 'man-db-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1433- ('manpages', ('https://www.kernel.org/pub/linux/docs/man-pages/', 'man-pages-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1434+ ('man-db', ('https://download.savannah.nongnu.org/releases/man-db/', 'man-db-([0-9][0-9.]*)' + EXT), None, []),
1435+ ('manpages', ('https://www.kernel.org/pub/linux/docs/man-pages/', 'man-pages-([0-9][0-9.]*)' + EXT), None, []),
1436 ('markupsafe', PYPI_URL ('MarkupSafe'), None, []),
1437 ('mawk', ('https://invisible-mirror.net/archives/xterm/', '(20[0-9.]*)'), None, []),
1438-# ('meanwhile', SOURCEFORGE_URL ('meanwhile', 'meanwhile', 'gaim-meanwhile-([0-9]\.[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1439- ('media-player-info', ('https://freedesktop.org/software/media-player-info/', 'media-player-info-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1440+# ('meanwhile', SOURCEFORGE_URL ('meanwhile', 'meanwhile', 'gaim-meanwhile-([0-9]\.[0-9.]*)' + EXT), None, []),
1441+ ('media-player-info', FDO_URL ('media-player-info', 'media-player-info'), None, []),
1442 ('meld', GNOME_FTP_URL ('meld'), GNOME_FTP_URL ('meld'), ['gnome']),
1443 ('memtest86+', ('http://www.memtest.org/#downcode', 'download/([0-9][0-9.]*)'), None, []),
1444- ('mesa', ('https://cgit.freedesktop.org/mesa/mesa/refs/', 'id=mesa-([0-9][0-9.]*[0-9])'), None, ['xorg']),
1445- ('mesa-demos', ('https://mesa.freedesktop.org/archive/demos/([0-9.]+)', 'mesa-demos-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1446+ ('mesa', FDO_URL ('mesa', 'mesa', '([0-9][0-9.]*[0-9])'), None, ['xorg']),
1447+ ('mesa-demos', ('https://mesa.freedesktop.org/archive/demos/([0-9.]+)', 'mesa-demos-([0-9][0-9.]*)' + EXT), None, ['xorg']),
1448 # ('messaging-app', UBUNTU, None, []),
1449 ('metacity', GNOME_FTP_URL ('metacity'), None, ['gnome']),
1450- ('metis', ('http://glaros.dtc.umn.edu/gkhome/metis/metis/download', 'metis-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1451- ('mhash', SOURCEFORGE_URL ('mhash', 'mhash/([0-9.]+)', 'mhash-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1452- ('min12xxw', ('http://www.hinterbergen.de/mala/min12xxw/', 'min12xxw-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1453- ('miniupnpc', ('http://miniupnp.free.fr/files/', 'miniupnpc-([0-9]*[.][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1454- ('mir', ('https://github.com/MirServer/mir/tags', 'v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1455-# ('miscfiles', ('https://ftp.gnu.org/gnu/miscfiles/', 'miscfiles-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1456- ('mlocate', ('https://releases.pagure.org/mlocate/', 'mlocate-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1457+ ('metis', ('http://glaros.dtc.umn.edu/gkhome/metis/metis/download', 'metis-([0-9][0-9.]*)' + EXT), None, []),
1458+ ('mhash', SOURCEFORGE_URL ('mhash', 'mhash/([0-9.]+)', 'mhash-([0-9][0-9.]*)' + EXT), None, []),
1459+ ('min12xxw', ('http://www.hinterbergen.de/mala/min12xxw/', 'min12xxw-([0-9][0-9.]*)' + EXT), None, []),
1460+ ('miniupnpc', ('http://miniupnp.free.fr/files/', 'miniupnpc-([0-9]*[.][0-9.]*)' + EXT), None, []),
1461+ ('mir', GITHUB_URL ('MirServer', 'mir'), None, []),
1462+# ('miscfiles', ('https://ftp.gnu.org/gnu/miscfiles/', 'miscfiles-([0-9][0-9.]*)' + EXT), None, []),
1463+ ('mlocate', ('https://releases.pagure.org/mlocate/', 'mlocate-([0-9][0-9.]*)' + EXT), None, []),
1464 ('mm-common', GNOME_FTP_URL ('mm-common'), None, ['gnome']),
1465 ('mobile-broadband-provider-info', GNOME_FTP_URL ('mobile-broadband-provider-info'), None, ['gnome']),
1466 # ('mocker', LAUNCHPAD_URL ('mocker'), None, []),
1467- ('modemmanager', ('https://freedesktop.org/software/ModemManager/', 'ModemManager-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1468- ('mono', ('http://download.mono-project.com/sources/mono/', 'mono-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
1469+ ('modemmanager', FDO_URL ('mobile-broadband', 'ModemManager'), None, []),
1470+ ('mono', ('http://download.mono-project.com/sources/mono/', 'mono-([0-9][0-9.]*)' + EXT), None, ['gnome']),
1471 # ('mountall', UBUNTU, None, []),
1472 ('mousetweaks', GNOME_FTP_URL ('mousetweaks', '([\d\.]+[02468])'), GNOME_FTP_URL ('mousetweaks'), ['gnome']),
1473 ('mozjs52', ('http://archive.mozilla.org/pub/firefox/releases/', '(52.[0-9][0-9.]*)esr'), None, []),
1474 ('mozjs68', ('http://archive.mozilla.org/pub/firefox/releases/', '(68.[0-9][0-9.]*)esr'), None, []),
1475 ('mozjs78', ('http://archive.mozilla.org/pub/firefox/releases/', '(78.[0-9][0-9.]*)esr'), None, []),
1476- ('mpclib3', ('http://www.multiprecision.org/mpc/download.html', 'mpc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1477- ('mpfr4', ('https://ftp.gnu.org/gnu/mpfr/', 'mpfr-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1478- ('mpg123', SOURCEFORGE_URL ('mpg123', 'mpg123/([0-9.]+)', 'mpg123-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1479- ('mscompress', ('ftp://ftp.penguin.cz/pub/users/mhi/mscompress/', 'mscompress-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1480- ('mtdev', ('http://bitmath.org/code/mtdev/', 'mtdev-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1481- ('mtools', ('https://ftp.gnu.org/gnu/mtools/', 'mtools-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1482-# ('mtpaint', SOURCEFORGE_URL ('mtpaint', 'mtpaint/([0-9.]+)', 'mtpaint-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1483- ('mtr', ('ftp://ftp.bitwizard.nl/mtr/', 'mtr-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1484+ ('mpclib3', ('http://www.multiprecision.org/mpc/download.html', 'mpc-([0-9][0-9.]*)' + EXT), None, []),
1485+ ('mpfr4', ('https://ftp.gnu.org/gnu/mpfr/', 'mpfr-([0-9][0-9.]*)' + EXT), None, []),
1486+ ('mpg123', SOURCEFORGE_URL ('mpg123', 'mpg123/([0-9.]+)', 'mpg123-([0-9][0-9.]*)' + EXT), None, []),
1487+ ('mscompress', ('ftp://ftp.penguin.cz/pub/users/mhi/mscompress/', 'mscompress-([0-9][0-9.]*)' + EXT), None, []),
1488+ ('mtdev', ('http://bitmath.org/code/mtdev/', 'mtdev-([0-9][0-9.]*)' + EXT), None, []),
1489+ ('mtools', ('https://ftp.gnu.org/gnu/mtools/', 'mtools-([0-9][0-9.]*)' + EXT), None, []),
1490+# ('mtpaint', SOURCEFORGE_URL ('mtpaint', 'mtpaint/([0-9.]+)', 'mtpaint-([0-9][0-9.]*)' + EXT), None, []),
1491+ ('mtr', ('ftp://ftp.bitwizard.nl/mtr/', 'mtr-([0-9][0-9.]*)' + EXT), None, []),
1492 ('mutter', GNOME_FTP_URL ('mutter'), GNOME_FTP_URL ('mutter'), ['gnome']),
1493-# ('mx', ('https://github.com/clutter-project/mx/releases', '(1.4.[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1494-# ('myspell-el-gr', ('http://elspell.math.upatras.gr/?section=oofficespell&subsection=howto', 'files/ooffice/el_GR-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1495+# ('mx', GITHUB_URL ('clutter-project', 'mx'), None, []),
1496+# ('myspell-el-gr', ('http://elspell.math.upatras.gr/?section=oofficespell&subsection=howto', 'files/ooffice/el_GR-([0-9][0-9.]*)' + EXT), None, []),
1497 # ('myspell-hr', DEBIAN, None, []),
1498-# ('myspell-lv', SOURCEFORGE_URL ('openoffice-lv', 'openoffice-lv', 'lv_LV-([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1499+# ('myspell-lv', SOURCEFORGE_URL ('openoffice-lv', 'openoffice-lv', 'lv_LV-([0-9][0-9.]+)' + EXT), None, []),
1500 # ('myspell.pt' , DEBIAN, None, []),
1501 # ('myspell-pt-br', DEBIAN, None, []),
1502-# ('mysql-connector-c++', ('http://ftp.gwdg.de/pub/misc/mysql/Downloads/Connector-C++/', 'mysql-connector-c\+\+-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1503+# ('mysql-connector-c++', ('http://ftp.gwdg.de/pub/misc/mysql/Downloads/Connector-C++/', 'mysql-connector-c\+\+-([0-9][0-9.]*)' + EXT), None, []),
1504 ('mysql-defaults', DEBIAN, None, []),
1505 ('mysql-8.0', ('https://dev.mysql.com/downloads/mysql/', 'mysql-(8[0-9.]*)-'), None, []),
1506- ('mythes', SOURCEFORGE_URL ('hunspell', 'MyThes/([0-9.]+)', 'mythes-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1507- ('nano', ('https://ftp.gnu.org/gnu/nano/', 'nano-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1508- ('nas', ('https://radscan.com/nas.html', 'nas-([0-9][0-9.]*).src.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1509+ ('mythes', SOURCEFORGE_URL ('hunspell', 'MyThes/([0-9.]+)', 'mythes-([0-9][0-9.]*)' + EXT), None, []),
1510+ ('nano', ('https://ftp.gnu.org/gnu/nano/', 'nano-([0-9][0-9.]*)' + EXT), None, []),
1511+ ('nas', ('https://radscan.com/nas.html', 'nas-([0-9][0-9.]*).src' + EXT), None, []),
1512 ('nautilus', GNOME_FTP_URL ('nautilus', GNOME_STABLE_SERIES), GNOME_FTP_URL ('nautilus'), ['gnome']),
1513 ('nautilus-sendto', GNOME_FTP_URL ('nautilus-sendto'), GNOME_FTP_URL ('nautilus-sendto'), ['gnome']),
1514 ('nautilus-share', GNOME_FTP_URL ('nautilus-share'), None, ['gnome']),
1515- ('ncurses', ('https://ftp.gnu.org/gnu/ncurses/', 'ncurses-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1516-# ('ndg-httpsclient', ('https://pypi.python.org/pypi/ndg-httpsclient', 'ndg_httpsclient-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
1517+ ('ncurses', ('https://ftp.gnu.org/gnu/ncurses/', 'ncurses-([0-9][0-9.]*)' + EXT), None, []),
1518+# ('ndg-httpsclient', ('https://pypi.python.org/pypi/ndg-httpsclient', 'ndg_httpsclient-([0-9][0-9.]*)' + EXT), None, ['python']),
1519 # ('nemiver', GNOME_FTP_URL ('nemiver'), None, ['gnome']),
1520- ('neon27', ('https://notroj.github.io/neon/', 'neon-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1521+ ('neon27', ('https://notroj.github.io/neon/', 'neon-([0-9][0-9.]*)' + EXT), None, []),
1522 # ('netbase', DEBIAN, None, []),
1523- ('netkit-ftp', ('http://ftp.linux.org.uk/pub/linux/Networking/netkit/', 'netkit-ftp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1524- ('netkit-telnet', ('http://ftp.linux.org.uk/pub/linux/Networking/netkit/', 'netkit-telnet-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1525+ ('netkit-ftp', ('http://ftp.linux.org.uk/pub/linux/Networking/netkit/', 'netkit-ftp-([0-9][0-9.]*)' + EXT), None, []),
1526+ ('netkit-telnet', ('http://ftp.linux.org.uk/pub/linux/Networking/netkit/', 'netkit-telnet-([0-9][0-9.]*)' + EXT), None, []),
1527 ('netpbm-free', DEBIAN, None, []),
1528- ('net-snmp', SOURCEFORGE_URL ('net-snmp', 'net-snmp/([0-9.]+)', 'net-snmp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1529- ('nettle', ('https://ftp.gnu.org/gnu/nettle/', 'nettle-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1530+ ('net-snmp', SOURCEFORGE_URL ('net-snmp', 'net-snmp/([0-9.]+)', 'net-snmp-([0-9][0-9.]*)' + EXT), None, []),
1531+ ('nettle', ('https://ftp.gnu.org/gnu/nettle/', 'nettle-([0-9][0-9.]*)' + EXT), None, []),
1532 ('network-manager-applet', GNOME_FTP_URL ('network-manager-applet'), None, ['gnome']),
1533 ('network-manager', GNOME_FTP_URL ('NetworkManager', '1.26'), GNOME_FTP_URL ('NetworkManager'), ['gnome']),
1534 ('network-manager-openvpn', GNOME_FTP_URL ('NetworkManager-openvpn'), None, ['gnome']),
1535 ('network-manager-pptp', GNOME_FTP_URL ('NetworkManager-pptp'), None, ['gnome']),
1536- ('nghttp2', ('https://github.com/nghttp2/nghttp2/tags', 'tag/v([0-9][0-9.]*)'), None, []),
1537+ ('nghttp2', GITHUB_URL ('nghttp2', 'nghttp2'), None, []),
1538 ('notification-daemon', GNOME_FTP_URL ('notification-daemon'), None, ['gnome']),
1539 # ('norwegian', DEBIAN, None, []),
1540- ('npth', ('https://gnupg.org/ftp/gcrypt/npth', 'npth-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1541+ ('npth', ('https://gnupg.org/ftp/gcrypt/npth', 'npth-([0-9][0-9.]*)' + EXT), None, []),
1542 ('nspr', ('http://archive.mozilla.org/pub/nspr/releases/', 'v([0-9][0-9.]*)'), None, []),
1543 ('nss', ('http://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases', 'NSS_([0-9][0-9.]*)'), None, []),
1544- ('nss-mdns', ('http://0pointer.de/lennart/projects/nss-mdns/', 'nss-mdns-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1545- ('ntfs-3g', ('http://www.tuxera.com/community/ntfs-3g-advanced/', 'ntfs-3g_ntfsprogs-([0-9A-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1546-# ('ntp', ('http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-([0-9.]+)/', 'ntp-([0-9][0-9.p]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1547- ('numactl', ('ftp://oss.sgi.com/www/projects/libnuma/download/', 'numactl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1548-# ('obconf', ('http://openbox.org/dist/obconf/', 'obconf-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1549-# ('obex-data-server', ('http://tadas.dailyda.com/software/', 'obex-data-server-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1550-# ('obexd', ('https://www.kernel.org/pub/linux/bluetooth/', 'obexd-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1551+ ('nss-mdns', ('http://0pointer.de/lennart/projects/nss-mdns/', 'nss-mdns-([0-9][0-9.]*)' + EXT), None, []),
1552+ ('ntfs-3g', ('http://www.tuxera.com/community/ntfs-3g-advanced/', 'ntfs-3g_ntfsprogs-([0-9A-Z.]*)' + EXT), None, []),
1553+# ('ntp', ('http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-([0-9.]+)/', 'ntp-([0-9][0-9.p]*)' + EXT), None, []),
1554+ ('numactl', ('ftp://oss.sgi.com/www/projects/libnuma/download/', 'numactl-([0-9][0-9.]*)' + EXT), None, []),
1555+# ('obconf', ('http://openbox.org/dist/obconf/', 'obconf-([0-9][0-9.]*)' + EXT), None, []),
1556+# ('obex-data-server', ('http://tadas.dailyda.com/software/', 'obex-data-server-([0-9][0-9.]*)' + EXT), None, []),
1557+# ('obexd', ('https://www.kernel.org/pub/linux/bluetooth/', 'obexd-([0-9][0-9.]*)' + EXT), None, []),
1558 ('olefile', PYPI_URL ('olefile'), None, ['python']),
1559 # ('onboard', LAUNCHPAD_URL ('onboard'), None, []),
1560-# ('openal-soft', ('http://kcat.strangesoft.net/openal-releases/', 'openal-soft-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1561-# ('openconnect', ('ftp://ftp.infradead.org/pub/openconnect/', 'openconnect-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1562+# ('openal-soft', ('http://kcat.strangesoft.net/openal-releases/', 'openal-soft-([0-9][0-9.]*)' + EXT), None, []),
1563+# ('openconnect', ('ftp://ftp.infradead.org/pub/openconnect/', 'openconnect-([0-9][0-9.]*)' + EXT), None, []),
1564 ('openexr', ('http://www.openexr.com/downloads.html', 'tag/v([0-9][0-9.]*)'), None, []),
1565-# ('opengtl', ('http://download.opengtl.org/', 'OpenGTL-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1566- ('openldap', ('http://www.openldap.org/software/download/OpenLDAP/openldap-release/', 'openldap-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1567- ('openjpeg2', ('https://github.com/uclouvain/openjpeg/releases', 'openjpeg-v([0-9][0-9.]*)'), None, []),
1568- ('openssh', ('http://ftp.eu.openbsd.org/pub/OpenBSD/OpenSSH/portable/', 'openssh-([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1569- ('openssl', ('https://www.openssl.org/source/', 'openssl-([0-9][0-9.]*[a-z]).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1570- ('openvpn', ('https://github.com/OpenVPN/openvpn/tags', 'v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1571- ('opus', ('https://www.opus-codec.org/downloads/', 'opus-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1572+# ('opengtl', ('http://download.opengtl.org/', 'OpenGTL-([0-9][0-9.]*)' + EXT), None, []),
1573+ ('openldap', ('http://www.openldap.org/software/download/OpenLDAP/openldap-release/', 'openldap-([0-9][0-9.]*)' + EXT), None, []),
1574+ ('openjpeg2', GITHUB_URL ('uclouvain', 'openjpeg', 'openjpeg'), None, []),
1575+ ('openssh', ('http://ftp.eu.openbsd.org/pub/OpenBSD/OpenSSH/portable/', 'openssh-([0-9][0-9a-zA-Z.]*)' + EXT), None, []),
1576+ ('openssl', ('https://www.openssl.org/source/', 'openssl-([0-9][0-9.]*[a-z])' + EXT), None, []),
1577+ ('openvpn', GITHUB_URL ('OpenVPN', 'openvpn'), None, []),
1578+ ('opus', ('https://www.opus-codec.org/downloads/', 'opus-([0-9][0-9.]*)' + EXT), None, []),
1579 ('orc', GITHUB_URL ('GStreamer', 'orc', '([0-9][0-9.]*)'), None, []),
1580 ('orca', GNOME_FTP_URL ('orca', GNOME_STABLE_SERIES), GNOME_FTP_URL ('orca'), ['gnome']),
1581 ('os-prober', DEBIAN, None, []),
1582- ('osinfo-db', ('https://releases.pagure.org/libosinfo/', 'osinfo-db-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1583- ('ostree', ('https://github.com/ostreedev/ostree/releases', 'ostree-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1584- ('p11-kit', ('https://github.com/p11-glue/p11-kit/releases', 'p11-kit-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1585- ('packagekit', ('https://freedesktop.org/software/PackageKit/releases/', 'PackageKit-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1586- ('pam', ('http://www.linux-pam.org/library/', 'Linux-PAM-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1587+ ('osinfo-db', ('https://releases.pagure.org/libosinfo/', 'osinfo-db-([0-9][0-9.]*)' + EXT), None, []),
1588+ ('ostree', GITHUB_URL ('ostreedev', 'ostree'), None, []),
1589+ ('p11-kit', GITHUB_URL ('p11-glue', 'p11-kit'), None, []),
1590+ ('packagekit', ('https://freedesktop.org/software/PackageKit/releases/', 'PackageKit-([0-9][0-9.]*)' + EXT), None, []),
1591+ ('pam', ('http://www.linux-pam.org/library/', 'Linux-PAM-([0-9][0-9.]*)' + EXT), None, []),
1592 ('pango1.0', GNOME_FTP_URL ('pango', '1.46'), GNOME_FTP_URL ('pango'), ['gnome']),
1593 ('pangomm', GNOME_FTP_URL ('pangomm'), GNOME_FTP_URL ('pangomm'), ['gnome']),
1594 ('pangox-compat', GNOME_FTP_URL ('pangox-compat'), None, ['gnome']),
1595-# ('paramiko', ('https://github.com/paramiko/paramiko/releases', 'archive/v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1596- ('parted', ('https://ftp.gnu.org/gnu/parted/', 'parted-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1597+# ('paramiko', GITHUB_URL ('paramiko', 'paramiko'), None, []),
1598+ ('parted', ('https://ftp.gnu.org/gnu/parted/', 'parted-([0-9][0-9.]*)' + EXT), None, []),
1599 # ('pastebinit', LAUNCHPAD_URL ('pastebinit'), None, []),
1600- ('patch', ('https://ftp.gnu.org/gnu/patch/', 'patch-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1601- ('patchutils', ('http://cyberelk.net/tim/data/patchutils/stable/', 'patchutils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1602-# ('pavucontrol', ('https://freedesktop.org/software/pulseaudio/pavucontrol/', 'pavucontrol-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1603- ('pcaudiolib', GITHUB_URL ('rhdunn', 'pcaudiolib', '([0-9][0-9.]*)'), None, []),
1604- ('pciutils', ('https://www.kernel.org/pub/software/utils/pciutils/', 'pciutils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1605- ('pcmciautils', ('https://www.kernel.org/pub/linux/utils/kernel/pcmcia/', 'pcmciautils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1606- ('pcre2', ('https://ftp.pcre.org/pub/pcre/', 'pcre2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1607- ('pcre3', ('https://ftp.pcre.org/pub/pcre/', 'pcre-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1608- ('pcsc-lite', ('https://pcsclite.apdu.fr/files/', 'pcsc-lite-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1609- ('perl', ('http://www.cpan.org/src/5.0/', 'perl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['perl']),
1610+ ('patch', ('https://ftp.gnu.org/gnu/patch/', 'patch-([0-9][0-9.]*)' + EXT), None, []),
1611+ ('patchutils', ('http://cyberelk.net/tim/data/patchutils/stable/', 'patchutils-([0-9][0-9.]*)' + EXT), None, []),
1612+# ('pavucontrol', ('https://freedesktop.org/software/pulseaudio/pavucontrol/', 'pavucontrol-([0-9][0-9.]*)' + EXT), None, []),
1613+ ('pcaudiolib', GITHUB_URL ('rhdunn', 'pcaudiolib'), None, []),
1614+ ('pciutils', ('https://www.kernel.org/pub/software/utils/pciutils/', 'pciutils-([0-9][0-9.]*)' + EXT), None, []),
1615+ ('pcmciautils', ('https://www.kernel.org/pub/linux/utils/kernel/pcmcia/', 'pcmciautils-([0-9][0-9.]*)' + EXT), None, []),
1616+ ('pcre2', ('https://ftp.pcre.org/pub/pcre/', 'pcre2-([0-9][0-9.]*)' + EXT), None, []),
1617+ ('pcre3', ('https://ftp.pcre.org/pub/pcre/', 'pcre-([0-9][0-9.]*)' + EXT), None, []),
1618+ ('pcsc-lite', ('https://pcsclite.apdu.fr/files/', 'pcsc-lite-([0-9][0-9.]*)' + EXT), None, []),
1619+ ('perl', ('http://www.cpan.org/src/5.0/', 'perl-([0-9][0-9.]*)' + EXT), None, ['perl']),
1620 ('perl-openssl-defaults', DEBIAN, None, ['perl']),
1621 ('pexpect', PYPI_URL ('pexpect'), None, []),
1622 ('phodav', GNOME_FTP_URL ('phodav'), None, ['gnome']),
1623-# ('pidgin', SOURCEFORGE_URL ('pidgin', 'Pidgin/([0-9.]+)', 'pidgin-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1624-# ('pidgin-libnotify', SOURCEFORGE_URL ('gaim-libnotify', 'pidgin-libnotify/pidgin-libnotify-([0-9.]+)', 'pidgin-libnotify-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1625-# ('pidgin-otr', ('http://www.cypherpunks.ca/otr/index.php', 'pidgin-otr-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1626+# ('pidgin', SOURCEFORGE_URL ('pidgin', 'Pidgin/([0-9.]+)', 'pidgin-([0-9][0-9.]*)' + EXT), None, []),
1627+# ('pidgin-libnotify', SOURCEFORGE_URL ('gaim-libnotify', 'pidgin-libnotify/pidgin-libnotify-([0-9.]+)', 'pidgin-libnotify-([0-9][0-9.]*)' + EXT), None, []),
1628+# ('pidgin-otr', ('http://www.cypherpunks.ca/otr/index.php', 'pidgin-otr-([0-9][0-9.]*)' + EXT), None, []),
1629 ('pillow', ('http://pypi.python.org/pypi/Pillow', 'Pillow/([0-9][0-9.]*)'), None, ['python']),
1630-# ('pilot-link', ('http://www.pilot-link.org/', 'pilot-link-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1631- ('pinentry', ('https://gnupg.org/ftp/gcrypt/pinentry/', 'pinentry-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1632+# ('pilot-link', ('http://www.pilot-link.org/', 'pilot-link-([0-9][0-9.]*)' + EXT), None, []),
1633+ ('pinentry', ('https://gnupg.org/ftp/gcrypt/pinentry/', 'pinentry-([0-9][0-9.]*)' + EXT), None, []),
1634 # ('piston-mini-client', ('http://pypi.python.org/pypi/piston-mini-client', 'piston-mini-client/([0-9][0-9.]*)'), None, ['python']),
1635 ('pitivi', GNOME_FTP_URL ('pitivi'), None, ['gnome']),
1636- ('pixman', ('https://xorg.freedesktop.org/releases/individual/lib/', 'pixman-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
1637- ('pkcs11-helper', ('https://github.com/OpenSC/pkcs11-helper/tags', 'pkcs11-helper-([0-9][0-9.-]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1638-# ('pkg-config', ('https://pkgconfig.freedesktop.org/releases/', 'pkg-config-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1639+ ('pixman', FDO_URL ('pixman', 'pixman', 'pixman-([0-9][0-9.]*)'), None, ['xorg']),
1640+ ('pkcs11-helper', GITHUB_URL ('OpenSC', 'pkcs11-helper'), None, []),
1641+ ('pkg-config', FDO_URL ('pkg-config', 'pkg-config', 'pkg-config-([0-9][0-9.]*)'), None, []),
1642 # ('plainbox', LAUNCHPAD_URL ('plainbox'), None, []),
1643 # ('plainbox-provider-checkbox', LAUNCHPAD_URL ('plainbox-provider-checkbox'), None, []),
1644-# ('plainbox-provider-resource-generic', ('https://launchpad.net/plainbox-provider-resource/+download/', 'plainbox-provider-resource-generic-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1645+# ('plainbox-provider-resource-generic', ('https://launchpad.net/plainbox-provider-resource/+download/', 'plainbox-provider-resource-generic-([0-9][0-9.]*)' + EXT), None, []),
1646 # ('planner', GNOME_FTP_URL ('planner'), None, ['gnome']),
1647- ('plymouth', ('https://freedesktop.org/software/plymouth/releases/', 'plymouth-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1648-# ('pm-utils', ('https://pm-utils.freedesktop.org/releases/', 'pm-utils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1649- ('pnm2ppa', SOURCEFORGE_URL ('pnm2ppa', 'pnm2ppa/([0-9]\.[0-9.]+)', 'pnm2ppa-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1650+ ('plymouth', FDO_URL ('plymouth', 'plymouth'), None, []),
1651+# ('pm-utils', ('https://pm-utils.freedesktop.org/releases/', 'pm-utils-([0-9][0-9.]*)' + EXT), None, []),
1652+ ('pnm2ppa', SOURCEFORGE_URL ('pnm2ppa', 'pnm2ppa/([0-9]\.[0-9.]+)', 'pnm2ppa-([0-9][0-9.]*)' + EXT), None, []),
1653 ('polari', GNOME_FTP_URL ('polari'), GNOME_FTP_URL ('polari'), ['gnome']),
1654- ('policykit-1', ('https://freedesktop.org/software/polkit/releases/', 'polkit-(0.105).(tar.(gz|bz2|xz)|tgz|zip)+'), ('http://freedesktop.org/software/polkit/releases/', 'polkit-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), []), #stick to 0.105 do avoid mozjs (nacked by security)
1655+ ('policykit-1', FDO_URL ('polkit', 'polkit', '(0.105)'), FDO_URL ('polkit', 'polkit'), []), #stick to 0.105 do avoid mozjs (nacked by security)
1656 ('policykit-1-gnome', GNOME_FTP_URL ('polkit-gnome'), None, ['gnome']),
1657 ('policykit-desktop-privileges', UBUNTU, None, []),
1658- ('poppler-data', ('https://poppler.freedesktop.org', 'poppler-data-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1659- ('poppler', ('https://poppler.freedesktop.org', 'poppler-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1660-# ('popt', ('http://rpm5.org/files/popt/', 'popt-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1661+ ('poppler-data', FDO_URL ('poppler', 'poppler-data', '[A-Z_]+_([0-9][0-9_]*)'), None, []),
1662+ ('poppler', FDO_URL ('poppler', 'poppler'), None, []),
1663+# ('popt', ('http://rpm5.org/files/popt/', 'popt-([0-9][0-9.]*)' + EXT), None, []),
1664 ('popularity-contest', DEBIAN, None, []),
1665-# ('portaudio19', ('http://www.portaudio.com/download.html', 'pa_stable_v19_([0-9]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1666+# ('portaudio19', ('http://www.portaudio.com/download.html', 'pa_stable_v19_([0-9]*)' + EXT), None, []),
1667 ('powermgmt-base', DEBIAN, None, []),
1668 ('ppa-purge', UBUNTU, None, []),
1669 ('pppconfig', DEBIAN, None, []),
1670- ('ppp', ('https://download.samba.org/pub/ppp/', 'ppp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1671+ ('ppp', ('https://download.samba.org/pub/ppp/', 'ppp-([0-9][0-9.]*)' + EXT), None, []),
1672 ('pppoeconf', DEBIAN, None, []),
1673- ('pptp-linux', SOURCEFORGE_URL ('pptpclient', 'pptp/pptp-([0-9.]+)', 'pptp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []), # FIXME: Might have '(stable)' on the end of the name
1674-# ('presage', SOURCEFORGE_URL ('presage', 'presage/([0-9.]+)', 'presage-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1675- ('procps', ('http://procps.sourceforge.net/download.html', 'procps-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1676-# ('proot', ('https://github.com/proot-me/PRoot/releases', 'archive/v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1677- ('protobuf', ('https://github.com/google/protobuf/releases', 'protobuf-cpp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1678- ('psmisc', SOURCEFORGE_URL ('psmisc', 'psmisc', 'psmisc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1679-# ('pth', ('https://ftp.gnu.org/gnu/pth/', 'pth-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1680- ('ptouch-driver', ('https://github.com/philpem/printer-driver-ptouch/tags', 'v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1681+ ('pptp-linux', SOURCEFORGE_URL ('pptpclient', 'pptp/pptp-([0-9.]+)', 'pptp-([0-9][0-9.]*)' + EXT), None, []), # FIXME: Might have '(stable)' on the end of the name
1682+# ('presage', SOURCEFORGE_URL ('presage', 'presage/([0-9.]+)', 'presage-([0-9][0-9.]*)' + EXT), None, []),
1683+ ('procps', ('http://procps.sourceforge.net/download.html', 'procps-([0-9][0-9.]*)' + EXT), None, []),
1684+# ('proot', GITHUB_URL ('proot-me', 'PRoot'), None, []),
1685+ ('protobuf', GITHUB_URL ('google', 'protobuf'), None, []),
1686+ ('psmisc', SOURCEFORGE_URL ('psmisc', 'psmisc', 'psmisc-([0-9][0-9.]*)' + EXT), None, []),
1687+# ('pth', ('https://ftp.gnu.org/gnu/pth/', 'pth-([0-9][0-9.]*)' + EXT), None, []),
1688+ ('ptouch-driver', GITHUB_URL ('philpem', 'printer-driver-ptouch'), None, []),
1689 ('ptyprocess', PYPI_URL ('ptyprocess'), None, []),
1690 ('publicsuffix', DEBIAN, None, []),
1691- ('pulseaudio', ('https://freedesktop.org/software/pulseaudio/releases/', 'pulseaudio-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1692-# ('pxlib', SOURCEFORGE_URL ('pxlib', 'pxlib/([0-9.]+)', 'pxlib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1693- ('pxljr', SOURCEFORGE_URL ('hp-pxl-jetready', 'hp-pxl-jetready/([0-9.]+)', 'pxljr-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1694-# ('pyasn1', SOURCEFORGE_URL ('pyasn1', 'pyasn1', 'pyasn1-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1695+ ('pulseaudio', FDO_URL ('pulseaudio', 'pulseaudio'), None, []),
1696+# ('pxlib', SOURCEFORGE_URL ('pxlib', 'pxlib/([0-9.]+)', 'pxlib-([0-9][0-9.]*)' + EXT), None, []),
1697+ ('pxljr', SOURCEFORGE_URL ('hp-pxl-jetready', 'hp-pxl-jetready/([0-9.]+)', 'pxljr-([0-9][0-9.]*)' + EXT), None, []),
1698+# ('pyasn1', SOURCEFORGE_URL ('pyasn1', 'pyasn1', 'pyasn1-([0-9][0-9.]*)' + EXT), None, []),
1699 ('pyatspi', GNOME_FTP_URL ('pyatspi'), GNOME_FTP_URL ('pyatspi'), ['gnome']),
1700- ('pycairo', ('https://github.com/pygobject/pycairo/releases', 'pycairo-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1701+ ('pycairo', GITHUB_URL ('pygobject', 'pycairo'), None, []),
1702 # ('pycurl', PYPI_URL ('pycurl'), None, []),
1703 ('pygobject', GNOME_FTP_URL ('pygobject', GNOME_STABLE_SERIES), GNOME_FTP_URL ('pygobject'), ['gnome']),
1704 # ('pygoocanvas', GNOME_FTP_URL ('pygoocanvas'), None, ['gnome']),
1705 # ('pygpgme', PYPI_URL ('pygpgme'), None, []),
1706 # ('pygtksourceview', GNOME_FTP_URL ('pygtksourceview'), None, ['gnome']),
1707-# ('pyinotify', ('https://github.com/seb-m/pyinotify/tags', '([0-9][0-9.]*).zip'), None, []),
1708-# ('pyjwt', ('https://github.com/jpadilla/pyjwt/releases', '>v([0-9][0-9.]*)<'), None, []),
1709+# ('pyinotify', GITHUB_URL ('seb-m', 'pyinotify'), None, []),
1710+# ('pyjwt', GITHUB_URL ('jpadilla', 'pyjwt'), None, []),
1711 # ('pyjunitxml', LAUNCHPAD_URL ('pyjunitxml', 'junitxml'), None, []),
1712 # ('pyopenssl', PYPI_URL ('pyOpenSSL'), None, []),
1713 # ('pyorbit', GNOME_FTP_URL ('pyorbit'), None, ['gnome']),
1714-# ('pyotherside', ('https://thp.io/2011/pyotherside/', 'pyotherside-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1715-# ('pyparsing', SOURCEFORGE_URL ('pyparsing', 'pyparsing/pyparsing-([0-9][0-9.]*)', 'pyparsing-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1716+# ('pyotherside', ('https://thp.io/2011/pyotherside/', 'pyotherside-([0-9][0-9.]*)' + EXT), None, []),
1717+# ('pyparsing', SOURCEFORGE_URL ('pyparsing', 'pyparsing/pyparsing-([0-9][0-9.]*)', 'pyparsing-([0-9][0-9.]*)' + EXT), None, []),
1718 ('pyrfc3339', PYPI_URL ('pyRFC3339'), None, ['python']),
1719-# ('pyserial', SOURCEFORGE_URL ('pyserial', 'pyserial/([0-9.]+)', 'pyserial-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1720+# ('pyserial', SOURCEFORGE_URL ('pyserial', 'pyserial/([0-9.]+)', 'pyserial-([0-9][0-9.]*)' + EXT), None, []),
1721 # ('pysmbc', PYPI_URL ('pysmbc'), None, []),
1722 ('python2.7', ('https://www.python.org/ftp/python/', '(2\.7[0-9.]*)'), None, ['python']),
1723 ('python3-defaults', UBUNTU, None, ['python']),
1724 ('python3.8', ('https://www.python.org/ftp/python/', '(3\.8[0-9.]*)'), None, ['python']),
1725 ('python3-stdlib-extensions', ('https://www.python.org/ftp/python/', '(3\.6[0-9.]*)'), None, ['python']),
1726 ('python-apt', DEBIAN, None, ['python']),
1727-# ('python-boto', ('https://github.com/boto/boto/releases', 'tag/([0-9][0-9.]*)'), None, ['python']),
1728+# ('python-boto', GITHUB_URL ('boto', 'boto'), None, ['python']),
1729 ('python-certifi', PYPI_URL ('certifi'), None, ['python']),
1730 ('python-cffi', PYPI_URL ('cffi'), None, ['python']),
1731-# ('python-characteristic', ('http://pypi.python.org/pypi/characteristic/#downloads', 'characteristic-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
1732+# ('python-characteristic', ('http://pypi.python.org/pypi/characteristic/#downloads', 'characteristic-([0-9][0-9.]*)' + EXT), None, ['python']),
1733 # ('python-configglue', PYPI_URL ('configglue'), None, ['python']),
1734- ('py-macaroon-bakery', ('https://github.com/go-macaroon-bakery/py-macaroon-bakery/tags', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
1735- ('pyjwt', ('https://github.com/jpadilla/pyjwt/tags', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
1736- ('pymacaroons' , ('https://github.com/ecordell/pymacaroons/tags', 'tag/v([0-9][0-9.]*)'), None, ['python']),
1737+ ('py-macaroon-bakery', GITHUB_URL ('go-macaroon-bakery', 'py-macaroon-bakery'), None, ['python']),
1738+ ('pyjwt', GITHUB_URL ('jpadilla', 'pyjwt'), None, ['python']),
1739+ ('pymacaroons' , GITHUB_URL ('ecordell', 'pymacaroons'), None, ['python']),
1740 ('python-crypto', PYPI_URL ('pycrypto'), None, ['python']),
1741 ('python-cryptography', PYPI_URL ('cryptography'), None, ['python']),
1742- ('python-cups', ('http://cyberelk.net/tim/data/pycups/', 'pycups-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
1743+ ('python-cups', ('http://cyberelk.net/tim/data/pycups/', 'pycups-([0-9][0-9.]*)' + EXT), None, ['python']),
1744 ('python-debian', DEBIAN, None, ['python']),
1745 ('python-defaults', DEBIAN, None, ['python']),
1746 ('python-defer', LAUNCHPAD_URL ('python-defer', 'defer'), None, ['python']),
1747- ('python-distro', ('https://github.com/nir0s/distro/tags', 'archive/v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
1748+ ('python-distro', GITHUB_URL ('nir0s', 'distro'), None, ['python']),
1749 # ('python-dbusmock', PYPI_URL ('python-dbusmock'), None, ['python']),
1750 # ('python-fixtures', LAUNCHPAD_URL ('python-fixtures', 'fixtures'), None, ['python']),
1751-# ('python-gnupg', ('https://bitbucket.org/vinay.sajip/python-gnupg/downloads', 'python-gnupg-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
1752+# ('python-gnupg', ('https://bitbucket.org/vinay.sajip/python-gnupg/downloads', 'python-gnupg-([0-9][0-9.]*)' + EXT), None, ['python']),
1753 # ('python-guacamole', PYPI_URL ('guacamole'), None, ['python']),
1754- ('python-httplib2', ('https://github.com/jcgregorio/httplib2/tags', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
1755+ ('python-httplib2', GITHUB_URL ('jcgregorio', 'httplib2'), None, ['python']),
1756 ('python-idna', PYPI_URL ('idna'), None, ['python']),
1757 # ('python-ipaddress', PYPI_URL ('ipaddress'), None, ['python']),
1758 ('python-keyring', PYPI_URL ('keyring'), None, ['python']),
1759 ('python-launchpadlib', LAUNCHPAD_URL ('launchpadlib'), None, ['python']),
1760 # ('python-lockfile', PYPI_URL ('lockfile'), None, ['python']),
1761- ('python-nacl', ('https://github.com/pyca/pynacl/tags', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
1762- ('python-oauth', ('https://pypi.python.org/pypi/oauth', 'oauth-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
1763- ('python-oauthlib', ('https://github.com/oauthlib/oauthlib/tags', 'archive/v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
1764+ ('python-nacl', GITHUB_URL ('pyca', 'pynacl'), None, ['python']),
1765+ ('python-oauth', ('https://pypi.python.org/pypi/oauth', 'oauth-([0-9][0-9.]*)' + EXT), None, ['python']),
1766+ ('python-oauthlib', GITHUB_URL ('oauthlib', 'oauthlib'), None, ['python']),
1767 # ('python-padme', PYPI_URL ('padme'), None, ['python']),
1768 # ('python-psutil', PYPI_URL ('psutil'), None, ['python']),
1769-# ('python-pymysql', ('https://github.com/PyMySQL/PyMySQL/releases', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
1770- ('python-reportlab', ('http://www.reportlab.com/ftp/', 'reportlab-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
1771- ('python-requests-unixsocket', ('https://github.com/msabramo/requests-unixsocket/tags', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
1772+# ('python-pymysql', GITHUB_URL ('PyMySQL', 'PyMySQL'), None, ['python']),
1773+ ('python-reportlab', ('http://www.reportlab.com/ftp/', 'reportlab-([0-9][0-9.]*)' + EXT), None, ['python']),
1774+ ('python-requests-unixsocket',GITHUB_URL ('msabramo', 'requests-unixsocket'), None, ['python']),
1775 ('python-secretstorage', PYPI_URL ('SecretStorage'), None, ['python']),
1776-# ('python-secretstorage', ('https://github.com/mitya57/secretstorage/releases', 'tag/([0-9][0-9.]*)'), None, ['python']),
1777+# ('python-secretstorage', GITHUB_URL ('mitya57', 'secretstorage'), None, ['python']),
1778 # ('python-service-identity', PYPI_URL ('service_identity'), None, ['python']),
1779 ('python-setuptools', PYPI_URL ('setuptools'), None, ['python']),
1780- ('python-systemd', ('https://github.com/systemd/python-systemd/tags', 'tag/v([0-9][0-9.]*)'), None, ['python']),
1781- ('python-tz', ('https://pypi.org/project/pytz/#files', 'pytz-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
1782+ ('python-systemd', GITHUB_URL ('systemd', 'python-systemd'), None, ['python']),
1783+ ('python-tz', ('https://pypi.org/project/pytz/#files', 'pytz-([0-9][0-9.]*)' + EXT), None, ['python']),
1784 # ('python-testtools', LAUNCHPAD_URL ('testtools'), None, ['python']),
1785 ('python-wadllib', LAUNCHPAD_URL ('wadllib'), None, ['python']),
1786 ('python-urllib3', PYPI_URL ('urllib3'), None, ['python']),
1787 # ('python-xklavier', UNTRACKED, None, ['python']), # Debian package says http://devel.randomink.org/projects/python-xklavier but no response from server
1788 # ('pyudev', PYPI_URL ('pyudev'), None, ['python']),
1789- ('pyxdg', ('https://people.freedesktop.org/~lanius/', 'pyxdg-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
1790-# ('pyyaml', ('http://pyyaml.org/download/pyyaml/', 'PyYAML-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1791-# ('qdjango', ('https://github.com/jlaine/qdjango/releases', 'tag/v([0-9][0-9.]*)'), None, []),
1792-# ('qemu', ('http://download.qemu-project.org/', 'qemu-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1793- ('qpdf', SOURCEFORGE_URL ('qpdf', 'qpdf/([0-9.]+)', 'qpdf-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1794- ('qqwing', ('http://qqwing.com/download.html', 'qqwing-([\d.]+).tar.gz'), None, []),
1795-# ('qt4-x11', ('https://download.qt.io/official_releases/qt/4.8/([\d\.]*)', 'qt-everywhere-opensource-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1796-# ('qt-at-spi', ('http://download.kde.org/stable/qt-at-spi/([\d\.]*)/src/', 'qt-at-spi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1797-# ('qtbase-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtbase-opensource-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1798-# ('qtdeclarative-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtdeclarative-opensource-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1799-# ('qtgraphicaleffects-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtgraphicaleffects-opensource-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1800-# ('qtlocation-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtlocation-opensource-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1801-# ('qtmultimedia-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtmultimedia-opensource-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1802- ('qtquickcontrols-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtquickcontrols-opensource-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1803-# ('qtsensors-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtsensors-opensource-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1804-# ('qtsvg-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtsvg-opensource-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1805-# ('qttranslations-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qttranslations-opensource-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1806-# ('qtwebkit-opensource-src', ('https://download.qt.io/community_releases/5.9/([\d\.]*)/', 'qtwebkit-opensource-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1807-# ('qtxmlpatterns-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtxmlpatterns-opensource-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1808+ ('pyxdg', FDO_URL ('xdg', 'pyxdg', 'rel-([0-9][0-9.]*)'), None, ['python']),
1809+# ('pyyaml', ('http://pyyaml.org/download/pyyaml/', 'PyYAML-([0-9][0-9.]*)' + EXT), None, []),
1810+# ('qdjango', GITHUB_URL ('jlaine', 'qdjango'), None, []),
1811+# ('qemu', ('http://download.qemu-project.org/', 'qemu-([0-9][0-9.]*)' + EXT), None, []),
1812+ ('qpdf', SOURCEFORGE_URL ('qpdf', 'qpdf/([0-9.]+)', 'qpdf-([0-9][0-9.]*)' + EXT), None, []),
1813+ ('qqwing', ('http://qqwing.com/download.html', 'qqwing-([\d.]+)' + EXT), None, []),
1814+# ('qt4-x11', ('https://download.qt.io/official_releases/qt/4.8/([\d\.]*)', 'qt-everywhere-opensource-src-([0-9][0-9.]*)' + EXT), None, []),
1815+# ('qt-at-spi', ('http://download.kde.org/stable/qt-at-spi/([\d\.]*)/src/', 'qt-at-spi-([0-9][0-9.]*)' + EXT), None, []),
1816+# ('qtbase-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtbase-opensource-src-([0-9][0-9.]*)' + EXT), None, []),
1817+# ('qtdeclarative-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtdeclarative-opensource-src-([0-9][0-9.]*)' + EXT), None, []),
1818+# ('qtgraphicaleffects-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtgraphicaleffects-opensource-src-([0-9][0-9.]*)' + EXT), None, []),
1819+# ('qtlocation-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtlocation-opensource-src-([0-9][0-9.]*)' + EXT), None, []),
1820+# ('qtmultimedia-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtmultimedia-opensource-src-([0-9][0-9.]*)' + EXT), None, []),
1821+ ('qtquickcontrols-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtquickcontrols-opensource-src-([0-9][0-9.]*)' + EXT), None, []),
1822+# ('qtsensors-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtsensors-opensource-src-([0-9][0-9.]*)' + EXT), None, []),
1823+# ('qtsvg-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtsvg-opensource-src-([0-9][0-9.]*)' + EXT), None, []),
1824+# ('qttranslations-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qttranslations-opensource-src-([0-9][0-9.]*)' + EXT), None, []),
1825+# ('qtwebkit-opensource-src', ('https://download.qt.io/community_releases/5.9/([\d\.]*)/', 'qtwebkit-opensource-src-([0-9][0-9.]*)' + EXT), None, []),
1826+# ('qtxmlpatterns-opensource-src', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtxmlpatterns-opensource-src-([0-9][0-9.]*)' + EXT), None, []),
1827 ('quadrapassel', GNOME_FTP_URL ('quadrapassel', '3.36'), GNOME_FTP_URL ('quadrapassel'), ['gnome']),
1828-# ('quassel', ('http://quassel-irc.org/pub/', 'quassel-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1829-# ('radeontool', ('https://people.freedesktop.org/~airlied/radeontool/', 'radeontool-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1830- ('raptor2', ('http://download.librdf.org/source/', 'raptor2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1831+# ('quassel', ('http://quassel-irc.org/pub/', 'quassel-([0-9][0-9.]*)' + EXT), None, []),
1832+# ('radeontool', ('https://people.freedesktop.org/~airlied/radeontool/', 'radeontool-([0-9][0-9.]*)' + EXT), None, []),
1833+ ('raptor2', ('http://download.librdf.org/source/', 'raptor2-([0-9][0-9.]*)' + EXT), None, []),
1834 # ('rarian', GNOME_FTP_URL ('rarian'), None, ['gnome']),
1835- ('rasqal', ('http://download.librdf.org/source/', 'rasqal-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1836- ('rastertosag-gdi', ('http://www.openprinting.org/download/printing/rastertosag-gdi/', 'rastertosag-gdi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1837-# ('rdesktop', SOURCEFORGE_URL ('rdesktop', 'rdesktop/([0-9.]+)', 'rdesktop-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1838-# ('rdflib', ('https://github.com/RDFLib/rdflib/downloads', 'rdflib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1839-# ('readline6', ('https://ftp.gnu.org/gnu/readline/', 'readline-(6[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1840- ('readline', ('https://ftp.gnu.org/gnu/readline/', 'readline-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1841-# ('re2c', SOURCEFORGE_URL ('re2c', 're2c/([0-9.]+)', 're2c-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1842-# ('realmd', ('https://freedesktop.org/software/realmd/releases/', 'realmd-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1843- ('redland', ('http://download.librdf.org/source/', 'redland-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1844-# ('rekonq', SOURCEFORGE_URL ('rekonq', '([0-9.]+)', 'rekonq-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1845+ ('rasqal', ('http://download.librdf.org/source/', 'rasqal-([0-9][0-9.]*)' + EXT), None, []),
1846+ ('rastertosag-gdi', ('http://www.openprinting.org/download/printing/rastertosag-gdi/', 'rastertosag-gdi-([0-9][0-9.]*)' + EXT), None, []),
1847+# ('rdesktop', SOURCEFORGE_URL ('rdesktop', 'rdesktop/([0-9.]+)', 'rdesktop-([0-9][0-9.]*)' + EXT), None, []),
1848+# ('rdflib', GITHUB_URL ('RDFLib', 'rdflib'), None, []),
1849+# ('readline6', ('https://ftp.gnu.org/gnu/readline/', 'readline-(6[0-9.]*)' + EXT), None, []),
1850+ ('readline', ('https://ftp.gnu.org/gnu/readline/', 'readline-([0-9][0-9.]*)' + EXT), None, []),
1851+# ('re2c', SOURCEFORGE_URL ('re2c', 're2c/([0-9.]+)', 're2c-([0-9][0-9.]*)' + EXT), None, []),
1852+# ('realmd', ('https://freedesktop.org/software/realmd/releases/', 'realmd-([0-9][0-9.]*)' + EXT), None, []),
1853+ ('redland', ('http://download.librdf.org/source/', 'redland-([0-9][0-9.]*)' + EXT), None, []),
1854+# ('rekonq', SOURCEFORGE_URL ('rekonq', '([0-9.]+)', 'rekonq-([0-9][0-9.]*)' + EXT), None, []),
1855 ('remmina', ('https://gitlab.com/Remmina/Remmina/tags', 'tags/v([0-9][0-9.]*)'), None, []),
1856 # ('rename', CPAN_URL ('File-Rename'), None, ['perl']),
1857 ('requests', PYPI_URL ('requests'), None, []),
1858 ('retro-gtk', GNOME_FTP_URL ('retro-gtk'), GNOME_FTP_URL ('retro-gtk'), ['gnome']),
1859 ('rhythmbox', GNOME_FTP_URL ('rhythmbox'), None, ['gnome']),
1860 ('rhythmbox-plugin-alternative-toolbar', GITHUB_URL ('fossfreedom', 'alternative-toolbar', 'v([0-9][0-9.]*)'), None, ['gnome']),
1861- ('rsync', ('https://download.samba.org/pub/rsync/', 'rsync-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1862- ('rtkit', ('https://github.com/heftig/rtkit/tags', 'v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1863- ('rtmpdump', ('http://rtmpdump.mplayerhq.hu/download/', 'rtmpdump-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1864+ ('rsync', ('https://download.samba.org/pub/rsync/', 'rsync-([0-9][0-9.]*)' + EXT), None, []),
1865+ ('rtkit', GITHUB_URL ('heftig', 'rtkit'), None, []),
1866+ ('rtmpdump', ('http://rtmpdump.mplayerhq.hu/download/', 'rtmpdump-([0-9][0-9.]*)' + EXT), None, []),
1867 ('rygel', GNOME_FTP_URL ('rygel',), GNOME_FTP_URL ('rygel'), ['gnome']),
1868- ('samba', ('https://download.samba.org/pub/samba/', 'samba-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1869+ ('samba', ('https://download.samba.org/pub/samba/', 'samba-([0-9][0-9.]*)' + EXT), None, []),
1870 ('sane-backends', ('https://gitlab.com/sane-project/backends/tags', 'tags/([0-9][0-9._]*)'), None, []),
1871- ('sbc', ('https://www.kernel.org/pub/linux/bluetooth/', 'sbc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1872- ('sbsigntool', ('https://git.kernel.org/pub/scm/linux/kernel/git/jejb/sbsigntools.git/', 'sbsigntools-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1873-# ('schroedinger', ('http://diracvideo.org/download/schroedinger/', 'schroedinger-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1874- ('scowl', ('http://wordlist.sourceforge.net/', 'scowl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1875-# ('scrot', ('http://linuxbrit.co.uk/downloads/', 'scrot-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1876+ ('sbc', ('https://www.kernel.org/pub/linux/bluetooth/', 'sbc-([0-9][0-9.]*)' + EXT), None, []),
1877+ ('sbsigntool', ('https://git.kernel.org/pub/scm/linux/kernel/git/jejb/sbsigntools.git/', 'sbsigntools-([0-9][0-9.]*)' + EXT), None, []),
1878+# ('schroedinger', ('http://diracvideo.org/download/schroedinger/', 'schroedinger-([0-9][0-9.]*)' + EXT), None, []),
1879+ ('scowl', ('http://wordlist.sourceforge.net/', 'scowl-([0-9][0-9.]*)' + EXT), None, []),
1880+# ('scrot', ('http://linuxbrit.co.uk/downloads/', 'scrot-([0-9][0-9.]*)' + EXT), None, []),
1881 ('seahorse', GNOME_FTP_URL ('seahorse'), GNOME_FTP_URL ('seahorse'), ['gnome']),
1882 ('seahorse-nautilus', GNOME_FTP_URL ('seahorse-nautilus'), None, ['gnome']),
1883 ('seahorse-sharing', GNOME_FTP_URL ('seahorse-sharing'), GNOME_FTP_URL ('seahorse-sharing'), ['gnome']),
1884 ('secureboot-db', UBUNTU, None, []),
1885- ('sed', ('https://ftp.gnu.org/gnu/sed/', 'sed-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1886+ ('sed', ('https://ftp.gnu.org/gnu/sed/', 'sed-([0-9][0-9.]*)' + EXT), None, []),
1887 # ('seed', GNOME_FTP_URL ('seed'), None, ['gnome']),
1888 ('sensible-utils', DEBIAN, None, []),
1889 # ('sessioninstaller', LAUNCHPAD_URL ('sessioninstaller'), None, []),
1890 ('session-migration', UBUNTU, None, []),
1891- ('sg3-utils', ('http://sg.danny.cz/sg/p/', 'sg3_utils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1892+ ('sg3-utils', ('http://sg.danny.cz/sg/p/', 'sg3_utils-([0-9][0-9.]*)' + EXT), None, []),
1893 ('sgml-base', DEBIAN, None, []),
1894 ('sgml-data', DEBIAN, None, []),
1895- ('shadow', ('https://github.com/shadow-maint/shadow/tags', '([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1896- ('shared-mime-info', ('https://gitlab.freedesktop.org/xdg/shared-mime-info/tags', 'shared-mime-info-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1897+ ('shadow', GITHUB_URL ('shadow-maint', 'shadow'), None, []),
1898+ ('shared-mime-info', FDO_URL ('xdg', 'shared-mime-info'), None, []),
1899 ('shotwell', GNOME_FTP_URL ('shotwell', '0.30'), GNOME_FTP_URL ('shotwell'), ['gnome']),
1900 ('simplejson', PYPI_URL ('simplejson'), None, []),
1901 ('simple-scan', GNOME_FTP_URL ('simple-scan'), GNOME_FTP_URL ('simple-scan'), ['gnome']),
1902-# ('sip4', SOURCEFORGE_URL ('pyqt', 'sip/sip-([0-9.]+)', 'sip-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1903+# ('sip4', SOURCEFORGE_URL ('pyqt', 'sip/sip-([0-9.]+)', 'sip-([0-9][0-9.]*)' + EXT), None, []),
1904 ('six', PYPI_URL ('six'), None, []),
1905-# ('slang2', ('ftp://space.mit.edu/pub/davis/slang/latest/', 'slang-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1906-# ('slv2', ('http://download.drobilla.net/', 'slv2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1907- ('snapd', GITHUB_URL ('snapcore', 'snapd', '([0-9][0-9.]*)'), None, []),
1908- ('snapd-glib', GITHUB_URL ('snapcore', 'snapd-glib', '([0-9][0-9.]*)'), None, []),
1909- ('snappy', GITHUB_URL ('google', 'snappy', '([0-9][0-9.]*)'), None, []),
1910+# ('slang2', ('ftp://space.mit.edu/pub/davis/slang/latest/', 'slang-([0-9][0-9.]*)' + EXT), None, []),
1911+# ('slv2', ('http://download.drobilla.net/', 'slv2-([0-9][0-9.]*)' + EXT), None, []),
1912+ ('snapd', GITHUB_URL ('snapcore', 'snapd'), None, []),
1913+ ('snapd-glib', GITHUB_URL ('snapcore', 'snapd-glib'), None, []),
1914+ ('snappy', GITHUB_URL ('google', 'snappy'), None, []),
1915 # ('sni-qt', LAUNCHPAD_URL ('sni-qt'), None, []),
1916 # ('snowball', UNKNOWN, None, []),
1917 ('software-properties', UBUNTU, None, []),
1918 ('sonic', GITHUB_URL ('waywardgeek', 'sonic', 'release-([0-9][0-9.]*)'), None, []),
1919 ('sound-juicer', GNOME_FTP_URL ('sound-juicer'), None, ['gnome']),
1920- ('sound-icons', ('https://freebsoft.org/pub/projects/sound-icons/', 'sound-icons-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1921- ('sound-theme-freedesktop', ('https://cgit.freedesktop.org/sound-theme-freedesktop/', 'tag/\?h=([0-9][0-9.]*)'), None, []),
1922-# ('soundtouch', ('http://www.surina.net/soundtouch/sourcecode.html', 'soundtouch-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1923-# ('spandsp', ('http://www.soft-switch.org/downloads/spandsp/', 'spandsp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1924- ('speech-dispatcher', ('https://devel.freebsoft.org/pub/projects/speechd/', 'speech-dispatcher-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1925- ('speex', ('http://downloads.xiph.org/releases/speex/', 'speex-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1926+ ('sound-icons', ('https://freebsoft.org/pub/projects/sound-icons/', 'sound-icons-([0-9][0-9.]*)' + EXT), None, []),
1927+ ('sound-theme-freedesktop', FDO_URL ('xdg', 'xdg-sound-theme'), None, []),
1928+# ('soundtouch', ('http://www.surina.net/soundtouch/sourcecode.html', 'soundtouch-([0-9][0-9.]*)' + EXT), None, []),
1929+# ('spandsp', ('http://www.soft-switch.org/downloads/spandsp/', 'spandsp-([0-9][0-9.]*)' + EXT), None, []),
1930+ ('speech-dispatcher', ('https://devel.freebsoft.org/pub/projects/speechd/', 'speech-dispatcher-([0-9][0-9.]*)' + EXT), None, []),
1931+ ('speex', ('http://downloads.xiph.org/releases/speex/', 'speex-([0-9][0-9.]*)' + EXT), None, []),
1932 # ('sphinx', PYPI_URL ('Sphinx'), None, []),
1933- ('spice-vdagent', ('https://www.spice-space.org/download/releases/', 'spice-vdagent-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
1934- ('splix', SOURCEFORGE_URL ('splix', 'splix/([0-9.]+)', 'splix-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1935+ ('spice-vdagent', ('https://www.spice-space.org/download/releases/', 'spice-vdagent-([0-9][0-9.]*)' + EXT), None, ['gnome']),
1936+ ('splix', SOURCEFORGE_URL ('splix', 'splix/([0-9.]+)', 'splix-([0-9][0-9.]*)' + EXT), None, []),
1937 ('sqlite3', ('http://www.sqlite.org/', 'releaselog/(\d[_\d]*).html'), None, []),
1938- ('squashfs-tools', SOURCEFORGE_URL ('squashfs', 'squashfs/squashfs([0-9.]+)', 'squashfs([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1939+ ('squashfs-tools', SOURCEFORGE_URL ('squashfs', 'squashfs/squashfs([0-9.]+)', 'squashfs([0-9][0-9.]+)' + EXT), None, []),
1940 ('ssl-cert', DEBIAN, None, []),
1941- ('startup-notification', ('https://freedesktop.org/software/startup-notification/releases/', 'startup-notification-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1942- ('strace', SOURCEFORGE_URL ('strace', 'strace/([0-9.]+)', 'strace-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1943- ('suitesparse', ('http://faculty.cse.tamu.edu/davis/SuiteSparse/', 'SuiteSparse-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1944+ ('startup-notification', FDO_URL ('xdg', 'startup-notification', '[A-Z_]+_([0-9][0-9_]*)'), None, []),
1945+ ('strace', SOURCEFORGE_URL ('strace', 'strace/([0-9.]+)', 'strace-([0-9][0-9.]*)' + EXT), None, []),
1946+ ('suitesparse', ('http://faculty.cse.tamu.edu/davis/SuiteSparse/', 'SuiteSparse-([0-9][0-9.]*)' + EXT), None, []),
1947 ('swell-foop', GNOME_FTP_URL ('swell-foop'), GNOME_FTP_URL ('swell-foop'), ['gnome']),
1948- ('switcheroo-control', ('https://github.com/hadess/switcheroo-control/tags', 'tag/([0-9][0-9.]*)'), None, []),
1949+ ('switcheroo-control', GITHUB_URL ('hadess', 'switcheroo-control'), None, []),
1950 # ('system-image', LAUNCHPAD_URL ('ubuntu-system-image', 'system-image'), None, []),
1951 # ('synaptic', DEBIAN, None, []),
1952 # ('synaptiks', PYPI_URL ('synaptiks'), None, []),
1953-# ('sysfsutils', SOURCEFORGE_URL ('linux-diag', 'sysfsutils/sysfsutils-([0-9.]+)', 'sysfsutils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []), # FIXME: Subdirs
1954- ('syslinux', ('https://www.kernel.org/pub/linux/utils/boot/syslinux/', 'syslinux-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1955+# ('sysfsutils', SOURCEFORGE_URL ('linux-diag', 'sysfsutils/sysfsutils-([0-9.]+)', 'sysfsutils-([0-9][0-9.]*)' + EXT), None, []), # FIXME: Subdirs
1956+ ('syslinux', ('https://www.kernel.org/pub/linux/utils/boot/syslinux/', 'syslinux-([0-9][0-9.]*)' + EXT), None, []),
1957 ('sysprof', GNOME_FTP_URL ('sysprof'), GNOME_FTP_URL ('sysprof'), ['gnome']),
1958- ('system-config-printer', ('https://github.com/zdohnal/system-config-printer/tags', 'tag/([0-9][0-9.]*)'), None, []),
1959+ ('system-config-printer', GITHUB_URL ('zdohnal', 'system-config-printer'), None, []),
1960 # ('system-tools-backends', GNOME_FTP_URL ('system-tools-backends'), None, ['gnome']),
1961- ('systemd', ('https://github.com/systemd/systemd/releases', 'v([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1962-# ('sysvinit', ('http://download.savannah.gnu.org/releases/sysvinit/', 'sysvinit-([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1963- ('t1utils', ('http://www.lcdf.org/type/', 't1utils-([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1964- ('taglib', ('https://github.com/taglib/taglib/releases', 'taglib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1965+ ('systemd', GITHUB_URL ('systemd', 'systemd'), None, []),
1966+# ('sysvinit', ('http://download.savannah.gnu.org/releases/sysvinit/', 'sysvinit-([0-9][0-9a-zA-Z.]*)' + EXT), None, []),
1967+ ('t1utils', ('http://www.lcdf.org/type/', 't1utils-([0-9][0-9a-zA-Z.]*)' + EXT), None, []),
1968+ ('taglib', GITHUB_URL ('taglib', 'taglib'), None, []),
1969 ('tali', GNOME_FTP_URL ('tali', GNOME_STABLE_SERIES), GNOME_FTP_URL ('tali'), ['gnome']),
1970- ('talloc', ('https://download.samba.org/pub/talloc/', 'talloc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1971- ('tar', ('https://ftp.gnu.org/gnu/tar/', 'tar-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1972- ('tcl8.6', SOURCEFORGE_URL ('tcl', 'Tcl/(8.6.[0-9.]+)', 'tcl([0-9][0-9.]*)-src.tar.gz'), None, []),
1973+ ('talloc', ('https://download.samba.org/pub/talloc/', 'talloc-([0-9][0-9.]*)' + EXT), None, []),
1974+ ('tar', ('https://ftp.gnu.org/gnu/tar/', 'tar-([0-9][0-9.]*)' + EXT), None, []),
1975+ ('tcl8.6', SOURCEFORGE_URL ('tcl', 'Tcl/(8.6.[0-9.]+)', 'tcl([0-9][0-9.]*)-src' + EXT), None, []),
1976 # ('tcltk-defaults', DEBIAN, None, []),
1977- ('tcpdump', ('http://www.tcpdump.org/release/', 'tcpdump-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1978+ ('tcpdump', ('http://www.tcpdump.org/release/', 'tcpdump-([0-9][0-9.]*)' + EXT), None, []),
1979 ('tcp-wrappers', DEBIAN, None, []),
1980- ('tdb', ('https://download.samba.org/pub/tdb/', 'tdb-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1981- ('telepathy-farstream', ('https://telepathy.freedesktop.org/releases/telepathy-farstream/', 'telepathy-farstream-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['ubuntu-touch']),
1982-# ('telepathy-gabble', ('https://telepathy.freedesktop.org/releases/telepathy-gabble/', 'telepathy-gabble-(0.18.[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ('http://telepathy.freedesktop.org/releases/telepathy-gabble/', 'telepathy-gabble-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), []),
1983- ('telepathy-glib', ('https://telepathy.freedesktop.org/releases/telepathy-glib/', 'telepathy-glib-(0.24.[0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ('http://telepathy.freedesktop.org/releases/telepathy-glib/', 'telepathy-glib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), []),
1984-# ('telepathy-haze', ('https://telepathy.freedesktop.org/releases/telepathy-haze/', 'telepathy-haze-(0.8.[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ('http://telepathy.freedesktop.org/releases/telepathy-haze/', 'telepathy-haze-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), []),
1985-# ('telepathy-idle', ('https://telepathy.freedesktop.org/releases/telepathy-idle/', 'telepathy-idle-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1986-# ('telepathy-logger', ('https://telepathy.freedesktop.org/releases/telepathy-logger/', 'telepathy-logger-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1987-# ('telepathy-mission-control-5', ('https://telepathy.freedesktop.org/releases/telepathy-mission-control/', 'telepathy-mission-control-(5.16.[0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ('http://telepathy.freedesktop.org/releases/telepathy-mission-control/', 'telepathy-mission-control-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), []),
1988-# ('telepathy-qt', ('https://telepathy.freedesktop.org/releases/telepathy-qt/', 'telepathy-qt-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1989-# ('telepathy-salut', ('https://telepathy.freedesktop.org/releases/telepathy-salut/', 'telepathy-salut-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
1990+ ('tdb', ('https://download.samba.org/pub/tdb/', 'tdb-([0-9][0-9.]*)' + EXT), None, []),
1991+ ('telepathy-farstream', FDO_URL ('telepathy', 'telepathy-farstream'), None, ['ubuntu-touch']),
1992+# ('telepathy-gabble', FDO_URL ('telepathy', 'telepathy-gabble', '(0.18.[0-9.]*)'), FDO_URL ('telepathy', 'telepathy-gabble'), []),
1993+ ('telepathy-glib', FDO_URL ('telepathy', 'telepathy-glib/', 'telepathy-glib-(0.24.[0-9][0-9.]*)'), FDO_URL ('telepathy', 'telepathy-glib'), []),
1994+# ('telepathy-haze', FDO_URL ('telepathy', 'telepathy-haze', '(0.8.[0-9.]*)'), FDO_URL ('telepathy', 'telepathy-haze'), []),
1995+# ('telepathy-idle', FDO_URL ('telepathy', 'telepathy-idle', None, []),
1996+# ('telepathy-logger', FDO_URL ('telepathy', 'telepathy-logger', None, []),
1997+# ('telepathy-mission-control-5', FDO_URL ('telepathy', 'telepathy-mission-control', '(5.16.[0-9][0-9.]*)'), FDO_URL ('telepathy', 'telepathy-mission-control'), []),
1998+# ('telepathy-qt', FDO_URL ('telepathy', 'telepathy-qt', None, []),
1999+# ('telepathy-salut', FDO_URL ('telepathy', 'telepathy-salut', None, []),
2000 ('template-glib', GNOME_FTP_URL ('template-glib'), GNOME_FTP_URL ('template-glib'), ['gnome']),
2001- ('tevent', ('https://download.samba.org/pub//tevent/', 'tevent-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2002- ('texinfo', ('https://ftp.gnu.org/gnu/texinfo/', 'texinfo-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2003- ('texlive-bin', ('https://www.tug.org/svn/texlive/trunk/Master/source/', 'texlive-([0-9][a-z0-9.]*).source.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2004- ('thermald', ('https://github.com/01org/thermal_daemon/releases', 'v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2005+ ('tevent', ('https://download.samba.org/pub//tevent/', 'tevent-([0-9][0-9.]*)' + EXT), None, []),
2006+ ('texinfo', ('https://ftp.gnu.org/gnu/texinfo/', 'texinfo-([0-9][0-9.]*)' + EXT), None, []),
2007+ ('texlive-bin', ('https://www.tug.org/svn/texlive/trunk/Master/source/', 'texlive-([0-9][a-z0-9.]*).source' + EXT), None, []),
2008+ ('thermald', GITHUB_URL ('01org', 'thermal_daemon'), None, []),
2009 ('thunderbird', ('http://archive.mozilla.org/pub/thunderbird/releases/', 'releases/(78[0-9.]*)'), None, []),
2010 ('tpm-udev', DEBIAN, None, []),
2011- ('tiff', ('http://download.osgeo.org/libtiff/', 'tiff-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2012- ('time', ('https://ftp.gnu.org/gnu/time/', 'time-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2013+ ('tiff', ('http://download.osgeo.org/libtiff/', 'tiff-([0-9][0-9.]*)' + EXT), None, []),
2014+ ('time', ('https://ftp.gnu.org/gnu/time/', 'time-([0-9][0-9.]*)' + EXT), None, []),
2015 # ('tinyxml', ('http://sourceforge.net/projects/tinyxml/files/tinyxml/', 'tinyxml/([0-9][0-9.]*)/'), None, []),
2016 # ('tomboy', GNOME_FTP_URL ('tomboy'), None, ['gnome']),
2017-# ('tk8.6', ('https://www.tcl.tk/software/tcltk/download.html', 'tk(8.6.[0-9.]*)-src.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2018+# ('tk8.6', ('https://www.tcl.tk/software/tcltk/download.html', 'tk(8.6.[0-9.]*)-src' + EXT), None, []),
2019 ('totem', GNOME_FTP_URL ('totem'), GNOME_FTP_URL ('totem'), ['gnome']),
2020 ('totem-pl-parser', GNOME_FTP_URL ('totem-pl-parser'), GNOME_FTP_URL ('totem-pl-parser'), ['gnome']),
2021 ('tracker', GNOME_FTP_URL ('tracker', '2.3'), GNOME_FTP_URL ('tracker'), ['gnome']),
2022 ('tracker-miners', GNOME_FTP_URL ('tracker-miners', '2.3'), GNOME_FTP_URL ('tracker-miners'), ['gnome']),
2023- ('transmission', ('https://github.com/transmission/transmission-releases', 'transmission-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2024-# ('tslib', ('https://github.com/kergoth/tslib/tags', '([0-9][0-9.]*).zip'), None, []),
2025- ('twolame', ('http://www.twolame.org/', 'twolame-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2026-# ('twisted', ('http://twistedmatrix.com/Releases/Twisted/([0-9.]*)', 'Twisted-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2027-# ('twisted-names', ('http://twistedmatrix.com/Releases/Names/([0-9.]*)', 'TwistedNames-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2028-# ('twisted-web', ('http://twistedmatrix.com/Releases/Web/([0-9.]*)', 'TwistedWeb-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2029-# ('tzdata', ('ftp://ftp.iana.org/tz/releases/', 'tzdata(201[0-9]+[a-z]).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2030+ ('transmission', GITHUB_URL ('transmission', 'transmission'), None, []),
2031+# ('tslib', GITHUB_URL ('kergoth', 'tslib'), None, []),
2032+ ('twolame', ('http://www.twolame.org/', 'twolame-([0-9][0-9.]*)' + EXT), None, []),
2033+# ('twisted', ('http://twistedmatrix.com/Releases/Twisted/([0-9.]*)', 'Twisted-([0-9][0-9.]*)' + EXT), None, []),
2034+# ('twisted-names', ('http://twistedmatrix.com/Releases/Names/([0-9.]*)', 'TwistedNames-([0-9][0-9.]*)' + EXT), None, []),
2035+# ('twisted-web', ('http://twistedmatrix.com/Releases/Web/([0-9.]*)', 'TwistedWeb-([0-9][0-9.]*)' + EXT), None, []),
2036+# ('tzdata', ('ftp://ftp.iana.org/tz/releases/', 'tzdata(201[0-9]+[a-z])' + EXT), None, []),
2037 ('ubufox', UBUNTU, None, []),
2038 ('ubuntu-docs', UBUNTU, None, []),
2039 ('ubuntu-drivers-common', UBUNTU, None, []),
2040@@ -1470,155 +1478,155 @@ ubuntu_package_info = [
2041 # ('ubuntu-sso-client', LAUNCHPAD_URL ('ubuntu-sso-client'), None, []),
2042 ('ubuntu-system-service', UBUNTU, None, []),
2043 ('ubuntu-wallpapers', UBUNTU, None, []),
2044- ('ubuntu-report', ('https://github.com/ubuntu/ubuntu-report/tags', 'archive/v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
2045+ ('ubuntu-report', GITHUB_URL ('ubuntu', 'ubuntu-report'), None, ['python']),
2046 ('ucf', DEBIAN, None, []),
2047- ('uchardet', ('https://www.freedesktop.org/software/uchardet/releases/', 'uchardet-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2048- ('udisks2', ('https://github.com/storaged-project/udisks/tags', 'udisks-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2049+ ('uchardet', FDO_URL ('uchardet', 'uchardet'), None, []),
2050+ ('udisks2', GITHUB_URL ('storaged-project', 'udisks'), None, []),
2051 ('ufw', LAUNCHPAD_URL ('ufw'), None, []),
2052 ('unattended-upgrades', DEBIAN, None, []),
2053-# ('unbound', ('https://www.unbound.net/downloads/', 'unbound-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2054+# ('unbound', ('https://www.unbound.net/downloads/', 'unbound-([0-9][0-9.]*)' + EXT), None, []),
2055 # ('unity-asset-pool', LAUNCHPAD_URL ('unity-asset-pool'), None, []),
2056 ('unity-control-center', UBUNTU, None, []),
2057 # ('unity-greeter', LAUNCHPAD_URL ('unity-greeter'), None, []),
2058 # ('unity-scopes-api', UBUNTU, None, []),
2059 ('unity-settings-daemon', UBUNTU, None, []),
2060- ('unzip', ('ftp://ftp.info-zip.org/pub/infozip/src/', 'unzip([6-9][0-9]*).zip'), None, []), # NOTE: uses mental versioning
2061+ ('unzip', ('ftp://ftp.info-zip.org/pub/infozip/src/', 'unzip([6-9][0-9]*)' + EXT), None, []), # NOTE: uses mental versioning
2062 ('update-inetd', DEBIAN, None, []),
2063 ('update-manager', UBUNTU, None, []),
2064 ('update-motd', UBUNTU, None, []),
2065 ('update-notifier', UBUNTU, None, []),
2066- ('upower', ('https://upower.freedesktop.org/releases/', 'upower-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2067+ ('upower', FDO_URL ('upower', 'upower', 'UPOWER_([0-9][0-9_]*)'), None, []),
2068 ('usb.ids', DEBIAN, None, ['xorg']),
2069 ('usb-creator', UBUNTU, None, []),
2070- ('usb-modeswitch-data', ('http://www.draisberghof.de/usb_modeswitch/', 'usb-modeswitch-data-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2071- ('usb-modeswitch', ('http://www.draisberghof.de/usb_modeswitch/', 'usb-modeswitch-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2072- ('usbmuxd', ('http://cgit.sukimashita.com/usbmuxd.git/', 'usbmuxd-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2073- ('usbutils', ('https://www.kernel.org/pub/linux/utils/usb/usbutils/', 'usbutils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []), # NOTE: URL is empty, from kernel.org crash?
2074-# ('ust', ('https://lttng.org/files/lttng-ust/', 'lttng-ust-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2075+ ('usb-modeswitch-data', ('http://www.draisberghof.de/usb_modeswitch/', 'usb-modeswitch-data-([0-9][0-9.]*)' + EXT), None, []),
2076+ ('usb-modeswitch', ('http://www.draisberghof.de/usb_modeswitch/', 'usb-modeswitch-([0-9][0-9.]*)' + EXT), None, []),
2077+ ('usbmuxd', ('http://cgit.sukimashita.com/usbmuxd.git/', 'usbmuxd-([0-9][0-9.]*)' + EXT), None, []),
2078+ ('usbutils', ('https://www.kernel.org/pub/linux/utils/usb/usbutils/', 'usbutils-([0-9][0-9.]*)' + EXT), None, []), # NOTE: URL is empty, from kernel.org crash?
2079+# ('ust', ('https://lttng.org/files/lttng-ust/', 'lttng-ust-([0-9][0-9.]*)' + EXT), None, []),
2080 ('util-linux', ('https://www.kernel.org/pub/linux/utils/util-linux/', 'v([0-9][0-9.]*)'), None, []),
2081- ('v4l-utils', ('http://linuxtv.org/downloads/v4l-utils/', 'v4l-utils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2082+ ('v4l-utils', ('http://linuxtv.org/downloads/v4l-utils/', 'v4l-utils-([0-9][0-9.]*)' + EXT), None, []),
2083 ('vala', GNOME_FTP_URL ('vala'), None, ['gnome']),
2084-# ('vbetool', ('http://www.codon.org.uk/~mjg59/vbetool/download/', 'vbetool-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2085+# ('vbetool', ('http://www.codon.org.uk/~mjg59/vbetool/download/', 'vbetool-([0-9][0-9.]*)' + EXT), None, []),
2086 ('vinagre', GNOME_FTP_URL ('vinagre', '3.22'), GNOME_FTP_URL ('vinagre'), ['gnome']),
2087 ('vino', GNOME_FTP_URL ('vino', '3.22'), GNOME_FTP_URL ('vino'), ['gnome']),
2088- ('volume-key', ('https://releases.pagure.org/volume_key/', 'volume_key-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2089- ('vulkan-loader', ('https://github.com/KhronosGroup/Vulkan-Loader/tags', 'tag/sdk-([0-9][0-9.]*)'), None, ['xorg']),
2090+ ('volume-key', ('https://releases.pagure.org/volume_key/', 'volume_key-([0-9][0-9.]*)' + EXT), None, []),
2091+ ('vulkan-loader', GITHUB_URL ('KhronosGroup', 'Vulkan-Loader'), None, ['xorg']),
2092 # ('virtkey', LAUNCHPAD_URL ('python-virtkey', 'virtkey'), None, ['python']),
2093-# ('vo-aacenc', SOURCEFORGE_URL ('opencore-amr', 'vo-aacenc', 'vo-aacenc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2094-# ('vo-amrwbenc', SOURCEFORGE_URL ('opencore-amr', 'vo-amrwbenc', 'vo-amrwbenc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2095-# ('vorbis-tools', ('http://downloads.xiph.org/releases/vorbis/', 'vorbis-tools-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2096+# ('vo-aacenc', SOURCEFORGE_URL ('opencore-amr', 'vo-aacenc', 'vo-aacenc-([0-9][0-9.]*)' + EXT), None, []),
2097+# ('vo-amrwbenc', SOURCEFORGE_URL ('opencore-amr', 'vo-amrwbenc', 'vo-amrwbenc-([0-9][0-9.]*)' + EXT), None, []),
2098+# ('vorbis-tools', ('http://downloads.xiph.org/releases/vorbis/', 'vorbis-tools-([0-9][0-9.]*)' + EXT), None, []),
2099 ('vte2.91', GNOME_FTP_URL ('vte'), GNOME_FTP_URL ('vte'), ['gnome']),
2100- ('wavpack', ('http://www.wavpack.com/downloads.html', 'wavpack-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2101- ('wayland', ('https://wayland.freedesktop.org/releases.html', 'wayland-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2102- ('webkit2gtk', ('https://webkitgtk.org/releases', 'webkitgtk-([\d]+\.[\d]*[02468]\.[\d]+).(tar.(gz|bz2|xz)|tgz|zip)+'), ('https://webkitgtk.org/releases', 'webkitgtk-([\d\.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), ['gnome']),
2103- ('webrtc-audio-processing', ('https://freedesktop.org/software/pulseaudio/webrtc-audio-processing/', 'webrtc-audio-processing-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2104- ('wget', ('https://ftp.gnu.org/gnu/wget/', 'wget-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2105+ ('wavpack', ('http://www.wavpack.com/downloads.html', 'wavpack-([0-9][0-9.]*)' + EXT), None, []),
2106+ ('wayland', FDO_URL ('wayland', 'wayland'), None, ['xorg']),
2107+ ('webkit2gtk', ('https://webkitgtk.org/releases', 'webkitgtk-([\d]+\.[\d]*[02468]\.[\d]+)' + EXT), ('https://webkitgtk.org/releases', 'webkitgtk-([\d\.]+)' + EXT), ['gnome']),
2108+ ('webrtc-audio-processing', FDO_URL ('pulseaudio', 'webrtc-audio-processing'), None, []),
2109+ ('wget', ('https://ftp.gnu.org/gnu/wget/', 'wget-([0-9][0-9.]*)' + EXT), None, []),
2110 ('whoopsie', UBUNTU, None, []),
2111 ('whoopsie-preferences', UBUNTU, None, []),
2112-# ('wildmidi', SOURCEFORGE_URL ('wildmidi', 'wildmidi', 'wildmidi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2113- ('wireless-regdb', ('https://www.kernel.org/pub/software/network/wireless-regdb/', 'wireless-regdb-([0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2114- ('wireless-tools', ('http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html', 'wireless_tools.([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2115+# ('wildmidi', SOURCEFORGE_URL ('wildmidi', 'wildmidi', 'wildmidi-([0-9][0-9.]*)' + EXT), None, []),
2116+ ('wireless-regdb', ('https://www.kernel.org/pub/software/network/wireless-regdb/', 'wireless-regdb-([0-9.]*)' + EXT), None, []),
2117+ ('wireless-tools', ('http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html', 'wireless_tools.([0-9][0-9.]*)' + EXT), None, []),
2118 ('woff2', GITHUB_URL ('google', 'woff2', 'v([0-9][0-9.]*)'), None, []),
2119- ('wpa', ('http://www.w1.fi/releases/', 'wpa_supplicant-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2120+ ('wpa', ('http://www.w1.fi/releases/', 'wpa_supplicant-([0-9][0-9.]*)' + EXT), None, []),
2121 ('x11-apps', DEBIAN, None, ['xorg']),
2122 ('x11-session-utils', DEBIAN, None, ['xorg']),
2123 ('x11-utils', DEBIAN, None, ['xorg']),
2124 ('x11-xkb-utils', DEBIAN, None, ['xorg']),
2125 ('x11-xserver-utils', DEBIAN, None, ['xorg']),
2126-# ('xapian-bindings', ('http://xapian.org/download', 'xapian-bindings-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2127- ('xapian-core', ('https://xapian.org/download', 'xapian-core-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2128- ('xauth', ('https://xorg.freedesktop.org/releases/individual/app/', 'xauth-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2129- ('xbitmaps', ('https://xorg.freedesktop.org/releases/individual/data/', 'xbitmaps-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2130- ('xcb-proto', ('https://xorg.freedesktop.org/releases/individual/xcb/', 'xcb-proto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2131- ('xcb-util', ('https://xorg.freedesktop.org/releases/individual/xcb/', 'xcb-util-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2132- ('xcb-util-image', ('https://xorg.freedesktop.org/releases/individual/xcb/', 'xcb-util-image-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2133- ('xcb-util-keysyms', ('https://xorg.freedesktop.org/releases/individual/xcb/', 'xcb-util-keysyms-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2134- ('xcb-util-renderutil', ('https://xorg.freedesktop.org/releases/individual/xcb/', 'xcb-util-renderutil-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2135- ('xcb-util-wm', ('https://xorg.freedesktop.org/releases/individual/xcb/', 'xcb-util-wm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2136-# ('xchat', SOURCEFORGE_URL ('xchat', '', 'xchat-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2137+# ('xapian-bindings', ('http://xapian.org/download', 'xapian-bindings-([0-9][0-9.]*)' + EXT), None, []),
2138+ ('xapian-core', ('https://xapian.org/download', 'xapian-core-([0-9][0-9.]*)' + EXT), None, []),
2139+ ('xauth', XORG_URL ('app', 'xauth'), None, ['xorg']),
2140+ ('xbitmaps', ('https://xorg.freedesktop.org/releases/individual/data/', 'xbitmaps-([0-9][0-9.]*)' + EXT), None, ['xorg']),
2141+ ('xcb-proto', XORG_URL ('proto', 'xcbproto'), None, ['xorg']),
2142+ ('xcb-util', XORG_URL ('lib', 'libxcb-util'), None, ['xorg']),
2143+ ('xcb-util-image', XORG_URL ('lib', 'libxcb-image'), None, ['xorg']),
2144+ ('xcb-util-keysyms', XORG_URL ('lib', 'libxcb-keysyms'), None, ['xorg']),
2145+ ('xcb-util-renderutil', ('https://xorg.freedesktop.org/releases/individual/xcb/', 'xcb-util-renderutil-([0-9][0-9.]*)' + EXT), None, ['xorg']),
2146+ ('xcb-util-wm', XORG_URL ('lib', 'libxcb-wm'), None, ['xorg']),
2147+# ('xchat', SOURCEFORGE_URL ('xchat', '', 'xchat-([0-9][0-9.]*)' + EXT), None, []),
2148 # ('xchat-gnome', GNOME_FTP_URL ('xchat-gnome'), None, ['gnome']),
2149- ('xcursor-themes', ('https://xorg.freedesktop.org/releases/individual/data/', 'xcursor-themes-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2150- ('xdg-dbus-proxy', ('https://github.com/flatpak/xdg-dbus-proxy/tags', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2151- ('xdg-desktop-portal', ('https://github.com/flatpak/xdg-desktop-portal/tags', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2152- ('xdg-desktop-portal-gtk',('https://github.com/flatpak/xdg-desktop-portal-gtk/tags', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ('https://github.com/flatpak/xdg-desktop-portal-gtk/tags', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), []),
2153+ ('xcursor-themes', XORG_URL ('data', 'cursors', 'xcursor-themes-([0-9][0-9.]*)'), None, ['xorg']),
2154+ ('xdg-dbus-proxy', GITHUB_URL ('flatpak', 'xdg-dbus-proxy'), None, []),
2155+ ('xdg-desktop-portal', GITHUB_URL ('flatpak', 'xdg-desktop-portal'), None, []),
2156+ ('xdg-desktop-portal-gtk', GITHUB_URL ('flatpak', 'xdg-desktop-portal-gtk', None, '([0-9][0-9.]*)'), GITHUB_URL ('flatpak', 'xdg-desktop-portal-gtk'), []),
2157 ('xdg-user-dirs-gtk', GNOME_FTP_URL ('xdg-user-dirs-gtk'), None, ['gnome']),
2158- ('xdg-user-dirs', ('https://user-dirs.freedesktop.org/releases/', 'xdg-user-dirs-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2159- ('xdg-utils', ('https://portland.freedesktop.org/download/', 'xdg-utils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2160+ ('xdg-user-dirs', FDO_URL ('xdg', 'xdg-user-dirs'), None, []),
2161+ ('xdg-utils', FDO_URL ('xdg', 'xdg-utils'), None, []),
2162 ('xdiagnose', UBUNTU, None, []),
2163- ('xf86-input-wacom', SOURCEFORGE_URL ('linuxwacom', 'xf86-input-wacom', 'xf86-input-wacom-([0-9].[0-9]+.[0-8.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), SOURCEFORGE_URL ('linuxwacom', 'xf86-input-wacom', 'xf86-input-wacom-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ['xorg']),
2164- ('xf86-input-xwiimote', ('https://github.com/dvdhrm/xf86-input-xwiimote/releases/', 'xf86-input-xwiimote-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2165+ ('xf86-input-wacom', SOURCEFORGE_URL ('linuxwacom', 'xf86-input-wacom', 'xf86-input-wacom-([0-9].[0-9]+.[0-8.]*)' + EXT), SOURCEFORGE_URL ('linuxwacom', 'xf86-input-wacom', 'xf86-input-wacom-([0-9][0-9.]*)' + EXT), ['xorg']),
2166+ ('xf86-input-xwiimote', GITHUB_URL ('dvdhrm', 'xf86-input-xwiimote'), None, ['xorg']),
2167 ('xfonts-base', DEBIAN, None, []),
2168- ('xfonts-encodings', ('https://xorg.freedesktop.org/releases/individual/font/', 'encodings-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2169+ ('xfonts-encodings', ('https://xorg.freedesktop.org/releases/individual/font/', 'encodings-([0-9][0-9.]*)' + EXT), None, ['xorg']),
2170 # ('xfonts-mathml', DEBIAN, None, []),
2171- ('xfonts-scalable', ('https://xorg.freedesktop.org/releases/individual/font/', 'font-bitstream-type1-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2172+ ('xfonts-scalable', ('https://xorg.freedesktop.org/releases/individual/font/', 'font-bitstream-type1-([0-9][0-9.]*)' + EXT), None, ['xorg']),
2173 ('xfonts-utils', DEBIAN, None, []),
2174- ('xft', ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXft-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2175- ('xinit', ('https://xorg.freedesktop.org/releases/individual/app/', 'xinit-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2176- ('xinput', ('https://xorg.freedesktop.org/releases/individual/app/', 'xinput-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2177- ('zip', ('ftp://ftp.info-zip.org/pub/infozip/src/', 'zip([3-9][0-9]*).zip'), None, []), # NOTE: uses mental versioning
2178+ ('xft', XORG_URL ('lib', 'libXft'), None, ['xorg']),
2179+ ('xinit', XORG_URL ('app', 'xinit'), None, ['xorg']),
2180+ ('xinput', XORG_URL ('app', 'xinput'), None, ['xorg']),
2181+ ('zip', ('ftp://ftp.info-zip.org/pub/infozip/src/', 'zip([3-9][0-9]*)' + EXT), None, []), # NOTE: uses mental versioning
2182 ('x-kit', LAUNCHPAD_URL ('xorgparser', 'x-kit'), None, []),
2183-# ('xkeyboard-config', ('http://ftp.x.org/pub/individual/data/xkeyboard-config/', 'xkeyboard-config-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2184+# ('xkeyboard-config', ('http://ftp.x.org/pub/individual/data/xkeyboard-config/', 'xkeyboard-config-([0-9][0-9.]*)' + EXT), None, ['xorg']),
2185 # ('xlsxwriter', PYPI_URL ('XlsxWriter'), None, []),
2186 ('xml-core', DEBIAN, None, []),
2187- ('xmlsec1', ('https://www.aleksey.com/xmlsec/download.html', 'xmlsec1-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2188+ ('xmlsec1', ('https://www.aleksey.com/xmlsec/download.html', 'xmlsec1-([0-9][0-9.]*)' + EXT), None, []),
2189 ('xorg', DEBIAN, None, ['xorg']),
2190- ('xorg-docs', ('https://xorg.freedesktop.org/releases/individual/doc/', 'xorg-docs-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2191+ ('xorg-docs', XORG_URL ('doc', 'xorg-docs', 'xorg-docs-([0-9][0-9.]*)'), None, ['xorg']),
2192 # ('xorg-gtest', LAUNCHPAD_URL ('xorg-gtest'), None, []),
2193- ('xorg-server', ('https://xorg.freedesktop.org/releases/individual/xserver/', 'xorg-server-([0-9].[0-9]+.[0-8.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ('https://xorg.freedesktop.org/releases/individual/xserver/', 'xorg-server-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ['xorg']),
2194- ('xserver-xorg-input-evdev', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-input-evdev-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2195- ('xserver-xorg-input-joystick', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-input-joystick-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2196- ('xserver-xorg-input-libinput', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-input-libinput-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2197- ('xserver-xorg-input-synaptics', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-input-synaptics-([0-9].[0-9]+.[0-8.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-input-synaptics-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ['xorg']),
2198- ('xserver-xorg-input-void', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-input-void-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2199- ('xserver-xorg-video-amdgpu', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-amdgpu-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2200- ('xserver-xorg-video-ati', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-ati-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2201-# ('xserver-xorg-video-dummy', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-dummy-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2202- ('xserver-xorg-video-fbdev', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-fbdev-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2203- ('xserver-xorg-video-intel', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-intel-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2204- ('xserver-xorg-video-nouveau', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-nouveau-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2205- ('xserver-xorg-video-openchrome', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-openchrome-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2206- ('xserver-xorg-video-qxl', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-qxl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2207- ('xserver-xorg-video-vesa', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-vesa-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2208- ('xserver-xorg-video-vmware', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-vmware-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2209- ('xterm', ('https://invisible-mirror.net/archives/xterm/', 'xterm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
2210- ('xz-utils', ('http://tukaani.org/xz/', 'xz-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2211- ('yajl', GITHUB_URL ('lloyd', 'yajl', '([0-9][0-9.]*)'), None, []),
2212+ ('xorg-server', XORG_URL ('', 'xserver', 'xorg-server-([0-9].[0-9]+.[0-8.]*)'), XORG_URL ('', 'xserver', 'xorg-server-([0-9][0-9.]*)'), ['xorg']),
2213+ ('xserver-xorg-input-evdev', XORG_URL ('driver', 'xf86-input-evdev'), None, ['xorg']),
2214+ ('xserver-xorg-input-joystick', XORG_URL ('driver', 'xf86-input-joystick'), None, ['xorg']),
2215+ ('xserver-xorg-input-libinput', XORG_URL ('driver', 'xf86-input-libinput'), None, ['xorg']),
2216+ ('xserver-xorg-input-synaptics', XORG_URL ('driver', 'xf86-input-synaptics', '([0-9].[0-9]+.[0-8.]*)'), XORG_URL ('driver', 'xf86-input-synaptics'), ['xorg']),
2217+ ('xserver-xorg-input-void', XORG_URL ('driver', 'xf86-input-void'), None, ['xorg']),
2218+ ('xserver-xorg-video-amdgpu', XORG_URL ('driver', 'xf86-video-amdgpu'), None, ['xorg']),
2219+ ('xserver-xorg-video-ati', XORG_URL ('driver', 'xf86-video-ati'), None, ['xorg']),
2220+# ('xserver-xorg-video-dummy', XORG_URL ('driver', 'xf86-video-dummy'), None, ['xorg']),
2221+ ('xserver-xorg-video-fbdev', XORG_URL ('driver', 'xf86-video-fbdev'), None, ['xorg']),
2222+ ('xserver-xorg-video-intel', XORG_URL ('driver', 'xf86-video-intel'), None, ['xorg']),
2223+ ('xserver-xorg-video-nouveau', XORG_URL ('driver', 'xf86-video-nouveau'), None, ['xorg']),
2224+ ('xserver-xorg-video-openchrome', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-openchrome-([0-9][0-9.]*)' + EXT), None, ['xorg']),
2225+ ('xserver-xorg-video-qxl', XORG_URL ('driver', 'xf86-video-qxl'), None, ['xorg']),
2226+ ('xserver-xorg-video-vesa', XORG_URL ('driver', 'xf86-video-vesa'), None, ['xorg']),
2227+ ('xserver-xorg-video-vmware', XORG_URL ('driver', 'xf86-video-vmware'), None, ['xorg']),
2228+ ('xterm', ('https://invisible-mirror.net/archives/xterm/', 'xterm-([0-9][0-9.]*)' + EXT), None, ['xorg']),
2229+ ('xz-utils', ('http://tukaani.org/xz/', 'xz-([0-9][0-9.]*)' + EXT), None, []),
2230+ ('yajl', GITHUB_URL ('lloyd', 'yajl'), None, []),
2231 ('yaru-theme', UBUNTU, None, []),
2232 ('yelp', GNOME_FTP_URL ('yelp', GNOME_STABLE_SERIES), GNOME_FTP_URL ('yelp'), ['gnome']),
2233 ('yelp-tools', GNOME_FTP_URL ('yelp-tools', '3.32'), GNOME_FTP_URL ('yelp-tools'), ['gnome']),
2234 ('yelp-xsl', GNOME_FTP_URL ('yelp-xsl', GNOME_STABLE_SERIES), GNOME_FTP_URL ('yelp-xsl'), ['gnome']),
2235-# ('zbar', SOURCEFORGE_URL ('zbar', 'zbar/([0-9.]+)', 'zbar-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2236+# ('zbar', SOURCEFORGE_URL ('zbar', 'zbar/([0-9.]+)', 'zbar-([0-9][0-9.]*)' + EXT), None, []),
2237 ('zeitgeist', LAUNCHPAD_URL ('zeitgeist'), None, []),
2238 ('zenity', GNOME_FTP_URL ('zenity'), GNOME_FTP_URL ('zenity'), ['gnome']),
2239-# ('zephyr', ('http://zephyr.1ts.org/files/', 'zephyr-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2240- ('zip', ('ftp://ftp.info-zip.org/pub/infozip/src/', 'zip([34][0-9]*).zip'), None, []), # NOTE: uses mental versioning
2241- ('zlib', ('http://www.zlib.net/', 'zlib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2242+# ('zephyr', ('http://zephyr.1ts.org/files/', 'zephyr-([0-9][0-9.]*)' + EXT), None, []),
2243+ ('zip', ('ftp://ftp.info-zip.org/pub/infozip/src/', 'zip([34][0-9]*)' + EXT), None, []), # NOTE: uses mental versioning
2244+ ('zlib', ('http://www.zlib.net/', 'zlib-([0-9][0-9.]*)' + EXT), None, []),
2245 ('zope.interface', PYPI_URL ('zope.interface'), None, []),
2246- ('zsync', ('http://zsync.moria.org.uk/downloads', 'zsync-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, [])
2247-# ('zvbi', SOURCEFORGE_URL ('zapping', 'zvbi/([0-9.]+)', 'zvbi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, [])
2248+ ('zsync', ('http://zsync.moria.org.uk/downloads', 'zsync-([0-9][0-9.]*)' + EXT), None, [])
2249+# ('zvbi', SOURCEFORGE_URL ('zapping', 'zvbi/([0-9.]+)', 'zvbi-([0-9][0-9.]*)' + EXT), None, [])
2250 ]
2251
2252 kubuntu_package_info = [
2253 ('akonadi-facebook', UNTRACKED, None, ['kde']),
2254- ('akonadi', ('http://download.kde.org/stable/akonadi/src/', 'akonadi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2255- ('amarok', ('http://download.kde.org/stable/amarok/([0-9.]+)/src/', 'amarok-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2256+ ('akonadi', ('http://download.kde.org/stable/akonadi/src/', 'akonadi-([0-9][0-9.]*)' + EXT), None, ['kde']),
2257+ ('amarok', ('http://download.kde.org/stable/amarok/([0-9.]+)/src/', 'amarok-([0-9][0-9.]*)' + EXT), None, ['kde']),
2258 ('ark', KDE_FTP_URL ('ark'), None, ['kde']),
2259 ('audiocd-kio', KDE_FTP_URL ('audiocd-kio'), None, ['kde']),
2260- ('bluedevil', ('http://download.kde.org/stable/bluedevil/([0-9.]+)/src/', 'bluedevil-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2261- ('calligra', ('http://download.kde.org/stable/calligra-latest/', 'calligra-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2262+ ('bluedevil', ('http://download.kde.org/stable/bluedevil/([0-9.]+)/src/', 'bluedevil-([0-9][0-9.]*)' + EXT), None, ['kde']),
2263+ ('calligra', ('http://download.kde.org/stable/calligra-latest/', 'calligra-([0-9][0-9.]*)' + EXT), None, ['kde']),
2264 ('extra-cmake-modules', DEBIAN, None, ['kde']),
2265- ('colord-kde', ('http://download.kde.org/stable/colord-kde/([0-9.]+)/src/', 'colord-kde-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2266+ ('colord-kde', ('http://download.kde.org/stable/colord-kde/([0-9.]+)/src/', 'colord-kde-([0-9][0-9.]*)' + EXT), None, ['kde']),
2267 ('debconf-kde', DEBIAN, None, ['kde']),
2268 ('dragon', KDE_FTP_URL ('dragon'), None, ['kde']),
2269 ('gwenview', KDE_FTP_URL ('gwenview'), None, ['kde']),
2270- ('ibus-pinyin', GITHUB_URL ('ibus', 'ibus-pinyin', '([0-9][0-9.]*)'), None, []),
2271- ('k3b', SOURCEFORGE_URL ('k3b', 'k3b/([0-9.]+)', 'k3b-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2272+ ('ibus-pinyin', GITHUB_URL ('ibus', 'ibus-pinyin'), None, []),
2273+ ('k3b', SOURCEFORGE_URL ('k3b', 'k3b/([0-9.]+)', 'k3b-([0-9][0-9.]*)' + EXT), None, ['kde']),
2274 ('kaccessible', KDE_FTP_URL ('kaccessible'), None, ['kde']),
2275 ('kamera', KDE_FTP_URL ('kamera'), None, ['kde']),
2276 ('kamoso', UNTRACKED, None, ['kde']),
2277 ('kate', KDE_FTP_URL ('kate'), None, ['kde']),
2278 ('kcalc', KDE_FTP_URL ('kcalc'), None, ['kde']),
2279- ('kde4libs', ('http://download.kde.org/stable/applications/([0-9.]+)/src/', 'kdelibs-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2280+ ('kde4libs', ('http://download.kde.org/stable/applications/([0-9.]+)/src/', 'kdelibs-([0-9][0-9.]*)' + EXT), None, ['kde']),
2281 ('kdeadmin', KDE_FTP_URL ('kdeadmin'), None, ['kde']),
2282 ('kde-baseapps', KDE_FTP_URL ('kde-baseapps'), None, ['kde']),
2283 ('kde-base-artwork', KDE_FTP_URL ('kde-base-artwork'), None, ['kde']),
2284@@ -1636,20 +1644,20 @@ kubuntu_package_info = [
2285 ('kde-workspace', KDE_FTP_URL ('kde-workspace'), None, ['kde']),
2286 ('kmag', KDE_FTP_URL ('kmag'), None, ['kde']),
2287 ('kmix', KDE_FTP_URL ('kmix'), None, ['kde']),
2288- ('kmod', ('https://www.kernel.org/pub/linux/utils/kernel/kmod/', 'kmod-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2289+ ('kmod', ('https://www.kernel.org/pub/linux/utils/kernel/kmod/', 'kmod-([0-9][0-9.]*)' + EXT), None, []),
2290 ('kmousetool', KDE_FTP_URL ('kmousetool'), None, ['kde']),
2291 ('ksnapshot', KDE_FTP_URL ('ksnapshot'), None, ['kde']),
2292- ('ktorrent', ('http://ktorrent.org/downloads/([0-9.]+)/', 'ktorrent-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2293- ('ktp-accounts-kcm', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-accounts-kcm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2294- ('ktp-approver', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-approver-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2295- ('ktp-auth-handler', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-auth-handler-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2296- ('ktp-common-internals', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-common-internals-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2297- ('ktp-contact-list', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-contact-list-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2298- ('ktp-filetransfer-handler', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-filetransfer-handler-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2299- ('ktp-kded-integration-module', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-kded-integration-module-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2300- ('ktp-presence-applet', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-presence-applet-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2301- ('ktp-send-file', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-send-file-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2302- ('ktp-text-ui', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-text-ui-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2303+ ('ktorrent', ('http://ktorrent.org/downloads/([0-9.]+)/', 'ktorrent-([0-9][0-9.]*)' + EXT), None, ['kde']),
2304+ ('ktp-accounts-kcm', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-accounts-kcm-([0-9][0-9.]*)' + EXT), None, ['kde']),
2305+ ('ktp-approver', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-approver-([0-9][0-9.]*)' + EXT), None, ['kde']),
2306+ ('ktp-auth-handler', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-auth-handler-([0-9][0-9.]*)' + EXT), None, ['kde']),
2307+ ('ktp-common-internals', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-common-internals-([0-9][0-9.]*)' + EXT), None, ['kde']),
2308+ ('ktp-contact-list', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-contact-list-([0-9][0-9.]*)' + EXT), None, ['kde']),
2309+ ('ktp-filetransfer-handler', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-filetransfer-handler-([0-9][0-9.]*)' + EXT), None, ['kde']),
2310+ ('ktp-kded-integration-module', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-kded-integration-module-([0-9][0-9.]*)' + EXT), None, ['kde']),
2311+ ('ktp-presence-applet', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-presence-applet-([0-9][0-9.]*)' + EXT), None, ['kde']),
2312+ ('ktp-send-file', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-send-file-([0-9][0-9.]*)' + EXT), None, ['kde']),
2313+ ('ktp-text-ui', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'ktp-text-ui-([0-9][0-9.]*)' + EXT), None, ['kde']),
2314 ('kvkbd', UNTRACKED, None, ['kde']),
2315 ('kwallet', KDE_FTP_URL ('kwallet'), None, ['kde']),
2316 ('kubuntu-default-settings', UBUNTU, None, ['kde']),
2317@@ -1662,15 +1670,15 @@ kubuntu_package_info = [
2318 ('libkcompactdisc', KDE_FTP_URL ('libkcompactdisc'), None, ['kde']),
2319 ('libkdcraw', KDE_FTP_URL ('libkdcraw'), None, ['kde']),
2320 ('libkexiv2', KDE_FTP_URL ('libkexiv2'), None, ['kde']),
2321- ('libkgapi', ('http://download.kde.org/stable/libkgapi/([0-9.]+)/src/', 'libkgapi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2322+ ('libkgapi', ('http://download.kde.org/stable/libkgapi/([0-9.]+)/src/', 'libkgapi-([0-9][0-9.]*)' + EXT), None, ['kde']),
2323 ('libkipi', KDE_FTP_URL ('libkipi'), None, ['kde']),
2324- ('libkolab', ('http://mirror.kolabsys.com/pub/releases/', 'libkolab-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2325- ('libkolabxml', ('http://mirror.kolabsys.com/pub/releases/', 'libkolabxml-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2326+ ('libkolab', ('http://mirror.kolabsys.com/pub/releases/', 'libkolab-([0-9][0-9.]*)' + EXT), None, ['kde']),
2327+ ('libkolabxml', ('http://mirror.kolabsys.com/pub/releases/', 'libkolabxml-([0-9][0-9.]*)' + EXT), None, ['kde']),
2328 ('libksane', KDE_FTP_URL ('libksane'), None, ['kde']),
2329- ('libksba', ('https://gnupg.org/ftp/gcrypt/libksba/', 'libksba-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2330- ('libktorrent', ('http://ktorrent.org/downloads/([0-9.]+)/', 'libktorrent-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2331- ('lightdm-kde', ('http://download.kde.org/unstable/lightdm-kde/src/', 'lightdm-kde-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2332- ('muon', ('http://download.kde.org/stable/muon/([0-9.]+)/src/', 'muon-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2333+ ('libksba', ('https://gnupg.org/ftp/gcrypt/libksba/', 'libksba-([0-9][0-9.]*)' + EXT), None, ['kde']),
2334+ ('libktorrent', ('http://ktorrent.org/downloads/([0-9.]+)/', 'libktorrent-([0-9][0-9.]*)' + EXT), None, ['kde']),
2335+ ('lightdm-kde', ('http://download.kde.org/unstable/lightdm-kde/src/', 'lightdm-kde-([0-9][0-9.]*)' + EXT), None, ['kde']),
2336+ ('muon', ('http://download.kde.org/stable/muon/([0-9.]+)/src/', 'muon-([0-9][0-9.]*)' + EXT), None, ['kde']),
2337 ('okular', KDE_FTP_URL ('okular'), None, ['kde']),
2338 ('oxygencursors', UNTRACKED, None, ['kde']),
2339 ('oxygen-gtk3', UNTRACKED, None, ['kde']),
2340@@ -1681,90 +1689,90 @@ kubuntu_package_info = [
2341 ('print-manager', KDE_FTP_URL ('print-manager'), None, ['kde']),
2342 ('pkg-kde-tools', DEBIAN, None, ['kde']),
2343 ('pykde4', KDE_FTP_URL ('pykde4'), None, ['kde', 'python']),
2344- ('qapt', ('http://download.kde.org/stable/libqapt/([0-9.]+)/src/', 'libqapt-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2345+ ('qapt', ('http://download.kde.org/stable/libqapt/([0-9.]+)/src/', 'libqapt-([0-9][0-9.]*)' + EXT), None, ['kde']),
2346 ('qca2-plugin-ossl', UNTRACKED, None, ['kde']),
2347- ('qimageblitz', SOURCEFORGE_URL ('qimageblitz', 'qimageblitz/QImageBlitz%20([0-9.]+)', 'qimageblitz-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2348- ('qjson', SOURCEFORGE_URL ('qjson', 'qjson/([0-9.]+)', 'qjson-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2349+ ('qimageblitz', SOURCEFORGE_URL ('qimageblitz', 'qimageblitz/QImageBlitz%20([0-9.]+)', 'qimageblitz-([0-9][0-9.]*)' + EXT), None, ['kde']),
2350+ ('qjson', SOURCEFORGE_URL ('qjson', 'qjson/([0-9.]+)', 'qjson-([0-9][0-9.]*)' + EXT), None, ['kde']),
2351 ('qoauth', UNTRACKED, None, ['kde']),
2352- ('qpdf', ('http://sourceforge.net/projects/qpdf/files/', 'qpdf-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2353+ ('qpdf', ('http://sourceforge.net/projects/qpdf/files/', 'qpdf-([0-9][0-9.]*)' + EXT), None, []),
2354 ('qrencode', UNTRACKED, None, ['kde']),
2355- ('qt-assistant-compat', ('ftp://ftp.qt.nokia.com/qt/source/', 'qt-assistant-qassistantclient-library-compat-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2356- ('qt-gstreamer', ('https://gstreamer.freedesktop.org/src/qt-gstreamer/', 'qt-gstreamer-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
2357+ ('qt-assistant-compat', ('ftp://ftp.qt.nokia.com/qt/source/', 'qt-assistant-qassistantclient-library-compat-src-([0-9][0-9.]*)' + EXT), None, ['kde']),
2358+ ('qt-gstreamer', ('https://gstreamer.freedesktop.org/src/qt-gstreamer/', 'qt-gstreamer-([0-9][0-9.]*)' + EXT), None, ['kde']),
2359 ('qtscriptgenerator', UNTRACKED, None, ['kde']),
2360- ('qtwebkit-source', ('http://get.qt.nokia.com/qtwebkit/', 'QtWebKit-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']), # This is an old URL - releases are on the Wiki and gitorious http://trac.webkit.org/wiki/QtWebKitRelease21
2361+ ('qtwebkit-source', ('http://get.qt.nokia.com/qtwebkit/', 'QtWebKit-([0-9][0-9.]*)' + EXT), None, ['kde']), # This is an old URL - releases are on the Wiki and gitorious http://trac.webkit.org/wiki/QtWebKitRelease21
2362 ('skanlite', KDE_FTP_URL ('skanlite'), None, ['kde']),
2363- ('telepathy-logger-qt', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'telepathy-logger-qt-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde'], ['kde'])
2364+ ('telepathy-logger-qt', ('http://download.kde.org/unstable/kde-telepathy/([0-9.]+)/src/', 'telepathy-logger-qt-([0-9][0-9.]*)' + EXT), None, ['kde'], ['kde'])
2365 ]
2366
2367 lubuntu_package_info = [
2368-# ('abiword', ('http://www.abisource.com/downloads/abiword/latest/source/', 'abiword-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2369- ('ace-of-penguins', ('http://www.delorie.com/store/ace/', 'ace-([0-9][0-9.]*).src.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2370- ('galculator', SOURCEFORGE_URL ('galculator', 'galculator/([0-9.]+)', 'galculator-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2371- ('leafpad', ('http://download.savannah.gnu.org/releases/leafpad/', 'leafpad-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2372-# ('link-grammar', ('http://www.abisource.com/downloads/link-grammar/([0-9.]+)/', 'link-grammar-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2373- ('lxappearance', SOURCEFORGE_URL ('lxde', 'LXAppearance', 'lxappearance-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2374- ('lxappearance-obconf', SOURCEFORGE_URL ('lxde', 'LXAppearance%20Obconf', 'lxappearance-obconf-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2375- ('lxinput', SOURCEFORGE_URL ('lxde', 'LXInput%20%28Kbd%20and%20amp_%20mouse%20config%29/LXInput%20([0-9.]+)', 'lxinput-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2376+# ('abiword', ('http://www.abisource.com/downloads/abiword/latest/source/', 'abiword-([0-9][0-9.]*)' + EXT), None, []),
2377+ ('ace-of-penguins', ('http://www.delorie.com/store/ace/', 'ace-([0-9][0-9.]*).src' + EXT), None, []),
2378+ ('galculator', SOURCEFORGE_URL ('galculator', 'galculator/([0-9.]+)', 'galculator-([0-9][0-9.]*)' + EXT), None, []),
2379+ ('leafpad', ('http://download.savannah.gnu.org/releases/leafpad/', 'leafpad-([0-9][0-9.]*)' + EXT), None, []),
2380+# ('link-grammar', ('http://www.abisource.com/downloads/link-grammar/([0-9.]+)/', 'link-grammar-([0-9][0-9.]*)' + EXT), None, []),
2381+ ('lxappearance', SOURCEFORGE_URL ('lxde', 'LXAppearance', 'lxappearance-([0-9][0-9.]*)' + EXT), None, []),
2382+ ('lxappearance-obconf', SOURCEFORGE_URL ('lxde', 'LXAppearance%20Obconf', 'lxappearance-obconf-([0-9][0-9.]*)' + EXT), None, []),
2383+ ('lxinput', SOURCEFORGE_URL ('lxde', 'LXInput%20%28Kbd%20and%20amp_%20mouse%20config%29/LXInput%20([0-9.]+)', 'lxinput-([0-9][0-9.]*)' + EXT), None, []),
2384 ('lxkeymap', UNTRACKED, None, []),
2385- ('lxlauncher', SOURCEFORGE_URL ('lxde', 'LXLauncher%20%28for%20Asus%20EeePC%29/LXLauncher%20([0-9.]+)', 'lxlauncher-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2386+ ('lxlauncher', SOURCEFORGE_URL ('lxde', 'LXLauncher%20%28for%20Asus%20EeePC%29/LXLauncher%20([0-9.]+)', 'lxlauncher-([0-9][0-9.]*)' + EXT), None, []),
2387 ('lxml', ('http://pypi.python.org/pypi/lxml/', 'lxml/([0-9][0-9.]*)'), None, ['python']),
2388- ('lxpanel', SOURCEFORGE_URL ('lxde', 'LXPanel%20%28desktop%20panel%29/LXPanel%20([0-9.]+)', 'lxpanel-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2389- ('lxrandr', SOURCEFORGE_URL ('lxde', 'LXRandR%20%28monitor%20config%20tool%29/LXRandR%20([0-9.]+)', 'lxrandr-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2390- ('lxsession', SOURCEFORGE_URL ('lxde', 'LXSession%20%28session%20manager%29/LXSession%20([0-9.]+)', 'lxsession-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2391- ('lxshortcut', SOURCEFORGE_URL ('lxde', 'LXShortcut%20%28edit%20app%20shortcut%29/LXShortcut%20([0-9.]+)', 'lxshortcut-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2392- ('lxtask', SOURCEFORGE_URL ('lxde', 'LXTask%20%28task%20manager%29/LXTask%20([0-9.]+)', 'lxtask-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2393- ('lxterminal', SOURCEFORGE_URL ('lxde', 'LXTerminal%20%28terminal%20emulator%29/LXTerminal%20([0-9.]+)', 'lxterminal-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2394+ ('lxpanel', SOURCEFORGE_URL ('lxde', 'LXPanel%20%28desktop%20panel%29/LXPanel%20([0-9.]+)', 'lxpanel-([0-9][0-9.]*)' + EXT), None, []),
2395+ ('lxrandr', SOURCEFORGE_URL ('lxde', 'LXRandR%20%28monitor%20config%20tool%29/LXRandR%20([0-9.]+)', 'lxrandr-([0-9][0-9.]*)' + EXT), None, []),
2396+ ('lxsession', SOURCEFORGE_URL ('lxde', 'LXSession%20%28session%20manager%29/LXSession%20([0-9.]+)', 'lxsession-([0-9][0-9.]*)' + EXT), None, []),
2397+ ('lxshortcut', SOURCEFORGE_URL ('lxde', 'LXShortcut%20%28edit%20app%20shortcut%29/LXShortcut%20([0-9.]+)', 'lxshortcut-([0-9][0-9.]*)' + EXT), None, []),
2398+ ('lxtask', SOURCEFORGE_URL ('lxde', 'LXTask%20%28task%20manager%29/LXTask%20([0-9.]+)', 'lxtask-([0-9][0-9.]*)' + EXT), None, []),
2399+ ('lxterminal', SOURCEFORGE_URL ('lxde', 'LXTerminal%20%28terminal%20emulator%29/LXTerminal%20([0-9.]+)', 'lxterminal-([0-9][0-9.]*)' + EXT), None, []),
2400 ('lubuntu-software-center', LAUNCHPAD_URL ('lubuntu-software-center'), None, []),
2401-# ('ots', SOURCEFORGE_URL ('libots', 'libots/ots-([0-9.]+)', 'ots-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2402+# ('ots', SOURCEFORGE_URL ('libots', 'libots/ots-([0-9.]+)', 'ots-([0-9][0-9.]*)' + EXT), None, []),
2403 ('sylpheed-doc', UNTRACKED, None, []),
2404- ('sylpheed', ('http://sylpheed.sraoss.jp/sylpheed/v([0-9.]+)/', 'sylpheed-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2405+ ('sylpheed', ('http://sylpheed.sraoss.jp/sylpheed/v([0-9.]+)/', 'sylpheed-([0-9][0-9.]*)' + EXT), None, []),
2406 ('xpad', LAUNCHPAD_URL ('xpad'), None, []),
2407- ('xscreensaver', ('http://www.jwz.org/xscreensaver/download.html', 'xscreensaver-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, [])
2408+ ('xscreensaver', ('http://www.jwz.org/xscreensaver/download.html', 'xscreensaver-([0-9][0-9.]*)' + EXT), None, [])
2409 ]
2410
2411 xubuntu_package_info = [
2412- ('blueman', ('http://download.tuxfamily.org/blueman/', 'blueman-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2413- ('exo', ('http://archive.xfce.org/src/xfce/exo/([0-9.]+)', 'exo-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2414- ('garcon', ('http://archive.xfce.org/src/xfce/gacron/([0-9.]+)', 'garcon-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2415+ ('blueman', ('http://download.tuxfamily.org/blueman/', 'blueman-([0-9][0-9.]*)' + EXT), None, []),
2416+ ('exo', ('http://archive.xfce.org/src/xfce/exo/([0-9.]+)', 'exo-([0-9][0-9.]*)' + EXT), None, []),
2417+ ('garcon', ('http://archive.xfce.org/src/xfce/gacron/([0-9.]+)', 'garcon-([0-9][0-9.]*)' + EXT), None, []),
2418 ('indicator-application-gtk2', LAUNCHPAD_URL ('indicators-gtk2', 'indicator-application'), None, []),
2419 ('indicator-sound-gtk2', LAUNCHPAD_URL ('indicators-gtk2', 'indicator-sound'), None, []),
2420- ('libxfce4ui', ('http://archive.xfce.org/src/xfce/libxfce4ui/([0-9.]+)', 'libxfce4ui-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2421- ('libxfce4util', ('http://archive.xfce.org/src/xfce/libxfce4util/([0-9.]+)', 'libxfce4util-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2422- ('libxfcegui4', ('http://archive.xfce.org/src/archive/libxfcegui4/([0-9.]+)', 'libxfcegui4-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2423- ('orage', ('http://archive.xfce.org/src/apps/orage/([0-9.]+)', 'orage-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2424- ('parole', ('http://archive.xfce.org/src/apps/parole/([0-9.]+)', 'parole-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2425- ('ristretto', ('http://archive.xfce.org/src/apps/ristretto/([0-9.]+)', 'ristretto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2426- ('thunar-archive-plugin', ('http://archive.xfce.org/src/thunar-plugins/thunar-archive-plugin/([0-9.]+)', 'thunar-archive-plugin-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2427- ('thunar', ('http://archive.xfce.org/src/xfce/thunar/([0-9.]+)', 'Thunar-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2428- ('thunar-media-tags-plugin', ('http://archive.xfce.org/src/thunar-plugins/thunar-media-tags-plugin/([0-9.]+)', 'thunar-media-tags-plugin-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2429- ('thunar-volman', ('http://archive.xfce.org/src/xfce/thunar-volman/([0-9.]+)', 'thunar-volman-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2430- ('tumbler', ('http://archive.xfce.org/src/xfce/tumbler/([0-9.]+)', 'tumbler-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2431- ('xfburn', ('http://archive.xfce.org/src/apps/xfburn/([0-9.]+)', 'xfburn-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2432- ('xfce4-appfinder', ('http://archive.xfce.org/src/xfce/xfce4-appfinder/([0-9.]+)', 'xfce4-appfinder-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2433- ('xfce4-cpugraph-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-cpugraph-plugin/([0-9.]+)', 'xfce4-cpugraph-plugin-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2434- ('xfce4-dict', ('http://archive.xfce.org/src/apps/xfce4-dict/([0-9.]+)', 'xfce4-dict-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2435- ('xfce4-indicator-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-indicator-plugin/([0-9.]+)', 'xfce4-indicator-plugin-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2436- ('xfce4-mailwatch-plugin',('http://spurint.org/files/mailwatch/', 'xfce4-mailwatch-plugin-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2437- ('xfce4-netload-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-netload-plugin/([0-9.]+)', 'xfce4-netload-plugin-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2438- ('xfce4-notes-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-notes-plugin/([0-9.]+)', 'xfce4-notes-plugin-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2439- ('xfce4-notifyd', ('http://archive.xfce.org/src/apps/xfce4-notifyd/([0-9.]+)', 'xfce4-notifyd-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2440- ('xfce4-panel', ('http://archive.xfce.org/src/xfce/xfce4-panel/([0-9.]+)', 'xfce4-panel-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2441- ('xfce4-places-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-places-plugin/([0-9.]+)', 'xfce4-places-plugin-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2442- ('xfce4-power-manager', ('http://archive.xfce.org/src/xfce/xfce4-power-manager/([0-9.]+)', 'xfce4-power-manager-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2443- ('xfce4-quicklauncher-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-quicklauncher-plugin/([0-9.]+)', 'xfce4-quicklauncher-plugin-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2444- ('xfce4-screenshooter', ('http://archive.xfce.org/src/apps/xfce4-screenshooter/([0-9.]+)', 'xfce4-screenshooter-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2445- ('xfce4-session', ('http://archive.xfce.org/src/xfce/xfce4-session/([0-9.]+)', 'xfce4-session-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2446- ('xfce4-settings', ('http://archive.xfce.org/src/xfce/xfce4-settings/([0-9.]+)', 'xfce4-settings-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2447- ('xfce4-systemload-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-systemload-plugin/([0-9.]+)', 'xfce4-systemload-plugin-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2448- ('xfce4-taskmanager', ('http://archive.xfce.org/src/apps/xfce4-taskmanager/([0-9.]+)', 'xfce4-taskmanager-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2449- ('xfce4-terminal', ('http://archive.xfce.org/src/apps/terminal/([0-9.]+)', 'Terminal-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2450- ('xfce4-verve-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-verve-plugin/([0-9.]+)', 'xfce4-verve-plugin-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2451- ('xfce4-volumed', ('http://archive.xfce.org/src/apps/xfce4-volumed/([0-9.]+)', 'xfce4-volumed-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2452- ('xfce4-weather-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-weather-plugin/([0-9.]+)', 'xfce4-weather-plugin-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2453- ('xfce4-xkb-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-xkb-plugin/([0-9.]+)', 'xfce4-xkb-plugin-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2454- ('xfconf', ('http://archive.xfce.org/src/xfce/xfconf/([0-9.]+)', 'xfconf-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2455- ('xfdesktop4', ('http://archive.xfce.org/src/xfce/xfdesktop/([0-9.]+)/src', 'xfdesktop-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2456- ('xfwm4', ('http://archive.xfce.org/src/xfce/xfwm4/([0-9.]+)', 'xfwm4-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2457+ ('libxfce4ui', ('http://archive.xfce.org/src/xfce/libxfce4ui/([0-9.]+)', 'libxfce4ui-([0-9][0-9.]*)' + EXT), None, []),
2458+ ('libxfce4util', ('http://archive.xfce.org/src/xfce/libxfce4util/([0-9.]+)', 'libxfce4util-([0-9][0-9.]*)' + EXT), None, []),
2459+ ('libxfcegui4', ('http://archive.xfce.org/src/archive/libxfcegui4/([0-9.]+)', 'libxfcegui4-([0-9][0-9.]*)' + EXT), None, []),
2460+ ('orage', ('http://archive.xfce.org/src/apps/orage/([0-9.]+)', 'orage-([0-9][0-9.]*)' + EXT), None, []),
2461+ ('parole', ('http://archive.xfce.org/src/apps/parole/([0-9.]+)', 'parole-([0-9][0-9.]*)' + EXT), None, []),
2462+ ('ristretto', ('http://archive.xfce.org/src/apps/ristretto/([0-9.]+)', 'ristretto-([0-9][0-9.]*)' + EXT), None, []),
2463+ ('thunar-archive-plugin', ('http://archive.xfce.org/src/thunar-plugins/thunar-archive-plugin/([0-9.]+)', 'thunar-archive-plugin-([0-9][0-9.]*)' + EXT), None, []),
2464+ ('thunar', ('http://archive.xfce.org/src/xfce/thunar/([0-9.]+)', 'Thunar-([0-9][0-9.]*)' + EXT), None, []),
2465+ ('thunar-media-tags-plugin', ('http://archive.xfce.org/src/thunar-plugins/thunar-media-tags-plugin/([0-9.]+)', 'thunar-media-tags-plugin-([0-9][0-9.]*)' + EXT), None, []),
2466+ ('thunar-volman', ('http://archive.xfce.org/src/xfce/thunar-volman/([0-9.]+)', 'thunar-volman-([0-9][0-9.]*)' + EXT), None, []),
2467+ ('tumbler', ('http://archive.xfce.org/src/xfce/tumbler/([0-9.]+)', 'tumbler-([0-9][0-9.]*)' + EXT), None, []),
2468+ ('xfburn', ('http://archive.xfce.org/src/apps/xfburn/([0-9.]+)', 'xfburn-([0-9][0-9.]*)' + EXT), None, []),
2469+ ('xfce4-appfinder', ('http://archive.xfce.org/src/xfce/xfce4-appfinder/([0-9.]+)', 'xfce4-appfinder-([0-9][0-9.]*)' + EXT), None, []),
2470+ ('xfce4-cpugraph-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-cpugraph-plugin/([0-9.]+)', 'xfce4-cpugraph-plugin-([0-9][0-9.]*)' + EXT), None, []),
2471+ ('xfce4-dict', ('http://archive.xfce.org/src/apps/xfce4-dict/([0-9.]+)', 'xfce4-dict-([0-9][0-9.]*)' + EXT), None, []),
2472+ ('xfce4-indicator-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-indicator-plugin/([0-9.]+)', 'xfce4-indicator-plugin-([0-9][0-9.]*)' + EXT), None, []),
2473+ ('xfce4-mailwatch-plugin',('http://spurint.org/files/mailwatch/', 'xfce4-mailwatch-plugin-([0-9][0-9.]*)' + EXT), None, []),
2474+ ('xfce4-netload-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-netload-plugin/([0-9.]+)', 'xfce4-netload-plugin-([0-9][0-9.]*)' + EXT), None, []),
2475+ ('xfce4-notes-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-notes-plugin/([0-9.]+)', 'xfce4-notes-plugin-([0-9][0-9.]*)' + EXT), None, []),
2476+ ('xfce4-notifyd', ('http://archive.xfce.org/src/apps/xfce4-notifyd/([0-9.]+)', 'xfce4-notifyd-([0-9][0-9.]*)' + EXT), None, []),
2477+ ('xfce4-panel', ('http://archive.xfce.org/src/xfce/xfce4-panel/([0-9.]+)', 'xfce4-panel-([0-9][0-9.]*)' + EXT), None, []),
2478+ ('xfce4-places-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-places-plugin/([0-9.]+)', 'xfce4-places-plugin-([0-9][0-9.]*)' + EXT), None, []),
2479+ ('xfce4-power-manager', ('http://archive.xfce.org/src/xfce/xfce4-power-manager/([0-9.]+)', 'xfce4-power-manager-([0-9][0-9.]*)' + EXT), None, []),
2480+ ('xfce4-quicklauncher-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-quicklauncher-plugin/([0-9.]+)', 'xfce4-quicklauncher-plugin-([0-9][0-9.]*)' + EXT), None, []),
2481+ ('xfce4-screenshooter', ('http://archive.xfce.org/src/apps/xfce4-screenshooter/([0-9.]+)', 'xfce4-screenshooter-([0-9][0-9.]*)' + EXT), None, []),
2482+ ('xfce4-session', ('http://archive.xfce.org/src/xfce/xfce4-session/([0-9.]+)', 'xfce4-session-([0-9][0-9.]*)' + EXT), None, []),
2483+ ('xfce4-settings', ('http://archive.xfce.org/src/xfce/xfce4-settings/([0-9.]+)', 'xfce4-settings-([0-9][0-9.]*)' + EXT), None, []),
2484+ ('xfce4-systemload-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-systemload-plugin/([0-9.]+)', 'xfce4-systemload-plugin-([0-9][0-9.]*)' + EXT), None, []),
2485+ ('xfce4-taskmanager', ('http://archive.xfce.org/src/apps/xfce4-taskmanager/([0-9.]+)', 'xfce4-taskmanager-([0-9][0-9.]*)' + EXT), None, []),
2486+ ('xfce4-terminal', ('http://archive.xfce.org/src/apps/terminal/([0-9.]+)', 'Terminal-([0-9][0-9.]*)' + EXT), None, []),
2487+ ('xfce4-verve-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-verve-plugin/([0-9.]+)', 'xfce4-verve-plugin-([0-9][0-9.]*)' + EXT), None, []),
2488+ ('xfce4-volumed', ('http://archive.xfce.org/src/apps/xfce4-volumed/([0-9.]+)', 'xfce4-volumed-([0-9][0-9.]*)' + EXT), None, []),
2489+ ('xfce4-weather-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-weather-plugin/([0-9.]+)', 'xfce4-weather-plugin-([0-9][0-9.]*)' + EXT), None, []),
2490+ ('xfce4-xkb-plugin', ('http://archive.xfce.org/src/panel-plugins/xfce4-xkb-plugin/([0-9.]+)', 'xfce4-xkb-plugin-([0-9][0-9.]*)' + EXT), None, []),
2491+ ('xfconf', ('http://archive.xfce.org/src/xfce/xfconf/([0-9.]+)', 'xfconf-([0-9][0-9.]*)' + EXT), None, []),
2492+ ('xfdesktop4', ('http://archive.xfce.org/src/xfce/xfdesktop/([0-9.]+)/src', 'xfdesktop-([0-9][0-9.]*)' + EXT), None, []),
2493+ ('xfwm4', ('http://archive.xfce.org/src/xfce/xfwm4/([0-9.]+)', 'xfwm4-([0-9][0-9.]*)' + EXT), None, []),
2494 ('xubuntu-artwork', UBUNTU, None, []),
2495 ('xubuntu-default-settings', UBUNTU, None, []),
2496 ('xubuntu-docs', UBUNTU, None, [])
2497@@ -1791,12 +1799,12 @@ unity8_package_info = [
2498 ('qtmir', UBUNTU, None, []),
2499 ('qtorganizer5-eds', UBUNTU, None, []),
2500 # ('qtpim-opensource-src', ('', ''), None, []),
2501-# ('qtscript-opensource-src', ('http://download.qt-project.org/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtscript-opensource-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2502+# ('qtscript-opensource-src', ('http://download.qt-project.org/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtscript-opensource-src-([0-9][0-9.]*)' + EXT), None, []),
2503 ('mediaplayer-app', UBUNTU, None, []),
2504 ('policykit-unity8', UBUNTU, None, []),
2505- ('qtdeclarative-opensource-src-gles', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtdeclarative-opensource-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2506- ('qtlocation-opensource-src-gles', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtlocation-opensource-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2507- ('qtmultimedia-opensource-src-gles', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtmultimedia-opensource-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2508+ ('qtdeclarative-opensource-src-gles', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtdeclarative-opensource-src-([0-9][0-9.]*)' + EXT), None, []),
2509+ ('qtlocation-opensource-src-gles', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtlocation-opensource-src-([0-9][0-9.]*)' + EXT), None, []),
2510+ ('qtmultimedia-opensource-src-gles', ('https://download.qt.io/official_releases/qt/5.9/([\d\.]*)/submodules/', 'qtmultimedia-opensource-src-([0-9][0-9.]*)' + EXT), None, []),
2511 # ('qtfeedback-opensource-src', ('', ''), None, []),
2512 ('telephony-service', UBUNTU, None, []),
2513 ('thumbnailer', UBUNTU, None, []),
2514@@ -1819,16 +1827,26 @@ unity8_package_info = [
2515 ('unity-scope-mediascanner', UBUNTU, None, []),
2516 ('unity-scopes-shell', UBUNTU, None, []),
2517 ('unity-webapps-qml', UBUNTU, None, []),
2518- ('wds', GITHUB_URL ('01org', 'wds', 'v([0-9][0-9.]*)'), None, []),
2519+ ('wds', GITHUB_URL ('01org', 'wds'), None, []),
2520 ('webapps-applications', UBUNTU, None, []),
2521 ('webbrowser-app', UBUNTU, None, []),
2522 ]
2523
2524 # for testing
2525 dummy_package_info = [
2526- ('boost1.65.1', SOURCEFORGE_URL ('boost', 'boost/(1.65.[0-9.]+)', 'boost_(1_65_[0-9]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
2527+ ('appstream-glib', GITHUB_URL ('hughsie', 'appstream-glib', None, '[a-z_]+_([0-9][a0-9_]*)'), None, ['gnome']),
2528+ ('boost1.67', SOURCEFORGE_URL ('boost', 'boost/(1.67.[0-9.]+)', 'boost_(1_67_[0-9]+)' + EXT), None, []),
2529 ('gnome-shell', GNOME_FTP_URL ('gnome-shell', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-contacts'), ['gnome']),
2530+ ('gnome-terminal', GNOME_FTP_URL ('gnome-terminal', GNOME_STABLE_SERIES), None, ['gnome']),
2531 ('gtk+3.0', GNOME_FTP_URL ('gtk+', '3.24'), None, ['gnome']),
2532+ ('apg', GITHUB_URL ('jabenninghoff', 'apg'), None, []),
2533+ ('libevent', GITHUB_URL ('libevent', 'libevent', 'release', '([0-9][0-9a-z.-]*)'), None, []),
2534+ ('geoclue-2.0', FDO_URL ('geoclue', 'geoclue'), None, ['gnome']),
2535+ ('libxcomposite', XORG_URL ('lib', 'libXcomposite'), None, ['xorg']),
2536+ ('startup-notification', FDO_URL ('xdg', 'startup-notification', '[A-Z_]+_([0-9][0-9_]*)'), None, []),
2537+ ('upower', FDO_URL ('upower', 'upower', 'UPOWER_([0-9][0-9_]*)'), None, []),
2538+ ('liblist-moreutils-perl', CPAN_URL ('List-MoreUtils'), None, ['perl']),
2539+ ('io-stringy', CPAN_URL ('IO-stringy'), None, ['perl']),
2540 ]
2541
2542 ubuntu_germinate_tags = {
2543diff --git a/versions.py b/versions.py
2544index 911fada..b3219d5 100644
2545--- a/versions.py
2546+++ b/versions.py
2547@@ -34,12 +34,12 @@ if sys.version_info >= (3, 0):
2548 import http.client as httplib
2549 import queue
2550 from functools import cmp_to_key
2551- from urllib.parse import urlparse
2552+ from urllib.parse import urlparse, urlunparse
2553 else:
2554 import httplib
2555 import urllib2
2556 import Queue as queue
2557- from urlparse import urlparse
2558+ from urlparse import urlparse, urlunparse
2559
2560 import apt_pkg
2561 apt_pkg.init_system()
2562@@ -189,21 +189,36 @@ def check_url_exists (url):
2563 parsed = urlparse (url)
2564
2565 if parsed.scheme == 'https':
2566- conn = httplib.HTTPSConnection (parsed.netloc)
2567+ proxy = os.getenv('https_proxy')
2568+ ConnectionOpener = httplib.HTTPSConnection
2569 elif parsed.scheme == 'http':
2570- conn = httplib.HTTPConnection (parsed.netloc)
2571+ proxy = os.getenv('http_proxy')
2572+ ConnectionOpener = httplib.HTTPConnection
2573 else:
2574 raise Exception ('Impossible to handle {} protocol'.format (
2575 parsed.scheme))
2576
2577+ if proxy:
2578+ parsed_proxy = urlparse (proxy)
2579+ conn = ConnectionOpener (parsed_proxy.hostname, parsed_proxy.port)
2580+ conn.set_tunnel (parsed.hostname, parsed.port)
2581+ else:
2582+ conn = ConnectionOpener (parsed.netloc, parsed.port)
2583+
2584 conn.request ('HEAD', parsed.path)
2585 resp = conn.getresponse ()
2586
2587 if resp.status == 301 or resp.status == 302:
2588 location = resp.getheader ('Location', None)
2589- if os.path.basename (urlparse (location).path) != os.path.basename (parsed.path):
2590+ parsed_location = urlparse (location)
2591+ if proxy and parsed_location.netloc == parsed_proxy.netloc:
2592+ parsed_location = parsed_location._replace(netloc=parsed.netloc)
2593+ location = urlunparse (parsed_location)
2594+ if os.path.basename (parsed_location.path) != os.path.basename (parsed.path):
2595 return False
2596- return check_url_exists (resp.getheader ('Location', None))
2597+ elif url == location:
2598+ return True
2599+ return check_url_exists (location)
2600
2601 return resp.status == 200
2602
2603@@ -309,11 +324,11 @@ class PackageThread (threading.Thread):
2604 repo = None
2605 news_url = None
2606
2607- if parsed.netloc == 'github.com' and parsed.path.endswith('/releases/latest'):
2608+ if parsed.hostname == 'github.com' and parsed.path.endswith('/releases/latest'):
2609 repo = get_prefix (uri, '/releases/latest')
2610 tag = get_suffix (version_match, 'tag/')
2611 link = os.path.join (get_prefix (uri, '/latest'), version_match)
2612- elif parsed.netloc == 'api.github.com' and parsed.path.endswith('/releases'):
2613+ elif parsed.hostname == 'api.github.com' and parsed.path.endswith('/releases'):
2614 r = re.compile('/releases/download/([^/]+)/{}"'.format (version_match))
2615 [tag_match] = [r.search(x) for x in uri_contents if r.search(x)]
2616
2617@@ -322,16 +337,31 @@ class PackageThread (threading.Thread):
2618 repo = os.path.join ('https://github.com',
2619 get_prefix (get_suffix (parsed.path, 'repos/'), '/releases'))
2620 link = os.path.join (repo, 'releases/tag', tag)
2621- elif (('gitlab.' in parsed.netloc or 'salsa.'in parsed.netloc) and
2622+ elif (('gitlab.' in parsed.hostname or 'salsa.'in parsed.hostname) and
2623 parsed.path.endswith('/tags')):
2624 repo = get_prefix (uri, '/tags')
2625 tag = get_suffix (version_match, 'tags/')
2626 link = os.path.join (uri, tag)
2627+ elif parsed.hostname == 'search.cpan.org':
2628+ r = re.compile('["\'](.*/([^/]+)/{})["\']'.format (version_match))
2629+ uri_match = [r.search(x) for x in uri_contents if r.search(x)][0]
2630+
2631+ if uri_match:
2632+ link = uri_match.group (1)
2633+ owner = uri_match.group (2)
2634+
2635+ version_basename = re.compile(EXT).split(version_match)
2636+ if version_basename:
2637+ info_link = os.path.join ('https://metacpan.org/release',
2638+ owner, version_basename[0])
2639+
2640+ if check_url_exists (info_link):
2641+ link = info_link
2642 else:
2643 ext_match = re.match('(.+)' + EXT, version_match)
2644 if ext_match:
2645 archive_link = os.path.join (uri, version_match)
2646- if check_url_exists (archive_link):
2647+ if parsed.scheme == 'ftp' or check_url_exists (archive_link):
2648 link = archive_link
2649
2650 if parsed.netloc == 'ftp.gnome.org':
2651@@ -422,12 +452,19 @@ class PackageThread (threading.Thread):
2652
2653 # Some projects use underscores for versioning
2654 if self.package.source.startswith('boost') or self.package.source == 'icu' \
2655- or self.package.source == 'libgc' or self.package.source == 'sane-backends' \
2656- or self.package.source == 'sqlite3':
2657+ or self.package.source == 'sane-backends' \
2658+ or self.package.source == 'appstream' \
2659+ or self.package.source == 'appstream-glib' \
2660+ or self.package.source == 'poppler-data' \
2661+ or self.package.source == 'sqlite3' \
2662+ or self.package.source == 'startup-notification' \
2663+ or self.package.source == 'upower':
2664 v = v.replace ('_', '.')
2665
2666 # Some use - instead
2667- if self.package.source == 'imagemagick' or self.package.source == 'lm-sensors':
2668+ if self.package.source == 'imagemagick' or \
2669+ self.package.source == 'libpgm' or \
2670+ self.package.source == 'lm-sensors':
2671 v = v.replace ('-', '.')
2672
2673 # Some skip the .'s

Subscribers

People subscribed via source and target branches