~ubuntu-desktop/ubuntu-desktop-versions/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
#!/usr/bin/python
# coding: utf-8

import re

DEBIAN    = 'DEBIAN'
UBUNTU    = 'UBUNTU'
UNTRACKED = 'UNTRACKED'

def GNOME_FTP_URL (name, version = '([0-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))
GNOME_STABLE_SERIES = '3.26'

def KDE_FTP_URL (name, subdir = ''):
    return ('http://download.kde.org/stable/%s([0-9.]+)/src/' % subdir, '%s-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+' % name)

def GSTREAMER_URL (name, series='([0-9.]+)'):
    return ('https://gstreamer.freedesktop.org/src/%s/' % name, '%s-(%s\.[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+' % (name, series))
GST_STABLE_SERIES = '1.12'

def PYPI_URL (name):
    return ('https://pypi.python.org/pypi/%s/' % name, '%s-([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+' % name)

def CPAN_URL (name):
    return ('http://search.cpan.org/dist/%s/' % name, '%s-v?([0-9][a-zA-Z0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+' % name)

def LIBREOFFICE_URL (name):
    return ('http://dev-www.libreoffice.org/src/', '%s-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+' % name)

def LAUNCHPAD_URL (project, name = None):
    if name is None:
        name = project
    return ('https://launchpad.net/%s/+download' % project, '%s[-_]([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+' % name)

def SOURCEFORGE_URL (project, dir, filename):
    return ('https://sourceforge.net/projects/' + project + '/files/' + dir, filename)

def GITHUB_URL (username, repository, tag_regex):
    return ('https://github.com/' + username + '/' + repository + '/releases/latest', 'tag/' + tag_regex)

GERMINATE_OUTPUT = 'http://people.canonical.com/~ubuntu-archive/germinate-output'

ubuntu_package_info = [
 ('a11y-profile-manager',  LAUNCHPAD_URL ('a11y-profile-manager'), None, []),
 ('aalib',                 SOURCEFORGE_URL ('aa-project', 'aa-lib/([0-9.]+)', 'aalib-([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('accerciser',            GNOME_FTP_URL ('accerciser', '([\d\.]+[02468])'), GNOME_FTP_URL ('accerciser'), ['gnome']),
 ('accountsservice',       ('https://freedesktop.org/software/accountsservice/', 'accountsservice-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('acl',                   ('https://download.savannah.gnu.org/releases/acl/', 'acl-([0-9][0-9.]*).src.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('acpid',                 SOURCEFORGE_URL ('acpid2', '', 'acpid-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('acpi-support',          UBUNTU, None, []),
 ('adduser',               DEBIAN, None, []),
 ('adium-theme-ubuntu',    LAUNCHPAD_URL ('adium-theme-ubuntu'), None, []),
 ('adwaita-icon-theme',    GNOME_FTP_URL ('adwaita-icon-theme', GNOME_STABLE_SERIES), GNOME_FTP_URL ('adwaita-icon-theme'), ['gnome']),
# ('aiksaurus',             SOURCEFORGE_URL ('aiksaurus', 'aiksaurus', 'aiksaurus-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('aisleriot',             GNOME_FTP_URL ('aisleriot', '3.22'), GNOME_FTP_URL ('aisleriot'), ['gnome']),
# ('alacarte',              GNOME_FTP_URL ('alacarte'), GNOME_FTP_URL ('alacarte'), ['gnome']),
 ('alsa-driver',           ('ftp://ftp.alsa-project.org/pub/driver/', 'alsa-driver-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('alsa-lib',              ('ftp://ftp.alsa-project.org/pub/lib/', 'alsa-lib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('alsa-plugins',          ('ftp://ftp.alsa-project.org/pub/plugins/', 'alsa-plugins-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('alsa-utils',            ('ftp://ftp.alsa-project.org/pub/utils/', 'alsa-utils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('anacron',               SOURCEFORGE_URL ('anacron', 'anacron/([0-9.]+)', 'anacron-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('anjuta',                GNOME_FTP_URL ('anjuta', GNOME_STABLE_SERIES), GNOME_FTP_URL ('anjuta'), ['gnome']),
 ('anjuta-extras',         GNOME_FTP_URL ('anjuta-extras', '([\d\.]+[02468])'), GNOME_FTP_URL ('anjuta-extras'), ['gnome']),
# ('anthy',                 ('https://osdn.net/projects/anthy/releases/', 'anthy-([0-9][a-zA-Z0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('apache2',               ('http://archive.apache.org/dist/httpd/', 'httpd-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('apg',                   ('http://www.adel.nursat.kz/apg/download.shtml', 'apg-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('apparmor',              LAUNCHPAD_URL ('apparmor'), None, []),
 ('app-install-data-partner', UBUNTU, None, []),
 ('apport',                LAUNCHPAD_URL ('apport'), None, []),
 ('apport-symptoms',       UBUNTU, None, []),
 ('appstream',             ('https://freedesktop.org/software/appstream/releases/', 'AppStream-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
 ('appstream-glib',        ('https://people.freedesktop.org/~hughsient/appstream-glib/releases/', 'appstream-glib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
 ('aptdaemon',             UBUNTU, None, []),
 ('apt',                   DEBIAN, None, []),
 ('apturl',                UBUNTU, None, []),
 ('argyll',                ('http://www.argyllcms.com/downloadsrc.html', 'Argyll_V([0-9][0-9.]*)_src.zip'), None, []),
 ('asn1crypto',            PYPI_URL ('asn1crypto'), None, []),
 ('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, []),
 ('aspell',                ('https://ftp.gnu.org/gnu/aspell/', 'aspell-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('attr',                  ('http://download.savannah.gnu.org/releases/attr/', 'attr-([0-9][0-9.]*).src.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('atk1.0',                GNOME_FTP_URL ('atk', '([\d\.]+[02468])'), GNOME_FTP_URL ('atk'), ['gnome']),
 ('atkmm1.6',              GNOME_FTP_URL ('atkmm', '([\d\.]+[02468])'), GNOME_FTP_URL ('atkmm'), ['gnome']),
 ('atomix',                GNOME_FTP_URL ('atomix', '3.22'), GNOME_FTP_URL ('atomix'), ['gnome']),
 ('at-spi2-atk',           GNOME_FTP_URL ('at-spi2-atk', '([\d\.]+[02468])'), GNOME_FTP_URL ('at-spi2-atk'), ['gnome']),
 ('at-spi2-core',          GNOME_FTP_URL ('at-spi2-core', '([\d\.]+[02468])'), GNOME_FTP_URL ('at-spi2-core'), ['gnome']),
# ('audacious',             ('http://distfiles.audacious-media-player.org/', 'audacious-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('audacious-plugins',     ('http://distfiles.audacious-media-player.org/', 'audacious-plugins-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('audit',                 ('https://people.redhat.com/sgrubb/audit/', 'audit-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('autogen',               ('https://ftp.gnu.org/gnu/autogen/rel([0-9.]+)/', 'autogen-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('avahi',                 ('http://avahi.org/download/', 'avahi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('babeltrace',            ('https://www.efficios.com/files/babeltrace/', 'babeltrace-([\d\.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('babl',                  ('https://download.gimp.org/pub/babl/([0-9.]+)/', 'babl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('banshee',               GNOME_FTP_URL ('banshee'), None, ['gnome']),
 ('baobab',                GNOME_FTP_URL ('baobab', GNOME_STABLE_SERIES), GNOME_FTP_URL ('baobab'), ['gnome']),
 ('bash-completion',       ('http://bash-completion.alioth.debian.org/', 'bash-completion-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('bc',                    ('https://ftp.gnu.org/gnu/bc/', 'bc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('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']),
 ('bijiben',               GNOME_FTP_URL ('bijiben', '([\d\.]+[02468])'), GNOME_FTP_URL ('bijiben'), ['gnome']),
 ('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-]*)/'), []),
 ('binutils',              ('https://ftp.gnu.org/gnu/binutils/', 'binutils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('bison',                 ('https://ftp.gnu.org/gnu/bison/', 'bison-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('blinker',               PYPI_URL ('blinker'), None, []),
 ('bluez',                 ('https://www.kernel.org/pub/linux/bluetooth/', 'bluez-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('bogofilter',            SOURCEFORGE_URL ('bogofilter', 'bogofilter-stable', 'bogofilter-stable/bogofilter-([0-9][0-9.]+)'), None, []),
 ('boost1.62',             SOURCEFORGE_URL ('boost', 'boost/(1.62.[0-9.]+)', 'boost_(1_62_[0-9]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('boost1.65.1',           SOURCEFORGE_URL ('boost', 'boost/(1.65.[0-9.]+)', 'boost_(1_65_[0-9]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('branding-ubuntu',       UBUNTU, None, []),
 ('brasero',               GNOME_FTP_URL ('brasero', '([\d\.]+[02468])'), GNOME_FTP_URL ('brasero'), ['gnome']),
 ('brlaser',               GITHUB_URL ('pdewacht', 'brlaser', 'v([0-9][0-9.]*)'), None, []),
 ('brltty',                ('http://mielke.cc/brltty/download.html', 'brltty-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('bsdmainutils',          DEBIAN, None, []),
# ('bsh',                   ('http://www.beanshell.org/download.html', 'bsh-([0-9][0-9.b]*).jar'), None, []),
 ('bubblewrap',            GITHUB_URL ('projectatomic', 'bubblewrap', 'v([0-9][0-9.]*)'), None, []),
# ('build-essential',       DEBIAN, None, []),
 ('busybox',               ('https://busybox.net/downloads/', 'busybox-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('bzip2',                 ('http://bzip.org/downloads.html', 'bzip2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('bzr',                   LAUNCHPAD_URL ('bzr'), None, []),
 ('c2esp',                 SOURCEFORGE_URL ('cupsdriverkodak', '', 'c2esp([0-9]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('ca-certificates',       DEBIAN, None, []),
 ('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)+'), []),
 ('cairomm',               ('https://cairographics.org/releases/', 'cairomm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('california',            GNOME_FTP_URL ('california'), None, ['gnome']),
 ('capnproto',             ('https://capnproto.org/install.html', 'capnproto-c\+\+-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('c-ares',                ('http://c-ares.haxx.se/download/', 'c-ares-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('caribou',               GNOME_FTP_URL ('caribou'), None, ['gnome']),
# ('catfish',               ('http://www.twotoasts.de/media/catfish/', 'catfish-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('cdparanoia',            ('http://downloads.xiph.org/releases/cdparanoia/', 'cdparanoia-III-([0-9][0-9.]*).src.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('cdrdao',                SOURCEFORGE_URL ('cdrdao', 'cdrdao/([0-9]\.[0-9.]+)', 'cdrdao-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('cdrkit',                DEBIAN, None, []), # Website is down but Debian is upstream anyway
# ('cdrkit',                ('http://cdrkit.org/releases/', 'cdrkit-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('chardet',               PYPI_URL ('chardet'), None, []),
# ('checkbox',              UBUNTU, None, []),
# ('checkbox-ng',           LAUNCHPAD_URL ('checkbox-ng'), None, []),
# ('checkbox-support',      LAUNCHPAD_URL ('checkbox-support'), None, []),
 ('cheese',                GNOME_FTP_URL ('cheese', GNOME_STABLE_SERIES), GNOME_FTP_URL ('cheese'), ['gnome']),
 ('chromaprint',           ('https://bitbucket.org/acoustid/chromaprint/downloads/', 'chromaprint-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('chrome-gnome-shell',    GNOME_FTP_URL ('chrome-gnome-shell'), None, ['gnome']),
# ('cln',                   ('ftp://ftpthep.physik.uni-mainz.de/pub/gnu/', 'cln-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('cloog',                 ('http://www.bastoul.net/cloog/pages/download/', 'cloog-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('cloog-ppl',             ('http://www.bastoul.net/cloog/pages/download/', 'cloog-parma-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('clucene-core',          SOURCEFORGE_URL ('clucene', 'clucene-core-stable', 'clucene-core-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('clutter-1.0',           GNOME_FTP_URL ('clutter', '([\d\.]+[02468])'), GNOME_FTP_URL ('clutter'), ['gnome']),
 ('clutter-gst-3.0',       GNOME_FTP_URL ('clutter-gst', '([\d\.]+[02468])'), GNOME_FTP_URL ('clutter-gst'), ['gnome']),
 ('clutter-gtk',           GNOME_FTP_URL ('clutter-gtk', '([\d\.]+[02468])'), GNOME_FTP_URL ('clutter-gtk'), ['gnome']),
# ('cmocka',                ('https://cmocka.org/', 'cmocka ([0-9][0-9.]*)'), None, []),
 ('cogl',                  GNOME_FTP_URL ('cogl'), None, ['gnome']),
 ('colord',                ('https://freedesktop.org/software/colord/releases/', 'colord-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('colord-gtk',            ('https://freedesktop.org/software/colord/releases/', 'colord-gtk-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('command-not-found',     UBUNTU, None, []),
# ('configobj',             PYPI_URL ('configobj'), None, []),
 ('coreutils',             ('https://ftp.gnu.org/gnu/coreutils/', 'coreutils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('cpio',                  ('https://ftp.gnu.org/gnu/cpio/', 'cpio-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('cppunit',               LIBREOFFICE_URL ('cppunit'), None, []),
 ('cracklib2',             SOURCEFORGE_URL ('cracklib', 'cracklib/([0-9.]+)', 'cracklib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('crda',                  ('http://linuxwireless.org/download/crda/', 'crda-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('cups-filters',          ('http://www.openprinting.org/download/cups-filters/', 'cups-filters-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('cups',                  GITHUB_URL ('apple', 'cups', 'v([0-9][0-9.]*)'), None, []),
 ('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, []),
 ('curl',                  ('http://curl.haxx.se/download.html', 'curl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('cyrus-sasl2',           ('http://ftp.andrew.cmu.edu/pub/cyrus-mail/', 'cyrus-sasl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('dasher',                GNOME_FTP_URL ('dasher'), None, ['gnome']),
 ('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, []),
 ('dbus-glib',             ('https://dbus.freedesktop.org/releases/dbus-glib/', 'dbus-glib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('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)+'), []),
 ('dbus-python',           ('https://dbus.freedesktop.org/releases/dbus-python/', 'dbus-python-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
 ('d-conf',                GNOME_FTP_URL ('dconf', '([\d\.]+[02468])'), GNOME_FTP_URL ('dconf'), ['gnome']),
 ('dconf-editor',          GNOME_FTP_URL ('dconf-editor', GNOME_STABLE_SERIES), GNOME_FTP_URL ('dconf-editor'), ['gnome']),
 ('debconf',               DEBIAN, None, []),
 ('debianutils',           DEBIAN, None, []),
# ('debootstrap',           DEBIAN, None, []),
 ('dee',                   UBUNTU, None, []),
 ('deja-dup',              LAUNCHPAD_URL ('deja-dup'), None, []),
 ('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, []),
 ('devhelp',               GNOME_FTP_URL ('devhelp', GNOME_STABLE_SERIES), GNOME_FTP_URL ('devhelp'), ['gnome']),
 ('d-feet',                GNOME_FTP_URL ('d-feet'), None, ['gnome']),
 ('dia',                   GNOME_FTP_URL ('dia'), None, ['gnome']),
# ('dialer-app',            UBUNTU, None, []),
# ('dialog',                ('ftp://invisible-island.net/dialog/', 'dialog-([0-9][0-9.-]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('dictionaries-common',   DEBIAN, None, []),
 ('diffstat',              DEBIAN, None, []), # FIXME: No versioned releases
# ('dirac',                 ('http://diracvideo.org/download/dirac-research/', 'dirac-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('directfb',              ('http://www.directfb.org/download/DirectFB/', 'DirectFB-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('dirspec',               LAUNCHPAD_URL ('dirspec'), None, []),
 ('distro-info',           DEBIAN, None, []),
 ('dleyna-connector-dbus', ('https://01.org/dleyna/downloads', 'dleyna-connector-dbus-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('dleyna-core',           ('https://01.org/dleyna/downloads', 'dleyna-core-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('dleyna-renderer',       ('https://01.org/dleyna/downloads', 'dleyna-renderer-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('dleyna-server',         ('https://01.org/dleyna/downloads', 'dleyna-server-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('djvulibre',             SOURCEFORGE_URL ('djvu', 'DjVuLibre/([0-9.]+)', 'djvulibre-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('dmidecode',             ('http://download.savannah.gnu.org/releases/dmidecode/', 'dmidecode-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('dmz-cursor-theme',      DEBIAN, None, []), # As far as I can tell Debian is doing the versioning for this
 ('dnsmasq',               ('http://www.thekelleys.org.uk/dnsmasq/', 'dnsmasq-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('dns-root-data',         DEBIAN, None, []),
 ('doc-base',              DEBIAN, None, []),
# ('dogtail',               ('https://fedorahosted.org/released/dogtail/', 'dogtail-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('docbook2x',             SOURCEFORGE_URL ('docbook2x', 'docbook2x', 'docbook2X-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('dosfstools',            GITHUB_URL ('dosfstools', 'dosfstools', 'v([0-9][0-9.]*)'), None, []),
 ('dotconf',               PYPI_URL ('dotconf'), None, []),
# ('double-conversion',     GITHUB_URL ('google', 'double-conversion', 'v([0-9][0-9.]*)'), None, []),
 ('dpkg',                  DEBIAN, None, []),
# ('duplicity',             LAUNCHPAD_URL ('duplicity'), None, []),
 ('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, []),
 ('e2fsprogs',             SOURCEFORGE_URL ('e2fsprogs', 'e2fsprogs', 'e2fsprogs/v([0-9][0-9.]+)'), None, []),
 ('easytag',               GNOME_FTP_URL ('easytag', '([\d\.]+[02468])'), GNOME_FTP_URL ('easytag'), ['gnome']),
# ('ecryptfs-utils',        LAUNCHPAD_URL ('ecryptfs', 'ecryptfs-utils'), None, []),
 ('ed',                    ('https://ftp.gnu.org/gnu/ed/', 'ed-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('efibootmgr',            GITHUB_URL ('rhinstaller', 'efibootmgr', '([0-9][a-zA-Z0-9.]*)'), None, []),
 ('efivar',                GITHUB_URL ('rhinstaller', 'efivar', '([0-9][a-zA-Z0-9.]*)'), None, []),
# ('ekiga',                 GNOME_FTP_URL ('ekiga'), None, ['gnome']),
 ('elfutils',              ('https://sourceware.org/elfutils/ftp/([0-9.]+)/', '([0-9][0-9.]*)/'), None, []),
 ('emacsen-common',        DEBIAN, None, []),
 ('empathy',               GNOME_FTP_URL ('empathy'), None, ['gnome']),
 ('enca',                  ('http://dl.cihar.com/enca/', 'enca-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('enchant',               ('http://www.abisource.com/downloads/enchant/1.6.0/', 'enchant-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('enum34',                PYPI_URL ('enum34'), None, []),
 ('eog',                   GNOME_FTP_URL ('eog', GNOME_STABLE_SERIES), GNOME_FTP_URL ('eog'), ['gnome']),
 ('eog-plugins',           GNOME_FTP_URL ('eog-plugins', '([\d\.]+[02468])'), GNOME_FTP_URL ('eog-plugins'), ['gnome']),
 ('epiphany-browser',      GNOME_FTP_URL ('epiphany', GNOME_STABLE_SERIES), GNOME_FTP_URL ('epiphany'), ['gnome']),
 ('esound',                GNOME_FTP_URL ('esound'), None, ['gnome']),
 ('espeak-ng',             GITHUB_URL ('espeak-ng', 'espeak-ng', '([0-9][0-9.]*)'), None, []),
# ('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, []),
# ('ethtool',               ('https://www.kernel.org/pub/software/network/ethtool/', 'ethtool-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('evince',                GNOME_FTP_URL ('evince', GNOME_STABLE_SERIES), GNOME_FTP_URL ('evince'), ['gnome']),
 ('evolution-data-server', GNOME_FTP_URL ('evolution-data-server', GNOME_STABLE_SERIES), GNOME_FTP_URL ('evolution-data-server'), ['gnome']),
 ('evolution',             GNOME_FTP_URL ('evolution', GNOME_STABLE_SERIES), GNOME_FTP_URL ('evolution'), ['gnome']),
 ('evolution-ews',         GNOME_FTP_URL ('evolution-ews', GNOME_STABLE_SERIES), GNOME_FTP_URL ('evolution-ews'), ['gnome']),
 ('example-content',       UBUNTU, None, []),
 ('exempi',                ('https://libopenraw.freedesktop.org/download/', 'exempi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('exfat-utils',           GITHUB_URL ('relan', 'exfat', 'v([0-9][0-9.]*)'), None, []),
 ('exiv2',                 ('http://www.exiv2.org/download.html', 'exiv2-([0-9][0-9.]*)-linux.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('expat',                 SOURCEFORGE_URL ('expat', 'expat/([0-9.]+)', 'expat-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('faad2',                 SOURCEFORGE_URL ('faac', 'faad2-src/faad2-([0-9.]+)', 'faad2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('fakechroot',            GITHUB_URL ('dex4er', 'fakechroot', '([0-9][a-zA-Z0-9.]*)'), None, []),
# ('fakeroot',              DEBIAN, None, []),
# ('feedparser',            GITHUB_URL ('kurtmckee', 'feedparser', 'v([0-9][0-9.]*)'), None, []),
 ('farstream-0.2',         ('https://freedesktop.org/software/farstream/releases/farstream/', 'farstream-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['ubuntu-touch']),
 ('fcitx',                 GITHUB_URL ('fcitx', 'fcitx', '([0-9][0-9.]*)'), None, []),
# ('fcitx-configtool',      ('http://download.fcitx-im.org/fcitx-configtool/', 'fcitx-configtool-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('fcitx-qt5',             ('http://download.fcitx-im.org/fcitx-qt5/', 'fcitx-qt5-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('ffmpeg',                ('https://ffmpeg.org/releases/', 'ffmpeg-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('fftw3',                 ('http://www.fftw.org/download.html', 'fftw-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('file-roller',           GNOME_FTP_URL ('file-roller', GNOME_STABLE_SERIES), GNOME_FTP_URL ('file-roller'), ['gnome']),
# ('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)+'), []),
 ('firefox',               ('https://www.mozilla.org/firefox/new/', 'product=firefox-([0-9][0-9.]*)'), None, []),
 ('five-or-more',          GNOME_FTP_URL ('five-or-more', GNOME_STABLE_SERIES), GNOME_FTP_URL ('five-or-more'), ['gnome']),
 ('flac',                  SOURCEFORGE_URL ('flac', 'flac-src/flac-([0-9.]+)-src', 'flac-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('flatpak',               GITHUB_URL ('flatpak', 'flatpak', '([0-9][0-9.]*)'), None, []),
# ('flex',                  SOURCEFORGE_URL ('flex', '', 'flex-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('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, []),
# ('fluidsynth',            SOURCEFORGE_URL ('fluidsynth', 'fluidsynth-([0-9.]+)', 'fluidsynth-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('folks',                 GNOME_FTP_URL ('folks'), None, ['gnome']),
 ('fontconfig',            ('http://fontconfig.org/release/', 'fontconfig-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('fonts-android',         DEBIAN, None, []), # can't find upstream
 ('fonts-beng',            DEBIAN, None, []),
 ('fonts-cantarell',       GNOME_FTP_URL ('cantarell-fonts'), None, ['gnome']),
 ('fonts-dejavu',          ('https://dejavu-fonts.github.io/Download.html', 'dejavu-fonts-ttf-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('fonts-deva',            DEBIAN, None, []),
 ('fonts-freefont',        DEBIAN, None, []),
 ('fonts-gujr',            DEBIAN, None, []),
 ('fonts-guru',            DEBIAN, None, []),
 ('fonts-guru-extra',      DEBIAN, None, []),
 ('fonts-indic',           DEBIAN, None, []),
 ('fonts-kacst',           DEBIAN, None, []), # can't find upstream
 ('fonts-kacst-one',       DEBIAN, None, []), # can't find upstream
 ('fonts-khmeros',         DEBIAN, None, []), # can't find upstream
 ('fonts-knda',            DEBIAN, None, []),
 ('fonts-lao',             DEBIAN, None, []), # can't find upstream
 ('fonts-liberation',      ('https://releases.pagure.org/liberation-fonts/', 'liberation-fonts-(1[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('fonts-lohit-beng-assamese', ('https://releases.pagure.org/lohit/', 'lohit-assamese-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('fonts-lohit-beng-bengali',      ('https://releases.pagure.org/lohit/', 'lohit-bengali-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('fonts-lohit-deva',      ('https://releases.pagure.org/lohit/', 'lohit-devanagari-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('fonts-lohit-gujr',      ('https://releases.pagure.org/lohit/', 'lohit-gujarati-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('fonts-lohit-guru',      ('https://releases.pagure.org/lohit/', 'lohit-punjabi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('fonts-lohit-knda',      ('https://releases.pagure.org/lohit/', 'lohit-kannada-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('fonts-lohit-mlym',      ('https://releases.pagure.org/lohit/', 'lohit-malayalam-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('fonts-lohit-orya',      ('https://releases.pagure.org/lohit/', 'lohit-odia-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('fonts-lohit-taml',      ('https://releases.pagure.org/lohit/', 'lohit-tamil-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('fonts-lohit-taml-classical', ('https://releases.pagure.org/lohit/', 'lohit-tamil-classical-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('fonts-lohit-telu',      ('https://releases.pagure.org/lohit/', 'lohit-telugu-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('fonts-lklug-sinhala',   DEBIAN, None, []),
 ('fonts-mlym',            DEBIAN, None, []),
 ('fonts-nanum',           DEBIAN, None, []), # can't find upstream
 ('fonts-noto',            GITHUB_URL ('googlei18n', 'noto-fonts', 'v([0-9][0-9.-]*[0-9])'), None, []),
 ('fonts-noto-cjk',        GITHUB_URL ('googlei18n', 'noto-cjk', 'v([0-9][0-9.]*).zip'), None, []),
 ('fonts-orya',            DEBIAN, None, []),
 ('fonts-sil-abyssinica',  DEBIAN, None, []),
 ('fonts-sil-padauk',      DEBIAN, None, []), # can't find upstream
# ('fonts-stix',            SOURCEFORGE_URL ('stixfonts', '', 'STIXv([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('fonts-takao',           DEBIAN, None, []), # can't find upstream
 ('fonts-taml',            DEBIAN, None, []),
 ('fonts-telu',            DEBIAN, None, []),
 ('fonts-tibetan-machine', DEBIAN, None, []),
 ('fonts-tlwg',            DEBIAN, None, []), # can't find upstream
 ('fonts-wqy-microhei',    SOURCEFORGE_URL ('wqy', 'wqy-microhei', 'wqy-microhei/([0-9][0-9a-zA-Z.-]+)'), None, []),
 ('foo2zjs',               DEBIAN, None, []),
# ('foomatic-db-engine',    ('http://www.openprinting.org/download/foomatic/', 'foomatic-db-engine-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('foomatic-db',           ('http://www.openprinting.org/download/foomatic/', 'foomatic-db-4.0-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('foomatic-filters',      ('http://www.openprinting.org/download/foomatic/', 'foomatic-filters-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('four-in-a-row',         GNOME_FTP_URL ('four-in-a-row'), None, ['gnome']),
# ('frame',                 LAUNCHPAD_URL ('frame'), None, []),
 ('freerdp',               GITHUB_URL ('FreeRDP', 'FreeRDP', '([0-9][0-9.]*)'), None, []),
# ('freerdp2',              ('https://github.com/FreeRDP/FreeRDP/downloads', 'freerdp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('freetype',              SOURCEFORGE_URL ('freetype', 'freetype2/([0-9.]+)', 'freetype-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('friendly-recovery',     UBUNTU, None, []),
 ('frogr',                 GNOME_FTP_URL ('frogr'), None, ['gnome']),
# ('f-spot',                GNOME_FTP_URL ('f-spot'), None, ['gnome']),
 ('fuse',                  ('https://github.com/libfuse/libfuse/releases', 'fuse-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('fuse-exfat',            ('https://github.com/relan/exfat/releases', 'fuse-exfat-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('fwupd',                 GITHUB_URL ('hughsie', 'fwupd', '([0-9][0-9.]*)'), None, []),
 ('fwupdate',              GITHUB_URL ('rhinstaller', 'fwupdate', '([0-9][0-9.]*)'), None, []),
 ('fwupdate-signed',       UBUNTU, None, []),
 ('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, []),
 ('gcab',                  GNOME_FTP_URL ('gcab'), None, ['gnome']),
# ('gcc-6',                 ('https://ftp.gnu.org/gnu/gcc/gcc-(6.[0-9.]+)/', 'gcc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('gcc-7',                 ('https://ftp.gnu.org/gnu/gcc/gcc-(7.[0-9.]+)/', 'gcc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('gcc-defaults',          DEBIAN, None, []),
 ('gconf',                 GNOME_FTP_URL ('GConf'), None, ['gnome']),
# ('gconfmm2.6',            GNOME_FTP_URL ('gconfmm'), None, ['gnome']),
 ('gcr',                   GNOME_FTP_URL ('gcr', '([\d\.]+[02468])'), GNOME_FTP_URL ('gcr'), ['gnome']),
 ('gdb',                   ('https://ftp.gnu.org/gnu/gdb/', 'gdb-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('gdbm',                  ('https://ftp.gnu.org/gnu/gdbm/', 'gdbm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('gdebi',                 DEBIAN, None, []),
 ('gdisk',                 SOURCEFORGE_URL ('gptfdisk', 'gptfdisk/([0-9.]+)', 'gptfdisk-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('gdk-pixbuf',            GNOME_FTP_URL ('gdk-pixbuf', '([\d\.]+[02468])'), GNOME_FTP_URL ('gdk-pixbuf'), ['gnome']),
# ('gdl',                   GNOME_FTP_URL ('gdl'), None, ['gnome']),
 ('gdm3',                  GNOME_FTP_URL ('gdm', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gdm'), ['gnome']),
# ('gdome2',                ('http://gdome2.cs.unibo.it/tarball', 'gdome2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('geary',                 GNOME_FTP_URL ('geary'), None, ['gnome']),
 ('gedit',                 GNOME_FTP_URL ('gedit', '3.22'), GNOME_FTP_URL ('gedit'), ['gnome']),
 ('gedit-plugins',         GNOME_FTP_URL ('gedit-plugins', '3.22'), GNOME_FTP_URL ('gedit-plugins'), ['gnome']),
 ('gegl',                  ('https://download.gimp.org/pub/gegl/([0-9.]+)/', 'gegl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
 ('genius',                GNOME_FTP_URL ('genius'), None, ['gnome']),
# ('geoclue',               ('https://freedesktop.org/software/geoclue/releases/(1.[0-9.])', 'geoclue-(1.[0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('geoclue-2.0',           ('https://freedesktop.org/software/geoclue/releases/([0-9.]*)', 'geoclue-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
 ('geocode-glib',          GNOME_FTP_URL ('geocode-glib'), GNOME_FTP_URL ('geocode-glib'), ['gnome']),
 ('geoip-database',        DEBIAN, None, []),
 ('geoip',                 ('https://github.com/maxmind/geoip-api-c/releases', 'tag/v([0-9][0-9.]*)'), None, []),
 ('geonames',              UBUNTU, None, []),
 ('gettext',               ('https://ftp.gnu.org/gnu/gettext/', 'gettext-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('gexiv2',                GNOME_FTP_URL ('gexiv2'), None, ['gnome']),
# ('gflags',                ('https://github.com/gflags/gflags/releases', 'archive/v([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('ghex',                  GNOME_FTP_URL ('ghex', '([\d\.]+[02468])'), GNOME_FTP_URL ('ghex'), ['gnome']),
 ('gfbgraph',              GNOME_FTP_URL ('gfbgraph'), None, ['gnome']),
 ('ghostscript',           SOURCEFORGE_URL ('ghostscript', 'GPL%20Ghostscript/([0-9.]+)', 'ghostscript-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('giblib',                ('http://linuxbrit.co.uk/downloads/', 'giblib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('giflib',                SOURCEFORGE_URL ('giflib', 'giflib-4.x/giflib-([0-9.]+)', 'giflib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('gigolo',                ('http://www.uvena.de/gigolo/download.html', 'gigolo-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('gimp',                  ('https://download.gimp.org/pub/gimp/stable', 'gimp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ('https://ftp.gtk.org/pub/gimp/v2.9', 'gimp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), ['gnome']),
# ('girl',                  GNOME_FTP_URL ('girl'), None, ['gnome']),
 ('gitg',                  GNOME_FTP_URL ('gitg', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gitg'), ['gnome']),
 ('gjs',                   GNOME_FTP_URL ('gjs', '([\d\.]+[02468])'), GNOME_FTP_URL ('gjs'), ['gnome']),
# ('gksu',                  ('http://people.debian.org/~kov/gksu/', '"gksu-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('glade',                 GNOME_FTP_URL ('glade', '([\d\.]+[02468])'), None, ['gnome']),
# ('glew',                  SOURCEFORGE_URL ('glew', 'glew/([0-9.]+)', 'glew-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('glib2.0',               GNOME_FTP_URL ('glib'), None, ['gnome']),
 ('glibc',                 ('https://ftp.gnu.org/gnu/glibc/', 'glibc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('glibmm2.4',             GNOME_FTP_URL ('glibmm'), None, ['gnome']),
 ('glib-networking',       GNOME_FTP_URL ('glib-networking'), None, ['gnome']),
 ('glom',                  GNOME_FTP_URL ('glom', '([\d\.]+[02468])'), GNOME_FTP_URL ('glom'), ['gnome']),
# ('gmetadom',              SOURCEFORGE_URL ('gmetadom', 'gmetadom/([0-9.]+)', 'gmetadom-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('gmime',                 GNOME_FTP_URL ('gmime'), None, ['gnome']),
 ('gmp',                  ('https://gmplib.org/', 'gmp-([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('gmusicbrowser',         ('http://gmusicbrowser.org/download/', 'gmusicbrowser-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('gnome-2048',            GNOME_FTP_URL ('gnome-2048', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-2048'), ['gnome']),
 ('gnome-applets',         GNOME_FTP_URL ('gnome-applets'), None, ['gnome']),
# ('gnome-audio',           GNOME_FTP_URL ('gnome-audio'), None, ['gnome']),
 ('gnome-autoar',          GNOME_FTP_URL ('gnome-autoar', '([\d\.]+[02468])'), GNOME_FTP_URL ('gnome-autoar'), ['gnome']),
 ('gnome-backgrounds',     GNOME_FTP_URL ('gnome-backgrounds', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-backgrounds'), ['gnome']),
 ('gnome-bluetooth',       GNOME_FTP_URL ('gnome-bluetooth', '([\d\.]+[02468])'), GNOME_FTP_URL ('gnome-bluetooth'), ['gnome']),
 ('gnome-boxes',           GNOME_FTP_URL ('gnome-boxes', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-boxes'), ['gnome']),
 ('gnome-builder',         GNOME_FTP_URL ('gnome-builder', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-builder'), ['gnome']),
 ('gnome-calculator',      GNOME_FTP_URL ('gnome-calculator', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-calculator'), ['gnome']),
 ('gnome-calendar',        GNOME_FTP_URL ('gnome-calendar', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-calendar'), ['gnome']),
 ('gnome-characters',      GNOME_FTP_URL ('gnome-characters', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-characters'), ['gnome']),
 ('gnome-chess',           GNOME_FTP_URL ('gnome-chess', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-chess'), ['gnome']),
 ('gnome-clocks',          GNOME_FTP_URL ('gnome-clocks', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-clocks'), ['gnome']),
 ('gnome-color-manager',   GNOME_FTP_URL ('gnome-color-manager', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-color-manager'), ['gnome']),
 ('gnome-common',          GNOME_FTP_URL ('gnome-common'), None, ['gnome']),
 ('gnome-commander',       GNOME_FTP_URL ('gnome-commander'), None, ['gnome']),
 ('gnome-contacts',        GNOME_FTP_URL ('gnome-contacts', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-contacts'), ['gnome']),
 ('gnome-control-center',  GNOME_FTP_URL ('gnome-control-center', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-control-center'), ['gnome']),
 ('gnome-desktop3',        GNOME_FTP_URL ('gnome-desktop', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-desktop'), ['gnome']),
 ('gnome-desktop-testing', GNOME_FTP_URL ('gnome-desktop-testing'), None, ['gnome']),
 ('gnome-devel-docs',      GNOME_FTP_URL ('gnome-devel-docs', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-devel-docs'), ['gnome']),
 ('gnome-dictionary',      GNOME_FTP_URL ('gnome-dictionary', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-dictionary'), ['gnome']),
 ('gnome-disk-utility',    GNOME_FTP_URL ('gnome-disk-utility', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-disk-utility'), ['gnome']),
 ('gnome-documents',       GNOME_FTP_URL ('gnome-documents', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-documents'), ['gnome']),
# ('gnome-doc-utils',       GNOME_FTP_URL ('gnome-doc-utils'), None, ['gnome']),
 ('gnome-font-viewer',     GNOME_FTP_URL ('gnome-font-viewer', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-font-viewer'), ['gnome']),
 ('gnome-games-app',       GNOME_FTP_URL ('gnome-games', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-games'), ['gnome']),
 ('gnome-getting-started-docs', GNOME_FTP_URL ('gnome-getting-started-docs', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-getting-started-docs'), ['gnome']),
 ('gnome-icon-theme-extras', GNOME_FTP_URL ('gnome-icon-theme-extras'), None, ['gnome']),
 ('gnome-icon-theme',      GNOME_FTP_URL ('gnome-icon-theme'), None, ['gnome']),
 ('gnome-icon-theme-symbolic', GNOME_FTP_URL ('gnome-icon-theme-symbolic'), None, ['gnome']),
 ('gnome-initial-setup',   GNOME_FTP_URL ('gnome-initial-setup', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-initial-setup'), ['gnome']),
# ('gnome-js-common',       GNOME_FTP_URL ('gnome-js-common'), None, ['gnome']),
 ('gnome-keyring',         GNOME_FTP_URL ('gnome-keyring', '([\d\.]+[02468])'), GNOME_FTP_URL ('gnome-keyring'), ['gnome']),
 ('gnome-klotski',         GNOME_FTP_URL ('gnome-klotski', '3.22'), GNOME_FTP_URL ('gnome-klotski'), ['gnome']),
 ('gnome-logs',            GNOME_FTP_URL ('gnome-logs', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-logs'), ['gnome']),
 ('gnome-mahjongg',        GNOME_FTP_URL ('gnome-mahjongg', '3.22'), GNOME_FTP_URL ('gnome-mahjongg'), ['gnome']),
 ('gnome-maps',            GNOME_FTP_URL ('gnome-maps', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-maps'), ['gnome']),
# ('gnome-media',           GNOME_FTP_URL ('gnome-media'), None, ['gnome']),
 ('gnome-menus',           GNOME_FTP_URL ('gnome-menus'), None, ['gnome']),
# ('gnome-mime-data',       GNOME_FTP_URL ('gnome-mime-data'), None, ['gnome']),
 ('gnome-mines',           GNOME_FTP_URL ('gnome-mines', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-mines'), ['gnome']),
 ('gnome-multi-writer',    GNOME_FTP_URL ('gnome-multi-writer', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-multi-writer'), ['gnome']),
 ('gnome-music',           GNOME_FTP_URL ('gnome-music', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-music'), ['gnome']),
# ('gnome-nettool',         GNOME_FTP_URL ('gnome-nettool'), None, ['gnome']),
 ('gnome-nibbles',         GNOME_FTP_URL ('gnome-nibbles'), None, ['gnome']),
 ('gnome-online-accounts', GNOME_FTP_URL ('gnome-online-accounts', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-online-accounts'), ['gnome']),
 ('gnome-online-miners',   GNOME_FTP_URL ('gnome-online-miners', '([\d\.]+[02468])'), GNOME_FTP_URL ('gnome-online-miners'), ['gnome']),
 ('gnome-orca',            GNOME_FTP_URL ('orca', GNOME_STABLE_SERIES), GNOME_FTP_URL ('orca'), ['gnome']),
 ('gnome-packagekit',      GNOME_FTP_URL ('gnome-packagekit', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-packagekit'), ['gnome']),
 ('gnome-panel',           GNOME_FTP_URL ('gnome-panel'), None, ['gnome']),
 ('gnome-photos',          GNOME_FTP_URL ('gnome-photos', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-photos'), ['gnome']),
 ('gnome-power-manager',   GNOME_FTP_URL ('gnome-power-manager'), None, ['gnome']),
 ('gnome-python',          GNOME_FTP_URL ('gnome-python'), None, ['gnome', 'python']),
 ('gnome-recipes',         GNOME_FTP_URL ('gnome-recipes', '([\d\.]+[02468])'), GNOME_FTP_URL ('gnome-recipes'), ['gnome']),
 ('gnome-robots',          GNOME_FTP_URL ('gnome-robots', '3.22'), GNOME_FTP_URL ('gnome-robots'), ['gnome']),
 ('gnome-screensaver',     GNOME_FTP_URL ('gnome-screensaver', '([\d\.]+[02468])'), GNOME_FTP_URL ('gnome-screensaver'), ['gnome']),
 ('gnome-screenshot',      GNOME_FTP_URL ('gnome-screenshot'), None, ['gnome']),
# ('gnome-search-tool',     GNOME_FTP_URL ('gnome-search-tool'), GNOME_FTP_URL ('gnome-search-tool'), ['gnome']),
 ('gnome-session',         GNOME_FTP_URL ('gnome-session', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-session'), ['gnome']),
 ('gnome-settings-daemon', GNOME_FTP_URL ('gnome-settings-daemon', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-settings-daemon'), ['gnome']),
# ('gnome-sharp2',          GNOME_FTP_URL ('gnome-sharp'), None, ['gnome']),
 ('gnome-shell',           GNOME_FTP_URL ('gnome-shell', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-shell'), ['gnome']),
 ('gnome-shell-extensions', GNOME_FTP_URL ('gnome-shell-extensions', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-shell-extensions'), ['gnome']),
 ('gnome-shell-extension-appindicator', UBUNTU, None, []),
 ('gnome-shell-extension-ubuntu-dock', UBUNTU, None, []),
 ('gnome-software',        GNOME_FTP_URL ('gnome-software', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-software'), ['gnome']),
 ('gnome-sound-recorder',  GNOME_FTP_URL ('gnome-sound-recorder', '([\d\.]+[02468])'), GNOME_FTP_URL ('gnome-sound-recorder'), ['gnome']),
# ('gnome-speech',          GNOME_FTP_URL ('gnome-speech'), None, ['gnome']),
 ('gnome-sudoku',          GNOME_FTP_URL ('gnome-sudoku', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-sudoku'), ['gnome']),
 ('gnome-sushi',           GNOME_FTP_URL ('sushi'), None, ['gnome']),
 ('gnome-system-log',      GNOME_FTP_URL ('gnome-system-log'), None, ['gnome']),
 ('gnome-system-monitor',  GNOME_FTP_URL ('gnome-system-monitor', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-system-monitor'), ['gnome']),
# ('gnome-system-tools',    GNOME_FTP_URL ('gnome-system-tools'), None, ['gnome']),
 ('gnome-taquin',          GNOME_FTP_URL ('gnome-taquin', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-taquin'), ['gnome']),
 ('gnome-terminal',        GNOME_FTP_URL ('gnome-terminal', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-terminal'), ['gnome']),
 ('gnome-tetravex',        GNOME_FTP_URL ('gnome-tetravex', '3.22'), GNOME_FTP_URL ('gnome-tetravex'), ['gnome']),
 ('gnome-themes-standard', GNOME_FTP_URL ('gnome-themes-standard', '3.22'), GNOME_FTP_URL ('gnome-themes-standard'), ['gnome']),
 ('gnome-tweak-tool',      GNOME_FTP_URL ('gnome-tweak-tool', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-tweak-tool'), ['gnome']),
 ('gnome-user-docs',       GNOME_FTP_URL ('gnome-user-docs', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-user-docs'), ['gnome']),
 ('gnome-user-share',      GNOME_FTP_URL ('gnome-user-share', '3.18'), GNOME_FTP_URL ('gnome-user-share'), ['gnome']),
 ('gnome-vfs',             GNOME_FTP_URL ('gnome-vfs'), None, ['gnome']),
# ('gnome-vfsmm2.6',        GNOME_FTP_URL ('gnome-vfsmm'), None, ['gnome']),
 ('gnome-video-effects',   GNOME_FTP_URL ('gnome-video-effects'), None, ['gnome']),
 ('gnome-weather',         GNOME_FTP_URL ('gnome-weather', '([\d\.]+[02468])'), GNOME_FTP_URL ('gnome-weather'), ['gnome']),
# ('gnote',                 GNOME_FTP_URL ('gnote'), None, ['gnome']),
# ('gnuchess',              ('https://ftp.gnu.org/gnu/chess/', 'gnuchess-([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('gnuchess-book',         ('https://ftp.gnu.org/gnu/chess/', 'book_([0-9][0-9a-zA-Z.]*).pgn.gz'), None, []),
 ('gnumeric',              GNOME_FTP_URL ('gnumeric'), None, ['gnome']),
 ('gnupg2',                ('https://gnupg.org/ftp/gcrypt/gnupg/', 'gnupg-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('gnupginterface',        SOURCEFORGE_URL ('py-gnupg', 'GnuPGInterface/([0-9.]+)', 'GnuPGInterface-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('gnutls28',              ('https://gnupg.org/ftp/gcrypt/gnutls/v3.(\d+)', 'gnutls-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('gobject-introspection', GNOME_FTP_URL ('gobject-introspection'), None, ['gnome']),
 ('goffice',               GNOME_FTP_URL ('goffice'), None, ['gnome']),
# ('goocanvas-2.0',         GNOME_FTP_URL ('goocanvas'), None, ['gnome']),
# ('goocanvasmm-2.0',       GNOME_FTP_URL ('goocanvasmm'), None, ['gnome']),
# ('google-glog',           ('https://github.com/google/glog/releases', 'archive/v([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('golang-1.7',            ('https://golang.org/dl/', 'go(1.7.[0-9][0-9.]*).src.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('gom',                   GNOME_FTP_URL ('gom'), None, ['gnome']),
 ('gpgme1.0',              ('https://gnupg.org/ftp/gcrypt/gpgme/', 'gpgme-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('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, []),
 ('gpm',                   ('http://www.nico.schottelius.org/software/gpm/archives/', 'gpm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('gpsd',                  ('http://download-mirror.savannah.gnu.org/releases/gpsd/', 'gpsd-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+') , None, []),
# ('grail',                 LAUNCHPAD_URL ('grail'), None, []),
# ('grantlee',              ('http://downloads.grantlee.org/', 'grantlee-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('graphene',              ('https://github.com/ebassi/graphene/releases', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('graphite2',             GITHUB_URL ('silnrsi', 'graphite', '([0-9][0-9.]*)'), None, []),
 ('grilo',                 GNOME_FTP_URL ('grilo'), None, ['gnome']),
 ('grilo-plugins',         GNOME_FTP_URL ('grilo-plugins'), None, ['gnome']),
 ('groff',                 ('https://ftp.gnu.org/gnu/groff/', 'groff-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('grub2',                 ('https://ftp.gnu.org/gnu/grub/', 'grub-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('grub-gfxpayload-lists', UBUNTU, None, []),
 ('gsettings-desktop-schemas', GNOME_FTP_URL ('gsettings-desktop-schemas', '3.24'), GNOME_FTP_URL ('gsettings-desktop-schemas'), ['gnome']),
 ('gsettings-ubuntu-touch-schemas', UBUNTU, None, []),
 ('gsfonts',               SOURCEFORGE_URL ('gs-fonts', 'gs-fonts', 'ghostscript-fonts-std-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('gsl',                   ('https://ftp.gnu.org/gnu/gsl/', 'gsl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('gsound',                GNOME_FTP_URL ('gsound'), None, ['gnome']),
 ('gspell',                GNOME_FTP_URL ('gspell'), None, ['gnome']),
 ('gssdp',                 GNOME_FTP_URL ('gssdp'), None, ['gnome']),
# ('gst-plugins-bad1.0',    GSTREAMER_URL ('gst-plugins-bad', GST_STABLE+SERIES), GSTREAMER_URL ('gst-plugins-bad'), []),
 ('gst-plugins-base1.0',   GSTREAMER_URL ('gst-plugins-base', GST_STABLE_SERIES), GSTREAMER_URL ('gst-plugins-base'), []),
 ('gst-plugins-good1.0',   GSTREAMER_URL ('gst-plugins-good', GST_STABLE_SERIES), GSTREAMER_URL ('gst-plugins-good'), []),
 ('gstreamer1.0',          GSTREAMER_URL ('gstreamer', GST_STABLE_SERIES), GSTREAMER_URL ('gstreamer'), []),
# ('gstreamermm',           GNOME_FTP_URL ('gstreamermm'), None, ['gnome']),
# ('gtetrinet',             GNOME_FTP_URL ('gtetrinet'), None, ['gnome']),
# ('googletest',            GITHUB_URL ('google', 'googletest', 'release-([0-9][0-9.]*)'), None, []),
 ('gthumb',                GNOME_FTP_URL ('gthumb'), None, ['gnome']),
# ('gtk2-engines',          GNOME_FTP_URL ('gtk-engines', '2.20'), None, ['gnome']),
 ('gtk2-engines-murrine',  GNOME_FTP_URL ('murrine'), None, ['gnome']),
 ('gtk+2.0',               GNOME_FTP_URL ('gtk+', '2.24'), None, ['gnome']),
 ('gtk+3.0',               GNOME_FTP_URL ('gtk+', '3.22'), None, ['gnome']),
 ('gtk+4.0',               GNOME_FTP_URL ('gtk+'), None, ['gnome']),
# ('gtk-doc',               GNOME_FTP_URL ('gtk-doc'), None, ['gnome']),
# ('gtkmathview',           ('http://helm.cs.unibo.it/mml-widget/sources/', 'gtkmathview-([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('gtkmm3.0',              GNOME_FTP_URL ('gtkmm', '3.22'), None, ['gnome']),
 ('gtkmm4.0',              GNOME_FTP_URL ('gtkmm'), None, ['gnome']),
 ('gtk-sharp2',            GNOME_FTP_URL ('gtk-sharp'), None, ['gnome']),
 ('gtksourceview3',        GNOME_FTP_URL ('gtksourceview', '(3.2[0-9]+)'), None, ['gnome']),
 ('gtksourceview4',        GNOME_FTP_URL ('gtksourceview'), None, ['gnome']),
# ('gtkspell3',             SOURCEFORGE_URL ('gtkspell', '', 'gtkspell3-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('gtk-vnc',               GNOME_FTP_URL ('gtk-vnc'), None, ['gnome']),
# ('gtranslator',           GNOME_FTP_URL ('gtranslator'), None, ['gnome']),
 ('gucharmap',             GNOME_FTP_URL ('gucharmap'), None, ['gnome']),
# ('guile-1.8',             ('https://ftp.gnu.org/gnu/guile/', 'guile-(1.8.[0-9]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('guile-2.0',             ('https://ftp.gnu.org/gnu/guile/', 'guile-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('gupnp',                 GNOME_FTP_URL ('gupnp'), None, ['gnome']),
 ('gupnp-av',              GNOME_FTP_URL ('gupnp-av'), None, ['gnome']),
 ('gupnp-dlna',            GNOME_FTP_URL ('gupnp-dlna'), None, ['gnome']),
 ('gupnp-igd',             GNOME_FTP_URL ('gupnp-igd'), None, ['gnome']),
 ('gutenprint',            SOURCEFORGE_URL ('gimp-print', 'gutenprint-([0-9.]+)', 'gutenprint-([0-9][0-9.]*(-pre[0-9])?).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('guvcview',              SOURCEFORGE_URL ('guvcview', 'source', 'guvcview-src-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('gvfs',                  GNOME_FTP_URL ('gvfs', '([\d\.]+[02468])'), GNOME_FTP_URL ('gvfs'), ['gnome']),
# ('hamster-applet',        GNOME_FTP_URL ('hamster-applet'), None, ['gnome']),
# ('hardinfo',              ('http://developer.berlios.de/project/showfiles.php?group_id=5897', 'hardinfo-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('harfbuzz',              ('https://freedesktop.org/software/harfbuzz/release/', 'harfbuzz-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('hdparm',                SOURCEFORGE_URL ('hdparm', 'hdparm', 'hdparm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('heimdal',               ('http://www.h5l.org/dist/src/', 'heimdal-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('hicolor-icon-theme',    ('https://icon-theme.freedesktop.org/releases/', 'hicolor-icon-theme-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('hitori',                GNOME_FTP_URL ('hitori', '3.22'), GNOME_FTP_URL ('hitori'), ['gnome']),
 ('hplip',                 SOURCEFORGE_URL ('hplip', 'hplip/([0-9.]+)', 'hplip-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('hspell',                 ('http://hspell.ivrix.org.il/download.html', 'hspell-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('heimdal',               ('http://www.h5l.org/dist/src/', 'heimdal-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('html5lib',              ('https://github.com/html5lib/html5lib-python/releases', 'archive/([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
 ('humanity-icon-theme',   UBUNTU, None, []),
 ('hunspell',              SOURCEFORGE_URL ('hunspell', 'Hunspell/([0-9.]+)', 'hunspell-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('hunspell-ar',           DEBIAN, None, []),
# ('hunspell-ca',           ('https://github.com/Softcatala/catalan-dict-tools/releases', 'ca.([0-9][0-9.]*)-hunspell.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('hunspell-en-us',        DEBIAN, None, []),
# ('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, []),
# ('hwdata',                ('https://fedorahosted.org/releases/h/w/hwdata/', 'hwdata-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('hyphen',                SOURCEFORGE_URL ('hunspell', 'Hyphen/([0-9.]+)', 'hyphen-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('iagno',                 GNOME_FTP_URL ('iagno', GNOME_STABLE_SERIES), GNOME_FTP_URL ('iagno'), ['gnome']),
 ('ibus',                  GITHUB_URL ('ibus', 'ibus', '([0-9][0-9.]*)'), None, []),
 ('ibus-table',            GITHUB_URL ('kaio', 'ibus-table', '([0-9][0-9.]*)'), None, []),
 ('icu',                   ('http://download.icu-project.org/files/icu4c/([0-9.]+)/', 'icu4c-([0-9][0-9_]*)-src.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('iio-sensor-proxy',      GITHUB_URL ('hadess', 'iio-sensor-proxy', '([0-9][0-9.]*)'), None, []),
# ('igaelic',               DEBIAN, None, []),
# ('igerman98',             ('http://www.j3e.de/ispell/igerman98/dict/', 'igerman98-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('ido-gtk2',              LAUNCHPAD_URL ('indicators-gtk2', 'ido'), None, []),
# ('ifupdown',              DEBIAN, None, []),
 ('ilmbase',               ('http://www.openexr.com/downloads.html', 'ilmbase-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('isl',                   ('http://isl.gforge.inria.fr/', 'isl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('ijs',                   ('http://www.openprinting.org/download/ijs/download/', 'ijs-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('imagemagick',           ('https://www.imagemagick.org/download/', 'ImageMagick-([0-9][0-9.-]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('im-config',             DEBIAN, None, []),
 ('indicator-bluetooth',   UBUNTU, None, []),
 ('indicator-datetime',    UBUNTU, None, []),
 ('indicator-keyboard',    UBUNTU, None, []),
 ('indicator-messages',    UBUNTU, None, []),
 ('indicator-network',     UBUNTU, None, []),
 ('indicator-power',       UBUNTU, None, []),
 ('indicator-session',     UBUNTU, None, []),
 ('indicator-sound',       UBUNTU, None, []),
 ('initramfs-tools',       DEBIAN, None, []),
 ('init-system-helpers',   DEBIAN, None, []),
 ('inkscape',              ('https://launchpad.net/inkscape/+download/', 'inkscape-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
# ('insserv',               ('http://ftp.suse.com/pub/projects/init/', 'insserv-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('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']),
 ('intel-vaapi-driver',    ('https://freedesktop.org/software/vaapi/releases/libva-intel-driver/', 'libva-intel-driver-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('intltool-debian',       DEBIAN, None, []),
# ('ipolish',               ('http://www.sjp.pl/slownik/en/', 'sjp-ispell-pl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('iptables',              ('ftp://ftp.netfilter.org/pub/iptables/', 'iptables-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('ippusbxd',              GITHUB_URL ('tillkamppeter', 'ippusbxd', '([0-9][0-9.]*)'), None, []),
 ('iputils',               ('http://www.skbuff.net/iputils/', 'iputils-s([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('irqbalance',            GITHUB_URL ('Irqbalance','irqbalance', 'v([0-9][0-9.]*)'), None, []),
# ('isc-dhcp',              ('https://ftp.isc.org/isc/dhcp/([\d\.]*)/', 'dhcp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('isodate',               PYPI_URL ('isodate'), None, []),
# ('ispell-czech',          DEBIAN, None, []),
# ('ispell-uk',             SOURCEFORGE_URL ('ispell-uk', 'spell-uk', 'spell-uk-([0-9][0-9.]*).tgz'), None, []),
 ('iso-codes',             ('http://pkg-isocodes.alioth.debian.org/downloads/', 'iso-codes-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('itstool',               ('http://files.itstool.org/itstool/', 'itstool-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('iw',                    ('https://www.kernel.org/pub/software/network/iw/', 'iw-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('jackd2',                ('http://jackaudio.org/downloads', 'jack-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('jam',                   ('http://swarm.workshop.perforce.com/projects/perforce_software-jam/files/main', 'jam-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('jansson',               ('http://www.digip.org/jansson/releases/', 'jansson-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('javacc',                ('https://java.net/projects/javacc/downloads', 'javacc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('jbig2dec',              ('http://git.ghostscript.com/?p=jbig2dec.git;a=summary', '.a=log;h=refs/tags/(\d[\d.]*)'), None, []),
 ('jbigkit',               ('https://www.cl.cam.ac.uk/~mgk25/jbigkit/download/', 'jbigkit-([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('jhbuild',               GNOME_FTP_URL ('jhbuild'), None, ['gnome']),
 ('jigit',                 ('http://www.einval.com/~steve/software/JTE/download/', 'jigit_([0-9][0-9.]*).orig.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('jinja2',                PYPI_URL ('Jinja2'), None, []),
# ('jockey',                LAUNCHPAD_URL ('jockey'), None, []),
 ('joystick',              SOURCEFORGE_URL ('linuxconsole', '', 'linuxconsoletools-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('jquery',                ('https://code.jquery.com/', 'jquery-([0-9][0-9.]*).js'), None, []),
# ('json-c',                ('http://oss.metaparadigm.com/json-c/', 'json-c-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('json-glib',             GNOME_FTP_URL ('json-glib'), None, ['gnome']),
 ('jsonrpc-glib',          GNOME_FTP_URL ('jsonrpc-glib', GNOME_STABLE_SERIES), GNOME_FTP_URL ('jsonrpc-glib'), ['gnome']),
 ('kerneloops',            DEBIAN, None, []),
# ('keybinder',             ('http://kaizer.se/publicfiles/keybinder/', 'keybinder-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('keyrings.alt',          PYPI_URL ('keyrings.alt'), None, []),
 ('keyutils',              ('http://people.redhat.com/~dhowells/keyutils/', 'keyutils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('klibc',                 ('https://www.kernel.org/pub/linux/libs/klibc/([0-9.]+)', 'klibc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('kmod',                  ('https://www.kernel.org/pub/linux/utils/kernel/kmod/', 'kmod-([0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('krb5',                  ('http://web.mit.edu/kerberos/dist/index.html', 'krb5-([0-9][0-9.]*).tar.gz'), None, []),
# ('labyrinth',             GNOME_FTP_URL ('labyrinth'), None, ['gnome']),
# ('lame',                  SOURCEFORGE_URL ('lame', 'lame/([0-9.]+)', 'lame-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('language-selector',     UBUNTU, None, []),
 ('lapack',                ('http://www.netlib.org/lapack/', 'lapack-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('laptop-detect',         DEBIAN, None, []),
 ('lazr.restfulclient',    LAUNCHPAD_URL ('lazr.restfulclient'), None, []),
 ('lazr.uri',              LAUNCHPAD_URL ('lazr.uri'), None, []),
 ('lcms2',                 SOURCEFORGE_URL ('lcms', 'lcms/([0-9.]+)', 'lcms2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('ldb',                   ('https://download.samba.org/pub/ldb/', 'ldb-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('leveldb',               GITHUB_URL ('google', 'leveldb', 'v([0-9][0-9.]*)'), None, []),
 ('libaacs',               ('https://download.videolan.org/pub/videolan/libaacs/([0-9.]+)/', 'libaacs-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libabw',                LIBREOFFICE_URL ('libabw'), None, []),
 ('libaccounts-glib',      UBUNTU, None, []),
# ('libalgorithm-diff-perl', CPAN_URL ('Algorithm-Diff'), None, ['perl']), # Seems to have an old version here
# ('libalgorithm-diff-xs-perl', CPAN_URL ('Algorithm-Diff-XS'), None, ['perl']),
# ('libalgorithm-merge-perl', CPAN_URL ('Algorithm-Merge'), None, ['perl']),
 ('libao',                 ('http://downloads.xiph.org/releases/ao/', 'libao-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libappindicator',       UBUNTU, None, []),
 ('libapt-pkg-perl',       DEBIAN, None, ['perl']),
 ('libarchive',            GITHUB_URL ('libarchive', 'libarchive', 'v([0-9][0-9.]*)'), None, []),
# ('libarchive-extract-perl', CPAN_URL ('Archive-Extract'), None, ['perl']),
 ('libarchive-zip-perl',   CPAN_URL ('Archive-Zip'), None, ['perl']),
 ('libart-lgpl',           GNOME_FTP_URL ('libart_lgpl'), None, ['gnome']),
 ('libassuan',             ('https://gnupg.org/ftp/gcrypt/libassuan/', 'libassuan-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libasyncns',            ('http://0pointer.de/lennart/projects/libasyncns/', 'libasyncns-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libatasmart',           ('http://0pointer.de/public/', 'libatasmart-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libauthen-sasl-perl',   CPAN_URL ('Authen-SASL'), None, ['perl']),
 ('libavc1394',            SOURCEFORGE_URL ('libavc1394', 'libavc1394/([0-9.]+)', 'libavc1394-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libbdplus',             ('https://download.videolan.org/pub/videolan/libbdplus/([0-9.]+)/', 'libbdplus-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libbinio',              SOURCEFORGE_URL ('libbinio', 'libbinio/([0-9.]+)', 'libbinio-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libbluray',             ('https://download.videolan.org/pub/videolan/libbluray/([0-9.]+)/', 'libbluray-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libbs2b',               SOURCEFORGE_URL ('bs2b', 'libbs2b/([0-9.]+)', 'libbs2b-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libburn',               ('http://files.libburnia-project.org/releases/', 'libburn-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libcaca',               GITHUB_URL ('cacalabs', 'libcaca', 'v([0-9][a-zA-Z0-9.]*)+'), None, []),
 ('libcairo-perl',         CPAN_URL ('Cairo'), None, ['perl']),
 ('libcanberra',           ('http://0pointer.de/lennart/projects/libcanberra/', 'libcanberra-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libcap2',               ('https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/', 'libcap-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libcap-ng',             ('http://people.redhat.com/sgrubb/libcap-ng/', 'libcap-ng-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libcdaudio',            SOURCEFORGE_URL ('libcdaudio', 'libcdaudio/([0-9.]+)', 'libcdaudio-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libcddb',               SOURCEFORGE_URL ('libcddb', 'libcddb/([0-9.]+)', 'libcddb-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libcdio',               ('https://ftp.gnu.org/gnu/libcdio/', 'libcdio-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libcdio-paranoia',      ('https://ftp.gnu.org/gnu/libcdio/', 'libcdio-paranoia-([0-9][0-9.+]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libcdr',                LIBREOFFICE_URL ('libcdr'), None, []),
 ('libcgi-fast-perl',      ('https://github.com/leejo/cgi-fast/releases', 'tag/v([0-9][0-9.]*)'), None, ['perl']),
 ('libcgi-pm-perl',        CPAN_URL ('CGI'), None, ['perl']),
# ('libchewing',            ('https://github.com/chewing/libchewing/releases', 'archive/v([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libchamplain',          GNOME_FTP_URL ('libchamplain'), None, ['gnome']),
 ('libclass-accessor-perl', CPAN_URL ('Class-Accessor'), None, ['perl']),
# ('libclass-isa-perl',     CPAN_URL ('Class-ISA'), None, ['perl']),
 ('libclone-perl',         CPAN_URL ('Clone'), None, ['perl']),
 ('libcmis',               SOURCEFORGE_URL ('libcmis', '', 'libcmis-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libcroco',              GNOME_FTP_URL ('libcroco'), None, ['gnome']),
# ('libcrypt-passwdmd5-perl', CPAN_URL ('Crypt-PasswdMD5'), None, ['perl']),
 ('libcryptui',            GNOME_FTP_URL ('libcryptui'), None, ['gnome']),
 ('libcue',                GITHUB_URL ('lipnitsk', 'libcue', 'v([0-9][0-9.]*)'), None, []),
 ('libdaemon',             ('http://0pointer.de/lennart/projects/libdaemon/', 'libdaemon-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libdatrie',             ('http://linux.thai.net/pub/ThaiLinux/software/libthai/', 'libdatrie-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libdazzle',             GNOME_FTP_URL ('libdazzle', GNOME_STABLE_SERIES), GNOME_FTP_URL ('libdazzle'), ['gnome']),
 ('libdbusmenu',           UBUNTU, None, []),
# ('libdca',                ('http://download.videolan.org/pub/videolan/libdca/([0-9.]+)/', 'libdca-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libdigest-crc-perl',    CPAN_URL ('Digest-CRC'), None, ['perl']),
 ('libdigest-hmac-perl',   CPAN_URL ('Digest-HMAC'), None, ['perl']),
# ('libdiscid',             ('http://ftp.musicbrainz.org/pub/musicbrainz/libdiscid/', 'libdiscid-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libdmapsharing',        ('http://www.flyn.org/projects/libdmapsharing/download.html', 'libdmapsharing-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libdrm',                ('https://dri.freedesktop.org/libdrm/', 'libdrm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libexporter-tiny-perl', CPAN_URL ('Exporter-Tiny'), None, ['perl']),
 ('libe-book',             SOURCEFORGE_URL ('libebook', 'libe-book-([0-9.]+)', 'libe-book-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libdv',                 SOURCEFORGE_URL ('libdv', 'libdv/([0-9.]+)', 'libdv-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libedit',               ('http://www.thrysoee.dk/editline/', 'libedit-([0-9][0-9.-]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libemail-valid-perl',   CPAN_URL ('Email-Valid'), None, ['perl']),
 ('libencode-locale-perl', CPAN_URL ('Encode-Locale'), None, ['perl']),
# ('libept',                DEBIAN, None, []),
 ('libeot',                GITHUB_URL ('umanwizard', 'libeot', 'v([0-9][0-9.]*)'), None, []),
 ('libepoxy',              GITHUB_URL ('anholt', 'libepoxy', '([0-9][0-9.]*)'), None, []),
# ('liberror-perl',         CPAN_URL ('Error'), None, ['perl']), # FIXME: Needs version mangling? 0.17021
 ('libetonyek',            LIBREOFFICE_URL ('libetonyek'), None, []),
 ('libevdev',              ('https://freedesktop.org/software/libevdev/', 'libevdev-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libevent',              ('https://github.com/libevent/libevent/downloads', 'libevent-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libexif',               SOURCEFORGE_URL ('libexif', 'libexif/([0-9.]+)', 'libexif-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libexttextcat',         LIBREOFFICE_URL('libexttextcat'), None, []),
# ('libextutils-depends-perl', CPAN_URL ('ExtUtils-Depends'), None, ['perl']),
# ('libextutils-pkgconfig-perl', CPAN_URL ('ExtUtils-PkgConfig'), None, ['perl']),
 ('libfcgi-perl',          CPAN_URL ('FCGI'), None, ['perl']),
 ('libffi',                ('ftp://sourceware.org/pub/libffi/', 'libffi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libfile-basedir-perl',  CPAN_URL ('File-BaseDir'), None, ['perl']),
 ('libfile-copy-recursive-perl', CPAN_URL ('File-Copy-Recursive'), None, ['perl']),
 ('libfile-desktopentry-perl', CPAN_URL ('File-DesktopEntry'), None, ['perl']),
 ('libfile-fcntllock-perl', CPAN_URL ('File-FcntlLock'), None, ['perl']),
 ('libfile-listing-perl',  CPAN_URL ('File-Listing'), None, ['perl']),
 ('libfile-mimeinfo-perl', CPAN_URL ('File-MimeInfo'), None, ['perl']),
 ('libfont-afm-perl',      CPAN_URL ('Font-AFM'), None, ['perl']),
 ('libfontenc',            ('https://xorg.freedesktop.org/releases/individual/lib/', 'libfontenc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
# ('libfont-freetype-perl', CPAN_URL ('Font-FreeType'), None, ['perl']),
# ('libgadu',               ('http://libgadu.net/', 'libgadu-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libfreehand',            LIBREOFFICE_URL('libfreehand'), None, []),
 ('libgc',                 ('https://github.com/ivmai/bdwgc/releases', 'gc([0-9][0-9._]*[a-z]?).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libgcrypt20',           ('https://gnupg.org/ftp/gcrypt/libgcrypt/', 'libgcrypt-(1[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libgd2',                ('https://bitbucket.org/libgd/gd-libgd/downloads', 'libgd-([0-9][0-9.]*)(-alpha[0-9]).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libgda5',               GNOME_FTP_URL ('libgda'), None, ['gnome']),
 ('libgdata',              GNOME_FTP_URL ('libgdata'), None, ['gnome']),
 ('libgee-0.8',            GNOME_FTP_URL ('libgee'), None, ['gnome']),
 ('libgepub',              GNOME_FTP_URL ('libgepub'), None, ['gnome']),
 ('libgit2-glib',          GNOME_FTP_URL ('libgit2-glib', '([\d\.]+[02468])'), GNOME_FTP_URL ('libgit2-glib'), ['gnome']),
# ('libgksu',               ('http://people.debian.org/~kov/gksu/', 'libgksu-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libglib-perl',          CPAN_URL ('Glib'), None, ['perl']),
 ('libglu',                ('https://mesa.freedesktop.org/archive/glu', 'glu-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
# ('libgnome',              GNOME_FTP_URL ('libgnome'), None, ['gnome']),
 ('libgnome-games-support', GNOME_FTP_URL ('libgnome-games-support', '([\d\.]+[02468])'), GNOME_FTP_URL ('libgnome-games-support'), ['gnome']),
 ('libgnomekbd',           GNOME_FTP_URL ('libgnomekbd'), None, ['gnome']),
 ('libgnome-keyring',      GNOME_FTP_URL ('libgnome-keyring'), None, ['gnome']),
# ('libgnome-media-profiles', GNOME_FTP_URL ('libgnome-media-profiles'), None, ['gnome']),
# ('libgnomeui',            GNOME_FTP_URL ('libgnomeui'), None, ['gnome']),
 ('libgom',                GNOME_FTP_URL ('gom'), None, ['gnome']),
# ('libgovirt',             GNOME_FTP_URL ('libgovirt'), None, ['gnome']),
 ('libgpg-error',          ('https://gnupg.org/ftp/gcrypt/libgpg-error/', 'libgpg-error-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libgphoto2',            SOURCEFORGE_URL ('gphoto', 'libgphoto/([0-9.]+)', 'libgphoto2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libgpod',               SOURCEFORGE_URL ('gtkpod', 'libgpod/libgpod-([0-9.]+)', 'libgpod-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libgsf',                GNOME_FTP_URL ('libgsf'), None, ['gnome']),
# ('libgstreamer-perl',     CPAN_URL ('GStreamer'), None, ['perl']),
# ('libgtk2-notify-perl',   CPAN_URL ('Gtk2-Notify'), None, ['perl']),
 ('libgtk2-perl',          CPAN_URL ('Gtk2'), None, ['perl']),
# ('libgtk2-trayicon-perl', CPAN_URL ('Gtk2-TrayIcon'), None, ['perl']),
# ('libgtksourceviewmm',    GNOME_FTP_URL ('gtksourceviewmm'), None, ['gnome']),
 ('libgtop2',              GNOME_FTP_URL ('libgtop', '([\d\.]+[02468])'), GNOME_FTP_URL ('libgtop'), ['gnome']),
 ('libgudev',              GNOME_FTP_URL ('libgudev'), None, ['gnome']),
# ('libguess',              ('http://distfiles.atheme.org/', 'libguess-([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libgusb',               ('https://people.freedesktop.org/~hughsient/releases/', 'libgusb-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libgweather',           GNOME_FTP_URL ('libgweather', GNOME_STABLE_SERIES), GNOME_FTP_URL ('libgweather'), ['gnome']),
 ('libgxps',               GNOME_FTP_URL ('libgxps'), None, ['gnome']),
 ('libhtml-format-perl',   CPAN_URL ('HTML-Format'), None, ['perl']),
 ('libhtml-form-perl',     CPAN_URL ('HTML-Form'), None, ['perl']),
 ('libhtml-parser-perl',   CPAN_URL ('HTML-Parser'), None, ['perl']),
 ('libhtml-tagset-perl',   CPAN_URL ('HTML-Tagset'), None, ['perl']),
 ('libhtml-tree-perl',     CPAN_URL ('HTML-Tree'), None, ['perl']),
 ('libhttp-cookies-perl',  CPAN_URL ('HTTP-Cookies'), None, ['perl']),
 ('libhttp-daemon-perl',   CPAN_URL ('HTTP-Daemon'), None, ['perl']),
 ('libhttp-date-perl',     CPAN_URL ('HTTP-Date'), None, ['perl']),
 ('libhttp-message-perl',  CPAN_URL ('HTTP-Message'), None, ['perl']),
 ('libhttp-negotiate-perl', CPAN_URL ('HTTP-Negotiate'), None, ['perl']),
 ('libical',               ('https://github.com/libical/libical/releases/latest', 'libical-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libical-glib',          GNOME_FTP_URL ('libical-glib'), None, ['gnome']),
 ('libice',                ('https://xorg.freedesktop.org/releases/individual/lib/', 'libICE-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libidn',                ('https://ftp.gnu.org/gnu/libidn/', 'libidn-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libidn2-0',             ('https://ftp.gnu.org/gnu/libidn/', 'libidn2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []), 
 ('libiec61883',           ('https://www.kernel.org/pub/linux/libs/ieee1394/', 'libiec61883-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libieee1284',           SOURCEFORGE_URL ('libieee1284', 'libieee1284/([0-9.]+)', 'libieee1284-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libimobiledevice',      ('http://www.libimobiledevice.org/', 'libimobiledevice-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libindicator',          UBUNTU, None, []),
 ('libinput',              ('http://freedesktop.org/software/libinput/', 'libinput-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
# ('libintl-perl',          CPAN_URL ('libintl-perl'), None, ['perl']),
 ('libio-html-perl',       CPAN_URL ('IO-HTML'), None, ['perl']),
 ('libio-pty-perl',        CPAN_URL ('IO-Tty'), None, ['perl']),
 ('libio-socket-inet6-perl', CPAN_URL ('IO-Socket-INET6'), None, ['perl']),
 ('libio-socket-ssl-perl', CPAN_URL ('IO-Socket-SSL'), None, ['perl']),
 ('libio-string-perl',     CPAN_URL ('IO-String'), None, ['perl']),
 ('libipc-run-perl',       CPAN_URL ('IPC-Run'), None, ['perl']),
 ('libipc-system-simple-perl', CPAN_URL ('IPC-System-Simple'), None, ['perl']),
 ('libiptcdata',           SOURCEFORGE_URL ('libiptcdata', 'libiptcdata/([0-9.]+)', 'libiptcdata-([0-9]\.[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libisofs',              ('http://files.libburnia-project.org/releases/', 'libisofs-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libixion',              ('https://gitlab.com/ixion/ixion', 'libixion-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libjpeg8-empty',        UBUNTU, None, []), # Transition package
 ('libjpeg-turbo',         ('https://github.com/libjpeg-turbo/libjpeg-turbo/releases', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libjsoncpp',            ('https://github.com/open-source-parsers/jsoncpp/releases', 'archive/([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libksba',               ('https://gnupg.org/ftp/gcrypt/libksba/', 'libksba-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('liblangtag',            ('https://bitbucket.org/tagoh/liblangtag/downloads/', 'liblangtag-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('liblastfm',             SOURCEFORGE_URL ('liblastfm', '', 'liblastfm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('liblist-moreutils-perl', CPAN_URL ('List-MoreUtils'), None, ['perl']),
 ('liblocale-gettext-perl', CPAN_URL ('gettext'), None, ['perl']),
# ('liblog-message-simple-perl', CPAN_URL ('Log-Message-Simple'), None, ['perl']),
 ('liblist-moreutils-perl', CPAN_URL ('List-MoreUtils'), None, ['perl']),
 ('liblouis',              GITHUB_URL ('liblouis', 'liblouis', 'v([\d\.]*)'), None, []),
 ('liblouisutdml',         GITHUB_URL ('liblouis', 'liblouisutdml', 'v([\d\.]*)'), None, []),
 ('liblqr',                ('http://liblqr.wikidot.com/en:download-page', 'liblqr-1-([\d\.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('liblwp-mediatypes-perl', CPAN_URL ('LWP-MediaTypes'), None, ['perl']),
 ('liblwp-protocol-https-perl', CPAN_URL ('LWP-Protocol-https'), None, ['perl']),
 ('libmailtools-perl',     CPAN_URL ('MailTools'), None, ['perl']),
 ('libmediaart',           GNOME_FTP_URL ('libmediaart'), None, ['gnome']),
# ('libmimic',              SOURCEFORGE_URL ('farsight', 'libmimic/libmimic-([0-9.]+)', 'libmimic-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libmms',                SOURCEFORGE_URL ('libmms', 'libmms/([0-9.]+)', 'libmms-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libmbim',               ('https://freedesktop.org/software/libmbim/', 'libmbim-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libmng',                SOURCEFORGE_URL ('libmng', 'libmng-devel/([0-9][0-9.]*)', 'libmng-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libmnl',                ('ftp://ftp.netfilter.org/pub/libmnl/', 'libmnl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libmwaw',               SOURCEFORGE_URL ('libmwaw', 'libmwaw/([0-9.]+)', 'libmwaw-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libmodplug',            SOURCEFORGE_URL ('modplug-xmms', 'libmodplug/([0-9.]+)', 'libmodplug-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libmodule-pluggable-perl', CPAN_URL ('Module-Pluggable'), None, ['perl']),
# ('libmowgli',             ('http://distfiles.atheme.org/', 'libmowgli-([0-9][a-zA-Z0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libmspub',              LIBREOFFICE_URL ('libmspub'), None, []),
 ('libmtp',                SOURCEFORGE_URL ('libmtp', 'libmtp/([0-9.]+)', 'libmtp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libmusicbrainz5',       GITHUB_URL ('metabrainz', 'libmusicbrainz', 'release-([0-9][0-9.]*)'), None, []),
 ('libnatpmp',             ('http://miniupnp.free.fr/files/', 'libnatpmp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libndp',                GITHUB_URL ('jpirko', 'libndp', 'v([\d\.]*)'), None, []),
 ('libnet-dbus-perl',      CPAN_URL ('Net-DBus'), None, ['perl']),
 ('libnet-dns-perl',       CPAN_URL ('Net-DNS'), None, ['perl']),
 ('libnet-domain-tld-perl',CPAN_URL ('Net-Domain-TLD'), None, ['perl']),
 ('libnet-http-perl',      CPAN_URL ('Net-HTTP'), None, ['perl']),
 ('libnet-libidn-perl',    CPAN_URL ('Net-LibIDN'), None, ['perl']),
 ('libnet-ip-perl',        CPAN_URL ('Net-IP'), None, ['perl']),
 ('libnet-smtp-ssl-perl',  CPAN_URL ('Net-SMTP-SSL'), None, ['perl']),
 ('libnet-ssleay-perl',    CPAN_URL ('Net-SSLeay'), None, ['perl']),
# ('libnetaddr-ip-perl',    CPAN_URL ('NetAddr-IP'), None, ['perl']),
 ('libnetfilter-conntrack', ('ftp://ftp.netfilter.org/pub/libnetfilter_conntrack/', 'libnetfilter_conntrack-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libnfnetlink',          ('ftp://ftp.netfilter.org/pub/libnfnetlink/', 'libnfnetlink-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libnice',               ('https://nice.freedesktop.org/releases', 'libnice-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['ubuntu-touch']),
 ('libnih',                LAUNCHPAD_URL ('libnih'), None, []),
 ('libnl3',                ('http://www.infradead.org/~tgr/libnl/files/', 'libnl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libnotify',             GNOME_FTP_URL ('libnotify'), None, ['gnome']),
 ('liboauth',              SOURCEFORGE_URL ('liboauth', '', 'liboauth-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libodfgen',             LIBREOFFICE_URL ('libodfgen'), None, []),
 ('libogg',                ('http://downloads.xiph.org/releases/ogg/', 'libogg-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('liboobs',               GNOME_FTP_URL ('liboobs'), None, ['gnome']),
 ('libopenmpt',            ('https://lib.openmpt.org/libopenmpt/download/', 'libopenmpt-([0-9][0-9.\-a-zA-Z]*)'), None, []),
 ('libopenobex',           SOURCEFORGE_URL ('openobex', 'openobex', 'openobex-([0-9][0-9.]*)-Source.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('liborcus',              ('https://gitlab.com/orcus/orcus/tags', 'tags/([0-9][0-9.]*)'), None, []),
 ('libosinfo',             ('https://releases.pagure.org/libosinfo/', 'libosinfo-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libotr',                ('http://www.cypherpunks.ca/otr/', 'libotr-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libpagemaker',          LIBREOFFICE_URL ('libpagemaker'), None, []),
# ('libpam-freerdp',        LAUNCHPAD_URL ('libpam-freerdp'), None, []),
 ('libpango-perl',         CPAN_URL ('Pango'), None, ['perl']),
 ('libpaper',              DEBIAN, None, []),
 ('libparse-debianchangelog-perl', ('http://www.djpig.de/software/', 'Parse-DebianChangelog-([0-9][a-zA-Z0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['perl']),
 ('libpcap',               ('http://www.tcpdump.org/release/', 'libpcap-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libpciaccess',          ('https://xorg.freedesktop.org/releases/individual/lib/', 'libpciaccess-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libpeas',               GNOME_FTP_URL ('libpeas', '([\d\.]+[02468])'), GNOME_FTP_URL ('libpeas'), ['gnome']),
 ('libperl4-corelibs-perl', CPAN_URL ('Perl4-CoreLibs'), None, ['perl']),
 ('libperlio-gzip-perl',   CPAN_URL ('PerlIO-gzip'), None, ['perl']),
 ('libpgm',                ('https://gitlab.com/libsynthesis/libsynthesis/tags', 'libpgm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libphonenumber',        GITHUB_URL ('googlei18n', 'libphonenumber', 'v([0-9][a-zA-Z0-9.]*)+'), None, []),
# ('libiphb',               ('https://github.com/nemomobile/libiphb/releases', 'libiphb/archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libpinyin',             ('https://github.com/libpinyin/libpinyin/releases', '([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libpipeline',           LAUNCHPAD_URL ('libpipeline'), None, []),
 ('libplist',              ('http://www.libimobiledevice.org/', 'libplist-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libpng1.6',             SOURCEFORGE_URL ('libpng', 'libpng16', 'libpng16/(1.[0-9.]*)'), None, []), # FIXME: Two regexes required
# ('libpod-latex-perl',     CPAN_URL ('Pod-LaTeX'), None, ['perl']),
 ('libproxy',              GITHUB_URL ('libproxy', 'libproxy', '([0-9][0-9.]*)'), None, []),
# ('libpst',                ('http://www.five-ten-sg.com/libpst/packages/', 'libpst-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libpwquality',          ('https://github.com/libpwquality/libpwquality/releases', 'libpwquality-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libqalculate',          SOURCEFORGE_URL ('qalculate', 'libqalculate/libqalculate-([0-9.]+)', 'libqualculate-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libqmi',                ('https://freedesktop.org/software/libqmi/', 'libqmi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libqofono',             UBUNTU, None, []),
# ('libqtgtl',              ('http://download.opengtl.org/', 'libQtGTL-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libquvi',               SOURCEFORGE_URL ('quvi', '([0-9.]+)/libquvi', 'libquvi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libquvi-scripts',       SOURCEFORGE_URL ('quvi', '([0-9.]+)/libquvi-scripts', 'libquvi-scripts-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libraw1394',            ('https://www.kernel.org/pub/linux/libs/ieee1394/', 'libraw1394-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libraw',                ('http://www.libraw.org/download', 'LibRaw-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('librcc',                SOURCEFORGE_URL ('rusxmms', 'Charset%20Conversion%20Library/([0-9.]+)', 'librcc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('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
 ('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)+'), []),
# ('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)+'), []),
 ('librest',               GNOME_FTP_URL ('rest'), None, ['gnome']),
 ('librevenge',            SOURCEFORGE_URL ('libwpd', 'librevenge/librevenge-([0-9.]+)', 'librevenge-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('librsvg',               GNOME_FTP_URL ('librsvg'), None, ['gnome']),
# ('librsync',              SOURCEFORGE_URL ('librsync', 'librsync/([0-9.]+)', 'librsync-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libsamplerate',         ('http://www.mega-nerd.com/SRC/download.html', 'libsamplerate-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libsdl1.2',             ('http://www.libsdl.org/release/', 'SDL-([\d\.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libsecret',             GNOME_FTP_URL ('libsecret'), None, ['gnome']),
 ('libselinux',            ('https://github.com/SELinuxProject/selinux/wiki/Releases', 'libselinux-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libsemanage',           ('https://github.com/SELinuxProject/selinux/wiki/Releases', 'libsemanage-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libsepol',              ('https://github.com/SELinuxProject/selinux/wiki/Releases', 'libsepol-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libsexy',               ('http://releases.chipx86.com/libsexy/libsexy/', 'libsexy-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libshout',              ('http://downloads.xiph.org/releases/libshout/', 'libshout-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libsigc++-2.0',         GNOME_FTP_URL ('libsigc++', '(2[\d\.]+[02468])'), GNOME_FTP_URL ('libsigc++', '(2.[0123][0-9])'), ['gnome']),
 ('libsignon-glib',        UBUNTU, None, []),
 ('libsm',                 ('https://xorg.freedesktop.org/releases/individual/lib/', 'libSM-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libsmbios',             GITHUB_URL ('dell', 'libsmbios', 'v([\d\.]*)'), None, []),
 ('libsndfile',            ('http://www.mega-nerd.com/libsndfile/files', 'libsndfile-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libsocket6-perl',       CPAN_URL ('Socket6'), None, ['perl']),
 ('libsodium',             GITHUB_URL ('jedisct1', 'libsodium', '([\d\.]*)'), None, []),
 ('libsoup2.4',            GNOME_FTP_URL ('libsoup', '([\d\.]+[02468])'), GNOME_FTP_URL ('libsoup'), ['gnome']),
 ('libspectre',            ('https://libspectre.freedesktop.org/releases/', 'libspectre-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libssh',                ('https://red.libssh.org/projects/libssh/files', 'libssh-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libsub-name-perl',      CPAN_URL ('Sub-Name'), None, ['perl']),
# ('libswitch-perl',        CPAN_URL ('Switch'), None, ['perl']),
 ('libsynthesis',          ('https://gitlab.com/libsynthesis/libsynthesis/tags', 'tags/libsynthesis_([0-9][0-9.]*)'), None, []),
# ('libsys-hostname-long-perl', CPAN_URL ('Sys-Hostname-Long'), None, ['perl']),
 ('libtasn1-6',            ('https://ftp.gnu.org/gnu/libtasn1/', 'libtasn1-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libterm-ui-perl',       CPAN_URL ('Term-UI'), None, ['perl']),
# ('libtest-consistentversion-perl', CPAN_URL ('Test-ConsistentVersion'), None, ['perl']),
# ('libtest-number-delta-perl', CPAN_URL ('Test-Number-Delta'), None, ['perl']),
# ('libtest-pod-content-perl', CPAN_URL ('Test-Pod-Content'), None, ['perl']),
 ('libtext-charwidth-perl', CPAN_URL ('Text-CharWidth'), None, ['perl']),
 ('libtext-levenshtein-perl', CPAN_URL ('Text-Levenshtein'), None, ['perl']),
 ('libtext-iconv-perl',    CPAN_URL ('Text-Iconv'), None, ['perl']),
# ('libtext-soundex-perl', CPAN_URL ('Text-Soundex'), None, ['perl']), # Seems to be out of date
 ('libtext-wrapi18n-perl', CPAN_URL ('Text-WrapI18N'), None, ['perl']),
 ('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
 ('libtheora',             ('http://downloads.xiph.org/releases/theora/', 'libtheora-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libtie-ixhash-perl',    CPAN_URL ('Tie-IxHash'), None, ['perl']),
 ('libtimedate-perl',      CPAN_URL ('TimeDate'), None, ['perl']),
 ('libtimezonemap',        UBUNTU, None, []),
 ('libtool',               ('http://mirror.aarnet.edu.au/pub/gnu/libtool/', 'libtool-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libunique3',            GNOME_FTP_URL ('libunique'), None, ['gnome']),
 ('libunistring',          ('https://ftp.gnu.org/gnu/libunistring/', 'libunistring-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libunity',              UBUNTU, None, []),
 ('libunwind',             ('http://download.savannah.gnu.org/releases/libunwind/', 'libunwind-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('liburcu',               ('https://lttng.org/files/urcu/', 'userspace-rcu-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libusb-1.0',            ('http://sourceforge.net/projects/libusb/files/libusb-1.0/', 'libusb-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libusbmuxd',            GITHUB_URL ('libimobiledevice', 'libusbmuxd', '([0-9][0-9.]*)'), None, []),
 ('liburi-perl',           CPAN_URL ('URI'), None, ['perl']),
 ('libutempter',           ('http://ftp.altlinux.org/pub/people/ldv/utempter/', 'libutempter-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libuuid-perl',          CPAN_URL ('UUID'), None, ['perl']),
 ('libva',                 ('https://www.freedesktop.org/software/vaapi/releases/libva/', 'libva-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libvdpau',              ('https://people.freedesktop.org/~aplattner/vdpau/', 'libvdpau-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libvigraimpex',         ('http://ukoethe.github.io/vigra/', 'vigra-([0-9][0-9.]*)-src-with-docu.tar.gz'), None, []),
# ('libvirt',               ('http://libvirt.org/sources/', 'libvirt-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libvirt-glib',          ('http://libvirt.org/sources/glib/', 'libvirt-glib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libvisio',              LIBREOFFICE_URL ('libvisio'), None, []),
 ('libvisual',             SOURCEFORGE_URL ('libvisual', 'libvisual/libvisual-([0-9.]+)', 'libvisual-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libvisual-plugins',     SOURCEFORGE_URL ('libvisual', 'libvisual-plugins/libvisual-plugins-([0-9.]+)', 'libvisual-plugins-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libvncserver',          SOURCEFORGE_URL ('libvncserver', 'libvncserver/([0-9.]+)', 'LibVNCServer-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libvorbis',             ('http://downloads.xiph.org/releases/vorbis/', 'libvorbis-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libvpx',                ('http://downloads.webmproject.org/releases/webm/index.html', 'libvpx-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libwacom',              SOURCEFORGE_URL ('linuxwacom', 'libwacom', 'libwacom-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libwebp',               ('http://downloads.webmproject.org/releases/webp/index.html', 'libwebp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libwmf',                SOURCEFORGE_URL ('wvware', 'libwmf/([0-9.]+)', 'libwmf-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libwnck3',              GNOME_FTP_URL ('libwnck'), None, ['gnome']),
 ('libwpd',                SOURCEFORGE_URL ('libwpd', 'libwpd/libwpd-([0-9.]+)', 'libwpd-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libwpg',                SOURCEFORGE_URL ('libwpg', 'libwpg/libwpg-([0-9.]+)', 'libwpg-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libwps',                SOURCEFORGE_URL ('libwps', 'libwps/libwps-([0-9.]+)', 'libwps-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libwww-perl',           CPAN_URL ('libwww-perl'), None, ['perl']),
 ('libwww-robotrules-perl', CPAN_URL ('WWW-RobotRules'), None, ['perl']),
 ('libx11',                ('http://xorg.freedesktop.org/releases/individual/lib/', 'libX11-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libx11-protocol-perl',  CPAN_URL ('X11-Protocol'), None, ['perl']),
# ('libx86',                ('http://www.codon.org.uk/~mjg59/libx86/downloads/', 'libx86-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libxau',                ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXau-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxaw',                ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXaw-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxcb',                ('https://xorg.freedesktop.org/releases/individual/xcb/', 'libxcb-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxcomposite',         ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXcomposite-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxcursor',            ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXcursor-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxdamage',            ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXdamage-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxdmcp',              ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXdmcp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxext',               ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXext-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxfixes',             ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXfixes-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxfont',              ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXfont2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxfont1',             ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXfont-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxi',                 ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxinerama',           ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXinerama-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxkbcommon',          ('https://xkbcommon.org/', 'libxkbcommon-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxkbfile',            ('https://xorg.freedesktop.org/releases/individual/lib/', 'libxkbfile-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxklavier',           GNOME_FTP_URL ('libxklavier'), None, ['xorg', 'gnome']), # GNOME FTP doesn't have libxklavier 5.4...
 ('libxml2',               ('ftp://xmlsoft.org/libxml2/', 'libxml2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('libxml-filter-buffertext-perl', CPAN_URL ('XML-Filter-BufferText'), None, ['perl']),
# ('libxml-handler-yawriter-perl', CPAN_URL ('XML-Handler-YAWriter'), None, ['perl']),
 ('libxml-libxml-perl',    CPAN_URL ('XML-LibXML'), None, ['perl']),
 ('libxml-namespacesupport-perl', CPAN_URL ('XML-NamespaceSupport'), None, ['perl']),
 ('libxml-parser-perl',    CPAN_URL ('XML-Parser'), None, ['perl']),
 ('libxml-sax-expat-perl', CPAN_URL ('XML-SAX-Expat'), None, ['perl']),
 ('libxml-sax-perl',       CPAN_URL ('XML-SAX'), None, ['perl']), 
# ('libxml-sax-machines-perl', CPAN_URL ('XML-SAX-Machines'), None, ['perl']),
# ('libxml-sax-writer-perl', CPAN_URL ('XML-SAX-Writer'), None, ['perl']),
 ('libxml-simple-perl',    CPAN_URL ('XML-Simple'), None, ['perl']), 
 ('libxml-twig-perl',      CPAN_URL ('XML-Twig'), None, ['perl']),
# ('libxml-xpath-perl',     CPAN_URL ('XML-XPath'), None, ['perl']),
 ('libxml-xpathengine-perl', CPAN_URL ('XML-XPathEngine'), None, ['perl']),
 ('libxmu',                ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXmu-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxpm',                ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXpm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxrandr',             ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXrandr-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxrender',            ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXrender-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxres',               ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXres-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxshmfence',          ('https://xorg.freedesktop.org/releases/individual/lib/', 'libxshmfence-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxslt',               ('ftp://xmlsoft.org/libxslt/', 'libxslt-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libxss',                ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXScrnSaver-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxt',                 ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXt-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxtst',               ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXtst-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxv',                 ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXv-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxvmc',               ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXvMC-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxxf86dga',           ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXxf86dga-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('libxxf86vm',            ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXxf86vm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
# ('libyaml',               ('http://pyyaml.org/download/libyaml/', 'yaml-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libyaml-libyaml-perl',  CPAN_URL ('YAML-LibYAML'), None, ['perl']),
 ('libyaml-tiny-perl',     CPAN_URL ('YAML-Tiny'), None, ['perl']),
# ('libytnef',              SOURCEFORGE_URL ('ytnef', 'libytnef/([0-9.]+)', 'libytnef-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libzapojit',            GNOME_FTP_URL ('libzapojit'), None, ['gnome']),
# ('libzeitgeist',          LAUNCHPAD_URL ('libzeitgeist'), None, []),
# ('libzip',                ('http://nih.at/libzip/', 'libzip-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('lightdm-gtk-greeter',   LAUNCHPAD_URL ('lightdm-gtk-greeter'), None, []),
 ('lightdm',               LAUNCHPAD_URL ('lightdm'), None, []),
 ('lightsoff',             GNOME_FTP_URL ('lightsoff', GNOME_STABLE_SERIES), GNOME_FTP_URL ('lightsoff'), ['gnome']),
 ('lintian',               DEBIAN, None, []),
 ('linux',                 UBUNTU, None, []), # The kernel is complicated, just assume our version is up to date
 ('linux-base',            DEBIAN, None, []),
 ('linux-firmware',        UBUNTU, None, []),
 ('linux-meta',            UBUNTU, None, []),
 ('lirc',                  SOURCEFORGE_URL ('lirc', 'LIRC/([0-9.]+)', 'lirc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('llvm-toolchain-5.0',    ('http://www.llvm.org/releases/download.html', 'llvm-(5.0[0-9.]*).(src.tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('lm-sensors',            GITHUB_URL ('groeck', 'lm-sensors', 'V([0-9][0-9.-]*)'), None, []),
# ('loudmouth',             GNOME_FTP_URL ('loudmouth'), None, ['gnome']),
 ('lp-solve',              SOURCEFORGE_URL ('lpsolve', 'lpsolve/([\d\.]+)/', 'lp_solve_([0-9][0-9a-zA-Z.]*)_source.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('lsb',                   DEBIAN, None, []),
 ('lshw',                  ('http://ezix.org/software/files/', 'lshw-B.([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('lsof',                  ('ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/', 'lsof_([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('ltrace',                DEBIAN, None, []), # Seems to be maintained in Debian http://ltrace.org/
 ('lua5.2',                ('http://www.lua.org/ftp/', 'lua-(5.2[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('lua5.3',                ('http://www.lua.org/ftp/', 'lua-(5.3[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('lua-bitop',             ('http://bitop.luajit.org/download.html', 'LuaBitOp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('lua-expat',             ('http://matthewwild.co.uk/projects/luaexpat/', 'luaexpat-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('lua-json',              GITHUB_URL ('harningt', 'luajson', '([0-9][0-9.]*)'), None, []),
 ('lua-lpeg',              ('http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html', 'lpeg-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('luasocket',             ('https://github.com/diegonehab/luasocket/releases', 'archive/v(.*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('lvm2',                  ('ftp://sources.redhat.com/pub/lvm2/', 'LVM2.([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('lxcfs',                 ('https://linuxcontainers.org/lxcfs/downloads/', 'lxcfs-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('lxd',                   GITHUB_URL ('lxc', 'lxd', 'lxd-([0-9][0-9.]*)'), None, []),
# ('lyx',                   ('http://ftp.lyx.org/pub/lyx/stable/([0-9.x]+)', 'lyx-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('lzo2',                  ('http://www.oberhumer.com/opensource/lzo/download/', 'lzo-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('m2crypto',              PYPI_URL ('M2Crypto'), None, []),
# ('m4',                    ('https://ftp.gnu.org/gnu/m4/', 'm4-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('maliit-framework',      ('https://github.com/maliit/framework/releases', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('mail-spf-perl',         CPAN_URL ('Mail-SPF'), None, ['perl']),
# ('make-dfsg',             ('https://ftp.gnu.org/gnu/make/', 'make-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('mako',                  ('http://www.makotemplates.org/download.html', '<b>([0-9][0-9.]*)'), None, []),
 ('man-db',                ('https://download.savannah.nongnu.org/releases/man-db/', 'man-db-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('manpages',              ('https://www.kernel.org/pub/linux/docs/man-pages/', 'man-pages-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('markupsafe',            PYPI_URL ('MarkupSafe'), None, []),
 ('mawk',                  ('https://invisible-mirror.net/archives/xterm/', '(20[0-9.]*)'), None, []),
# ('meanwhile',             SOURCEFORGE_URL ('meanwhile', 'meanwhile', 'gaim-meanwhile-([0-9]\.[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('media-player-info',     ('https://freedesktop.org/software/media-player-info/', 'media-player-info-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('meld',                  GNOME_FTP_URL ('meld', '([\d\.]+[02468])'), GNOME_FTP_URL ('meld'), ['gnome']),
 ('memtest86+',            ('http://www.memtest.org/#downcode', 'download/([0-9][0-9.]*)'), None, []),
 ('mesa',                  ('https://cgit.freedesktop.org/mesa/mesa/refs/', 'id=mesa-([0-9][0-9.]*[0-9])'), None, ['xorg']),
 ('mesa-demos',            ('https://mesa.freedesktop.org/archive/demos/([0-9.]+)', 'mesa-demos-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
# ('messaging-app',         UBUNTU, None, []),
 ('metacity',              GNOME_FTP_URL ('metacity'), None, ['gnome']),
 ('metis',                 ('http://glaros.dtc.umn.edu/gkhome/metis/metis/download', 'metis-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('mhash',                 SOURCEFORGE_URL ('mhash', 'mhash/([0-9.]+)', 'mhash-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('min12xxw',              ('http://www.hinterbergen.de/mala/min12xxw/', 'min12xxw-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('miniupnpc',             ('http://miniupnp.free.fr/files/', 'miniupnpc-([0-9]*[.][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('mir',                   UBUNTU, None, []),
# ('miscfiles',             ('https://ftp.gnu.org/gnu/miscfiles/', 'miscfiles-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('mlocate',               ('https://releases.pagure.org/mlocate/', 'mlocate-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('mm-common',             GNOME_FTP_URL ('mm-common'), None, ['gnome']),
 ('mobile-broadband-provider-info', GNOME_FTP_URL ('mobile-broadband-provider-info'), None, ['gnome']),
# ('mocker',                LAUNCHPAD_URL ('mocker'), None, []),
 ('modemmanager',          ('https://freedesktop.org/software/ModemManager/', 'ModemManager-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('mono',                  ('http://download.mono-project.com/sources/mono/', 'mono-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
# ('mountall',              UBUNTU, None, []),
 ('mousetweaks',           GNOME_FTP_URL ('mousetweaks', '([\d\.]+[02468])'), GNOME_FTP_URL ('mousetweaks'), ['gnome']),
 ('mozjs38',               ('https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Releases/38', 'mozjs-([0-9][0-9a-z.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
 ('mozjs52',               ('https://archive.mozilla.org/pub/firefox/releases/', '(52.[0-9][0-9.]*)esr'), None, []),
 ('mpclib3',               ('http://www.multiprecision.org/index.php?prog=mpc&page=download', 'mpc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('mpfr4',                 ('https://ftp.gnu.org/gnu/mpfr/', 'mpfr-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('mpg123',                SOURCEFORGE_URL ('mpg123', 'mpg123/([0-9.]+)', 'mpg123-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('mscompress',            ('ftp://ftp.penguin.cz/pub/users/mhi/mscompress/', 'mscompress-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('mtdev',                 ('http://bitmath.org/code/mtdev/', 'mtdev-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('mtools',                ('https://ftp.gnu.org/gnu/mtools/', 'mtools-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('mtpaint',               SOURCEFORGE_URL ('mtpaint', 'mtpaint/([0-9.]+)', 'mtpaint-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('mtr',                   ('ftp://ftp.bitwizard.nl/mtr/', 'mtr-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('mutter',                GNOME_FTP_URL ('mutter', GNOME_STABLE_SERIES), GNOME_FTP_URL ('mutter'), ['gnome']),
# ('mx',                    ('https://github.com/clutter-project/mx/releases', '(1.4.[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('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, []),
# ('myspell-hr',            DEBIAN, None, []),
# ('myspell-lv',            SOURCEFORGE_URL ('openoffice-lv', 'openoffice-lv', 'lv_LV-([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('myspell.pt'   ,         DEBIAN, None, []),
# ('myspell-pt-br',         DEBIAN, None, []),
# ('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, []),
# ('mysql-5.6',             ('http://mysql.mirrors.pair.com/Downloads/MySQL-5.6/', 'mysql-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('mythes',                SOURCEFORGE_URL ('hunspell', 'MyThes/([0-9.]+)', 'mythes-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('nano',                  ('https://ftp.gnu.org/gnu/nano/', 'nano-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('nas',                   ('https://radscan.com/nas.html', 'nas-([0-9][0-9.]*).src.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('nautilus',              GNOME_FTP_URL ('nautilus', GNOME_STABLE_SERIES), GNOME_FTP_URL ('nautilus'), ['gnome']),
 ('nautilus-sendto',       GNOME_FTP_URL ('nautilus-sendto', '([\d\.]+[02468])'), GNOME_FTP_URL ('nautilus-sendto'), ['gnome']),
 ('nautilus-share',        GNOME_FTP_URL ('nautilus-share'), None, ['gnome']),
 ('ncurses',               ('https://ftp.gnu.org/gnu/ncurses/', 'ncurses-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('ndg-httpsclient',       ('https://pypi.python.org/pypi/ndg-httpsclient', 'ndg_httpsclient-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
# ('nemiver',               GNOME_FTP_URL ('nemiver'), None, ['gnome']),
 ('neon27',                ('http://www.webdav.org/neon/', 'neon-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('netbase',               DEBIAN, None, []),
 ('netkit-ftp',            ('http://ftp.linux.org.uk/pub/linux/Networking/netkit/', 'netkit-ftp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('netkit-telnet',         ('http://ftp.linux.org.uk/pub/linux/Networking/netkit/', 'netkit-telnet-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('netpbm-free',           DEBIAN, None, []),
 ('net-snmp',              SOURCEFORGE_URL ('net-snmp', 'net-snmp/([0-9.]+)', 'net-snmp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('nettle',                ('https://ftp.gnu.org/gnu/nettle/', 'nettle-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('network-manager-applet', GNOME_FTP_URL ('network-manager-applet'), None, ['gnome']),
 ('network-manager',       GNOME_FTP_URL ('NetworkManager', '1.10'), GNOME_FTP_URL ('NetworkManager'), ['gnome']),
 ('network-manager-openvpn', GNOME_FTP_URL ('NetworkManager-openvpn'), None, ['gnome']),
 ('network-manager-pptp',  GNOME_FTP_URL ('NetworkManager-pptp'), None, ['gnome']),
 ('notification-daemon',   GNOME_FTP_URL ('notification-daemon'), None, ['gnome']),
# ('norwegian',             DEBIAN, None, []),
 ('npth',                  ('https://gnupg.org/ftp/gcrypt/npth', 'npth-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('nspr',                  ('https://archive.mozilla.org/pub/nspr/releases/', 'v([0-9][0-9.]*)'), None, []),
 ('nss',                   ('https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases', 'NSS_([0-9][0-9.]*)'), None, []),
 ('nss-mdns',              ('http://0pointer.de/lennart/projects/nss-mdns/', 'nss-mdns-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('ntfs-3g',               ('http://www.tuxera.com/community/ntfs-3g-advanced/', 'ntfs-3g_ntfsprogs-([0-9A-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('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, []),
 ('numactl',               ('ftp://oss.sgi.com/www/projects/libnuma/download/', 'numactl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('obconf',                ('http://openbox.org/dist/obconf/', 'obconf-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('obex-data-server',      ('http://tadas.dailyda.com/software/', 'obex-data-server-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('obexd',                 ('https://www.kernel.org/pub/linux/bluetooth/', 'obexd-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('olefile',               PYPI_URL ('olefile'), None, ['python']),
# ('onboard',               LAUNCHPAD_URL ('onboard'), None, []),
# ('openal-soft',           ('http://kcat.strangesoft.net/openal-releases/', 'openal-soft-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('openconnect',           ('ftp://ftp.infradead.org/pub/openconnect/', 'openconnect-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('openexr',               ('http://download.savannah.gnu.org/releases/openexr/', 'openexr-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('opengtl',               ('http://download.opengtl.org/', 'OpenGTL-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('openldap',              ('http://www.openldap.org/software/download/OpenLDAP/openldap-release/', 'openldap-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('openssh',               ('http://ftp.eu.openbsd.org/pub/OpenBSD/OpenSSH/portable/', 'openssh-([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('openssl',               ('https://www.openssl.org/source/', 'openssl-([0-9][0-9.]*[a-z]).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('openvpn',               ('https://swupdate.openvpn.org/community/releases/', 'openvpn-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('opus',                  ('https://archive.mozilla.org/pub/opus/', 'opus-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('orc',                   GITHUB_URL ('GStreamer', 'orc', 'orc-([0-9][0-9.]*)'), None, []),
 ('os-prober',             DEBIAN, None, []),
 ('osinfo-db',             ('https://releases.pagure.org/libosinfo/', 'osinfo-db-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('ostree',                ('https://github.com/ostreedev/ostree/releases', 'ostree-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('p11-kit',               ('https://p11-glue.freedesktop.org/releases/', 'p11-kit-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('packagekit',            ('https://freedesktop.org/software/PackageKit/releases/', 'PackageKit-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('pam',                   ('http://www.linux-pam.org/library/', 'Linux-PAM-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('pango1.0',              GNOME_FTP_URL ('pango', '([\d\.]+[02468])'), GNOME_FTP_URL ('pango'), ['gnome']),
 ('pangomm',               GNOME_FTP_URL ('pangomm', '([\d\.]+[02468])'), GNOME_FTP_URL ('pangomm'), ['gnome']),
 ('pangox-compat',         GNOME_FTP_URL ('pangox-compat'), None, ['gnome']),
# ('paramiko',              ('https://github.com/paramiko/paramiko/releases', 'archive/v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('parted',                ('https://ftp.gnu.org/gnu/parted/', 'parted-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('pastebinit',            LAUNCHPAD_URL ('pastebinit'), None, []),
 ('patch',                 ('https://ftp.gnu.org/gnu/patch/', 'patch-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('patchutils',            ('http://cyberelk.net/tim/data/patchutils/stable/', 'patchutils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('pavucontrol',           ('https://freedesktop.org/software/pulseaudio/pavucontrol/', 'pavucontrol-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('pcaudiolib',            GITHUB_URL ('rhdunn', 'pcaudiolib', '([0-9][0-9.]*)'), None, []),
 ('pciutils',              ('https://www.kernel.org/pub/software/utils/pciutils/', 'pciutils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('pcmciautils',           ('https://www.kernel.org/pub/linux/utils/kernel/pcmcia/', 'pcmciautils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('pcre3',                 ('ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/', 'pcre-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('pcsc-lite',             ('https://anonscm.debian.org/cgit/pcsclite/PCSC.git/refs/', 'pcsc-([0-9][0-9.]*)'), None, []),
 ('perl',                  ('http://www.cpan.org/src/5.0/', 'perl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['perl']),
 ('perl-openssl-defaults', DEBIAN, None, ['perl']),
 ('pexpect',               PYPI_URL ('pexpect'), None, []),
 ('phodav',                GNOME_FTP_URL ('phodav'), None, ['gnome']),
# ('pidgin',                SOURCEFORGE_URL ('pidgin', 'Pidgin/([0-9.]+)', 'pidgin-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('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, []),
# ('pidgin-otr',            ('http://www.cypherpunks.ca/otr/index.php', 'pidgin-otr-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('pillow',                ('http://pypi.python.org/pypi/Pillow', 'Pillow/([0-9][0-9.]*)'), None, ['python']),
# ('pilot-link',            ('http://www.pilot-link.org/', 'pilot-link-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('pinentry',              ('https://gnupg.org/ftp/gcrypt/pinentry/', 'pinentry-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('piston-mini-client',    ('http://pypi.python.org/pypi/piston-mini-client', 'piston-mini-client/([0-9][0-9.]*)'), None, ['python']),
 ('pitivi',                GNOME_FTP_URL ('pitivi'), None, ['gnome']),
 ('pixman',                ('https://xorg.freedesktop.org/releases/individual/lib/', 'pixman-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
# ('pkcs11-helper',         ('https://github.com/OpenSC/pkcs11-helper/releases', 'pkcs11-helper-([0-9][0-9.-]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('pkg-config',            ('https://pkgconfig.freedesktop.org/releases/', 'pkg-config-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('plainbox',              LAUNCHPAD_URL ('plainbox'), None, []),
# ('plainbox-provider-checkbox', LAUNCHPAD_URL ('plainbox-provider-checkbox'), None, []),
# ('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, []),
# ('planner',               GNOME_FTP_URL ('planner'), None, ['gnome']),
 ('plymouth',              ('https://freedesktop.org/software/plymouth/releases/', 'plymouth-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('pm-utils',              ('https://pm-utils.freedesktop.org/releases/', 'pm-utils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('pnm2ppa',               SOURCEFORGE_URL ('pnm2ppa', 'pnm2ppa/([0-9]\.[0-9.]+)', 'pnm2ppa-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('polari',                GNOME_FTP_URL ('polari', GNOME_STABLE_SERIES), GNOME_FTP_URL ('polari'), ['gnome']),
 ('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)
 ('policykit-1-gnome',     GNOME_FTP_URL ('polkit-gnome'), None, ['gnome']),
 ('policykit-desktop-privileges', UBUNTU, None, []),
 ('poppler-data',          ('https://poppler.freedesktop.org', 'poppler-data-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('poppler',               ('https://poppler.freedesktop.org', 'poppler-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('popt',                  ('http://rpm5.org/files/popt/', 'popt-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('popularity-contest',    DEBIAN, None, []),
# ('portaudio19',           ('http://www.portaudio.com/download.html', 'pa_stable_v19_([0-9]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('powermgmt-base',        DEBIAN, None, []),
 ('ppa-purge',             UBUNTU, None, []),
 ('pppconfig',             DEBIAN, None, []),
 ('ppp',                   ('https://download.samba.org/pub/ppp/', 'ppp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('pppoeconf',             DEBIAN, None, []),
 ('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
# ('presage',               SOURCEFORGE_URL ('presage', 'presage/([0-9.]+)', 'presage-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('procps',                ('http://procps.sourceforge.net/download.html', 'procps-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('proot',                 ('https://github.com/proot-me/PRoot/releases', 'archive/v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('protobuf',              ('https://github.com/google/protobuf/releases', 'protobuf-cpp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('psmisc',                SOURCEFORGE_URL ('psmisc', 'psmisc', 'psmisc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('pth',                   ('https://ftp.gnu.org/gnu/pth/', 'pth-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('ptouch-driver',         ('https://bitbucket.org/philpem/printer-driver-ptouch/downloads', 'printer-driver-ptouch-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('ptyprocess',            PYPI_URL ('ptyprocess'), None, []),
 ('pulseaudio',            ('https://freedesktop.org/software/pulseaudio/releases/', 'pulseaudio-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('pxlib',                 SOURCEFORGE_URL ('pxlib', 'pxlib/([0-9.]+)', 'pxlib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('pxljr',                 SOURCEFORGE_URL ('hp-pxl-jetready', 'hp-pxl-jetready/([0-9.]+)', 'pxljr-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('py3cairo',              ('http://cairographics.org/releases/', 'pycairo-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('pyasn1',                SOURCEFORGE_URL ('pyasn1', 'pyasn1', 'pyasn1-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('pyatspi',               GNOME_FTP_URL ('pyatspi', '([\d\.]+[02468])'), GNOME_FTP_URL ('pyatspi'), ['gnome']),
# ('pycurl',                PYPI_URL ('pycurl'), None, []),
 ('pygobject',             GNOME_FTP_URL ('pygobject'), None, ['gnome']),
# ('pygoocanvas',           GNOME_FTP_URL ('pygoocanvas'), None, ['gnome']),
# ('pygpgme',               PYPI_URL ('pygpgme'), None, []),
# ('pygtksourceview',       GNOME_FTP_URL ('pygtksourceview'), None, ['gnome']),
# ('pyinotify',             ('https://github.com/seb-m/pyinotify/tags', '([0-9][0-9.]*).zip'), None, []),
# ('pyjwt',                 ('https://github.com/jpadilla/pyjwt/releases', '>v([0-9][0-9.]*)<'), None, []),
# ('pyjunitxml',            LAUNCHPAD_URL ('pyjunitxml', 'junitxml'), None, []),
# ('pyopenssl',             PYPI_URL ('pyOpenSSL'), None, []),
# ('pyorbit',               GNOME_FTP_URL ('pyorbit'), None, ['gnome']),
# ('pyotherside',           ('https://thp.io/2011/pyotherside/', 'pyotherside-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('pyparsing',             SOURCEFORGE_URL ('pyparsing', 'pyparsing/pyparsing-([0-9][0-9.]*)', 'pyparsing-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('pyserial',              SOURCEFORGE_URL ('pyserial', 'pyserial/([0-9.]+)', 'pyserial-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('pysmbc',                PYPI_URL ('pysmbc'), None, []),
 ('python2.7',             ('https://www.python.org/ftp/python/', '(2\.7[0-9.]*)'), None, ['python']),
 ('python3.6',             ('https://www.python.org/ftp/python/', '(3\.6[0-9.]*)'), None, ['python']),
 ('python3-stdlib-extensions', ('https://www.python.org/ftp/python/', '(3\.6[0-9.]*)'), None, ['python']),
 ('python-apt',            DEBIAN, None, ['python']),
# ('python-boto',           ('https://github.com/boto/boto/releases', 'tag/([0-9][0-9.]*)'), None, ['python']),
 ('python-certifi',        PYPI_URL ('certifi'), None, ['python']),
# ('python-cffi',           PYPI_URL ('cffi'), None, ['python']),
# ('python-characteristic', ('http://pypi.python.org/pypi/characteristic/#downloads', 'characteristic-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
# ('python-configglue',     PYPI_URL ('configglue'), None, ['python']),
 ('python-crypto',         PYPI_URL ('pycrypto'), None, ['python']),
 ('python-cryptography',   PYPI_URL ('cryptography'), None, ['python']),
 ('python-cups',           ('http://cyberelk.net/tim/data/pycups/', 'pycups-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
 ('python-debian',         DEBIAN, None, ['python']),
 ('python-defaults',       DEBIAN, None, ['python']),
 ('python-defer',          LAUNCHPAD_URL ('python-defer', 'defer'), None, ['python']),
# ('python-dbusmock',       PYPI_URL ('python-dbusmock'), None, ['python']),
# ('python-fixtures',       LAUNCHPAD_URL ('python-fixtures', 'fixtures'), None, ['python']),
# ('python-gnupg',         ('https://bitbucket.org/vinay.sajip/python-gnupg/downloads', 'python-gnupg-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
# ('python-guacamole',      PYPI_URL ('guacamole'), None, ['python']),
 ('python-httplib2',       ('https://github.com/jcgregorio/httplib2/tags', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
 ('python-idna',           PYPI_URL ('idna'), None, ['python']),
# ('python-ipaddress',      PYPI_URL ('ipaddress'), None, ['python']),
 ('python-keyring',        PYPI_URL ('keyring'), None, ['python']),
 ('python-launchpadlib',   LAUNCHPAD_URL ('launchpadlib'), None, ['python']),
# ('python-lockfile',       PYPI_URL ('lockfile'), None, ['python']),
 ('python-oauth',          ('https://pypi.python.org/pypi/oauth/([0-9][0-9.]+)', 'oauth-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
# ('python-oauthlib',       PYPI_URL ('oauthlib'), None, ['python']),
# ('python-padme',          PYPI_URL ('padme'), None, ['python']),
# ('python-psutil',         PYPI_URL ('psutil'), None, ['python']),
# ('python-pymysql',        ('https://github.com/PyMySQL/PyMySQL/releases', 'archive/([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
 ('python-reportlab',      ('http://www.reportlab.com/ftp/', 'reportlab-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
 ('python-secretstorage',  PYPI_URL ('SecretStorage'), None, ['python']),
# ('python-secretstorage',  ('https://github.com/mitya57/secretstorage/releases', 'tag/([0-9][0-9.]*)'), None, ['python']),
# ('python-service-identity', PYPI_URL ('service_identity'), None, ['python']),
 ('python-setuptools',     PYPI_URL ('setuptools'), None, ['python']),
 ('python-systemd',        ('https://github.com/systemd/python-systemd/tags', 'tag/v([0-9][0-9.]*)'), None, ['python']),
# ('python-testtools',      LAUNCHPAD_URL ('testtools'), None, ['python']),
 ('python-wadllib',        LAUNCHPAD_URL ('wadllib'), None, ['python']),
 ('python-urllib3',        PYPI_URL ('urllib3'), None, ['python']),
# ('python-xklavier',       UNTRACKED, None, ['python']), # Debian package says http://devel.randomink.org/projects/python-xklavier but no response from server
# ('pyudev',                PYPI_URL ('pyudev'), None, ['python']),
 ('pyxdg',                 ('https://people.freedesktop.org/~lanius/', 'pyxdg-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['python']),
# ('pyyaml',                ('http://pyyaml.org/download/pyyaml/', 'PyYAML-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('qdjango',               ('https://github.com/jlaine/qdjango/releases', 'tag/v([0-9][0-9.]*)'), None, []),
# ('qemu',                  ('http://download.qemu-project.org/', 'qemu-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('qpdf',                  SOURCEFORGE_URL ('qpdf', 'qpdf/([0-9.]+)', 'qpdf-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('qqwing',                ('http://qqwing.com/download.html', 'qqwing-([\d.]+).tar.gz'), None, []),
# ('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, []),
# ('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, []),
# ('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, []),
# ('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, []),
# ('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, []),
# ('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, []),
# ('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, []),
 ('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, []),
# ('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, []),
# ('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, []),
# ('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, []),
# ('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, []),
# ('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, []),
 ('quadrapassel',          GNOME_FTP_URL ('quadrapassel', '3.22'), GNOME_FTP_URL ('quadrapassel'), ['gnome']),
# ('quassel',               ('http://quassel-irc.org/pub/', 'quassel-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('radeontool',            ('https://people.freedesktop.org/~airlied/radeontool/', 'radeontool-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('raptor2',               ('http://download.librdf.org/source/', 'raptor2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('rarian',                GNOME_FTP_URL ('rarian'), None, ['gnome']),
 ('rasqal',                ('http://download.librdf.org/source/', 'rasqal-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('rastertosag-gdi',       ('http://www.openprinting.org/download/printing/rastertosag-gdi/', 'rastertosag-gdi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('rdesktop',              SOURCEFORGE_URL ('rdesktop', 'rdesktop/([0-9.]+)', 'rdesktop-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('rdflib',                ('https://github.com/RDFLib/rdflib/downloads', 'rdflib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('readline6',             ('https://ftp.gnu.org/gnu/readline/', 'readline-(6[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('readline',              ('https://ftp.gnu.org/gnu/readline/', 'readline-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('re2c',                  SOURCEFORGE_URL ('re2c', 're2c/([0-9.]+)', 're2c-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('realmd',                ('https://freedesktop.org/software/realmd/releases/', 'realmd-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('redland',               ('http://download.librdf.org/source/', 'redland-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('rekonq',                SOURCEFORGE_URL ('rekonq', '([0-9.]+)', 'rekonq-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('remmina',               GITHUB_URL ('FreeRDP', 'Remmina', 'v([0-9][0-9.]*)'), None, []),
# ('rename',                CPAN_URL ('File-Rename'), None, ['perl']),
 ('requests',              PYPI_URL ('requests'), None, []),
 ('retro-gtk',             GNOME_FTP_URL ('retro-gtk', '([\d\.]+[02468])'), GNOME_FTP_URL ('retro-gtk'), ['gnome']),
 ('rfkill',                ('https://www.kernel.org/pub/software/network/rfkill/', 'rfkill-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('rhythmbox',             GNOME_FTP_URL ('rhythmbox'), None, ['gnome']),
 ('rhythmbox-plugin-alternative-toolbar', GITHUB_URL ('fossfreedom', 'alternative-toolbar', 'v([0-9][0-9.]*)'), None, ['gnome']), 
 ('rsync',                 ('https://download.samba.org/pub/rsync/', 'rsync-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('rtkit',                 ('http://0pointer.de/public/', 'rtkit-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('rtmpdump',              ('http://rtmpdump.mplayerhq.hu/download/', 'rtmpdump-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('rygel',                 GNOME_FTP_URL ('rygel', '([\d\.]+[02468])'), GNOME_FTP_URL ('rygel'), ['gnome']),
 ('s2tc',                  GITHUB_URL ('divVerent', 's2tc', 'v([0-9][0-9.]*)'), None, []),
 ('samba',                 ('https://download.samba.org/pub/samba/', 'samba-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('sane-backends',         ('https://anonscm.debian.org/cgit/sane/sane-backends.git/refs/', 'RELEASE_([0-9][0-9._]*)'), None, []),
 ('sbc',                   ('https://www.kernel.org/pub/linux/bluetooth/', 'sbc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('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, []),
# ('schroedinger',          ('http://diracvideo.org/download/schroedinger/', 'schroedinger-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('scowl',                 ('http://wordlist.sourceforge.net/', 'scowl-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('scrot',                 ('http://linuxbrit.co.uk/downloads/', 'scrot-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('seahorse',              GNOME_FTP_URL ('seahorse', '([\d\.]+[02468])'), GNOME_FTP_URL ('seahorse'), ['gnome']),
 ('seahorse-nautilus',     GNOME_FTP_URL ('seahorse-nautilus'), None, ['gnome']),
 ('seahorse-sharing',      GNOME_FTP_URL ('seahorse-sharing', '([\d\.]+[02468])'), GNOME_FTP_URL ('seahorse-sharing'), ['gnome']),
 ('secureboot-db',         UBUNTU, None, []),
 ('sed',                   ('https://ftp.gnu.org/gnu/sed/', 'sed-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('seed',                  GNOME_FTP_URL ('seed'), None, ['gnome']),
# ('sensible-utils',        DEBIAN, None, []),
# ('sessioninstaller',      LAUNCHPAD_URL ('sessioninstaller'), None, []),
 ('session-migration',     UBUNTU, None, []),
 ('sg3-utils',             ('http://sg.danny.cz/sg/p/', 'sg3_utils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('sgml-base',             DEBIAN, None, []),
# ('sgml-data',             DEBIAN, None, []),
 ('shadow',                ('https://pkg-shadow.alioth.debian.org/releases/', 'shadow-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('shared-mime-info',      ('https://people.freedesktop.org/~hadess/', 'shared-mime-info-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('shotwell',              GNOME_FTP_URL ('shotwell', '([\d\.]+[02468])'), GNOME_FTP_URL ('shotwell'), ['gnome']),
 ('simplejson',            PYPI_URL ('simplejson'), None, []),
 ('simple-scan',           GNOME_FTP_URL ('simple-scan', GNOME_STABLE_SERIES), GNOME_FTP_URL ('simple-scan'), ['gnome']),
# ('sip4',                  SOURCEFORGE_URL ('pyqt', 'sip/sip-([0-9.]+)', 'sip-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('six',                   PYPI_URL ('six'), None, []),
# ('slang2',                ('ftp://space.mit.edu/pub/davis/slang/latest/', 'slang-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('slv2',                  ('http://download.drobilla.net/', 'slv2-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('snapd',                 GITHUB_URL ('snapcore', 'snapd', '([0-9][0-9.]*)'), None, []),
 ('snapd-glib',            GITHUB_URL ('snapcore', 'snapd-glib', '([0-9][0-9.]*)'), None, []),
 ('snappy',                GITHUB_URL ('google', 'snappy', '([0-9][0-9.]*)'), None, []),
# ('sni-qt',                LAUNCHPAD_URL ('sni-qt'), None, []),
# ('snowball',              UNKNOWN, None, []),
 ('software-properties',   UBUNTU, None, []),
 ('sonic',                 GITHUB_URL ('waywardgeek', 'sonic', 'release-([0-9][0-9.]*)'), None, []),
 ('sound-juicer',          GNOME_FTP_URL ('sound-juicer'), None, ['gnome']),
 ('sound-theme-freedesktop', ('https://cgit.freedesktop.org/sound-theme-freedesktop/', 'tag/\?id=([0-9][0-9.]*)'), None, []),
# ('soundtouch',            ('http://www.surina.net/soundtouch/sourcecode.html', 'soundtouch-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('spandsp',               ('http://www.soft-switch.org/downloads/spandsp/', 'spandsp-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('speech-dispatcher',     ('https://devel.freebsoft.org/pub/projects/speechd/', 'speech-dispatcher-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('speex',                 ('http://downloads.xiph.org/releases/speex/', 'speex-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('sphinx',                PYPI_URL ('Sphinx'), None, []),
 ('spice-vdagent',         ('https://www.spice-space.org/download/releases/', 'spice-vdagent-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
 ('splix',                 SOURCEFORGE_URL ('splix', 'splix/([0-9.]+)', 'splix-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('sqlite3',               ('http://www.sqlite.org/', 'releaselog/(\d[_\d]*).html'), None, []),
 ('squashfs-tools',        SOURCEFORGE_URL ('squashfs', 'squashfs/squashfs([0-9.]+)', 'squashfs([0-9][0-9.]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('ssl-cert',              DEBIAN, None, []),
 ('startup-notification',  ('https://freedesktop.org/software/startup-notification/releases/', 'startup-notification-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('strace',                SOURCEFORGE_URL ('strace', 'strace/([0-9.]+)', 'strace-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('suitesparse',           ('http://faculty.cse.tamu.edu/davis/SuiteSparse/', 'SuiteSparse-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('swell-foop',            GNOME_FTP_URL ('swell-foop', GNOME_STABLE_SERIES), GNOME_FTP_URL ('swell-foop'), ['gnome']),
 ('syncevolution',         ('https://download.01.org/syncevolution/syncevolution/sources/', 'syncevolution-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('system-image',          LAUNCHPAD_URL ('ubuntu-system-image', 'system-image'), None, []),
# ('synaptic',              DEBIAN, None, []),
# ('synaptiks',             PYPI_URL ('synaptiks'), None, []),
# ('sysfsutils',            SOURCEFORGE_URL ('linux-diag', 'sysfsutils/sysfsutils-([0-9.]+)', 'sysfsutils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []), # FIXME: Subdirs
 ('syslinux',              ('https://www.kernel.org/pub/linux/utils/boot/syslinux/', 'syslinux-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('syslinux-legacy',       UBUNTU, None, []), # Ignore as just a legacy package until everything uses syslinux?
 ('sysprof',               GNOME_FTP_URL ('sysprof', GNOME_STABLE_SERIES), GNOME_FTP_URL ('sysprof'), ['gnome']),
 ('system-config-printer',  ('https://github.com/zdohnal/system-config-printer/releases', 'system-config-printer-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('system-tools-backends', GNOME_FTP_URL ('system-tools-backends'), None, ['gnome']),
 ('systemd',               ('https://github.com/systemd/systemd/releases', 'v([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('sysvinit',              ('http://download.savannah.gnu.org/releases/sysvinit/', 'sysvinit-([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('t1utils',               ('http://www.lcdf.org/type/', 't1utils-([0-9][0-9a-zA-Z.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('taglib',                ('https://github.com/taglib/taglib/releases', 'taglib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('tali',                  GNOME_FTP_URL ('tali', '3.22'), GNOME_FTP_URL ('tali'), ['gnome']),
 ('talloc',                ('https://download.samba.org/pub/talloc/', 'talloc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('tar',                   ('https://ftp.gnu.org/gnu/tar/', 'tar-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('tcl8.6',                SOURCEFORGE_URL ('tcl', 'Tcl/(8.6.[0-9.]+)', 'tcl([0-9][0-9.]*)-src.tar.gz'), None, []),
 ('tcltk-defaults',        DEBIAN, None, []),
 ('tcpdump',               ('http://www.tcpdump.org/release/', 'tcpdump-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('tcp-wrappers',          DEBIAN, None, []),
 ('tdb',                   ('https://download.samba.org/pub/tdb/', 'tdb-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('telepathy-farstream',   ('https://telepathy.freedesktop.org/releases/telepathy-farstream/', 'telepathy-farstream-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['ubuntu-touch']),
# ('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)+'), []),
 ('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)+'), []),
# ('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)+'), []),
# ('telepathy-idle',        ('https://telepathy.freedesktop.org/releases/telepathy-idle/', 'telepathy-idle-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('telepathy-logger',      ('https://telepathy.freedesktop.org/releases/telepathy-logger/', 'telepathy-logger-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('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)+'), []),
# ('telepathy-qt',          ('https://telepathy.freedesktop.org/releases/telepathy-qt/', 'telepathy-qt-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('telepathy-salut',       ('https://telepathy.freedesktop.org/releases/telepathy-salut/', 'telepathy-salut-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('template-glib',         GNOME_FTP_URL ('template-glib', GNOME_STABLE_SERIES), GNOME_FTP_URL ('template-glib'), ['gnome']),
 ('tevent',                ('https://download.samba.org/pub//tevent/', 'tevent-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('texinfo',               ('https://ftp.gnu.org/gnu/texinfo/', 'texinfo-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('texlive-bin',           ('ftp://ftp.ist.utl.pt/pub/ctan/systems/texlive/Source/', 'texlive-([0-9][a-z0-9.]*).source.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('thermald',              ('https://github.com/01org/thermal_daemon/releases', 'v([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('thunderbird',           ('https://www.mozilla.org/thunderbird/', 'product=thunderbird-([0-9][0-9.]*)'), None, []),
 ('tiff',                  ('http://download.osgeo.org/libtiff/', 'tiff-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('time',                  ('https://ftp.gnu.org/gnu/time/', 'time-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('tinyxml',               ('http://sourceforge.net/projects/tinyxml/files/tinyxml/', 'tinyxml/([0-9][0-9.]*)/'), None, []),
 ('tomboy',                GNOME_FTP_URL ('tomboy'), None, ['gnome']),
 ('tk8.6',                 ('https://www.tcl.tk/software/tcltk/download.html', 'tk(8.6.[0-9.]*)-src.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('totem',                 GNOME_FTP_URL ('totem', GNOME_STABLE_SERIES), GNOME_FTP_URL ('totem'), ['gnome']),
 ('totem-pl-parser',       GNOME_FTP_URL ('totem-pl-parser', '([\d\.]+[02468])'), GNOME_FTP_URL ('totem-pl-parser'), ['gnome']),
 ('tracker',               GNOME_FTP_URL ('tracker', '([\d\.]+[02468])'), GNOME_FTP_URL ('tracker'), ['gnome']),
 ('tracker-miners',               GNOME_FTP_URL ('tracker', '([\d\.]+[02468])'), GNOME_FTP_URL ('tracker'), ['gnome']),
 ('transmission',          ('https://github.com/transmission/transmission-releases', 'transmission-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('tslib',                 ('https://github.com/kergoth/tslib/tags', '([0-9][0-9.]*).zip'), None, []),
 ('ttf-ancient-fonts',     DEBIAN, None, []),
# ('twisted',               ('http://twistedmatrix.com/Releases/Twisted/([0-9.]*)', 'Twisted-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('twisted-names',         ('http://twistedmatrix.com/Releases/Names/([0-9.]*)', 'TwistedNames-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('twisted-web',           ('http://twistedmatrix.com/Releases/Web/([0-9.]*)', 'TwistedWeb-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('tzdata',                ('ftp://ftp.iana.org/tz/releases/', 'tzdata(201[0-9]+[a-z]).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('ubufox',                UBUNTU, None, []),
 ('ubuntu-docs',           UBUNTU, None, []),
 ('ubuntu-drivers-common', UBUNTU, None, []),
 ('ubuntu-font-family-sources', ('http://font.ubuntu.com', 'ubuntu-font-family-([0-9][0-9.]*).zip'), None, []),
 ('ubuntu-gnome-default-settings', UBUNTU, None, []),
 ('ubuntu-gnome-meta',     UBUNTU, None, []),
 ('ubuntu-gnome-wallpapers', UBUNTU, None, []),
 ('ubuntu-keyring',        UBUNTU, None, []),
 ('ubuntu-meta',           UBUNTU, None, []),
 ('ubuntu-settings',       UBUNTU, None, []),
 ('ubuntu-themes',         UBUNTU, None, []),
 ('ubuntu-touch-sounds',   UBUNTU, None, []),
 ('ubuntu-release-upgrader', UBUNTU, None, []),
 ('ubuntu-sounds',         UBUNTU, None, []),
# ('ubuntu-sso-client',     LAUNCHPAD_URL ('ubuntu-sso-client'), None, []),
 ('ubuntu-system-service', UBUNTU, None, []),
 ('ubuntu-wallpapers',     UBUNTU, None, []),
 ('ucf',                   DEBIAN, None, []),
 ('udisks2',               ('https://udisks.freedesktop.org/releases/', 'udisks-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('ufw',                   LAUNCHPAD_URL ('ufw'), None, []),
 ('unattended-upgrades',   DEBIAN, None, []),
# ('unbound',               ('https://www.unbound.net/downloads/', 'unbound-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('unity-api',             UBUNTU, None, []),
# ('unity-asset-pool',      LAUNCHPAD_URL ('unity-asset-pool'), None, []),
 ('unity-control-center',  UBUNTU, None, []),
# ('unity-greeter',         LAUNCHPAD_URL ('unity-greeter'), None, []),
 ('unity-scopes-api',      UBUNTU, None, []),
 ('unity-settings-daemon', UBUNTU, None, []),
 ('unzip',                 ('ftp://ftp.info-zip.org/pub/infozip/src/', 'unzip([6-9][0-9]*).zip'), None, []), # NOTE: uses mental versioning
 ('unoconv',               ('http://dag.wiee.rs/home-made/unoconv/', 'unoconv-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('update-inetd',          DEBIAN, None, []),
 ('update-manager',        UBUNTU, None, []),
 ('update-motd',           UBUNTU, None, []),
 ('update-notifier',       UBUNTU, None, []),
 ('upower',                ('https://upower.freedesktop.org/releases/', 'upower-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('ureadahead',            LAUNCHPAD_URL ('ureadahead'), None, []),
 ('url-dispatcher',        UBUNTU, None, []),
 ('usb-creator',           UBUNTU, None, []),
 ('usb-modeswitch-data',   ('http://www.draisberghof.de/usb_modeswitch/', 'usb-modeswitch-data-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('usb-modeswitch',        ('http://www.draisberghof.de/usb_modeswitch/', 'usb-modeswitch-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('usbmuxd',               ('http://cgit.sukimashita.com/usbmuxd.git/', 'usbmuxd-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('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?
# ('ust',                   ('https://lttng.org/files/lttng-ust/', 'lttng-ust-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('ustr',                  ('http://www.and.org/ustr/', 'ustr/([0-9][0-9.]*)'), None, []),
 ('util-linux',            ('https://www.kernel.org/pub/linux/utils/util-linux/', 'v([0-9][0-9.]*)'), None, []),
 ('v4l-utils',             ('http://linuxtv.org/downloads/v4l-utils/', 'v4l-utils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('vala',                  GNOME_FTP_URL ('vala'), None, ['gnome']),
# ('vbetool',               ('http://www.codon.org.uk/~mjg59/vbetool/download/', 'vbetool-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('vinagre',               GNOME_FTP_URL ('vinagre', '3.22'), GNOME_FTP_URL ('vinagre'), ['gnome']),
 ('vino',                  GNOME_FTP_URL ('vino', '3.22'), GNOME_FTP_URL ('vino'), ['gnome']),
# ('virtkey',               LAUNCHPAD_URL ('python-virtkey', 'virtkey'), None, ['python']),
# ('vo-aacenc',             SOURCEFORGE_URL ('opencore-amr', 'vo-aacenc', 'vo-aacenc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('vo-amrwbenc',           SOURCEFORGE_URL ('opencore-amr', 'vo-amrwbenc', 'vo-amrwbenc-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('vorbis-tools',          ('http://downloads.xiph.org/releases/vorbis/', 'vorbis-tools-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('vte2.91',               GNOME_FTP_URL ('vte', '([\d\.]+[02468])'), GNOME_FTP_URL ('vte'), ['gnome']),
 ('wavpack',               ('http://www.wavpack.com/downloads.html', 'wavpack-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('wayland',               ('https://wayland.freedesktop.org/releases/', 'wayland-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('webkitgtk',             ('https://webkitgtk.org/releases', 'webkitgtk-(2.4.[0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['gnome']),
 ('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']),
 ('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, []),
 ('wget',                  ('https://ftp.gnu.org/gnu/wget/', 'wget-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('whoopsie',              UBUNTU, None, []),
 ('whoopsie-preferences',  UBUNTU, None, []),
# ('wildmidi',              SOURCEFORGE_URL ('wildmidi', 'wildmidi', 'wildmidi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('wireless-regdb',        ('https://www.kernel.org/pub/software/network/wireless-regdb/', 'wireless-regdb-([0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('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, []),
 ('wpa',                   ('http://www.w1.fi/releases/', 'wpa_supplicant-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('x11-apps',              DEBIAN, None, ['xorg']),
 ('x11-session-utils',     DEBIAN, None, ['xorg']),
 ('x11-utils',             DEBIAN, None, ['xorg']),
 ('x11-xkb-utils',         DEBIAN, None, ['xorg']),
 ('x11-xserver-utils',     DEBIAN, None, ['xorg']),
 ('x11proto-bigreqs',      ('https://xorg.freedesktop.org/releases/individual/proto/', 'bigreqsproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-composite',    ('https://xorg.freedesktop.org/releases/individual/proto/', 'compositeproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-core',         ('https://xorg.freedesktop.org/releases/individual/proto/', 'xproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-damage',       ('https://xorg.freedesktop.org/releases/individual/proto/', 'damageproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-dmx',          ('https://xorg.freedesktop.org/releases/individual/proto/', 'dmxproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-dri2',         ('https://xorg.freedesktop.org/releases/individual/proto/', 'dri2proto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-dri3',         ('https://xorg.freedesktop.org/releases/individual/proto/', 'dri3proto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-fixes',        ('https://xorg.freedesktop.org/releases/individual/proto/', 'fixesproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-fonts',        ('https://xorg.freedesktop.org/releases/individual/proto/', 'fontsproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-gl',           ('https://xorg.freedesktop.org/releases/individual/proto/', 'glproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-input',        ('https://xorg.freedesktop.org/releases/individual/proto/', 'inputproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-kb',           ('https://xorg.freedesktop.org/releases/individual/proto/', 'kbproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-present',      ('https://xorg.freedesktop.org/releases/individual/proto/', 'presentproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-randr',        ('https://xorg.freedesktop.org/releases/individual/proto/', 'randrproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-record',       ('https://xorg.freedesktop.org/releases/individual/proto/', 'recordproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-render',       ('https://xorg.freedesktop.org/releases/individual/proto/', 'renderproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-resource',     ('https://xorg.freedesktop.org/releases/individual/proto/', 'resourceproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-scrnsaver',    ('https://xorg.freedesktop.org/releases/individual/proto/', 'scrnsaverproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-video',        ('https://xorg.freedesktop.org/releases/individual/proto/', 'videoproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-xcmisc',       ('https://xorg.freedesktop.org/releases/individual/proto/', 'xcmiscproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-xext',         ('https://xorg.freedesktop.org/releases/individual/proto/', 'xextproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-xf86dri',      ('https://xorg.freedesktop.org/releases/individual/proto/', 'xf86driproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-xf86vidmode',  ('https://xorg.freedesktop.org/releases/individual/proto/', 'xf86vidmodeproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('x11proto-xinerama',     ('https://xorg.freedesktop.org/releases/individual/proto/', 'xineramaproto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
# ('xapian-bindings',       ('http://xapian.org/download', 'xapian-bindings-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('xapian-core',           ('https://xapian.org/download', 'xapian-core-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('xauth',                 ('https://xorg.freedesktop.org/releases/individual/app/', 'xauth-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('xbitmaps',              ('https://xorg.freedesktop.org/releases/individual/data/', 'xbitmaps-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('xcb-proto',             ('https://xorg.freedesktop.org/releases/individual/xcb/', 'xcb-proto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('xcb-util',              ('https://xorg.freedesktop.org/releases/individual/xcb/', 'xcb-util-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('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']),
 ('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']),
 ('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']),
 ('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']),
# ('xchat',                 SOURCEFORGE_URL ('xchat', '', 'xchat-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('xchat-gnome',           GNOME_FTP_URL ('xchat-gnome'), None, ['gnome']),
 ('xcursor-themes',        ('https://xorg.freedesktop.org/releases/individual/data/', 'xcursor-themes-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('xdg-desktop-portal',    GITHUB_URL ('flatpak', 'xdg-desktop-portal', '([0-9][0-9.]*)'), None, []),
 ('xdg-desktop-portal-gtk', GITHUB_URL ('flatpak', 'xdg-desktop-portal-gtk', '([0-9][0-9.]*)'), None, []),
 ('xdg-user-dirs-gtk',     GNOME_FTP_URL ('xdg-user-dirs-gtk'), None, ['gnome']),
 ('xdg-user-dirs',         ('https://user-dirs.freedesktop.org/releases/', 'xdg-user-dirs-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('xdg-utils',             ('https://portland.freedesktop.org/download/', 'xdg-utils-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('xdiagnose',             UBUNTU, None, []),
 ('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']),
 ('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']),
 ('xfonts-base',           DEBIAN, None, []),
 ('xfonts-encodings',      ('https://xorg.freedesktop.org/releases/individual/font/', 'encodings-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
# ('xfonts-mathml',         DEBIAN, None, []),
 ('xfonts-scalable',       ('https://xorg.freedesktop.org/releases/individual/font/', 'font-bitstream-type1-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('xfonts-utils',          DEBIAN, None, []),
 ('xft',                   ('https://xorg.freedesktop.org/releases/individual/lib/', 'libXft-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('xinit',                 ('https://xorg.freedesktop.org/releases/individual/app/', 'xinit-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('xinput',                ('https://xorg.freedesktop.org/releases/individual/app/', 'xinput-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('zip',                   ('ftp://ftp.info-zip.org/pub/infozip/src/', 'zip([3-9][0-9]*).zip'), None, []), # NOTE: uses mental versioning
 ('x-kit',                 LAUNCHPAD_URL ('xorgparser', 'x-kit'), None, []),
# ('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']),
# ('xlsxwriter',            PYPI_URL ('XlsxWriter'), None, []),
 ('xml-core',              DEBIAN, None, []),
 ('xorg',                  DEBIAN, None, ['xorg']),
 ('xorg-docs',             ('https://xorg.freedesktop.org/releases/individual/doc/', 'xorg-docs-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
# ('xorg-gtest',            LAUNCHPAD_URL ('xorg-gtest'), None, []),
 ('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']),
 ('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']),
 ('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']),
 ('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']),
 ('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']),
 ('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']),
 ('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']),
 ('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']),
# ('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']),
 ('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']),
 ('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']),
 ('xserver-xorg-video-mach64', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-mach64-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('xserver-xorg-video-neomagic', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-neomagic-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('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']),
 ('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']),
 ('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']),
 ('xserver-xorg-video-r128', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-r128-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('xserver-xorg-video-savage', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-savage-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('xserver-xorg-video-siliconmotion', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-siliconmotion-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('xserver-xorg-video-sisusb', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-sisusb-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('xserver-xorg-video-tdfx', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-tdfx-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('xserver-xorg-video-trident', ('https://xorg.freedesktop.org/releases/individual/driver/', 'xf86-video-trident-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('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']),
 ('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']),
 ('xterm',                 ('https://invisible-mirror.net/archives/xterm/', 'xterm-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['xorg']),
 ('xz-utils',              ('http://tukaani.org/xz/', 'xz-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('yajl',                  GITHUB_URL ('lloyd', 'yajl', '([0-9][0-9.]*)'), None, []),
 ('yelp',                  GNOME_FTP_URL ('yelp', GNOME_STABLE_SERIES), GNOME_FTP_URL ('yelp'), ['gnome']),
 ('yelp-tools',            GNOME_FTP_URL ('yelp-tools', '([\d\.]+[02468])'), GNOME_FTP_URL ('yelp-tools'), ['gnome']),
 ('yelp-xsl',              GNOME_FTP_URL ('yelp-xsl', '([\d\.]+[02468])'), GNOME_FTP_URL ('yelp-xsl'), ['gnome']),
# ('zbar',                  SOURCEFORGE_URL ('zbar', 'zbar/([0-9.]+)', 'zbar-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('zeitgeist',             LAUNCHPAD_URL ('zeitgeist'), None, []),
 ('zenity',                GNOME_FTP_URL ('zenity'), None, ['gnome']),
# ('zephyr',                ('http://zephyr.1ts.org/files/', 'zephyr-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('zeromq3',               GITHUB_URL ('zeromq', 'zeromq4-1', 'v([0-9][0-9.]*)'), None, []),
 ('zip',                   ('ftp://ftp.info-zip.org/pub/infozip/src/', 'zip([34][0-9]*).zip'), None, []), # NOTE: uses mental versioning
 ('zlib',                  ('http://www.zlib.net/', 'zlib-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('zmqpp',                 GITHUB_URL ('zeromq', 'zmqpp', '([0-9][0-9.]*)'), None, []),
 ('zope.interface',        PYPI_URL ('zope.interface'), None, []),
 ('zsync',                 ('http://zsync.moria.org.uk/downloads', 'zsync-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, [])
# ('zvbi',                  SOURCEFORGE_URL ('zapping', 'zvbi/([0-9.]+)', 'zvbi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, [])
]

kubuntu_package_info = [
 ('akonadi-facebook',      UNTRACKED, None, ['kde']),
 ('akonadi',               ('http://download.kde.org/stable/akonadi/src/', 'akonadi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
 ('amarok',                ('http://download.kde.org/stable/amarok/([0-9.]+)/src/', 'amarok-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
 ('ark',                   KDE_FTP_URL ('ark'), None, ['kde']),
 ('audiocd-kio',           KDE_FTP_URL ('audiocd-kio'), None, ['kde']),
 ('bluedevil',             ('http://download.kde.org/stable/bluedevil/([0-9.]+)/src/', 'bluedevil-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
 ('calligra',              ('http://download.kde.org/stable/calligra-latest/', 'calligra-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
 ('extra-cmake-modules',   DEBIAN, None, ['kde']),
 ('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']),
 ('debconf-kde',           DEBIAN, None, ['kde']),
 ('dragon',                KDE_FTP_URL ('dragon'), None, ['kde']),
 ('gwenview',              KDE_FTP_URL ('gwenview'), None, ['kde']),
 ('ibus-pinyin',           GITHUB_URL ('ibus', 'ibus-pinyin', '([0-9][0-9.]*)'), None, []),
 ('k3b',                   SOURCEFORGE_URL ('k3b', 'k3b/([0-9.]+)', 'k3b-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
 ('kaccessible',           KDE_FTP_URL ('kaccessible'), None, ['kde']),
 ('kamera',                KDE_FTP_URL ('kamera'), None, ['kde']),
 ('kamoso',                UNTRACKED, None, ['kde']),
 ('kate',                  KDE_FTP_URL ('kate'), None, ['kde']),
 ('kcalc',                 KDE_FTP_URL ('kcalc'), None, ['kde']),
 ('kde4libs',              ('http://download.kde.org/stable/applications/([0-9.]+)/src/', 'kdelibs-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
 ('kdeadmin',              KDE_FTP_URL ('kdeadmin'), None, ['kde']),
 ('kde-baseapps',          KDE_FTP_URL ('kde-baseapps'), None, ['kde']),
 ('kde-base-artwork',      KDE_FTP_URL ('kde-base-artwork'), None, ['kde']),
 ('kdegames',              KDE_FTP_URL ('kdegames'), None, ['kde']),
 ('kdegraphics-strigi-analyzer', KDE_FTP_URL ('kdegraphics-strigi-analyzer'), None, ['kde']),
 ('kde-gtk-config',        UNTRACKED, None, ['kde']),
 ('kdenetwork',            KDE_FTP_URL ('kdenetwork'), None, ['kde']),
 ('kdepim',                KDE_FTP_URL ('kdepim'), None, ['kde']),
 ('kdepimlibs',            KDE_FTP_URL ('kdepimlibs'), None, ['kde']),
 ('kdepim-runtime',        KDE_FTP_URL ('kdepim-runtime'), None, ['kde']),
 ('kdeplasma-addons',      KDE_FTP_URL ('kdeplasma-addons'), None, ['kde']),
 ('kde-runtime',           KDE_FTP_URL ('kde-runtime'), None, ['kde']),
 ('kdesudo',               LAUNCHPAD_URL ('kdesudo'), None, ['kde']),
 ('kde-wallpapers',        KDE_FTP_URL ('kde-wallpapers'), None, ['kde']),
 ('kde-workspace',         KDE_FTP_URL ('kde-workspace'), None, ['kde']),
 ('kmag',                  KDE_FTP_URL ('kmag'), None, ['kde']),
 ('kmix',                  KDE_FTP_URL ('kmix'), None, ['kde']),
 ('kmod',                  ('https://www.kernel.org/pub/linux/utils/kernel/kmod/', 'kmod-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('kmousetool',            KDE_FTP_URL ('kmousetool'), None, ['kde']),
 ('ksnapshot',             KDE_FTP_URL ('ksnapshot'), None, ['kde']),
 ('ktorrent',              ('http://ktorrent.org/downloads/([0-9.]+)/', 'ktorrent-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
 ('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']),
 ('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']),
 ('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']),
 ('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']),
 ('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']),
 ('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']),
 ('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']),
 ('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']),
 ('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']),
 ('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']),
 ('kvkbd',                 UNTRACKED, None, ['kde']),
 ('kwallet',               KDE_FTP_URL ('kwallet'), None, ['kde']),
 ('kubuntu-default-settings', UBUNTU, None, ['kde']),
 ('kubuntu-docs',          UBUNTU, None, ['kde']),
 ('kubuntu-firefox-installer', UBUNTU, None, ['kde']),
 ('kubuntu-netbook-default-settings', UBUNTU, None, ['kde']),
 ('kubuntu-notification-helper', UBUNTU, None, ['kde']),
 ('kubuntu-web-shortcuts', UBUNTU, None, ['kde']),
 ('libkcddb',              KDE_FTP_URL ('libkccdb'), None, ['kde']),
 ('libkcompactdisc',       KDE_FTP_URL ('libkcompactdisc'), None, ['kde']),
 ('libkdcraw',             KDE_FTP_URL ('libkdcraw'), None, ['kde']),
 ('libkexiv2',             KDE_FTP_URL ('libkexiv2'), None, ['kde']),
 ('libkgapi',              ('http://download.kde.org/stable/libkgapi/([0-9.]+)/src/', 'libkgapi-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
 ('libkipi',               KDE_FTP_URL ('libkipi'), None, ['kde']),
 ('libkolab',              ('http://mirror.kolabsys.com/pub/releases/', 'libkolab-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
 ('libkolabxml',           ('http://mirror.kolabsys.com/pub/releases/', 'libkolabxml-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
 ('libksane',              KDE_FTP_URL ('libksane'), None, ['kde']),
 ('libksba',               ('https://gnupg.org/ftp/gcrypt/libksba/', 'libksba-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
 ('libktorrent',           ('http://ktorrent.org/downloads/([0-9.]+)/', 'libktorrent-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
 ('lightdm-kde',           ('http://download.kde.org/unstable/lightdm-kde/src/', 'lightdm-kde-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
 ('muon',                  ('http://download.kde.org/stable/muon/([0-9.]+)/src/', 'muon-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
 ('okular',                KDE_FTP_URL ('okular'), None, ['kde']),
 ('oxygencursors',         UNTRACKED, None, ['kde']),
 ('oxygen-gtk3',           UNTRACKED, None, ['kde']),
 ('plasma-widget-facebook', UNTRACKED, None, ['kde']),
 ('plasma-widget-facebook', UNTRACKED, None, ['kde']),
 ('plasma-widget-menubar', UNTRACKED, None, ['kde']),
 ('plasma-widget-message-indicator', UNTRACKED, None, ['kde']),
 ('print-manager',         KDE_FTP_URL ('print-manager'), None, ['kde']),
 ('pkg-kde-tools',         DEBIAN, None, ['kde']),
 ('pykde4',                KDE_FTP_URL ('pykde4'), None, ['kde', 'python']),
 ('qapt',                  ('http://download.kde.org/stable/libqapt/([0-9.]+)/src/', 'libqapt-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
 ('qca2-plugin-ossl',      UNTRACKED, None, ['kde']),
 ('qimageblitz',           SOURCEFORGE_URL ('qimageblitz', 'qimageblitz/QImageBlitz%20([0-9.]+)', 'qimageblitz-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
 ('qjson',                 SOURCEFORGE_URL ('qjson', 'qjson/([0-9.]+)', 'qjson-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
 ('qoauth',                UNTRACKED, None, ['kde']),
 ('qpdf',                  ('http://sourceforge.net/projects/qpdf/files/', 'qpdf-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('qrencode',              UNTRACKED, None, ['kde']),
 ('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']),
 ('qt-gstreamer',          ('https://gstreamer.freedesktop.org/src/qt-gstreamer/', 'qt-gstreamer-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, ['kde']),
 ('qtscriptgenerator',     UNTRACKED, None, ['kde']),
 ('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
 ('skanlite',              KDE_FTP_URL ('skanlite'), None, ['kde']),
 ('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'])
]

lubuntu_package_info = [
# ('abiword',               ('http://www.abisource.com/downloads/abiword/latest/source/', 'abiword-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('ace-of-penguins',       ('http://www.delorie.com/store/ace/', 'ace-([0-9][0-9.]*).src.(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('galculator',            SOURCEFORGE_URL ('galculator', 'galculator/([0-9.]+)', 'galculator-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('leafpad',               ('http://download.savannah.gnu.org/releases/leafpad/', 'leafpad-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
# ('link-grammar',          ('http://www.abisource.com/downloads/link-grammar/([0-9.]+)/', 'link-grammar-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('lxappearance',          SOURCEFORGE_URL ('lxde', 'LXAppearance', 'lxappearance-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('lxappearance-obconf',   SOURCEFORGE_URL ('lxde', 'LXAppearance%20Obconf', 'lxappearance-obconf-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('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, []),
 ('lxkeymap',              UNTRACKED, None, []),
 ('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, []),
 ('lxml',                  ('http://pypi.python.org/pypi/lxml/', 'lxml/([0-9][0-9.]*)'), None, ['python']),
 ('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, []),
 ('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, []),
 ('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, []),
 ('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, []),
 ('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, []),
 ('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, []),
 ('lubuntu-software-center', LAUNCHPAD_URL ('lubuntu-software-center'), None, []),
# ('ots',                   SOURCEFORGE_URL ('libots', 'libots/ots-([0-9.]+)', 'ots-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('sylpheed-doc',          UNTRACKED, None, []),
 ('sylpheed',              ('http://sylpheed.sraoss.jp/sylpheed/v([0-9.]+)/', 'sylpheed-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('xpad',                  LAUNCHPAD_URL ('xpad'), None, []),
 ('xscreensaver',          ('http://www.jwz.org/xscreensaver/download.html', 'xscreensaver-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, [])
]

xubuntu_package_info = [
 ('blueman',               ('http://download.tuxfamily.org/blueman/', 'blueman-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('exo',                   ('http://archive.xfce.org/src/xfce/exo/([0-9.]+)', 'exo-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('garcon',                ('http://archive.xfce.org/src/xfce/gacron/([0-9.]+)', 'garcon-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('indicator-application-gtk2', LAUNCHPAD_URL ('indicators-gtk2', 'indicator-application'), None, []),
 ('indicator-sound-gtk2',  LAUNCHPAD_URL ('indicators-gtk2', 'indicator-sound'), None, []),
 ('libxfce4ui',            ('http://archive.xfce.org/src/xfce/libxfce4ui/([0-9.]+)', 'libxfce4ui-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libxfce4util',          ('http://archive.xfce.org/src/xfce/libxfce4util/([0-9.]+)', 'libxfce4util-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('libxfcegui4',           ('http://archive.xfce.org/src/archive/libxfcegui4/([0-9.]+)', 'libxfcegui4-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('orage',                 ('http://archive.xfce.org/src/apps/orage/([0-9.]+)', 'orage-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('parole',                ('http://archive.xfce.org/src/apps/parole/([0-9.]+)', 'parole-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('ristretto',             ('http://archive.xfce.org/src/apps/ristretto/([0-9.]+)', 'ristretto-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('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, []),
 ('thunar',                ('http://archive.xfce.org/src/xfce/thunar/([0-9.]+)', 'Thunar-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('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, []),
 ('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, []),
 ('tumbler',               ('http://archive.xfce.org/src/xfce/tumbler/([0-9.]+)', 'tumbler-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('xfburn',                ('http://archive.xfce.org/src/apps/xfburn/([0-9.]+)', 'xfburn-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('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, []),
 ('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, []),
 ('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, []),
 ('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, []),
 ('xfce4-mailwatch-plugin',('http://spurint.org/files/mailwatch/', 'xfce4-mailwatch-plugin-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('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, []),
 ('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, []),
 ('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, []),
 ('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, []),
 ('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, []),
 ('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, []),
 ('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, []),
 ('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, []),
 ('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, []),
 ('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, []),
 ('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, []),
 ('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, []),
 ('xfce4-terminal',        ('http://archive.xfce.org/src/apps/terminal/([0-9.]+)', 'Terminal-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('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, []),
 ('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, []),
 ('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, []),
 ('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, []),
 ('xfconf',                ('http://archive.xfce.org/src/xfce/xfconf/([0-9.]+)', 'xfconf-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('xfdesktop4',            ('http://archive.xfce.org/src/xfce/xfdesktop/([0-9.]+)/src', 'xfdesktop-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('xfwm4',                 ('http://archive.xfce.org/src/xfce/xfwm4/([0-9.]+)', 'xfwm4-([0-9][0-9.]*).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('xubuntu-artwork',       UBUNTU, None, []),
 ('xubuntu-default-settings', UBUNTU, None, []),
 ('xubuntu-docs',          UBUNTU, None, [])
]


unity8_package_info = [
 ('account-plugins',       UBUNTU, None, []),
 ('address-book-app',      UBUNTU, None, []),
 ('address-book-service',  UBUNTU, None, []),
 ('aethercast',            UBUNTU, None, []),
 ('buteo-syncfw-qml',      UBUNTU, None, []),
 ('content-hub',           UBUNTU, None, []),
 ('gnome-control-center-signon', UBUNTU, None, []),
 ('indicator-display',     UBUNTU, None, []),
 ('indicator-location',    UBUNTU, None, []),
 ('indicator-transfer',    UBUNTU, None, []),
 ('indicator-transfer-buteo', UBUNTU, None, []),
 ('libertine',             UBUNTU, None, []),
 ('libunity-webapps',      UBUNTU, None, []),
 ('online-accounts-api',   UBUNTU, None, []),
 ('pay-service',           UBUNTU, None, []),
 ('sync-monitor',          UBUNTU, None, []),
 ('qtmir',                 UBUNTU, None, []),
 ('qtorganizer5-eds',          UBUNTU, None, []),
# ('qtpim-opensource-src',  ('', ''), None, []),
# ('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, []),
 ('mediaplayer-app',       UBUNTU, None, []),
 ('policykit-unity8',       UBUNTU, None, []),
 ('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, []),
 ('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, []),
 ('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, []),
# ('qtfeedback-opensource-src',  ('', ''), None, []),
 ('telephony-service',     UBUNTU, None, []),
 ('thumbnailer',           UBUNTU, None, []),
 ('tone-generator',        UBUNTU, None, []),
# ('ubuntuone-client-data', LAUNCHPAD_URL ('ubuntuone-client-data'), None, []),
# ('ubuntuone-dev-tools',   LAUNCHPAD_URL ('ubuntuone-dev-tools'), None, []),
 ('ubuntuone-credentials', UBUNTU, None, []),
 ('ubuntu-keyboard',       UBUNTU, None, []),
 ('ubuntu-location-provider-here', UBUNTU, None, []),
 ('ubuntu-push',           UBUNTU, None, []),
 ('ubuntu-settings-components', UBUNTU, None, []),
 ('ubuntu-system-settings', UBUNTU, None, []),
 ('ubuntu-system-settings-online-accounts', UBUNTU, None, []),
 ('ubuntu-terminal-app',   UBUNTU, None, []),
 ('ubuntu-touch-customization-hooks', UBUNTU, None, []),
 ('ubuntu-ui-extras',      UBUNTU, None, []),
 ('ubuntu-ui-toolkit',     UBUNTU, None, []),
 ('ubuntu-ui-toolkit-gles', UBUNTU, None, []),
 ('unity-scope-gdrive',    UBUNTU, None, []),
 ('unity-scope-mediascanner', UBUNTU, None, []),
 ('unity-scopes-shell',    UBUNTU, None, []),
 ('unity-webapps-qml',     UBUNTU, None, []),
 ('wds',                   GITHUB_URL ('01org', 'wds', 'v([0-9][0-9.]*)'), None, []),
 ('webapps-applications',  UBUNTU, None, []),
 ('webbrowser-app',        UBUNTU, None, []),
]

# for testing
dummy_package_info = [
 ('boost1.65.1',           SOURCEFORGE_URL ('boost', 'boost/(1.65.[0-9.]+)', 'boost_(1_65_[0-9]+).(tar.(gz|bz2|xz)|tgz|zip)+'), None, []),
 ('gnome-shell',           GNOME_FTP_URL ('gnome-shell', GNOME_STABLE_SERIES), GNOME_FTP_URL ('gnome-contacts'), ['gnome']),
 ('gtk+3.0',               GNOME_FTP_URL ('gtk+', '3.22'), None, ['gnome']),
]

ubuntu_germinate_tags = {
    'ubuntu-boot':                        GERMINATE_OUTPUT + '/ubuntu.%(series)s/' + 'boot',
    'ubuntu-standard':                    GERMINATE_OUTPUT + '/ubuntu.%(series)s/' + 'standard',
    'ubuntu-desktop':                     GERMINATE_OUTPUT + '/ubuntu.%(series)s/' + 'desktop',
    'ubuntu-desktop.build-depends':       GERMINATE_OUTPUT + '/ubuntu.%(series)s/' + 'desktop.build-depends',
    'ubuntu-desktop-common':              GERMINATE_OUTPUT + '/ubuntu.%(series)s/' + 'desktop-common',
    'ubuntu-touch':                       GERMINATE_OUTPUT + '/ubuntu-touch.%(series)s/' + 'touch',
    'ubuntu-gnome-desktop':               GERMINATE_OUTPUT + '/ubuntu-gnome.%(series)s/' + 'desktop',
    'ubuntu-gnome-desktop.build-depends': GERMINATE_OUTPUT + '/ubuntu-gnome.%(series)s/' + 'desktop.build-depends',
}

kubuntu_germinate_tags = {
    'kubuntu-desktop': GERMINATE_OUTPUT + '/kubuntu.%(series)s/' + 'desktop',
}

lubuntu_germinate_tags = {
    'lubuntu-desktop': GERMINATE_OUTPUT + '/lubuntu.%(series)s/' + 'desktop',
}

xubuntu_germinate_tags = {
    'xubuntu-desktop': GERMINATE_OUTPUT + '/xubuntu.%(series)s/' + 'desktop',
}


germinate_tags = {
    'ubuntu': ubuntu_germinate_tags,
    'xubuntu': xubuntu_germinate_tags,
    'lubuntu': lubuntu_germinate_tags,
    'kubuntu': kubuntu_germinate_tags,
    'dummy': {},
}

package_info = {
    'ubuntu': ubuntu_package_info,
    'kubuntu': kubuntu_package_info,
    'lubuntu': lubuntu_package_info,
    'xubuntu': xubuntu_package_info,
    'dummy': dummy_package_info,
}