summaryrefslogtreecommitdiff
path: root/poky/bitbake
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2020-04-13 21:39:40 +0300
committerAndrew Geissler <geissonator@yahoo.com>2020-05-05 16:30:44 +0300
commit82c905dc58a36aeae40b1b273a12f63fb1973cf4 (patch)
tree38caf00263451b5036435cdc36e035b25d32e623 /poky/bitbake
parent83ecb75644b3d677c274188f9ac0b2374d6f6925 (diff)
downloadopenbmc-82c905dc58a36aeae40b1b273a12f63fb1973cf4.tar.xz
meta-openembedded and poky: subtree updates
Squash of the following due to dependencies among them and OpenBMC changes: meta-openembedded: subtree update:d0748372d2..9201611135 meta-openembedded: subtree update:9201611135..17fd382f34 poky: subtree update:9052e5b32a..2e11d97b6c poky: subtree update:2e11d97b6c..a8544811d7 The change log was too large for the jenkins plugin to handle therefore it has been removed. Here is the first and last commit of each subtree: meta-openembedded:d0748372d2 cppzmq: bump to version 4.6.0 meta-openembedded:17fd382f34 mpv: Remove X11 dependency poky:9052e5b32a package_ipk: Remove pointless comment to trigger rebuild poky:a8544811d7 pbzip2: Fix license warning Change-Id: If0fc6c37629642ee207a4ca2f7aa501a2c673cd6 Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Diffstat (limited to 'poky/bitbake')
-rwxr-xr-xpoky/bitbake/bin/bitbake2
-rwxr-xr-xpoky/bitbake/bin/bitbake-layers4
-rwxr-xr-xpoky/bitbake/bin/bitbake-worker3
-rwxr-xr-xpoky/bitbake/bin/toaster19
-rw-r--r--poky/bitbake/contrib/autobuilderlog.json13
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml105
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.xml2
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.xml14
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml20
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml25
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.xml13
-rw-r--r--poky/bitbake/lib/bb/COW.py1
-rw-r--r--poky/bitbake/lib/bb/__init__.py14
-rw-r--r--poky/bitbake/lib/bb/build.py28
-rw-r--r--poky/bitbake/lib/bb/cache.py29
-rw-r--r--poky/bitbake/lib/bb/checksum.py6
-rw-r--r--poky/bitbake/lib/bb/codeparser.py26
-rw-r--r--poky/bitbake/lib/bb/command.py102
-rw-r--r--poky/bitbake/lib/bb/cooker.py44
-rw-r--r--poky/bitbake/lib/bb/data.py6
-rw-r--r--poky/bitbake/lib/bb/data_smart.py63
-rw-r--r--poky/bitbake/lib/bb/event.py7
-rw-r--r--poky/bitbake/lib/bb/fetch2/__init__.py276
-rw-r--r--poky/bitbake/lib/bb/fetch2/bzr.py2
-rw-r--r--poky/bitbake/lib/bb/fetch2/clearcase.py3
-rw-r--r--poky/bitbake/lib/bb/fetch2/cvs.py1
-rw-r--r--poky/bitbake/lib/bb/fetch2/git.py6
-rw-r--r--poky/bitbake/lib/bb/fetch2/gitannex.py2
-rw-r--r--poky/bitbake/lib/bb/fetch2/gitsm.py22
-rw-r--r--poky/bitbake/lib/bb/fetch2/hg.py2
-rw-r--r--poky/bitbake/lib/bb/fetch2/npm.py539
-rw-r--r--poky/bitbake/lib/bb/fetch2/npmsw.py255
-rw-r--r--poky/bitbake/lib/bb/fetch2/osc.py4
-rw-r--r--poky/bitbake/lib/bb/fetch2/perforce.py3
-rw-r--r--poky/bitbake/lib/bb/fetch2/ssh.py4
-rw-r--r--poky/bitbake/lib/bb/fetch2/svn.py22
-rw-r--r--poky/bitbake/lib/bb/fetch2/wget.py11
-rw-r--r--poky/bitbake/lib/bb/monitordisk.py2
-rw-r--r--poky/bitbake/lib/bb/msg.py184
-rw-r--r--poky/bitbake/lib/bb/parse/ast.py24
-rw-r--r--poky/bitbake/lib/bb/parse/parse_py/BBHandler.py2
-rw-r--r--poky/bitbake/lib/bb/persist_data.py3
-rw-r--r--poky/bitbake/lib/bb/progress.py1
-rw-r--r--poky/bitbake/lib/bb/providers.py6
-rw-r--r--poky/bitbake/lib/bb/remotedata.py49
-rw-r--r--poky/bitbake/lib/bb/runqueue.py177
-rw-r--r--poky/bitbake/lib/bb/server/xmlrpcclient.py3
-rw-r--r--poky/bitbake/lib/bb/server/xmlrpcserver.py3
-rw-r--r--poky/bitbake/lib/bb/siggen.py193
-rw-r--r--poky/bitbake/lib/bb/taskdata.py2
-rw-r--r--poky/bitbake/lib/bb/tests/cooker.py1
-rw-r--r--poky/bitbake/lib/bb/tests/cow.py2
-rw-r--r--poky/bitbake/lib/bb/tests/data.py141
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/apple/cups/releases2400
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/debian/pool/main/d/db5.3/index.html509
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/downloads/enchant/1.6.0/index.html15
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/files/v2.8/index.html774
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.0/index.html209
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.1/index.html156
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.10/index.html131
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.11/index.html131
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.12/index.html118
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.13/index.html131
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.14/index.html170
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.15/index.html157
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.16/index.html86
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.2/index.html132
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.3/index.html163
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.4/index.html127
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.5/index.html111
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.6/index.html159
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.7/index.html92
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.8/index.html105
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.9/index.html183
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.23/index.html45
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.24/index.html43
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.25/index.html46
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.26/index.html42
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.27/index.html35
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.28/index.html42
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.29/index.html42
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.30/index.html42
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.31/index.html35
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.32/index.html35
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.33/index.html42
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.34/index.html28
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.35/index.html18
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/releases/eglibc/index.html21
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/releases/gnu-config/index.html9
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/releases/individual/xserver/index.html609
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/software/pulseaudio/releases/index.html383
-rw-r--r--poky/bitbake/lib/bb/tests/fetch.py546
-rw-r--r--poky/bitbake/lib/bb/tests/runqueue.py3
-rw-r--r--poky/bitbake/lib/bb/tests/support/httpserver.py65
-rw-r--r--poky/bitbake/lib/bb/tests/utils.py44
-rw-r--r--poky/bitbake/lib/bb/tinfoil.py183
-rw-r--r--poky/bitbake/lib/bb/ui/buildinfohelper.py8
-rw-r--r--poky/bitbake/lib/bb/ui/knotty.py252
-rw-r--r--poky/bitbake/lib/bb/ui/ncurses.py5
-rw-r--r--poky/bitbake/lib/bb/ui/taskexp.py4
-rw-r--r--poky/bitbake/lib/bb/ui/teamcity.py398
-rw-r--r--poky/bitbake/lib/bb/ui/toasterui.py2
-rw-r--r--poky/bitbake/lib/bb/ui/uievent.py2
-rw-r--r--poky/bitbake/lib/bb/ui/uihelper.py39
-rw-r--r--poky/bitbake/lib/bb/utils.py89
-rw-r--r--poky/bitbake/lib/bblayers/common.py2
-rw-r--r--poky/bitbake/lib/bblayers/layerindex.py17
-rw-r--r--poky/bitbake/lib/bblayers/query.py20
-rw-r--r--poky/bitbake/lib/bs4/__init__.py2
-rw-r--r--poky/bitbake/lib/bs4/builder/_html5lib.py3
-rw-r--r--poky/bitbake/lib/bs4/dammit.py8
-rw-r--r--poky/bitbake/lib/bs4/element.py1
-rw-r--r--poky/bitbake/lib/bs4/testing.py1
-rw-r--r--poky/bitbake/lib/bs4/tests/test_docs.py4
-rw-r--r--poky/bitbake/lib/bs4/tests/test_htmlparser.py1
-rw-r--r--poky/bitbake/lib/bs4/tests/test_lxml.py8
-rw-r--r--poky/bitbake/lib/bs4/tests/test_soup.py6
-rw-r--r--poky/bitbake/lib/bs4/tests/test_tree.py11
-rw-r--r--poky/bitbake/lib/hashserv/client.py9
-rw-r--r--poky/bitbake/lib/hashserv/server.py36
-rw-r--r--poky/bitbake/lib/layerindexlib/cooker.py5
-rw-r--r--poky/bitbake/lib/layerindexlib/plugin.py3
-rw-r--r--poky/bitbake/lib/layerindexlib/tests/cooker.py3
-rw-r--r--poky/bitbake/lib/layerindexlib/tests/layerindexobj.py6
-rw-r--r--poky/bitbake/lib/layerindexlib/tests/restapi.py3
-rw-r--r--poky/bitbake/lib/ply/yacc.py6
-rw-r--r--poky/bitbake/lib/prserv/db.py14
-rw-r--r--poky/bitbake/lib/prserv/serv.py32
-rw-r--r--poky/bitbake/lib/pyinotify.py4
-rw-r--r--poky/bitbake/lib/toaster/bldcollector/urls.py2
-rw-r--r--poky/bitbake/lib/toaster/bldcollector/views.py10
-rw-r--r--poky/bitbake/lib/toaster/bldcontrol/admin.py1
-rw-r--r--poky/bitbake/lib/toaster/bldcontrol/bbcontroller.py4
-rw-r--r--poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py11
-rw-r--r--poky/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py6
-rw-r--r--poky/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py6
-rw-r--r--poky/bitbake/lib/toaster/bldcontrol/migrations/0001_initial.py18
-rw-r--r--poky/bitbake/lib/toaster/bldcontrol/models.py21
-rw-r--r--poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml12
-rw-r--r--poky/bitbake/lib/toaster/orm/fixtures/poky.xml18
-rw-r--r--poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py2
-rw-r--r--poky/bitbake/lib/toaster/orm/migrations/0001_initial.py100
-rw-r--r--poky/bitbake/lib/toaster/orm/migrations/0002_customimagerecipe.py6
-rw-r--r--poky/bitbake/lib/toaster/orm/migrations/0003_customimagepackage.py2
-rw-r--r--poky/bitbake/lib/toaster/orm/migrations/0004_provides.py4
-rw-r--r--poky/bitbake/lib/toaster/orm/migrations/0008_refactor_artifact_models.py4
-rw-r--r--poky/bitbake/lib/toaster/orm/migrations/0011_delete_layersource.py2
-rw-r--r--poky/bitbake/lib/toaster/orm/migrations/0012_use_release_instead_of_up_branch.py2
-rw-r--r--poky/bitbake/lib/toaster/orm/migrations/0017_distro_clone.py2
-rw-r--r--poky/bitbake/lib/toaster/orm/migrations/0019_django_2_2.py23
-rw-r--r--poky/bitbake/lib/toaster/orm/models.py102
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py1
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/test_all_builds_page.py2
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/test_all_projects_page.py2
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py2
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_artifacts.py2
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_recipes.py2
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_tasks.py2
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py2
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/test_landing_page.py2
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py2
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/test_most_recent_builds_states.py2
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py2
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/test_new_project_page.py2
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/test_project_builds_page.py2
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/test_project_config_page.py8
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/test_project_page.py2
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/test_sample.py2
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/test_task_page.py2
-rw-r--r--poky/bitbake/lib/toaster/tests/browser/test_toastertable_ui.py2
-rw-r--r--poky/bitbake/lib/toaster/tests/functional/test_functional_basic.py1
-rw-r--r--poky/bitbake/lib/toaster/tests/views/test_views.py2
-rw-r--r--poky/bitbake/lib/toaster/toastergui/api.py5
-rw-r--r--poky/bitbake/lib/toaster/toastergui/tables.py9
-rw-r--r--poky/bitbake/lib/toaster/toastergui/templatetags/objects_to_dictionaries_filter.py1
-rw-r--r--poky/bitbake/lib/toaster/toastergui/templatetags/project_url_tag.py2
-rw-r--r--poky/bitbake/lib/toaster/toastergui/templatetags/projecttags.py10
-rw-r--r--poky/bitbake/lib/toaster/toastergui/typeaheads.py2
-rw-r--r--poky/bitbake/lib/toaster/toastergui/urls.py5
-rw-r--r--poky/bitbake/lib/toaster/toastergui/views.py45
-rw-r--r--poky/bitbake/lib/toaster/toastergui/widgets.py2
-rw-r--r--poky/bitbake/lib/toaster/toastermain/management/commands/builddelete.py4
-rw-r--r--poky/bitbake/lib/toaster/toastermain/management/commands/buildimport.py22
-rw-r--r--poky/bitbake/lib/toaster/toastermain/management/commands/buildslist.py3
-rw-r--r--poky/bitbake/lib/toaster/toastermain/settings.py17
-rw-r--r--poky/bitbake/lib/toaster/toastermain/urls.py4
186 files changed, 10818 insertions, 1629 deletions
diff --git a/poky/bitbake/bin/bitbake b/poky/bitbake/bin/bitbake
index 66d08f81a..6c73710cf 100755
--- a/poky/bitbake/bin/bitbake
+++ b/poky/bitbake/bin/bitbake
@@ -26,7 +26,7 @@ from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException
if sys.getfilesystemencoding() != "utf-8":
sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.")
-__version__ = "1.44.0"
+__version__ = "1.46.0"
if __name__ == "__main__":
if __version__ != bb.__version__:
diff --git a/poky/bitbake/bin/bitbake-layers b/poky/bitbake/bin/bitbake-layers
index a884dc1f8..149f1b1ac 100755
--- a/poky/bitbake/bin/bitbake-layers
+++ b/poky/bitbake/bin/bitbake-layers
@@ -52,7 +52,9 @@ def main():
# Need to re-run logger_create with color argument
# (will be the same logger since it has the same name)
- bb.msg.logger_create('bitbake-layers', output=sys.stdout, color=global_args.color)
+ bb.msg.logger_create('bitbake-layers', output=sys.stdout,
+ color=global_args.color,
+ level=logger.getEffectiveLevel())
plugins = []
tinfoil = bb.tinfoil.Tinfoil(tracking=True)
diff --git a/poky/bitbake/bin/bitbake-worker b/poky/bitbake/bin/bitbake-worker
index 1e641e81c..97cc0fd60 100755
--- a/poky/bitbake/bin/bitbake-worker
+++ b/poky/bitbake/bin/bitbake-worker
@@ -65,7 +65,6 @@ if 0:
format_str = "%(levelname)s: %(message)s"
conlogformat = bb.msg.BBLogFormatter(format_str)
consolelog = logging.FileHandler(logfilename)
- bb.msg.addDefaultlogFilter(consolelog)
consolelog.setFormatter(conlogformat)
logger.addHandler(consolelog)
@@ -414,7 +413,7 @@ class BitbakeWorker(object):
def handle_workerdata(self, data):
self.workerdata = pickle.loads(data)
- bb.msg.loggerDefaultDebugLevel = self.workerdata["logdefaultdebug"]
+ bb.msg.loggerDefaultLogLevel = self.workerdata["logdefaultlevel"]
bb.msg.loggerDefaultVerbose = self.workerdata["logdefaultverbose"]
bb.msg.loggerVerboseLogs = self.workerdata["logdefaultverboselogs"]
bb.msg.loggerDefaultDomains = self.workerdata["logdefaultdomain"]
diff --git a/poky/bitbake/bin/toaster b/poky/bitbake/bin/toaster
index c3472dfee..6b90ee187 100755
--- a/poky/bitbake/bin/toaster
+++ b/poky/bitbake/bin/toaster
@@ -8,12 +8,13 @@
#
HELP="
-Usage: source toaster start|stop [webport=<address:port>] [noweb] [nobuild] [toasterdir]
+Usage 1: source toaster start|stop [webport=<address:port>] [noweb] [nobuild] [toasterdir]
Optional arguments:
[nobuild] Setup the environment for capturing builds with toaster but disable managed builds
[noweb] Setup the environment for capturing builds with toaster but don't start the web server
[webport] Set the development server (default: localhost:8000)
[toasterdir] Set absolute path to be used as TOASTER_DIR (default: BUILDDIR/../)
+Usage 2: source toaster manage [createsuperuser|lsupdates|migrate|makemigrations|checksettings|collectstatic|...]
"
custom_extention()
@@ -208,13 +209,21 @@ for param in $*; do
toasterdir=*)
TOASTERDIR="${param#*=}"
;;
+ manage )
+ CMD=$param
+ manage_cmd=""
+ ;;
--help)
echo "$HELP"
return 0
;;
*)
- echo "$HELP"
- return 1
+ if [ "manage" == "$CMD" ] ; then
+ manage_cmd="$manage_cmd $param"
+ else
+ echo "$HELP"
+ exit 1
+ fi
;;
esac
@@ -306,6 +315,10 @@ case $CMD in
stop_system
echo "Successful ${CMD}."
;;
+ manage )
+ cd $BBBASEDIR/lib/toaster
+ $MANAGE $manage_cmd
+ ;;
esac
custom_extention toaster_postpend $CMD $ADDR_PORT
diff --git a/poky/bitbake/contrib/autobuilderlog.json b/poky/bitbake/contrib/autobuilderlog.json
new file mode 100644
index 000000000..193a675a1
--- /dev/null
+++ b/poky/bitbake/contrib/autobuilderlog.json
@@ -0,0 +1,13 @@
+{
+ "version": 1,
+ "loggers": {
+ "BitBake.SigGen.HashEquiv": {
+ "level": "VERBOSE",
+ "handlers": ["BitBake.verbconsole"]
+ },
+ "BitBake.RunQueue.HashEquiv": {
+ "level": "VERBOSE",
+ "handlers": ["BitBake.verbconsole"]
+ }
+ }
+}
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml
index 46dafeee3..6c5234ed9 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml
@@ -113,7 +113,7 @@
</para>
<para>
- Prior to parsing configuration files, Bitbake looks
+ Prior to parsing configuration files, BitBake looks
at certain variables, including:
<itemizedlist>
<listitem><para>
@@ -339,7 +339,7 @@
<link linkend='var-bb-BB_HASHCONFIG_WHITELIST'><filename>BB_HASHCONFIG_WHITELIST</filename></link>)
and then checking if the checksum matches.
If that checksum matches what is in the cache and the recipe
- and class files have not changed, Bitbake is able to use
+ and class files have not changed, BitBake is able to use
the cache.
BitBake then reloads the cached information about the recipe
instead of reparsing it from scratch.
@@ -429,7 +429,7 @@
The default
<link linkend='var-bb-PREFERRED_PROVIDER'><filename>PREFERRED_PROVIDER</filename></link>
is the provider with the same name as the target.
- Bitbake iterates through each target it needs to build and
+ BitBake iterates through each target it needs to build and
resolves them and their dependencies using this process.
</para>
@@ -821,7 +821,7 @@
<para>
It is worth noting that BitBake's "-S" option lets you
- debug Bitbake's processing of signatures.
+ debug BitBake's processing of signatures.
The options passed to -S allow different debugging modes
to be used, either using BitBake's own debug functions
or possibly those defined in the metadata/signature handler
@@ -929,4 +929,101 @@
section.
</para>
</section>
+
+ <section id="logging">
+ <title>Logging</title>
+ <para>
+ In addition to the standard command line option to control how
+ verbose builds are when execute, bitbake also supports user defined
+ configuration of the
+ <ulink url='https://docs.python.org/3/library/logging.html'>Python logging</ulink>
+ facilities through the
+ <link linkend="var-bb-BB_LOGCONFIG"><filename>BB_LOGCONFIG</filename></link>
+ variable. This variable defines a json or yaml
+ <ulink url='https://docs.python.org/3/library/logging.config.html'>logging configuration</ulink>
+ that will be intelligently merged into the default configuration.
+ The logging configuration is merged using the following rules:
+ <itemizedlist>
+ <listitem><para>
+ The user defined configuration will completely replace the default
+ configuration if top level key
+ <filename>bitbake_merge</filename> is set to the value
+ <filename>False</filename>. In this case, all other rules
+ are ignored.
+ </para></listitem>
+ <listitem><para>
+ The user configuration must have a top level
+ <filename>version</filename> which must match the value of
+ the default configuration.
+ </para></listitem>
+ <listitem><para>
+ Any keys defined in the <filename>handlers</filename>,
+ <filename>formatters</filename>, or <filename>filters</filename>,
+ will be merged into the same section in the default
+ configuration, with the user specified keys taking
+ replacing a default one if there is a conflict. In
+ practice, this means that if both the default configuration
+ and user configuration specify a handler named
+ <filename>myhandler</filename>, the user defined one will
+ replace the default. To prevent the user from inadvertently
+ replacing a default handler, formatter, or filter, all of
+ the default ones are named with a prefix of
+ "<filename>BitBake.</filename>"
+ </para></listitem>
+ <listitem><para>
+ If a logger is defined by the user with the key
+ <filename>bitbake_merge</filename> set to
+ <filename>False</filename>, that logger will be completely
+ replaced by user configuration. In this case, no other
+ rules will apply to that logger.
+ </para></listitem>
+ <listitem><para>
+ All user defined <filename>filter</filename> and
+ <filename>handlers</filename> properties for a given logger
+ will be merged with corresponding properties from the
+ default logger. For example, if the user configuration adds
+ a filter called <filename>myFilter</filename> to the
+ <filename>BitBake.SigGen</filename>, and the default
+ configuration adds a filter called
+ <filename>BitBake.defaultFilter</filename>, both filters
+ will be applied to the logger
+ </para></listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ As an example, consider the following user logging configuration
+ file which logs all Hash Equivalence related messages of VERBOSE or
+ higher to a file called <filename>hashequiv.log</filename>
+ <literallayout class='monospaced'>
+ {
+ "version": 1,
+ "handlers": {
+ "autobuilderlog": {
+ "class": "logging.FileHandler",
+ "formatter": "logfileFormatter",
+ "level": "DEBUG",
+ "filename": "hashequiv.log",
+ "mode": "w"
+ }
+ },
+ "formatters": {
+ "logfileFormatter": {
+ "format": "%(name)s: %(levelname)s: %(message)s"
+ }
+ },
+ "loggers": {
+ "BitBake.SigGen.HashEquiv": {
+ "level": "VERBOSE",
+ "handlers": ["autobuilderlog"]
+ },
+ "BitBake.RunQueue.HashEquiv": {
+ "level": "VERBOSE",
+ "handlers": ["autobuilderlog"]
+ }
+ }
+ }
+ </literallayout>
+ </para>
+ </section>
</chapter>
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.xml b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.xml
index 684040856..d1bfc2336 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.xml
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.xml
@@ -139,7 +139,7 @@
</para>
<para>
- Since network accesses are slow, Bitbake maintains a
+ Since network accesses are slow, BitBake maintains a
cache of files downloaded from the network.
Any source files that are not local (i.e.
downloaded from the Internet) are placed into the download
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.xml b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.xml
index 39066e4b1..11eb36aaf 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.xml
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.xml
@@ -166,7 +166,7 @@
Having a project directory is a good way to isolate your
project.
</para></listitem>
- <listitem><para><emphasis>Run Bitbake:</emphasis>
+ <listitem><para><emphasis>Run BitBake:</emphasis>
At this point, you have nothing but a project directory.
Run the <filename>bitbake</filename> command and see what
it does:
@@ -197,7 +197,7 @@
<link linkend='var-bb-BBPATH'><filename>BBPATH</filename></link>
variable is what tells BitBake where to look for those files.
<filename>BBPATH</filename> is not set and you need to set it.
- Without <filename>BBPATH</filename>, Bitbake cannot
+ Without <filename>BBPATH</filename>, BitBake cannot
find any configuration files (<filename>.conf</filename>)
or recipe files (<filename>.bb</filename>) at all.
BitBake also cannot find the <filename>bitbake.conf</filename>
@@ -225,7 +225,7 @@
as the shell would.
</note>
</para></listitem>
- <listitem><para><emphasis>Run Bitbake:</emphasis>
+ <listitem><para><emphasis>Run BitBake:</emphasis>
Now that you have <filename>BBPATH</filename> defined, run
the <filename>bitbake</filename> command again:
<literallayout class='monospaced'>
@@ -313,7 +313,7 @@
example, click on the links to take you to the definitions in
the glossary.
</para></listitem>
- <listitem><para><emphasis>Run Bitbake:</emphasis>
+ <listitem><para><emphasis>Run BitBake:</emphasis>
After making sure that the <filename>conf/bitbake.conf</filename>
file exists, you can run the <filename>bitbake</filename>
command again:
@@ -364,7 +364,7 @@
more depending on which build environments BitBake is
supporting.
</para></listitem>
- <listitem><para><emphasis>Run Bitbake:</emphasis>
+ <listitem><para><emphasis>Run BitBake:</emphasis>
After making sure that the <filename>classes/base.bbclass</filename>
file exists, you can run the <filename>bitbake</filename>
command again:
@@ -434,7 +434,7 @@
For more information on these variables, follow the links
to the glossary.
</para></listitem>
- <listitem><para><emphasis>Run Bitbake With a Target:</emphasis>
+ <listitem><para><emphasis>Run BitBake With a Target:</emphasis>
Now that a BitBake target exists, run the command and provide
that target:
<literallayout class='monospaced'>
@@ -468,7 +468,7 @@
You need to provide your own information for
<filename>you</filename> in the file.
</para></listitem>
- <listitem><para><emphasis>Run Bitbake With a Target:</emphasis>
+ <listitem><para><emphasis>Run BitBake With a Target:</emphasis>
Now that you have supplied the <filename>bblayers.conf</filename>
file, run the <filename>bitbake</filename> command and provide
the target:
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml
index 8f2a960ca..f5526c053 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml
@@ -127,7 +127,7 @@
(e.g. Cygwin, the BSDs, and so forth).
</para></listitem>
<listitem><para>
- Be self contained, rather than tightly
+ Be self-contained, rather than tightly
integrated into the build machine's root
filesystem.
</para></listitem>
@@ -221,6 +221,8 @@
them</para></listitem>
<listitem><para>How to configure and compile the
source code</para></listitem>
+ <listitem><para>How to assemble the generated artifacts into
+ one or more installable packages</para></listitem>
<listitem><para>Where on the target machine to install the
package or packages created</para></listitem>
</itemizedlist>
@@ -229,7 +231,7 @@
<para>
Within the context of BitBake, or any project utilizing BitBake
as its build system, files with the <filename>.bb</filename>
- extension are referred to as recipes.
+ extension are referred to as <firstterm>recipes</firstterm>.
<note>
The term "package" is also commonly used to describe recipes.
However, since the same word is used to describe packaged
@@ -252,9 +254,9 @@
various configuration variables that govern the project's build
process.
These files fall into several areas that define
- machine configuration options, distribution configuration
- options, compiler tuning options, general common
- configuration options, and user configuration options.
+ machine configuration, distribution configuration,
+ possible compiler tuning, general common
+ configuration, and user configuration.
The main configuration file is the sample
<filename>bitbake.conf</filename> file, which is
located within the BitBake source tree
@@ -292,7 +294,7 @@
Layers allow you to isolate different types of
customizations from each other.
While you might find it tempting to keep everything in one layer
- when working on a single project, the more modular you organize
+ when working on a single project, the more modular
your metadata, the easier it is to cope with future changes.
</para>
@@ -300,8 +302,8 @@
To illustrate how you can use layers to keep things modular,
consider customizations you might make to support a specific target machine.
These types of customizations typically reside in a special layer,
- rather than a general layer, called a Board Support Package (BSP)
- Layer.
+ rather than a general layer, called a <firstterm>Board Support Package</firstterm> (BSP)
+ layer.
Furthermore, the machine customizations should be isolated from
recipes and metadata that support a new GUI environment, for
example.
@@ -448,7 +450,7 @@
<listitem><para><emphasis>Using the BitBake that Comes With Your
Build Checkout:</emphasis>
A final possibility for getting a copy of BitBake is that it
- already comes with your checkout of a larger Bitbake-based build
+ already comes with your checkout of a larger BitBake-based build
system, such as Poky.
Rather than manually checking out individual layers and
gluing them together yourself, you can check
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
index 421364c2c..10b588352 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
@@ -5,7 +5,7 @@
<title>Syntax and Operators</title>
<para>
- Bitbake files have their own syntax.
+ BitBake files have their own syntax.
The syntax has similarities to several
other languages but also has some unique features.
This section describes the available syntax and operators
@@ -294,17 +294,20 @@
rather than when the variable is actually used:
<literallayout class='monospaced'>
T = "123"
- A := "${B} ${A} test ${T}"
+ A := "test ${T}"
T = "456"
- B = "${T} bval"
+ B := "${T} ${C}"
C = "cval"
C := "${C}append"
</literallayout>
In this example, <filename>A</filename> contains
- "test 123" because <filename>${B}</filename> and
- <filename>${A}</filename> at the time of parsing are undefined,
- which leaves "test 123".
- And, the variable <filename>C</filename>
+ "test 123", even though the final value of <filename>T</filename>
+ is "456".
+ The variable <filename>B</filename> will end up containing "456 cvalappend".
+ This is because references to undefined variables are preserved as is
+ during (immediate)expansion. This is in contrast to GNU Make, where undefined
+ variables expand to nothing.
+ The variable <filename>C</filename>
contains "cvalappend" since <filename>${C}</filename> immediately
expands to "cval".
</para>
@@ -1414,7 +1417,7 @@
</section>
<section id='bitbake-style-python-functions-versus-python-functions'>
- <title>Bitbake-Style Python Functions Versus Python Functions</title>
+ <title>BitBake-Style Python Functions Versus Python Functions</title>
<para>
Following are some important differences between
@@ -1864,7 +1867,7 @@
accessing your <filename>$HOME/.ccache</filename>
directory.
The following command "whitelists" the environment variable
- <filename>CCACHE_DIR</filename> causing BitBack to allow that
+ <filename>CCACHE_DIR</filename> causing BitBake to allow that
variable into the datastore:
<literallayout class='monospaced'>
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE CCACHE_DIR"
@@ -1895,7 +1898,7 @@
<para>
Sometimes, it is useful to be able to obtain information
from the original execution environment.
- Bitbake saves a copy of the original environment into
+ BitBake saves a copy of the original environment into
a special variable named
<link linkend='var-bb-BB_ORIGENV'><filename>BB_ORIGENV</filename></link>.
</para>
@@ -2616,7 +2619,7 @@
<para>
It is often necessary to access variables in the
BitBake datastore using Python functions.
- The Bitbake datastore has an API that allows you this
+ The BitBake datastore has an API that allows you this
access.
Here is a list of available operations:
</para>
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.xml b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.xml
index aca6741c2..c4bd1f258 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.xml
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.xml
@@ -539,6 +539,17 @@
</glossdef>
</glossentry>
+ <glossentry id='var-bb-BB_LOGCONFIG'><glossterm>BB_LOGCONFIG</glossterm>
+ <glossdef>
+ <para>
+ Specifies the name of a config file that contains the user
+ logging configuration. See
+ <link linkend="logging">Logging</link> for additional
+ information
+ </para>
+ </glossdef>
+ </glossentry>
+
<glossentry id='var-bb-BB_LOGFMT'><glossterm>BB_LOGFMT</glossterm>
<glossdef>
<para>
@@ -1780,7 +1791,7 @@
</para>
<para>
- Bitbake normally issues a warning when building two
+ BitBake normally issues a warning when building two
different recipes where each provides the same output.
This scenario is usually something the user does not
want.
diff --git a/poky/bitbake/lib/bb/COW.py b/poky/bitbake/lib/bb/COW.py
index d26e98195..bc20ce38e 100644
--- a/poky/bitbake/lib/bb/COW.py
+++ b/poky/bitbake/lib/bb/COW.py
@@ -10,7 +10,6 @@
import copy
-import types
ImmutableTypes = (
bool,
complex,
diff --git a/poky/bitbake/lib/bb/__init__.py b/poky/bitbake/lib/bb/__init__.py
index c144311be..b96466e65 100644
--- a/poky/bitbake/lib/bb/__init__.py
+++ b/poky/bitbake/lib/bb/__init__.py
@@ -9,11 +9,11 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-__version__ = "1.44.0"
+__version__ = "1.46.0"
import sys
-if sys.version_info < (3, 4, 0):
- raise RuntimeError("Sorry, python 3.4.0 or later is required for this version of bitbake")
+if sys.version_info < (3, 5, 0):
+ raise RuntimeError("Sorry, python 3.5.0 or later is required for this version of bitbake")
class BBHandledException(Exception):
@@ -43,7 +43,13 @@ class BBLogger(Logger):
Logger.__init__(self, name)
def bbdebug(self, level, msg, *args, **kwargs):
- return self.log(logging.DEBUG - level + 1, msg, *args, **kwargs)
+ loglevel = logging.DEBUG - level + 1
+ if not bb.event.worker_pid:
+ if self.name in bb.msg.loggerDefaultDomains and loglevel > (bb.msg.loggerDefaultDomains[self.name]):
+ return
+ if loglevel > bb.msg.loggerDefaultLogLevel:
+ return
+ return self.log(loglevel, msg, *args, **kwargs)
def plain(self, msg, *args, **kwargs):
return self.log(logging.INFO + 1, msg, *args, **kwargs)
diff --git a/poky/bitbake/lib/bb/build.py b/poky/bitbake/lib/bb/build.py
index 30a2ba236..23b6ee455 100644
--- a/poky/bitbake/lib/bb/build.py
+++ b/poky/bitbake/lib/bb/build.py
@@ -15,7 +15,6 @@
import os
import sys
import logging
-import shlex
import glob
import time
import stat
@@ -57,14 +56,17 @@ builtins['os'] = os
class TaskBase(event.Event):
"""Base class for task events"""
- def __init__(self, t, logfile, d):
+ def __init__(self, t, fn, logfile, d):
self._task = t
+ self._fn = fn
self._package = d.getVar("PF")
self._mc = d.getVar("BB_CURRENT_MC")
self.taskfile = d.getVar("FILE")
self.taskname = self._task
self.logfile = logfile
self.time = time.time()
+ self.pn = d.getVar("PN")
+ self.pv = d.getVar("PV")
event.Event.__init__(self)
self._message = "recipe %s: task %s: %s" % (d.getVar("PF"), t, self.getDisplayName())
@@ -81,8 +83,8 @@ class TaskBase(event.Event):
class TaskStarted(TaskBase):
"""Task execution started"""
- def __init__(self, t, logfile, taskflags, d):
- super(TaskStarted, self).__init__(t, logfile, d)
+ def __init__(self, t, fn, logfile, taskflags, d):
+ super(TaskStarted, self).__init__(t, fn, logfile, d)
self.taskflags = taskflags
class TaskSucceeded(TaskBase):
@@ -91,9 +93,9 @@ class TaskSucceeded(TaskBase):
class TaskFailed(TaskBase):
"""Task execution failed"""
- def __init__(self, task, logfile, metadata, errprinted = False):
+ def __init__(self, task, fn, logfile, metadata, errprinted = False):
self.errprinted = errprinted
- super(TaskFailed, self).__init__(task, logfile, metadata)
+ super(TaskFailed, self).__init__(task, fn, logfile, metadata)
class TaskFailedSilent(TaskBase):
"""Task execution failed (silently)"""
@@ -103,8 +105,8 @@ class TaskFailedSilent(TaskBase):
class TaskInvalid(TaskBase):
- def __init__(self, task, metadata):
- super(TaskInvalid, self).__init__(task, None, metadata)
+ def __init__(self, task, fn, metadata):
+ super(TaskInvalid, self).__init__(task, fn, None, metadata)
self._message = "No such task '%s'" % task
class TaskProgress(event.Event):
@@ -572,7 +574,7 @@ def _exec_task(fn, task, d, quieterr):
try:
try:
- event.fire(TaskStarted(task, logfn, flags, localdata), localdata)
+ event.fire(TaskStarted(task, fn, logfn, flags, localdata), localdata)
except (bb.BBHandledException, SystemExit):
return 1
@@ -583,15 +585,15 @@ def _exec_task(fn, task, d, quieterr):
for func in (postfuncs or '').split():
exec_func(func, localdata)
except bb.BBHandledException:
- event.fire(TaskFailed(task, logfn, localdata, True), localdata)
+ event.fire(TaskFailed(task, fn, logfn, localdata, True), localdata)
return 1
except Exception as exc:
if quieterr:
- event.fire(TaskFailedSilent(task, logfn, localdata), localdata)
+ event.fire(TaskFailedSilent(task, fn, logfn, localdata), localdata)
else:
errprinted = errchk.triggered
logger.error(str(exc))
- event.fire(TaskFailed(task, logfn, localdata, errprinted), localdata)
+ event.fire(TaskFailed(task, fn, logfn, localdata, errprinted), localdata)
return 1
finally:
sys.stdout.flush()
@@ -614,7 +616,7 @@ def _exec_task(fn, task, d, quieterr):
logger.debug(2, "Zero size logfn %s, removing", logfn)
bb.utils.remove(logfn)
bb.utils.remove(loglink)
- event.fire(TaskSucceeded(task, logfn, localdata), localdata)
+ event.fire(TaskSucceeded(task, fn, logfn, localdata), localdata)
if not localdata.getVarFlag(task, 'nostamp', False) and not localdata.getVarFlag(task, 'selfstamp', False):
make_stamp(task, localdata)
diff --git a/poky/bitbake/lib/bb/cache.py b/poky/bitbake/lib/bb/cache.py
index b6f7da592..d1be83617 100644
--- a/poky/bitbake/lib/bb/cache.py
+++ b/poky/bitbake/lib/bb/cache.py
@@ -17,11 +17,11 @@
#
import os
-import sys
import logging
import pickle
from collections import defaultdict
import bb.utils
+import re
logger = logging.getLogger("BitBake.Cache")
@@ -208,10 +208,10 @@ class CoreRecipeInfo(RecipeInfoCommon):
# Collect files we may need for possible world-dep
# calculations
- if self.not_world:
- logger.debug(1, "EXCLUDE FROM WORLD: %s", fn)
- else:
+ if not self.not_world:
cachedata.possible_world.append(fn)
+ #else:
+ # logger.debug(2, "EXCLUDE FROM WORLD: %s", fn)
# create a collection of all targets for sanity checking
# tasks, such as upstream versions, license, and tools for
@@ -370,6 +370,7 @@ class Cache(NoCache):
self.data_fn = None
self.cacheclean = True
self.data_hash = data_hash
+ self.filelist_regex = re.compile(r'(?:(?<=:True)|(?<=:False))\s+')
if self.cachedir in [None, '']:
self.has_cache = False
@@ -608,20 +609,12 @@ class Cache(NoCache):
if hasattr(info_array[0], 'file_checksums'):
for _, fl in info_array[0].file_checksums.items():
fl = fl.strip()
- while fl:
- # A .split() would be simpler but means spaces or colons in filenames would break
- a = fl.find(":True")
- b = fl.find(":False")
- if ((a < 0) and b) or ((b > 0) and (b < a)):
- f = fl[:b+6]
- fl = fl[b+7:]
- elif ((b < 0) and a) or ((a > 0) and (a < b)):
- f = fl[:a+5]
- fl = fl[a+6:]
- else:
- break
- fl = fl.strip()
- if "*" in f:
+ if not fl:
+ continue
+ # Have to be careful about spaces and colons in filenames
+ flist = self.filelist_regex.split(fl)
+ for f in flist:
+ if not f or "*" in f:
continue
f, exist = f.split(":")
if (exist == "True" and not os.path.exists(f)) or (exist == "False" and os.path.exists(f)):
diff --git a/poky/bitbake/lib/bb/checksum.py b/poky/bitbake/lib/bb/checksum.py
index 5bc8a8fcb..1d50a2642 100644
--- a/poky/bitbake/lib/bb/checksum.py
+++ b/poky/bitbake/lib/bb/checksum.py
@@ -9,7 +9,6 @@ import glob
import operator
import os
import stat
-import pickle
import bb.utils
import logging
from bb.cache import MultiProcessCache
@@ -74,7 +73,7 @@ class FileChecksumCache(MultiProcessCache):
else:
dest[0][h] = source[0][h]
- def get_checksums(self, filelist, pn):
+ def get_checksums(self, filelist, pn, localdirsexclude):
"""Get checksums for a list of files"""
def checksum_file(f):
@@ -90,7 +89,8 @@ class FileChecksumCache(MultiProcessCache):
if pth == "/":
bb.fatal("Refusing to checksum /")
dirchecksums = []
- for root, dirs, files in os.walk(pth):
+ for root, dirs, files in os.walk(pth, topdown=True):
+ [dirs.remove(d) for d in list(dirs) if d in localdirsexclude]
for name in files:
fullpth = os.path.join(root, name)
checksum = checksum_file(fullpth)
diff --git a/poky/bitbake/lib/bb/codeparser.py b/poky/bitbake/lib/bb/codeparser.py
index fd2c4734f..25a7ac69d 100644
--- a/poky/bitbake/lib/bb/codeparser.py
+++ b/poky/bitbake/lib/bb/codeparser.py
@@ -25,13 +25,11 @@ import ast
import sys
import codegen
import logging
-import pickle
import bb.pysh as pysh
-import os.path
import bb.utils, bb.data
import hashlib
from itertools import chain
-from bb.pysh import pyshyacc, pyshlex, sherrors
+from bb.pysh import pyshyacc, pyshlex
from bb.cache import MultiProcessCache
logger = logging.getLogger('BitBake.CodeParser')
@@ -58,30 +56,10 @@ def check_indent(codestr):
return codestr
-
-# Basically pickle, in python 2.7.3 at least, does badly with data duplication
-# upon pickling and unpickling. Combine this with duplicate objects and things
-# are a mess.
-#
-# When the sets are originally created, python calls intern() on the set keys
-# which significantly improves memory usage. Sadly the pickle/unpickle process
-# doesn't call intern() on the keys and results in the same strings being duplicated
-# in memory. This also means pickle will save the same string multiple times in
-# the cache file.
-#
-# By having shell and python cacheline objects with setstate/getstate, we force
-# the object creation through our own routine where we can call intern (via internSet).
-#
-# We also use hashable frozensets and ensure we use references to these so that
-# duplicates can be removed, both in memory and in the resulting pickled data.
-#
-# By playing these games, the size of the cache file shrinks dramatically
-# meaning faster load times and the reloaded cache files also consume much less
-# memory. Smaller cache files, faster load times and lower memory usage is good.
-#
# A custom getstate/setstate using tuples is actually worth 15% cachesize by
# avoiding duplication of the attribute names!
+
class SetCache(object):
def __init__(self):
self.setcache = {}
diff --git a/poky/bitbake/lib/bb/command.py b/poky/bitbake/lib/bb/command.py
index 378f389b3..6abf38668 100644
--- a/poky/bitbake/lib/bb/command.py
+++ b/poky/bitbake/lib/bb/command.py
@@ -65,7 +65,7 @@ class Command:
# Can run synchronous commands straight away
command_method = getattr(self.cmds_sync, command)
if ro_only:
- if not hasattr(command_method, 'readonly') or False == getattr(command_method, 'readonly'):
+ if not hasattr(command_method, 'readonly') or not getattr(command_method, 'readonly'):
return None, "Not able to execute not readonly commands in readonly mode"
try:
self.cooker.process_inotify_updates()
@@ -414,7 +414,11 @@ class CommandsSync:
getAllAppends.readonly = True
def findProviders(self, command, params):
- return command.cooker.findProviders()
+ try:
+ mc = params[0]
+ except IndexError:
+ mc = ''
+ return command.cooker.findProviders(mc)
findProviders.readonly = True
def findBestProvider(self, command, params):
@@ -446,54 +450,38 @@ class CommandsSync:
return all_p, best
getRuntimeProviders.readonly = True
- def dataStoreConnectorFindVar(self, command, params):
+ def dataStoreConnectorCmd(self, command, params):
dsindex = params[0]
- name = params[1]
- datastore = command.remotedatastores[dsindex]
- value, overridedata = datastore._findVar(name)
-
- if value:
- content = value.get('_content', None)
- if isinstance(content, bb.data_smart.DataSmart):
- # Value is a datastore (e.g. BB_ORIGENV) - need to handle this carefully
- idx = command.remotedatastores.check_store(content, True)
- return {'_content': DataStoreConnectionHandle(idx),
- '_connector_origtype': 'DataStoreConnectionHandle',
- '_connector_overrides': overridedata}
- elif isinstance(content, set):
- return {'_content': list(content),
- '_connector_origtype': 'set',
- '_connector_overrides': overridedata}
- else:
- value['_connector_overrides'] = overridedata
- else:
- value = {}
- value['_connector_overrides'] = overridedata
- return value
- dataStoreConnectorFindVar.readonly = True
+ method = params[1]
+ args = params[2]
+ kwargs = params[3]
- def dataStoreConnectorGetKeys(self, command, params):
- dsindex = params[0]
- datastore = command.remotedatastores[dsindex]
- return list(datastore.keys())
- dataStoreConnectorGetKeys.readonly = True
+ d = command.remotedatastores[dsindex]
+ ret = getattr(d, method)(*args, **kwargs)
+
+ if isinstance(ret, bb.data_smart.DataSmart):
+ idx = command.remotedatastores.store(ret)
+ return DataStoreConnectionHandle(idx)
+
+ return ret
- def dataStoreConnectorGetVarHistory(self, command, params):
+ def dataStoreConnectorVarHistCmd(self, command, params):
dsindex = params[0]
- name = params[1]
- datastore = command.remotedatastores[dsindex]
- return datastore.varhistory.variable(name)
- dataStoreConnectorGetVarHistory.readonly = True
+ method = params[1]
+ args = params[2]
+ kwargs = params[3]
- def dataStoreConnectorExpandPythonRef(self, command, params):
- config_data_dict = params[0]
- varname = params[1]
- expr = params[2]
+ d = command.remotedatastores[dsindex].varhistory
+ return getattr(d, method)(*args, **kwargs)
- config_data = command.remotedatastores.receive_datastore(config_data_dict)
+ def dataStoreConnectorIncHistCmd(self, command, params):
+ dsindex = params[0]
+ method = params[1]
+ args = params[2]
+ kwargs = params[3]
- varparse = bb.data_smart.VariableParse(varname, config_data)
- return varparse.python_sub(expr)
+ d = command.remotedatastores[dsindex].inchistory
+ return getattr(d, method)(*args, **kwargs)
def dataStoreConnectorRelease(self, command, params):
dsindex = params[0]
@@ -501,31 +489,6 @@ class CommandsSync:
raise CommandError('dataStoreConnectorRelease: invalid index %d' % dsindex)
command.remotedatastores.release(dsindex)
- def dataStoreConnectorSetVarFlag(self, command, params):
- dsindex = params[0]
- name = params[1]
- flag = params[2]
- value = params[3]
- datastore = command.remotedatastores[dsindex]
- datastore.setVarFlag(name, flag, value)
-
- def dataStoreConnectorDelVar(self, command, params):
- dsindex = params[0]
- name = params[1]
- datastore = command.remotedatastores[dsindex]
- if len(params) > 2:
- flag = params[2]
- datastore.delVarFlag(name, flag)
- else:
- datastore.delVar(name)
-
- def dataStoreConnectorRenameVar(self, command, params):
- dsindex = params[0]
- name = params[1]
- newname = params[2]
- datastore = command.remotedatastores[dsindex]
- datastore.renameVar(name, newname)
-
def parseRecipeFile(self, command, params):
"""
Parse the specified recipe file (with or without bbappends)
@@ -536,8 +499,7 @@ class CommandsSync:
appends = params[1]
appendlist = params[2]
if len(params) > 3:
- config_data_dict = params[3]
- config_data = command.remotedatastores.receive_datastore(config_data_dict)
+ config_data = command.remotedatastores[params[3]]
else:
config_data = None
diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py
index e6442bff9..e527e2311 100644
--- a/poky/bitbake/lib/bb/cooker.py
+++ b/poky/bitbake/lib/bb/cooker.py
@@ -10,7 +10,6 @@
#
import sys, os, glob, os.path, re, time
-import atexit
import itertools
import logging
import multiprocessing
@@ -18,14 +17,11 @@ import sre_constants
import threading
from io import StringIO, UnsupportedOperation
from contextlib import closing
-from functools import wraps
from collections import defaultdict, namedtuple
import bb, bb.exceptions, bb.command
from bb import utils, data, parse, event, cache, providers, taskdata, runqueue, build
import queue
import signal
-import subprocess
-import errno
import prserv.serv
import pyinotify
import json
@@ -169,8 +165,8 @@ class BBCooker:
bb.debug(1, "BBCooker pyinotify1 %s" % time.time())
sys.stdout.flush()
- self.configwatcher.bbseen = []
- self.configwatcher.bbwatchedfiles = []
+ self.configwatcher.bbseen = set()
+ self.configwatcher.bbwatchedfiles = set()
self.confignotifier = pyinotify.Notifier(self.configwatcher, self.config_notifications)
bb.debug(1, "BBCooker pyinotify2 %s" % time.time())
sys.stdout.flush()
@@ -180,8 +176,8 @@ class BBCooker:
self.watcher = pyinotify.WatchManager()
bb.debug(1, "BBCooker pyinotify3 %s" % time.time())
sys.stdout.flush()
- self.watcher.bbseen = []
- self.watcher.bbwatchedfiles = []
+ self.watcher.bbseen = set()
+ self.watcher.bbwatchedfiles = set()
self.notifier = pyinotify.Notifier(self.watcher, self.notifications)
bb.debug(1, "BBCooker pyinotify complete %s" % time.time())
@@ -278,14 +274,14 @@ class BBCooker:
if not watcher:
watcher = self.watcher
for i in deps:
- watcher.bbwatchedfiles.append(i[0])
+ watcher.bbwatchedfiles.add(i[0])
if dirs:
f = i[0]
else:
f = os.path.dirname(i[0])
if f in watcher.bbseen:
continue
- watcher.bbseen.append(f)
+ watcher.bbseen.add(f)
watchtarget = None
while True:
# We try and add watches for files that don't exist but if they did, would influence
@@ -294,7 +290,7 @@ class BBCooker:
try:
watcher.add_watch(f, self.watchmask, quiet=False)
if watchtarget:
- watcher.bbwatchedfiles.append(watchtarget)
+ watcher.bbwatchedfiles.add(watchtarget)
break
except pyinotify.WatchManagerError as e:
if 'ENOENT' in str(e):
@@ -302,7 +298,7 @@ class BBCooker:
f = os.path.dirname(f)
if f in watcher.bbseen:
break
- watcher.bbseen.append(f)
+ watcher.bbseen.add(f)
continue
if 'ENOSPC' in str(e):
providerlog.error("No space left on device or exceeds fs.inotify.max_user_watches?")
@@ -1027,16 +1023,16 @@ class BBCooker:
bb.event.fire(bb.event.FilesMatchingFound(filepattern, matches), self.data)
def findProviders(self, mc=''):
- return bb.providers.findProviders(self.data, self.recipecaches[mc], self.recipecaches[mc].pkg_pn)
+ return bb.providers.findProviders(self.databuilder.mcdata[mc], self.recipecaches[mc], self.recipecaches[mc].pkg_pn)
def findBestProvider(self, pn, mc=''):
if pn in self.recipecaches[mc].providers:
filenames = self.recipecaches[mc].providers[pn]
- eligible, foundUnique = bb.providers.filterProviders(filenames, pn, self.data, self.recipecaches[mc])
+ eligible, foundUnique = bb.providers.filterProviders(filenames, pn, self.databuilder.mcdata[mc], self.recipecaches[mc])
filename = eligible[0]
return None, None, None, filename
elif pn in self.recipecaches[mc].pkg_pn:
- return bb.providers.findBestProvider(pn, self.data, self.recipecaches[mc], self.recipecaches[mc].pkg_pn)
+ return bb.providers.findBestProvider(pn, self.databuilder.mcdata[mc], self.recipecaches[mc], self.recipecaches[mc].pkg_pn)
else:
return None, None, None, None
@@ -1208,7 +1204,7 @@ class BBCooker:
for c in collection_list:
calc_layer_priority(c)
regex = self.data.getVar("BBFILE_PATTERN_%s" % c)
- if regex == None:
+ if regex is None:
parselog.error("BBFILE_PATTERN_%s not defined" % c)
errors = True
continue
@@ -1314,7 +1310,7 @@ class BBCooker:
self.parseConfiguration()
# If we are told to do the None task then query the default task
- if (task == None):
+ if task is None:
task = self.configuration.cmd
if not task.startswith("do_"):
task = "do_%s" % task
@@ -1458,7 +1454,7 @@ class BBCooker:
self.buildSetVars()
# If we are told to do the None task then query the default task
- if (task == None):
+ if task is None:
task = self.configuration.cmd
if not task.startswith("do_"):
@@ -1669,6 +1665,8 @@ class BBCooker:
self.command.reset()
self.databuilder.reset()
self.data = self.databuilder.data
+ self.parsecache_valid = False
+ self.baseconfig_valid = False
class CookerExit(bb.event.Event):
@@ -1691,7 +1689,7 @@ class CookerCollectFiles(object):
def calc_bbfile_priority( self, filename, matched = None ):
for _, _, regex, pri in self.bbfile_config_priorities:
if regex.match(filename):
- if matched != None:
+ if matched is not None:
if not regex in matched:
matched.add(regex)
return pri
@@ -1788,7 +1786,7 @@ class CookerCollectFiles(object):
# When constructing an older style single regex, it's possible for BBMASK
# to end up beginning with '|', which matches and masks _everything_.
if mask.startswith("|"):
- collectlog.warn("BBMASK contains regular expression beginning with '|', fixing: %s" % mask)
+ collectlog.warning("BBMASK contains regular expression beginning with '|', fixing: %s" % mask)
mask = mask[1:]
try:
re.compile(mask)
@@ -1944,7 +1942,8 @@ class Parser(multiprocessing.Process):
except IndexError:
break
result = self.parse(*job)
-
+ # Clear the siggen cache after parsing to control memory usage, its huge
+ bb.parse.siggen.postparsing_clean_cache()
try:
self.results.put(result, timeout=0.25)
except queue.Full:
@@ -1952,6 +1951,7 @@ class Parser(multiprocessing.Process):
def parse(self, filename, appends):
try:
+ origfilter = bb.event.LogHandler.filter
# Record the filename we're parsing into any events generated
def parse_filter(self, record):
record.taskpid = bb.event.worker_pid
@@ -1974,6 +1974,8 @@ class Parser(multiprocessing.Process):
# a SystemExit event for example.
except BaseException as exc:
return True, ParsingFailure(exc, filename)
+ finally:
+ bb.event.LogHandler.filter = origfilter
class CookerParser(object):
def __init__(self, cooker, filelist, masked):
diff --git a/poky/bitbake/lib/bb/data.py b/poky/bitbake/lib/bb/data.py
index 0d75d0c1a..b0683c518 100644
--- a/poky/bitbake/lib/bb/data.py
+++ b/poky/bitbake/lib/bb/data.py
@@ -79,7 +79,7 @@ def expand(s, d, varname = None):
return d.expand(s, varname)
def expandKeys(alterdata, readdata = None):
- if readdata == None:
+ if readdata is None:
readdata = alterdata
todolist = {}
@@ -365,7 +365,7 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
#bb.note("Variable %s references %s and calls %s" % (key, str(deps), str(execs)))
#d.setVarFlag(key, "vardeps", deps)
-def generate_dependencies(d):
+def generate_dependencies(d, whitelist):
keys = set(key for key in d if not key.startswith("__"))
shelldeps = set(key for key in d.getVar("__exportlist", False) if d.getVarFlag(key, "export", False) and not d.getVarFlag(key, "unexport", False))
@@ -380,7 +380,7 @@ def generate_dependencies(d):
newdeps = deps[task]
seen = set()
while newdeps:
- nextdeps = newdeps
+ nextdeps = newdeps - whitelist
seen |= nextdeps
newdeps = set()
for dep in nextdeps:
diff --git a/poky/bitbake/lib/bb/data_smart.py b/poky/bitbake/lib/bb/data_smart.py
index dd5c61856..7f1b6dcb4 100644
--- a/poky/bitbake/lib/bb/data_smart.py
+++ b/poky/bitbake/lib/bb/data_smart.py
@@ -107,10 +107,6 @@ class VariableParse:
else:
code = match.group()[3:-1]
- if "_remote_data" in self.d:
- connector = self.d["_remote_data"]
- return connector.expandPythonRef(self.varname, code, self.d)
-
if self.varname:
varname = 'Var <%s>' % self.varname
else:
@@ -268,12 +264,7 @@ class VariableHistory(object):
self.variables[newvar].append(i.copy())
def variable(self, var):
- remote_connector = self.dataroot.getVar('_remote_data', False)
- if remote_connector:
- varhistory = remote_connector.getVarHistory(var)
- else:
- varhistory = []
-
+ varhistory = []
if var in self.variables:
varhistory.extend(self.variables[var])
return varhistory
@@ -338,11 +329,12 @@ class VariableHistory(object):
lines.append(line)
return lines
- def get_variable_items_files(self, var, d):
+ def get_variable_items_files(self, var):
"""
Use variable history to map items added to a list variable and
the files in which they were added.
"""
+ d = self.dataroot
history = self.variable(var)
finalitems = (d.getVar(var) or '').split()
filemap = {}
@@ -470,10 +462,6 @@ class DataSmart(MutableMapping):
if var in dest:
return dest[var], self.overridedata.get(var, None)
- if "_remote_data" in dest:
- connector = dest["_remote_data"]["_content"]
- return connector.getVar(var)
-
if "_data" not in dest:
break
dest = dest["_data"]
@@ -498,12 +486,6 @@ class DataSmart(MutableMapping):
if 'parsing' in loginfo:
parsing=True
- if '_remote_data' in self.dict:
- connector = self.dict["_remote_data"]["_content"]
- res = connector.setVar(var, value)
- if not res:
- return
-
if 'op' not in loginfo:
loginfo['op'] = "set"
@@ -607,11 +589,9 @@ class DataSmart(MutableMapping):
"""
Rename the variable key to newkey
"""
- if '_remote_data' in self.dict:
- connector = self.dict["_remote_data"]["_content"]
- res = connector.renameVar(key, newkey)
- if not res:
- return
+ if key == newkey:
+ bb.warn("Calling renameVar with equivalent keys (%s) is invalid" % key)
+ return
val = self.getVar(key, 0, parsing=True)
if val is not None:
@@ -658,11 +638,6 @@ class DataSmart(MutableMapping):
def delVar(self, var, **loginfo):
self.expand_cache = {}
- if '_remote_data' in self.dict:
- connector = self.dict["_remote_data"]["_content"]
- res = connector.delVar(var)
- if not res:
- return
loginfo['detail'] = ""
loginfo['op'] = 'del'
@@ -690,11 +665,6 @@ class DataSmart(MutableMapping):
def setVarFlag(self, var, flag, value, **loginfo):
self.expand_cache = {}
- if '_remote_data' in self.dict:
- connector = self.dict["_remote_data"]["_content"]
- res = connector.setVarFlag(var, flag, value)
- if not res:
- return
if 'op' not in loginfo:
loginfo['op'] = "set"
@@ -845,11 +815,6 @@ class DataSmart(MutableMapping):
def delVarFlag(self, var, flag, **loginfo):
self.expand_cache = {}
- if '_remote_data' in self.dict:
- connector = self.dict["_remote_data"]["_content"]
- res = connector.delVarFlag(var, flag)
- if not res:
- return
local_var, _ = self._findVar(var)
if not local_var:
@@ -967,7 +932,7 @@ class DataSmart(MutableMapping):
def localkeys(self):
for key in self.dict:
- if key not in ['_data', '_remote_data']:
+ if key not in ['_data']:
yield key
def __iter__(self):
@@ -976,7 +941,7 @@ class DataSmart(MutableMapping):
def keylist(d):
klist = set()
for key in d:
- if key in ["_data", "_remote_data"]:
+ if key in ["_data"]:
continue
if key in deleted:
continue
@@ -990,13 +955,6 @@ class DataSmart(MutableMapping):
if "_data" in d:
klist |= keylist(d["_data"])
- if "_remote_data" in d:
- connector = d["_remote_data"]["_content"]
- for key in connector.getKeys():
- if key in deleted:
- continue
- klist.add(key)
-
return klist
self.need_overrides()
@@ -1042,7 +1000,10 @@ class DataSmart(MutableMapping):
continue
value = d.getVar(key, False) or ""
- data.update({key:value})
+ if type(value) is type(self):
+ data.update({key:value.get_hash()})
+ else:
+ data.update({key:value})
varflags = d.getVarFlags(key, internalflags = True)
if not varflags:
diff --git a/poky/bitbake/lib/bb/event.py b/poky/bitbake/lib/bb/event.py
index d44621edf..d1359f010 100644
--- a/poky/bitbake/lib/bb/event.py
+++ b/poky/bitbake/lib/bb/event.py
@@ -10,8 +10,7 @@ BitBake build tools.
# SPDX-License-Identifier: GPL-2.0-only
#
-import os, sys
-import warnings
+import sys
import pickle
import logging
import atexit
@@ -347,7 +346,7 @@ def set_UIHmask(handlerNum, level, debug_domains, mask):
def getName(e):
"""Returns the name of a class or class instance"""
- if getattr(e, "__name__", None) == None:
+ if getattr(e, "__name__", None) is None:
return e.__class__.__name__
else:
return e.__name__
@@ -509,7 +508,7 @@ class NoProvider(Event):
extra = ''
if not self._reasons:
if self._close_matches:
- extra = ". Close matches:\n %s" % '\n '.join(self._close_matches)
+ extra = ". Close matches:\n %s" % '\n '.join(sorted(set(self._close_matches)))
if self._dependees:
msg = "Nothing %sPROVIDES '%s' (but %s %sDEPENDS on or otherwise requires it)%s" % (r, self._item, ", ".join(self._dependees), r, extra)
diff --git a/poky/bitbake/lib/bb/fetch2/__init__.py b/poky/bitbake/lib/bb/fetch2/__init__.py
index 07de6c269..eb112f069 100644
--- a/poky/bitbake/lib/bb/fetch2/__init__.py
+++ b/poky/bitbake/lib/bb/fetch2/__init__.py
@@ -33,6 +33,9 @@ _checksum_cache = bb.checksum.FileChecksumCache()
logger = logging.getLogger("BitBake.Fetcher")
+CHECKSUM_LIST = [ "md5", "sha256", "sha1", "sha384", "sha512" ]
+SHOWN_CHECKSUM_LIST = ["sha256"]
+
class BBFetchException(Exception):
"""Class all fetch exceptions inherit from"""
def __init__(self, message):
@@ -131,10 +134,9 @@ class NonLocalMethod(Exception):
Exception.__init__(self)
class MissingChecksumEvent(bb.event.Event):
- def __init__(self, url, md5sum, sha256sum):
+ def __init__(self, url, **checksums):
self.url = url
- self.checksums = {'md5sum': md5sum,
- 'sha256sum': sha256sum}
+ self.checksums = checksums
bb.event.Event.__init__(self)
@@ -484,17 +486,22 @@ def fetcher_init(d):
Called to initialize the fetchers once the configuration data is known.
Calls before this must not hit the cache.
"""
+
+ revs = bb.persist_data.persist('BB_URI_HEADREVS', d)
+ try:
+ # fetcher_init is called multiple times, so make sure we only save the
+ # revs the first time it is called.
+ if not bb.fetch2.saved_headrevs:
+ bb.fetch2.saved_headrevs = dict(revs)
+ except:
+ pass
+
# When to drop SCM head revisions controlled by user policy
srcrev_policy = d.getVar('BB_SRCREV_POLICY') or "clear"
if srcrev_policy == "cache":
logger.debug(1, "Keeping SRCREV cache due to cache policy of: %s", srcrev_policy)
elif srcrev_policy == "clear":
logger.debug(1, "Clearing SRCREV cache due to cache policy of: %s", srcrev_policy)
- revs = bb.persist_data.persist('BB_URI_HEADREVS', d)
- try:
- bb.fetch2.saved_headrevs = revs.items()
- except:
- pass
revs.clear()
else:
raise FetchError("Invalid SRCREV cache policy of: %s" % srcrev_policy)
@@ -513,22 +520,12 @@ def fetcher_parse_done():
def fetcher_compare_revisions(d):
"""
- Compare the revisions in the persistant cache with current values and
- return true/false on whether they've changed.
+ Compare the revisions in the persistent cache with the saved values from
+ when bitbake was started and return true if they have changed.
"""
- data = bb.persist_data.persist('BB_URI_HEADREVS', d).items()
- data2 = bb.fetch2.saved_headrevs
-
- changed = False
- for key in data:
- if key not in data2 or data2[key] != data[key]:
- logger.debug(1, "%s changed", key)
- changed = True
- return True
- else:
- logger.debug(2, "%s did not change", key)
- return False
+ headrevs = dict(bb.persist_data.persist('BB_URI_HEADREVS', d))
+ return headrevs != bb.fetch2.saved_headrevs
def mirror_from_string(data):
mirrors = (data or "").replace('\\n',' ').split()
@@ -552,71 +549,84 @@ def verify_checksum(ud, d, precomputed={}):
downloading. See https://bugzilla.yoctoproject.org/show_bug.cgi?id=5571.
"""
- _MD5_KEY = "md5"
- _SHA256_KEY = "sha256"
-
if ud.ignore_checksums or not ud.method.supports_checksum(ud):
return {}
- if _MD5_KEY in precomputed:
- md5data = precomputed[_MD5_KEY]
- else:
- md5data = bb.utils.md5_file(ud.localpath)
+ def compute_checksum_info(checksum_id):
+ checksum_name = getattr(ud, "%s_name" % checksum_id)
- if _SHA256_KEY in precomputed:
- sha256data = precomputed[_SHA256_KEY]
- else:
- sha256data = bb.utils.sha256_file(ud.localpath)
+ if checksum_id in precomputed:
+ checksum_data = precomputed[checksum_id]
+ else:
+ checksum_data = getattr(bb.utils, "%s_file" % checksum_id)(ud.localpath)
- if ud.method.recommends_checksum(ud) and not ud.md5_expected and not ud.sha256_expected:
- # If strict checking enabled and neither sum defined, raise error
+ checksum_expected = getattr(ud, "%s_expected" % checksum_id)
+
+ return {
+ "id": checksum_id,
+ "name": checksum_name,
+ "data": checksum_data,
+ "expected": checksum_expected
+ }
+
+ checksum_infos = []
+ for checksum_id in CHECKSUM_LIST:
+ checksum_infos.append(compute_checksum_info(checksum_id))
+
+ checksum_dict = {ci["id"] : ci["data"] for ci in checksum_infos}
+ checksum_event = {"%ssum" % ci["id"] : ci["data"] for ci in checksum_infos}
+
+ for ci in checksum_infos:
+ if ci["id"] in SHOWN_CHECKSUM_LIST:
+ checksum_lines = ["SRC_URI[%s] = \"%s\"" % (ci["name"], ci["data"])]
+
+ # If no checksum has been provided
+ if ud.method.recommends_checksum(ud) and all(ci["expected"] is None for ci in checksum_infos):
+ messages = []
strict = d.getVar("BB_STRICT_CHECKSUM") or "0"
+
+ # If strict checking enabled and neither sum defined, raise error
if strict == "1":
- logger.error('No checksum specified for %s, please add at least one to the recipe:\n'
- 'SRC_URI[%s] = "%s"\nSRC_URI[%s] = "%s"' %
- (ud.localpath, ud.md5_name, md5data,
- ud.sha256_name, sha256data))
- raise NoChecksumError('Missing SRC_URI checksum', ud.url)
+ messages.append("No checksum specified for '%s', please add at " \
+ "least one to the recipe:" % ud.localpath)
+ messages.extend(checksum_lines)
+ logger.error("\n".join(messages))
+ raise NoChecksumError("Missing SRC_URI checksum", ud.url)
- bb.event.fire(MissingChecksumEvent(ud.url, md5data, sha256data), d)
+ bb.event.fire(MissingChecksumEvent(ud.url, **checksum_event), d)
if strict == "ignore":
- return {
- _MD5_KEY: md5data,
- _SHA256_KEY: sha256data
- }
+ return checksum_dict
# Log missing sums so user can more easily add them
- logger.warning('Missing md5 SRC_URI checksum for %s, consider adding to the recipe:\n'
- 'SRC_URI[%s] = "%s"',
- ud.localpath, ud.md5_name, md5data)
- logger.warning('Missing sha256 SRC_URI checksum for %s, consider adding to the recipe:\n'
- 'SRC_URI[%s] = "%s"',
- ud.localpath, ud.sha256_name, sha256data)
+ messages.append("Missing checksum for '%s', consider adding at " \
+ "least one to the recipe:" % ud.localpath)
+ messages.extend(checksum_lines)
+ logger.warning("\n".join(messages))
# We want to alert the user if a checksum is defined in the recipe but
# it does not match.
- msg = ""
- mismatch = False
- if ud.md5_expected and ud.md5_expected != md5data:
- msg = msg + "\nFile: '%s' has %s checksum %s when %s was expected" % (ud.localpath, 'md5', md5data, ud.md5_expected)
- mismatch = True;
-
- if ud.sha256_expected and ud.sha256_expected != sha256data:
- msg = msg + "\nFile: '%s' has %s checksum %s when %s was expected" % (ud.localpath, 'sha256', sha256data, ud.sha256_expected)
- mismatch = True;
-
- if mismatch:
- msg = msg + '\nIf this change is expected (e.g. you have upgraded to a new version without updating the checksums) then you can use these lines within the recipe:\nSRC_URI[%s] = "%s"\nSRC_URI[%s] = "%s"\nOtherwise you should retry the download and/or check with upstream to determine if the file has become corrupted or otherwise unexpectedly modified.\n' % (ud.md5_name, md5data, ud.sha256_name, sha256data)
-
- if len(msg):
- raise ChecksumError('Checksum mismatch!%s' % msg, ud.url, md5data)
-
- return {
- _MD5_KEY: md5data,
- _SHA256_KEY: sha256data
- }
-
+ messages = []
+ messages.append("Checksum mismatch!")
+ bad_checksum = None
+
+ for ci in checksum_infos:
+ if ci["expected"] and ci["expected"] != ci["data"]:
+ messages.append("File: '%s' has %s checksum %s when %s was " \
+ "expected" % (ud.localpath, ci["id"], ci["data"], ci["expected"]))
+ bad_checksum = ci["data"]
+
+ if bad_checksum:
+ messages.append("If this change is expected (e.g. you have upgraded " \
+ "to a new version without updating the checksums) " \
+ "then you can use these lines within the recipe:")
+ messages.extend(checksum_lines)
+ messages.append("Otherwise you should retry the download and/or " \
+ "check with upstream to determine if the file has " \
+ "become corrupted or otherwise unexpectedly modified.")
+ raise ChecksumError("\n".join(messages), ud.url, bad_checksum)
+
+ return checksum_dict
def verify_donestamp(ud, d, origud=None):
"""
@@ -1081,7 +1091,7 @@ def try_mirrors(fetch, d, origud, mirrors, check = False):
for index, uri in enumerate(uris):
ret = try_mirror_url(fetch, origud, uds[index], ld, check)
- if ret != False:
+ if ret:
return ret
return None
@@ -1197,14 +1207,14 @@ def get_checksum_file_list(d):
return " ".join(filelist)
-def get_file_checksums(filelist, pn):
+def get_file_checksums(filelist, pn, localdirsexclude):
"""Get a list of the checksums for a list of local files
Returns the checksums for a list of local files, caching the results as
it proceeds
"""
- return _checksum_cache.get_checksums(filelist, pn)
+ return _checksum_cache.get_checksums(filelist, pn, localdirsexclude)
class FetchData(object):
@@ -1230,24 +1240,26 @@ class FetchData(object):
self.pswd = self.parm["pswd"]
self.setup = False
- if "name" in self.parm:
- self.md5_name = "%s.md5sum" % self.parm["name"]
- self.sha256_name = "%s.sha256sum" % self.parm["name"]
- else:
- self.md5_name = "md5sum"
- self.sha256_name = "sha256sum"
- if self.md5_name in self.parm:
- self.md5_expected = self.parm[self.md5_name]
- elif self.type not in ["http", "https", "ftp", "ftps", "sftp", "s3"]:
- self.md5_expected = None
- else:
- self.md5_expected = d.getVarFlag("SRC_URI", self.md5_name)
- if self.sha256_name in self.parm:
- self.sha256_expected = self.parm[self.sha256_name]
- elif self.type not in ["http", "https", "ftp", "ftps", "sftp", "s3"]:
- self.sha256_expected = None
- else:
- self.sha256_expected = d.getVarFlag("SRC_URI", self.sha256_name)
+ def configure_checksum(checksum_id):
+ if "name" in self.parm:
+ checksum_name = "%s.%ssum" % (self.parm["name"], checksum_id)
+ else:
+ checksum_name = "%ssum" % checksum_id
+
+ setattr(self, "%s_name" % checksum_id, checksum_name)
+
+ if checksum_name in self.parm:
+ checksum_expected = self.parm[checksum_name]
+ elif self.type not in ["http", "https", "ftp", "ftps", "sftp", "s3"]:
+ checksum_expected = None
+ else:
+ checksum_expected = d.getVarFlag("SRC_URI", checksum_name)
+
+ setattr(self, "%s_expected" % checksum_id, checksum_expected)
+
+ for checksum_id in CHECKSUM_LIST:
+ configure_checksum(checksum_id)
+
self.ignore_checksums = False
self.names = self.parm.get("name",'default').split(',')
@@ -1351,7 +1363,7 @@ class FetchMethod(object):
"""
# We cannot compute checksums for directories
- if os.path.isdir(urldata.localpath) == True:
+ if os.path.isdir(urldata.localpath):
return False
if urldata.localpath.find("*") != -1:
return False
@@ -1365,6 +1377,18 @@ class FetchMethod(object):
"""
return False
+ def verify_donestamp(self, ud, d):
+ """
+ Verify the donestamp file
+ """
+ return verify_donestamp(ud, d)
+
+ def update_donestamp(self, ud, d):
+ """
+ Update the donestamp file
+ """
+ update_stamp(ud, d)
+
def _strip_leading_slashes(self, relpath):
"""
Remove leading slash as os.path.join can't cope
@@ -1539,6 +1563,12 @@ class FetchMethod(object):
"""
return True
+ def try_mirrors(self, fetch, urldata, d, mirrors, check=False):
+ """
+ Try to use a mirror
+ """
+ return bool(try_mirrors(fetch, d, urldata, mirrors, check))
+
def checkstatus(self, fetch, urldata, d):
"""
Check the status of a URL
@@ -1567,8 +1597,7 @@ class FetchMethod(object):
return True, str(latest_rev)
def generate_revision_key(self, ud, d, name):
- key = self._revision_key(ud, d, name)
- return "%s-%s" % (key, d.getVar("PN") or "")
+ return self._revision_key(ud, d, name)
def latest_versionstring(self, ud, d):
"""
@@ -1578,6 +1607,16 @@ class FetchMethod(object):
"""
return ('', '')
+ def done(self, ud, d):
+ """
+ Is the download done ?
+ """
+ if os.path.exists(ud.localpath):
+ return True
+ if ud.localpath.find("*") != -1:
+ return True
+ return False
+
class Fetch(object):
def __init__(self, urls, d, cache = True, localonly = False, connection_cache = None):
if localonly and cache:
@@ -1592,8 +1631,11 @@ class Fetch(object):
fn = d.getVar('FILE')
mc = d.getVar('__BBMULTICONFIG') or ""
- if cache and fn and mc + fn in urldata_cache:
- self.ud = urldata_cache[mc + fn + str(id(d))]
+ key = None
+ if cache and fn:
+ key = mc + fn + str(id(d))
+ if key in urldata_cache:
+ self.ud = urldata_cache[key]
for url in urls:
if url not in self.ud:
@@ -1604,8 +1646,8 @@ class Fetch(object):
self.ud[url] = None
pass
- if fn and cache:
- urldata_cache[mc + fn + str(id(d))] = self.ud
+ if key:
+ urldata_cache[key] = self.ud
def localpath(self, url):
if url not in self.urls:
@@ -1641,7 +1683,7 @@ class Fetch(object):
ud = self.ud[u]
ud.setup_localpath(self.d)
m = ud.method
- localpath = ""
+ done = False
if ud.lockfile:
lf = bb.utils.lockfile(ud.lockfile)
@@ -1649,28 +1691,28 @@ class Fetch(object):
try:
self.d.setVar("BB_NO_NETWORK", network)
- if verify_donestamp(ud, self.d) and not m.need_update(ud, self.d):
- localpath = ud.localpath
+ if m.verify_donestamp(ud, self.d) and not m.need_update(ud, self.d):
+ done = True
elif m.try_premirror(ud, self.d):
logger.debug(1, "Trying PREMIRRORS")
mirrors = mirror_from_string(self.d.getVar('PREMIRRORS'))
- localpath = try_mirrors(self, self.d, ud, mirrors, False)
- if localpath:
+ done = m.try_mirrors(self, ud, self.d, mirrors)
+ if done:
try:
# early checksum verification so that if the checksum of the premirror
# contents mismatch the fetcher can still try upstream and mirrors
- update_stamp(ud, self.d)
+ m.update_donestamp(ud, self.d)
except ChecksumError as e:
logger.warning("Checksum failure encountered with premirror download of %s - will attempt other sources." % u)
logger.debug(1, str(e))
- localpath = ""
+ done = False
if premirroronly:
self.d.setVar("BB_NO_NETWORK", "1")
firsterr = None
- verified_stamp = verify_donestamp(ud, self.d)
- if not localpath and (not verified_stamp or m.need_update(ud, self.d)):
+ verified_stamp = m.verify_donestamp(ud, self.d)
+ if not done and (not verified_stamp or m.need_update(ud, self.d)):
try:
if not trusted_network(self.d, ud.url):
raise UntrustedUrl(ud.url)
@@ -1678,10 +1720,10 @@ class Fetch(object):
m.download(ud, self.d)
if hasattr(m, "build_mirror_data"):
m.build_mirror_data(ud, self.d)
- localpath = ud.localpath
+ done = True
# early checksum verify, so that if checksum mismatched,
# fetcher still have chance to fetch from mirror
- update_stamp(ud, self.d)
+ m.update_donestamp(ud, self.d)
except bb.fetch2.NetworkAccess:
raise
@@ -1703,14 +1745,14 @@ class Fetch(object):
m.clean(ud, self.d)
logger.debug(1, "Trying MIRRORS")
mirrors = mirror_from_string(self.d.getVar('MIRRORS'))
- localpath = try_mirrors(self, self.d, ud, mirrors)
+ done = m.try_mirrors(self, ud, self.d, mirrors)
- if not localpath or ((not os.path.exists(localpath)) and localpath.find("*") == -1):
+ if not done or not m.done(ud, self.d):
if firsterr:
logger.error(str(firsterr))
raise FetchError("Unable to fetch URL from any source.", u)
- update_stamp(ud, self.d)
+ m.update_donestamp(ud, self.d)
except IOError as e:
if e.errno in [errno.ESTALE]:
@@ -1741,14 +1783,14 @@ class Fetch(object):
logger.debug(1, "Testing URL %s", u)
# First try checking uri, u, from PREMIRRORS
mirrors = mirror_from_string(self.d.getVar('PREMIRRORS'))
- ret = try_mirrors(self, self.d, ud, mirrors, True)
+ ret = m.try_mirrors(self, ud, self.d, mirrors, True)
if not ret:
# Next try checking from the original uri, u
ret = m.checkstatus(self, ud, self.d)
if not ret:
# Finally, try checking uri, u, from MIRRORS
mirrors = mirror_from_string(self.d.getVar('MIRRORS'))
- ret = try_mirrors(self, self.d, ud, mirrors, True)
+ ret = m.try_mirrors(self, ud, self.d, mirrors, True)
if not ret:
raise FetchError("URL %s doesn't work" % u, u)
@@ -1853,6 +1895,7 @@ from . import osc
from . import repo
from . import clearcase
from . import npm
+from . import npmsw
methods.append(local.Local())
methods.append(wget.Wget())
@@ -1871,3 +1914,4 @@ methods.append(osc.Osc())
methods.append(repo.Repo())
methods.append(clearcase.ClearCase())
methods.append(npm.Npm())
+methods.append(npmsw.NpmShrinkWrap())
diff --git a/poky/bitbake/lib/bb/fetch2/bzr.py b/poky/bitbake/lib/bb/fetch2/bzr.py
index c56d87530..566ace9f0 100644
--- a/poky/bitbake/lib/bb/fetch2/bzr.py
+++ b/poky/bitbake/lib/bb/fetch2/bzr.py
@@ -14,8 +14,6 @@ BitBake 'Fetch' implementation for bzr.
#
import os
-import sys
-import logging
import bb
from bb.fetch2 import FetchMethod
from bb.fetch2 import FetchError
diff --git a/poky/bitbake/lib/bb/fetch2/clearcase.py b/poky/bitbake/lib/bb/fetch2/clearcase.py
index e2934ef9f..49d7ae1b0 100644
--- a/poky/bitbake/lib/bb/fetch2/clearcase.py
+++ b/poky/bitbake/lib/bb/fetch2/clearcase.py
@@ -49,7 +49,6 @@ User credentials:
#
import os
-import sys
import shutil
import bb
from bb.fetch2 import FetchMethod
@@ -238,7 +237,7 @@ class ClearCase(FetchMethod):
# Clean clearcase meta-data before tar
- runfetchcmd('tar -czf "%s" .' % (ud.localpath), d, cleanup = [ud.localpath])
+ runfetchcmd('tar -czf "%s" .' % (ud.localpath), d, cleanup = [ud.localpath], workdir = ud.viewdir)
# Clean up so we can create a new view next time
self.clean(ud, d);
diff --git a/poky/bitbake/lib/bb/fetch2/cvs.py b/poky/bitbake/lib/bb/fetch2/cvs.py
index 1b35ba4cf..29123a483 100644
--- a/poky/bitbake/lib/bb/fetch2/cvs.py
+++ b/poky/bitbake/lib/bb/fetch2/cvs.py
@@ -14,7 +14,6 @@ BitBake build tools.
#
import os
-import logging
import bb
from bb.fetch2 import FetchMethod, FetchError, MissingParameterError, logger
from bb.fetch2 import runfetchcmd
diff --git a/poky/bitbake/lib/bb/fetch2/git.py b/poky/bitbake/lib/bb/fetch2/git.py
index fa41b078f..5b3793a70 100644
--- a/poky/bitbake/lib/bb/fetch2/git.py
+++ b/poky/bitbake/lib/bb/fetch2/git.py
@@ -594,7 +594,9 @@ class Git(FetchMethod):
"""
Return a unique key for the url
"""
- return "git:" + ud.host + ud.path.replace('/', '.') + ud.unresolvedrev[name]
+ # Collapse adjacent slashes
+ slash_re = re.compile(r"/+")
+ return "git:" + ud.host + slash_re.sub(".", ud.path) + ud.unresolvedrev[name]
def _lsremote(self, ud, d, search):
"""
@@ -671,7 +673,7 @@ class Git(FetchMethod):
# search for version in the line
tag = tagregex.search(tag_head)
- if tag == None:
+ if tag is None:
continue
tag = tag.group('pver')
diff --git a/poky/bitbake/lib/bb/fetch2/gitannex.py b/poky/bitbake/lib/bb/fetch2/gitannex.py
index 1d497dcb0..80a808d88 100644
--- a/poky/bitbake/lib/bb/fetch2/gitannex.py
+++ b/poky/bitbake/lib/bb/fetch2/gitannex.py
@@ -8,11 +8,9 @@ BitBake 'Fetch' git annex implementation
# SPDX-License-Identifier: GPL-2.0-only
#
-import os
import bb
from bb.fetch2.git import Git
from bb.fetch2 import runfetchcmd
-from bb.fetch2 import logger
class GitANNEX(Git):
def supports(self, ud, d):
diff --git a/poky/bitbake/lib/bb/fetch2/gitsm.py b/poky/bitbake/lib/bb/fetch2/gitsm.py
index c622771d2..e7083001d 100644
--- a/poky/bitbake/lib/bb/fetch2/gitsm.py
+++ b/poky/bitbake/lib/bb/fetch2/gitsm.py
@@ -20,11 +20,12 @@ NOTE: Switching a SRC_URI from "git://" to "gitsm://" requires a clean of your r
import os
import bb
import copy
+import shutil
+import tempfile
from bb.fetch2.git import Git
from bb.fetch2 import runfetchcmd
from bb.fetch2 import logger
from bb.fetch2 import Fetch
-from bb.fetch2 import BBFetchException
class GitSM(Git):
def supports(self, ud, d):
@@ -131,7 +132,7 @@ class GitSM(Git):
ld.setVar('SRCPV', d.getVar('SRCPV'))
ld.setVar('SRCREV_FORMAT', module)
- function(ud, url, module, paths[module], ld)
+ function(ud, url, module, paths[module], workdir, ld)
return submodules != []
@@ -153,7 +154,7 @@ class GitSM(Git):
return False
def download(self, ud, d):
- def download_submodule(ud, url, module, modpath, d):
+ def download_submodule(ud, url, module, modpath, workdir, d):
url += ";bareclone=1;nobranch=1"
# Is the following still needed?
@@ -164,16 +165,25 @@ class GitSM(Git):
newfetch.download()
# Drop a nugget to add each of the srcrevs we've fetched (used by need_update)
runfetchcmd("%s config --add bitbake.srcrev %s" % \
- (ud.basecmd, ud.revisions[ud.names[0]]), d, workdir=ud.clonedir)
+ (ud.basecmd, ud.revisions[ud.names[0]]), d, workdir=workdir)
except Exception as e:
logger.error('gitsm: submodule download failed: %s %s' % (type(e).__name__, str(e)))
raise
Git.download(self, ud, d)
- self.process_submodules(ud, ud.clonedir, download_submodule, d)
+
+ # If we're using a shallow mirror tarball it needs to be unpacked
+ # temporarily so that we can examine the .gitmodules file
+ if ud.shallow and os.path.exists(ud.fullshallow) and self.need_update(ud, d):
+ tmpdir = tempfile.mkdtemp(dir=d.getVar("DL_DIR"))
+ runfetchcmd("tar -xzf %s" % ud.fullshallow, d, workdir=tmpdir)
+ self.process_submodules(ud, tmpdir, download_submodule, d)
+ shutil.rmtree(tmpdir)
+ else:
+ self.process_submodules(ud, ud.clonedir, download_submodule, d)
def unpack(self, ud, destdir, d):
- def unpack_submodules(ud, url, module, modpath, d):
+ def unpack_submodules(ud, url, module, modpath, workdir, d):
url += ";bareclone=1;nobranch=1"
# Figure out where we clone over the bare submodules...
diff --git a/poky/bitbake/lib/bb/fetch2/hg.py b/poky/bitbake/lib/bb/fetch2/hg.py
index e21115deb..8f503701e 100644
--- a/poky/bitbake/lib/bb/fetch2/hg.py
+++ b/poky/bitbake/lib/bb/fetch2/hg.py
@@ -13,8 +13,6 @@ BitBake 'Fetch' implementation for mercurial DRCS (hg).
#
import os
-import sys
-import logging
import bb
import errno
from bb.fetch2 import FetchMethod
diff --git a/poky/bitbake/lib/bb/fetch2/npm.py b/poky/bitbake/lib/bb/fetch2/npm.py
index 9700e6102..47898509f 100644
--- a/poky/bitbake/lib/bb/fetch2/npm.py
+++ b/poky/bitbake/lib/bb/fetch2/npm.py
@@ -1,301 +1,296 @@
+# Copyright (C) 2020 Savoir-Faire Linux
#
# SPDX-License-Identifier: GPL-2.0-only
#
"""
-BitBake 'Fetch' NPM implementation
+BitBake 'Fetch' npm implementation
-The NPM fetcher is used to retrieve files from the npmjs repository
+npm fetcher support the SRC_URI with format of:
+SRC_URI = "npm://some.registry.url;OptionA=xxx;OptionB=xxx;..."
-Usage in the recipe:
+Supported SRC_URI options are:
- SRC_URI = "npm://registry.npmjs.org/;name=${PN};version=${PV}"
- Suported SRC_URI options are:
+- package
+ The npm package name. This is a mandatory parameter.
- - name
- - version
+- version
+ The npm package version. This is a mandatory parameter.
- npm://registry.npmjs.org/${PN}/-/${PN}-${PV}.tgz would become npm://registry.npmjs.org;name=${PN};version=${PV}
- The fetcher all triggers off the existence of ud.localpath. If that exists and has the ".done" stamp, its assumed the fetch is good/done
+- downloadfilename
+ Specifies the filename used when storing the downloaded file.
+- destsuffix
+ Specifies the directory to use to unpack the package (default: npm).
"""
-import os
-import sys
-import urllib.request, urllib.parse, urllib.error
+import base64
import json
-import subprocess
-import signal
+import os
+import re
+import shlex
+import tempfile
import bb
-from bb.fetch2 import FetchMethod
-from bb.fetch2 import FetchError
-from bb.fetch2 import ChecksumError
-from bb.fetch2 import runfetchcmd
-from bb.fetch2 import logger
-from bb.fetch2 import UnpackError
-from bb.fetch2 import ParameterError
-
-def subprocess_setup():
- # Python installs a SIGPIPE handler by default. This is usually not what
- # non-Python subprocesses expect.
- # SIGPIPE errors are known issues with gzip/bash
- signal.signal(signal.SIGPIPE, signal.SIG_DFL)
+from bb.fetch2 import Fetch
+from bb.fetch2 import FetchError
+from bb.fetch2 import FetchMethod
+from bb.fetch2 import MissingParameterError
+from bb.fetch2 import ParameterError
+from bb.fetch2 import URI
+from bb.fetch2 import check_network_access
+from bb.fetch2 import runfetchcmd
+from bb.utils import is_semver
+
+def npm_package(package):
+ """Convert the npm package name to remove unsupported character"""
+ # Scoped package names (with the @) use the same naming convention
+ # as the 'npm pack' command.
+ if package.startswith("@"):
+ return re.sub("/", "-", package[1:])
+ return package
+
+def npm_filename(package, version):
+ """Get the filename of a npm package"""
+ return npm_package(package) + "-" + version + ".tgz"
+
+def npm_localfile(package, version):
+ """Get the local filename of a npm package"""
+ return os.path.join("npm2", npm_filename(package, version))
+
+def npm_integrity(integrity):
+ """
+ Get the checksum name and expected value from the subresource integrity
+ https://www.w3.org/TR/SRI/
+ """
+ algo, value = integrity.split("-", maxsplit=1)
+ return "%ssum" % algo, base64.b64decode(value).hex()
+
+def npm_unpack(tarball, destdir, d):
+ """Unpack a npm tarball"""
+ bb.utils.mkdirhier(destdir)
+ cmd = "tar --extract --gzip --file=%s" % shlex.quote(tarball)
+ cmd += " --no-same-owner"
+ cmd += " --strip-components=1"
+ runfetchcmd(cmd, d, workdir=destdir)
+
+class NpmEnvironment(object):
+ """
+ Using a npm config file seems more reliable than using cli arguments.
+ This class allows to create a controlled environment for npm commands.
+ """
+ def __init__(self, d, configs=None):
+ self.d = d
+ self.configs = configs
+
+ def run(self, cmd, args=None, configs=None, workdir=None):
+ """Run npm command in a controlled environment"""
+ with tempfile.TemporaryDirectory() as tmpdir:
+ d = bb.data.createCopy(self.d)
+ d.setVar("HOME", tmpdir)
+
+ cfgfile = os.path.join(tmpdir, "npmrc")
+
+ if not workdir:
+ workdir = tmpdir
+
+ def _run(cmd):
+ cmd = "NPM_CONFIG_USERCONFIG=%s " % cfgfile + cmd
+ cmd = "NPM_CONFIG_GLOBALCONFIG=%s " % cfgfile + cmd
+ return runfetchcmd(cmd, d, workdir=workdir)
+
+ if self.configs:
+ for key, value in self.configs:
+ _run("npm config set %s %s" % (key, shlex.quote(value)))
+
+ if configs:
+ for key, value in configs:
+ _run("npm config set %s %s" % (key, shlex.quote(value)))
+
+ if args:
+ for key, value in args:
+ cmd += " --%s=%s" % (key, shlex.quote(value))
+
+ return _run(cmd)
class Npm(FetchMethod):
-
- """Class to fetch urls via 'npm'"""
- def init(self, d):
- pass
+ """Class to fetch a package from a npm registry"""
def supports(self, ud, d):
- """
- Check to see if a given url can be fetched with npm
- """
- return ud.type in ['npm']
+ """Check if a given url can be fetched with npm"""
+ return ud.type in ["npm"]
+
+ def urldata_init(self, ud, d):
+ """Init npm specific variables within url data"""
+ ud.package = None
+ ud.version = None
+ ud.registry = None
- def debug(self, msg):
- logger.debug(1, "NpmFetch: %s", msg)
+ # Get the 'package' parameter
+ if "package" in ud.parm:
+ ud.package = ud.parm.get("package")
- def clean(self, ud, d):
- logger.debug(2, "Calling cleanup %s" % ud.pkgname)
- bb.utils.remove(ud.localpath, False)
- bb.utils.remove(ud.pkgdatadir, True)
- bb.utils.remove(ud.fullmirror, False)
+ if not ud.package:
+ raise MissingParameterError("Parameter 'package' required", ud.url)
+
+ # Get the 'version' parameter
+ if "version" in ud.parm:
+ ud.version = ud.parm.get("version")
- def urldata_init(self, ud, d):
- """
- init NPM specific variable within url data
- """
- if 'downloadfilename' in ud.parm:
- ud.basename = ud.parm['downloadfilename']
- else:
- ud.basename = os.path.basename(ud.path)
-
- # can't call it ud.name otherwise fetcher base class will start doing sha1stuff
- # TODO: find a way to get an sha1/sha256 manifest of pkg & all deps
- ud.pkgname = ud.parm.get("name", None)
- if not ud.pkgname:
- raise ParameterError("NPM fetcher requires a name parameter", ud.url)
- ud.version = ud.parm.get("version", None)
if not ud.version:
- raise ParameterError("NPM fetcher requires a version parameter", ud.url)
- ud.bbnpmmanifest = "%s-%s.deps.json" % (ud.pkgname, ud.version)
- ud.bbnpmmanifest = ud.bbnpmmanifest.replace('/', '-')
- ud.registry = "http://%s" % (ud.url.replace('npm://', '', 1).split(';'))[0]
- prefixdir = "npm/%s" % ud.pkgname
- ud.pkgdatadir = d.expand("${DL_DIR}/%s" % prefixdir)
- if not os.path.exists(ud.pkgdatadir):
- bb.utils.mkdirhier(ud.pkgdatadir)
- ud.localpath = d.expand("${DL_DIR}/npm/%s" % ud.bbnpmmanifest)
-
- self.basecmd = d.getVar("FETCHCMD_wget") or "/usr/bin/env wget -O -t 2 -T 30 -nv --passive-ftp --no-check-certificate "
- ud.prefixdir = prefixdir
-
- ud.write_tarballs = ((d.getVar("BB_GENERATE_MIRROR_TARBALLS") or "0") != "0")
- mirrortarball = 'npm_%s-%s.tar.xz' % (ud.pkgname, ud.version)
- mirrortarball = mirrortarball.replace('/', '-')
- ud.fullmirror = os.path.join(d.getVar("DL_DIR"), mirrortarball)
- ud.mirrortarballs = [mirrortarball]
+ raise MissingParameterError("Parameter 'version' required", ud.url)
- def need_update(self, ud, d):
- if os.path.exists(ud.localpath):
- return False
- return True
-
- def _runpack(self, ud, d, pkgfullname: str, quiet=False) -> str:
- """
- Runs npm pack on a full package name.
- Returns the filename of the downloaded package
- """
- bb.fetch2.check_network_access(d, pkgfullname, ud.registry)
- dldir = d.getVar("DL_DIR")
- dldir = os.path.join(dldir, ud.prefixdir)
-
- command = "npm pack {} --registry {}".format(pkgfullname, ud.registry)
- logger.debug(2, "Fetching {} using command '{}' in {}".format(pkgfullname, command, dldir))
- filename = runfetchcmd(command, d, quiet, workdir=dldir)
- return filename.rstrip()
-
- def _unpackdep(self, ud, pkg, data, destdir, dldir, d):
- file = data[pkg]['tgz']
- logger.debug(2, "file to extract is %s" % file)
- if file.endswith('.tgz') or file.endswith('.tar.gz') or file.endswith('.tar.Z'):
- cmd = 'tar xz --strip 1 --no-same-owner --warning=no-unknown-keyword -f %s/%s' % (dldir, file)
- else:
- bb.fatal("NPM package %s downloaded not a tarball!" % file)
-
- # Change to subdir before executing command
- if not os.path.exists(destdir):
- os.makedirs(destdir)
- path = d.getVar('PATH')
- if path:
- cmd = "PATH=\"%s\" %s" % (path, cmd)
- bb.note("Unpacking %s to %s/" % (file, destdir))
- ret = subprocess.call(cmd, preexec_fn=subprocess_setup, shell=True, cwd=destdir)
-
- if ret != 0:
- raise UnpackError("Unpack command %s failed with return value %s" % (cmd, ret), ud.url)
-
- if 'deps' not in data[pkg]:
- return
- for dep in data[pkg]['deps']:
- self._unpackdep(ud, dep, data[pkg]['deps'], "%s/node_modules/%s" % (destdir, dep), dldir, d)
-
-
- def unpack(self, ud, destdir, d):
- dldir = d.getVar("DL_DIR")
- with open("%s/npm/%s" % (dldir, ud.bbnpmmanifest)) as datafile:
- workobj = json.load(datafile)
- dldir = "%s/%s" % (os.path.dirname(ud.localpath), ud.pkgname)
-
- if 'subdir' in ud.parm:
- unpackdir = '%s/%s' % (destdir, ud.parm.get('subdir'))
+ if not is_semver(ud.version) and not ud.version == "latest":
+ raise ParameterError("Invalid 'version' parameter", ud.url)
+
+ # Extract the 'registry' part of the url
+ ud.registry = re.sub(r"^npm://", "http://", ud.url.split(";")[0])
+
+ # Using the 'downloadfilename' parameter as local filename
+ # or the npm package name.
+ if "downloadfilename" in ud.parm:
+ ud.localfile = d.expand(ud.parm["downloadfilename"])
else:
- unpackdir = '%s/npmpkg' % destdir
-
- self._unpackdep(ud, ud.pkgname, workobj, unpackdir, dldir, d)
-
- def _parse_view(self, output):
- '''
- Parse the output of npm view --json; the last JSON result
- is assumed to be the one that we're interested in.
- '''
- pdata = json.loads(output);
- try:
- return pdata[-1]
- except:
- return pdata
-
- def _getdependencies(self, pkg, data, version, d, ud, optional=False, fetchedlist=None):
- if fetchedlist is None:
- fetchedlist = []
- pkgfullname = pkg
- if version != '*' and not '/' in version:
- pkgfullname += "@'%s'" % version
- if pkgfullname in fetchedlist:
- return
-
- logger.debug(2, "Calling getdeps on %s" % pkg)
- fetchcmd = "npm view %s --json --registry %s" % (pkgfullname, ud.registry)
- output = runfetchcmd(fetchcmd, d, True)
- pdata = self._parse_view(output)
- if not pdata:
- raise FetchError("The command '%s' returned no output" % fetchcmd)
- if optional:
- pkg_os = pdata.get('os', None)
- if pkg_os:
- if not isinstance(pkg_os, list):
- pkg_os = [pkg_os]
- blacklist = False
- for item in pkg_os:
- if item.startswith('!'):
- blacklist = True
- break
- if (not blacklist and 'linux' not in pkg_os) or '!linux' in pkg_os:
- logger.debug(2, "Skipping %s since it's incompatible with Linux" % pkg)
- return
- filename = self._runpack(ud, d, pkgfullname)
- data[pkg] = {}
- data[pkg]['tgz'] = filename
- fetchedlist.append(pkgfullname)
-
- dependencies = pdata.get('dependencies', {})
- optionalDependencies = pdata.get('optionalDependencies', {})
- dependencies.update(optionalDependencies)
- depsfound = {}
- optdepsfound = {}
- data[pkg]['deps'] = {}
- for dep in dependencies:
- if dep in optionalDependencies:
- optdepsfound[dep] = dependencies[dep]
+ ud.localfile = npm_localfile(ud.package, ud.version)
+
+ # Get the base 'npm' command
+ ud.basecmd = d.getVar("FETCHCMD_npm") or "npm"
+
+ # This fetcher resolves a URI from a npm package name and version and
+ # then forwards it to a proxy fetcher. A resolve file containing the
+ # resolved URI is created to avoid unwanted network access (if the file
+ # already exists). The management of the donestamp file, the lockfile
+ # and the checksums are forwarded to the proxy fetcher.
+ ud.proxy = None
+ ud.needdonestamp = False
+ ud.resolvefile = self.localpath(ud, d) + ".resolved"
+
+ def _resolve_proxy_url(self, ud, d):
+ def _npm_view():
+ configs = []
+ configs.append(("json", "true"))
+ configs.append(("registry", ud.registry))
+ pkgver = shlex.quote(ud.package + "@" + ud.version)
+ cmd = ud.basecmd + " view %s" % pkgver
+ env = NpmEnvironment(d)
+ check_network_access(d, cmd, ud.registry)
+ view_string = env.run(cmd, configs=configs)
+
+ if not view_string:
+ raise FetchError("Unavailable package %s" % pkgver, ud.url)
+
+ try:
+ view = json.loads(view_string)
+
+ error = view.get("error")
+ if error is not None:
+ raise FetchError(error.get("summary"), ud.url)
+
+ if ud.version == "latest":
+ bb.warn("The npm package %s is using the latest " \
+ "version available. This could lead to " \
+ "non-reproducible builds." % pkgver)
+ elif ud.version != view.get("version"):
+ raise ParameterError("Invalid 'version' parameter", ud.url)
+
+ return view
+
+ except Exception as e:
+ raise FetchError("Invalid view from npm: %s" % str(e), ud.url)
+
+ def _get_url(view):
+ tarball_url = view.get("dist", {}).get("tarball")
+
+ if tarball_url is None:
+ raise FetchError("Invalid 'dist.tarball' in view", ud.url)
+
+ uri = URI(tarball_url)
+ uri.params["downloadfilename"] = ud.localfile
+
+ integrity = view.get("dist", {}).get("integrity")
+ shasum = view.get("dist", {}).get("shasum")
+
+ if integrity is not None:
+ checksum_name, checksum_expected = npm_integrity(integrity)
+ uri.params[checksum_name] = checksum_expected
+ elif shasum is not None:
+ uri.params["sha1sum"] = shasum
else:
- depsfound[dep] = dependencies[dep]
- for dep, version in optdepsfound.items():
- self._getdependencies(dep, data[pkg]['deps'], version, d, ud, optional=True, fetchedlist=fetchedlist)
- for dep, version in depsfound.items():
- self._getdependencies(dep, data[pkg]['deps'], version, d, ud, fetchedlist=fetchedlist)
-
- def _getshrinkeddependencies(self, pkg, data, version, d, ud, lockdown, manifest, toplevel=True):
- logger.debug(2, "NPM shrinkwrap file is %s" % data)
- if toplevel:
- name = data.get('name', None)
- if name and name != pkg:
- for obj in data.get('dependencies', []):
- if obj == pkg:
- self._getshrinkeddependencies(obj, data['dependencies'][obj], data['dependencies'][obj]['version'], d, ud, lockdown, manifest, False)
- return
-
- pkgnameWithVersion = "{}@{}".format(pkg, version)
- logger.debug(2, "Get dependencies for {}".format(pkgnameWithVersion))
- filename = self._runpack(ud, d, pkgnameWithVersion)
- manifest[pkg] = {}
- manifest[pkg]['tgz'] = filename
- manifest[pkg]['deps'] = {}
-
- if pkg in lockdown:
- sha1_expected = lockdown[pkg][version]
- sha1_data = bb.utils.sha1_file("npm/%s/%s" % (ud.pkgname, manifest[pkg]['tgz']))
- if sha1_expected != sha1_data:
- msg = "\nFile: '%s' has %s checksum %s when %s was expected" % (manifest[pkg]['tgz'], 'sha1', sha1_data, sha1_expected)
- raise ChecksumError('Checksum mismatch!%s' % msg)
- else:
- logger.debug(2, "No lockdown data for %s@%s" % (pkg, version))
+ raise FetchError("Invalid 'dist.integrity' in view", ud.url)
- if 'dependencies' in data:
- for obj in data['dependencies']:
- logger.debug(2, "Found dep is %s" % str(obj))
- self._getshrinkeddependencies(obj, data['dependencies'][obj], data['dependencies'][obj]['version'], d, ud, lockdown, manifest[pkg]['deps'], False)
+ return str(uri)
+
+ url = _get_url(_npm_view())
+
+ bb.utils.mkdirhier(os.path.dirname(ud.resolvefile))
+ with open(ud.resolvefile, "w") as f:
+ f.write(url)
+
+ def _setup_proxy(self, ud, d):
+ if ud.proxy is None:
+ if not os.path.exists(ud.resolvefile):
+ self._resolve_proxy_url(ud, d)
+
+ with open(ud.resolvefile, "r") as f:
+ url = f.read()
+
+ # Avoid conflicts between the environment data and:
+ # - the proxy url checksum
+ data = bb.data.createCopy(d)
+ data.delVarFlags("SRC_URI")
+ ud.proxy = Fetch([url], data)
+
+ def _get_proxy_method(self, ud, d):
+ self._setup_proxy(ud, d)
+ proxy_url = ud.proxy.urls[0]
+ proxy_ud = ud.proxy.ud[proxy_url]
+ proxy_d = ud.proxy.d
+ proxy_ud.setup_localpath(proxy_d)
+ return proxy_ud.method, proxy_ud, proxy_d
+
+ def verify_donestamp(self, ud, d):
+ """Verify the donestamp file"""
+ proxy_m, proxy_ud, proxy_d = self._get_proxy_method(ud, d)
+ return proxy_m.verify_donestamp(proxy_ud, proxy_d)
+
+ def update_donestamp(self, ud, d):
+ """Update the donestamp file"""
+ proxy_m, proxy_ud, proxy_d = self._get_proxy_method(ud, d)
+ proxy_m.update_donestamp(proxy_ud, proxy_d)
+
+ def need_update(self, ud, d):
+ """Force a fetch, even if localpath exists ?"""
+ if not os.path.exists(ud.resolvefile):
+ return True
+ if ud.version == "latest":
+ return True
+ proxy_m, proxy_ud, proxy_d = self._get_proxy_method(ud, d)
+ return proxy_m.need_update(proxy_ud, proxy_d)
+
+ def try_mirrors(self, fetch, ud, d, mirrors):
+ """Try to use a mirror"""
+ proxy_m, proxy_ud, proxy_d = self._get_proxy_method(ud, d)
+ return proxy_m.try_mirrors(fetch, proxy_ud, proxy_d, mirrors)
def download(self, ud, d):
"""Fetch url"""
- jsondepobj = {}
- shrinkobj = {}
- lockdown = {}
-
- if not os.listdir(ud.pkgdatadir) and os.path.exists(ud.fullmirror):
- dest = d.getVar("DL_DIR")
- bb.utils.mkdirhier(dest)
- runfetchcmd("tar -xJf %s" % (ud.fullmirror), d, workdir=dest)
- return
-
- if ud.parm.get("noverify", None) != '1':
- shwrf = d.getVar('NPM_SHRINKWRAP')
- logger.debug(2, "NPM shrinkwrap file is %s" % shwrf)
- if shwrf:
- try:
- with open(shwrf) as datafile:
- shrinkobj = json.load(datafile)
- except Exception as e:
- raise FetchError('Error loading NPM_SHRINKWRAP file "%s" for %s: %s' % (shwrf, ud.pkgname, str(e)))
- elif not ud.ignore_checksums:
- logger.warning('Missing shrinkwrap file in NPM_SHRINKWRAP for %s, this will lead to unreliable builds!' % ud.pkgname)
- lckdf = d.getVar('NPM_LOCKDOWN')
- logger.debug(2, "NPM lockdown file is %s" % lckdf)
- if lckdf:
- try:
- with open(lckdf) as datafile:
- lockdown = json.load(datafile)
- except Exception as e:
- raise FetchError('Error loading NPM_LOCKDOWN file "%s" for %s: %s' % (lckdf, ud.pkgname, str(e)))
- elif not ud.ignore_checksums:
- logger.warning('Missing lockdown file in NPM_LOCKDOWN for %s, this will lead to unreproducible builds!' % ud.pkgname)
-
- if ('name' not in shrinkobj):
- self._getdependencies(ud.pkgname, jsondepobj, ud.version, d, ud)
- else:
- self._getshrinkeddependencies(ud.pkgname, shrinkobj, ud.version, d, ud, lockdown, jsondepobj)
-
- with open(ud.localpath, 'w') as outfile:
- json.dump(jsondepobj, outfile)
-
- def build_mirror_data(self, ud, d):
- # Generate a mirror tarball if needed
- if ud.write_tarballs and not os.path.exists(ud.fullmirror):
- # it's possible that this symlink points to read-only filesystem with PREMIRROR
- if os.path.islink(ud.fullmirror):
- os.unlink(ud.fullmirror)
-
- dldir = d.getVar("DL_DIR")
- logger.info("Creating tarball of npm data")
- runfetchcmd("tar -cJf %s npm/%s npm/%s" % (ud.fullmirror, ud.bbnpmmanifest, ud.pkgname), d,
- workdir=dldir)
- runfetchcmd("touch %s.done" % (ud.fullmirror), d, workdir=dldir)
+ self._setup_proxy(ud, d)
+ ud.proxy.download()
+
+ def unpack(self, ud, rootdir, d):
+ """Unpack the downloaded archive"""
+ destsuffix = ud.parm.get("destsuffix", "npm")
+ destdir = os.path.join(rootdir, destsuffix)
+ npm_unpack(ud.localpath, destdir, d)
+
+ def clean(self, ud, d):
+ """Clean any existing full or partial download"""
+ if os.path.exists(ud.resolvefile):
+ self._setup_proxy(ud, d)
+ ud.proxy.clean()
+ bb.utils.remove(ud.resolvefile)
+
+ def done(self, ud, d):
+ """Is the download done ?"""
+ if not os.path.exists(ud.resolvefile):
+ return False
+ proxy_m, proxy_ud, proxy_d = self._get_proxy_method(ud, d)
+ return proxy_m.done(proxy_ud, proxy_d)
diff --git a/poky/bitbake/lib/bb/fetch2/npmsw.py b/poky/bitbake/lib/bb/fetch2/npmsw.py
new file mode 100644
index 000000000..0c3511d8a
--- /dev/null
+++ b/poky/bitbake/lib/bb/fetch2/npmsw.py
@@ -0,0 +1,255 @@
+# Copyright (C) 2020 Savoir-Faire Linux
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+"""
+BitBake 'Fetch' npm shrinkwrap implementation
+
+npm fetcher support the SRC_URI with format of:
+SRC_URI = "npmsw://some.registry.url;OptionA=xxx;OptionB=xxx;..."
+
+Supported SRC_URI options are:
+
+- dev
+ Set to 1 to also install devDependencies.
+
+- destsuffix
+ Specifies the directory to use to unpack the dependencies (default: ${S}).
+"""
+
+import json
+import os
+import re
+import bb
+from bb.fetch2 import Fetch
+from bb.fetch2 import FetchMethod
+from bb.fetch2 import ParameterError
+from bb.fetch2 import URI
+from bb.fetch2.npm import npm_integrity
+from bb.fetch2.npm import npm_localfile
+from bb.fetch2.npm import npm_unpack
+from bb.utils import is_semver
+
+def foreach_dependencies(shrinkwrap, callback=None, dev=False):
+ """
+ Run a callback for each dependencies of a shrinkwrap file.
+ The callback is using the format:
+ callback(name, params, deptree)
+ with:
+ name = the package name (string)
+ params = the package parameters (dictionary)
+ deptree = the package dependency tree (array of strings)
+ """
+ def _walk_deps(deps, deptree):
+ for name in deps:
+ subtree = [*deptree, name]
+ _walk_deps(deps[name].get("dependencies", {}), subtree)
+ if callback is not None:
+ if deps[name].get("dev", False) and not dev:
+ continue
+ elif deps[name].get("bundled", False):
+ continue
+ callback(name, deps[name], subtree)
+
+ _walk_deps(shrinkwrap.get("dependencies", {}), [])
+
+class NpmShrinkWrap(FetchMethod):
+ """Class to fetch all package from a shrinkwrap file"""
+
+ def supports(self, ud, d):
+ """Check if a given url can be fetched with npmsw"""
+ return ud.type in ["npmsw"]
+
+ def urldata_init(self, ud, d):
+ """Init npmsw specific variables within url data"""
+
+ # Get the 'shrinkwrap' parameter
+ ud.shrinkwrap_file = re.sub(r"^npmsw://", "", ud.url.split(";")[0])
+
+ # Get the 'dev' parameter
+ ud.dev = bb.utils.to_boolean(ud.parm.get("dev"), False)
+
+ # Resolve the dependencies
+ ud.deps = []
+
+ def _resolve_dependency(name, params, deptree):
+ url = None
+ localpath = None
+ extrapaths = []
+ destsubdirs = [os.path.join("node_modules", dep) for dep in deptree]
+ destsuffix = os.path.join(*destsubdirs)
+
+ integrity = params.get("integrity", None)
+ resolved = params.get("resolved", None)
+ version = params.get("version", None)
+
+ # Handle registry sources
+ if is_semver(version) and resolved and integrity:
+ localfile = npm_localfile(name, version)
+
+ uri = URI(resolved)
+ uri.params["downloadfilename"] = localfile
+
+ checksum_name, checksum_expected = npm_integrity(integrity)
+ uri.params[checksum_name] = checksum_expected
+
+ url = str(uri)
+
+ localpath = os.path.join(d.getVar("DL_DIR"), localfile)
+
+ # Create a resolve file to mimic the npm fetcher and allow
+ # re-usability of the downloaded file.
+ resolvefile = localpath + ".resolved"
+
+ bb.utils.mkdirhier(os.path.dirname(resolvefile))
+ with open(resolvefile, "w") as f:
+ f.write(url)
+
+ extrapaths.append(resolvefile)
+
+ # Handle http tarball sources
+ elif version.startswith("http") and integrity:
+ localfile = os.path.join("npm2", os.path.basename(version))
+
+ uri = URI(version)
+ uri.params["downloadfilename"] = localfile
+
+ checksum_name, checksum_expected = npm_integrity(integrity)
+ uri.params[checksum_name] = checksum_expected
+
+ url = str(uri)
+
+ localpath = os.path.join(d.getVar("DL_DIR"), localfile)
+
+ # Handle git sources
+ elif version.startswith("git"):
+ regex = re.compile(r"""
+ ^
+ git\+
+ (?P<protocol>[a-z]+)
+ ://
+ (?P<url>[^#]+)
+ \#
+ (?P<rev>[0-9a-f]+)
+ $
+ """, re.VERBOSE)
+
+ match = regex.match(version)
+
+ if not match:
+ raise ParameterError("Invalid git url: %s" % version, ud.url)
+
+ groups = match.groupdict()
+
+ uri = URI("git://" + str(groups["url"]))
+ uri.params["protocol"] = str(groups["protocol"])
+ uri.params["rev"] = str(groups["rev"])
+ uri.params["destsuffix"] = destsuffix
+
+ url = str(uri)
+
+ # local tarball sources and local link sources are unsupported
+ else:
+ raise ParameterError("Unsupported dependency: %s" % name, ud.url)
+
+ ud.deps.append({
+ "url": url,
+ "localpath": localpath,
+ "extrapaths": extrapaths,
+ "destsuffix": destsuffix,
+ })
+
+ try:
+ with open(ud.shrinkwrap_file, "r") as f:
+ shrinkwrap = json.load(f)
+ except Exception as e:
+ raise ParameterError("Invalid shrinkwrap file: %s" % str(e), ud.url)
+
+ foreach_dependencies(shrinkwrap, _resolve_dependency, ud.dev)
+
+ # Avoid conflicts between the environment data and:
+ # - the proxy url revision
+ # - the proxy url checksum
+ data = bb.data.createCopy(d)
+ data.delVar("SRCREV")
+ data.delVarFlags("SRC_URI")
+
+ # This fetcher resolves multiple URIs from a shrinkwrap file and then
+ # forwards it to a proxy fetcher. The management of the donestamp file,
+ # the lockfile and the checksums are forwarded to the proxy fetcher.
+ ud.proxy = Fetch([dep["url"] for dep in ud.deps], data)
+ ud.needdonestamp = False
+
+ @staticmethod
+ def _foreach_proxy_method(ud, handle):
+ returns = []
+ for proxy_url in ud.proxy.urls:
+ proxy_ud = ud.proxy.ud[proxy_url]
+ proxy_d = ud.proxy.d
+ proxy_ud.setup_localpath(proxy_d)
+ returns.append(handle(proxy_ud.method, proxy_ud, proxy_d))
+ return returns
+
+ def verify_donestamp(self, ud, d):
+ """Verify the donestamp file"""
+ def _handle(m, ud, d):
+ return m.verify_donestamp(ud, d)
+ return all(self._foreach_proxy_method(ud, _handle))
+
+ def update_donestamp(self, ud, d):
+ """Update the donestamp file"""
+ def _handle(m, ud, d):
+ m.update_donestamp(ud, d)
+ self._foreach_proxy_method(ud, _handle)
+
+ def need_update(self, ud, d):
+ """Force a fetch, even if localpath exists ?"""
+ def _handle(m, ud, d):
+ return m.need_update(ud, d)
+ return all(self._foreach_proxy_method(ud, _handle))
+
+ def try_mirrors(self, fetch, ud, d, mirrors):
+ """Try to use a mirror"""
+ def _handle(m, ud, d):
+ return m.try_mirrors(fetch, ud, d, mirrors)
+ return all(self._foreach_proxy_method(ud, _handle))
+
+ def download(self, ud, d):
+ """Fetch url"""
+ ud.proxy.download()
+
+ def unpack(self, ud, rootdir, d):
+ """Unpack the downloaded dependencies"""
+ destdir = d.getVar("S")
+ destsuffix = ud.parm.get("destsuffix")
+ if destsuffix:
+ destdir = os.path.join(rootdir, destsuffix)
+
+ bb.utils.mkdirhier(destdir)
+ bb.utils.copyfile(ud.shrinkwrap_file,
+ os.path.join(destdir, "npm-shrinkwrap.json"))
+
+ auto = [dep["url"] for dep in ud.deps if not dep["localpath"]]
+ manual = [dep for dep in ud.deps if dep["localpath"]]
+
+ if auto:
+ ud.proxy.unpack(destdir, auto)
+
+ for dep in manual:
+ depdestdir = os.path.join(destdir, dep["destsuffix"])
+ npm_unpack(dep["localpath"], depdestdir, d)
+
+ def clean(self, ud, d):
+ """Clean any existing full or partial download"""
+ ud.proxy.clean()
+
+ # Clean extra files
+ for dep in ud.deps:
+ for path in dep["extrapaths"]:
+ bb.utils.remove(path)
+
+ def done(self, ud, d):
+ """Is the download done ?"""
+ def _handle(m, ud, d):
+ return m.done(ud, d)
+ return all(self._foreach_proxy_method(ud, _handle))
diff --git a/poky/bitbake/lib/bb/fetch2/osc.py b/poky/bitbake/lib/bb/fetch2/osc.py
index 3e567155d..8f091efd0 100644
--- a/poky/bitbake/lib/bb/fetch2/osc.py
+++ b/poky/bitbake/lib/bb/fetch2/osc.py
@@ -7,8 +7,6 @@ Based on the svn "Fetch" implementation.
"""
-import os
-import sys
import logging
import bb
from bb.fetch2 import FetchMethod
@@ -43,7 +41,7 @@ class Osc(FetchMethod):
else:
pv = d.getVar("PV", False)
rev = bb.fetch2.srcrev_internal_helper(ud, d)
- if rev and rev != True:
+ if rev:
ud.revision = rev
else:
ud.revision = ""
diff --git a/poky/bitbake/lib/bb/fetch2/perforce.py b/poky/bitbake/lib/bb/fetch2/perforce.py
index 54d001ec8..f57c2a4f5 100644
--- a/poky/bitbake/lib/bb/fetch2/perforce.py
+++ b/poky/bitbake/lib/bb/fetch2/perforce.py
@@ -11,7 +11,6 @@ BitBake 'Fetch' implementation for perforce
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os
-import logging
import bb
from bb.fetch2 import FetchMethod
from bb.fetch2 import FetchError
@@ -105,7 +104,7 @@ class Perforce(FetchMethod):
if command == 'changes':
p4cmd = '%s%s changes -m 1 //%s' % (ud.basecmd, p4opt, pathnrev)
elif command == 'print':
- if depot_filename != None:
+ if depot_filename is not None:
p4cmd = '%s%s print -o "p4/%s" "%s"' % (ud.basecmd, p4opt, filename, depot_filename)
else:
raise FetchError('No depot file name provided to p4 %s' % command, ud.url)
diff --git a/poky/bitbake/lib/bb/fetch2/ssh.py b/poky/bitbake/lib/bb/fetch2/ssh.py
index f5be060c4..5e982ecf3 100644
--- a/poky/bitbake/lib/bb/fetch2/ssh.py
+++ b/poky/bitbake/lib/bb/fetch2/ssh.py
@@ -32,8 +32,6 @@ IETF secsh internet draft:
import re, os
from bb.fetch2 import FetchMethod
-from bb.fetch2 import FetchError
-from bb.fetch2 import logger
from bb.fetch2 import runfetchcmd
@@ -60,7 +58,7 @@ class SSH(FetchMethod):
'''Class to fetch a module or modules via Secure Shell'''
def supports(self, urldata, d):
- return __pattern__.match(urldata.url) != None
+ return __pattern__.match(urldata.url) is not None
def supports_checksum(self, urldata):
return False
diff --git a/poky/bitbake/lib/bb/fetch2/svn.py b/poky/bitbake/lib/bb/fetch2/svn.py
index 96d666ba3..971a5add4 100644
--- a/poky/bitbake/lib/bb/fetch2/svn.py
+++ b/poky/bitbake/lib/bb/fetch2/svn.py
@@ -11,8 +11,6 @@ BitBake 'Fetch' implementation for svn.
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os
-import sys
-import logging
import bb
import re
from bb.fetch2 import FetchMethod
@@ -49,7 +47,7 @@ class Svn(FetchMethod):
svndir = d.getVar("SVNDIR") or (d.getVar("DL_DIR") + "/svn")
relpath = self._strip_leading_slashes(ud.path)
ud.pkgdir = os.path.join(svndir, ud.host, relpath)
- ud.moddir = os.path.join(ud.pkgdir, ud.module)
+ ud.moddir = os.path.join(ud.pkgdir, ud.path_spec)
# Protects the repository from concurrent updates, e.g. from two
# recipes fetching different revisions at the same time
ud.svnlock = os.path.join(ud.pkgdir, "svn.lock")
@@ -124,30 +122,30 @@ class Svn(FetchMethod):
try:
if os.access(os.path.join(ud.moddir, '.svn'), os.R_OK):
- svnupdatecmd = self._buildsvncommand(ud, d, "update")
+ svncmd = self._buildsvncommand(ud, d, "update")
logger.info("Update " + ud.url)
# We need to attempt to run svn upgrade first in case its an older working format
try:
runfetchcmd(ud.basecmd + " upgrade", d, workdir=ud.moddir)
except FetchError:
pass
- logger.debug(1, "Running %s", svnupdatecmd)
- bb.fetch2.check_network_access(d, svnupdatecmd, ud.url)
- runfetchcmd(svnupdatecmd, d, workdir=ud.moddir)
+ logger.debug(1, "Running %s", svncmd)
+ bb.fetch2.check_network_access(d, svncmd, ud.url)
+ runfetchcmd(svncmd, d, workdir=ud.moddir)
else:
- svnfetchcmd = self._buildsvncommand(ud, d, "fetch")
+ svncmd = self._buildsvncommand(ud, d, "fetch")
logger.info("Fetch " + ud.url)
# check out sources there
bb.utils.mkdirhier(ud.pkgdir)
- logger.debug(1, "Running %s", svnfetchcmd)
- bb.fetch2.check_network_access(d, svnfetchcmd, ud.url)
- runfetchcmd(svnfetchcmd, d, workdir=ud.pkgdir)
+ logger.debug(1, "Running %s", svncmd)
+ bb.fetch2.check_network_access(d, svncmd, ud.url)
+ runfetchcmd(svncmd, d, workdir=ud.pkgdir)
if not ("externals" in ud.parm and ud.parm["externals"] == "nowarn"):
# Warn the user if this had externals (won't catch them all)
output = runfetchcmd("svn propget svn:externals || true", d, workdir=ud.moddir)
if output:
- if "--ignore-externals" in svnfetchcmd.split():
+ if "--ignore-externals" in svncmd.split():
bb.warn("%s contains svn:externals." % ud.url)
bb.warn("These should be added to the recipe SRC_URI as necessary.")
bb.warn("svn fetch has ignored externals:\n%s" % output)
diff --git a/poky/bitbake/lib/bb/fetch2/wget.py b/poky/bitbake/lib/bb/fetch2/wget.py
index 725586d2b..f7d1de26b 100644
--- a/poky/bitbake/lib/bb/fetch2/wget.py
+++ b/poky/bitbake/lib/bb/fetch2/wget.py
@@ -12,11 +12,10 @@ BitBake build tools.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
+import shlex
import re
import tempfile
-import subprocess
import os
-import logging
import errno
import bb
import bb.progress
@@ -27,7 +26,6 @@ from bb.fetch2 import FetchMethod
from bb.fetch2 import FetchError
from bb.fetch2 import logger
from bb.fetch2 import runfetchcmd
-from bb.fetch2 import FetchConnectionCache
from bb.utils import export_proxies
from bs4 import BeautifulSoup
from bs4 import SoupStrainer
@@ -94,9 +92,9 @@ class Wget(FetchMethod):
fetchcmd = self.basecmd
if 'downloadfilename' in ud.parm:
- dldir = d.getVar("DL_DIR")
- bb.utils.mkdirhier(os.path.dirname(dldir + os.sep + ud.localfile))
- fetchcmd += " -O " + dldir + os.sep + ud.localfile
+ localpath = os.path.join(d.getVar("DL_DIR"), ud.localfile)
+ bb.utils.mkdirhier(os.path.dirname(localpath))
+ fetchcmd += " -O %s" % shlex.quote(localpath)
if ud.user and ud.pswd:
fetchcmd += " --user=%s --password=%s --auth-no-challenge" % (ud.user, ud.pswd)
@@ -302,6 +300,7 @@ class Wget(FetchMethod):
# Some servers (FusionForge, as used on Alioth) require that the
# optional Accept header is set.
r.add_header("Accept", "*/*")
+ r.add_header("User-Agent", "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.12) Gecko/20101027 Ubuntu/9.10 (karmic) Firefox/3.6.12")
def add_basic_auth(login_str, request):
'''Adds Basic auth to http request, pass in login:password as string'''
import base64
diff --git a/poky/bitbake/lib/bb/monitordisk.py b/poky/bitbake/lib/bb/monitordisk.py
index 1a25b0041..e7c07264a 100644
--- a/poky/bitbake/lib/bb/monitordisk.py
+++ b/poky/bitbake/lib/bb/monitordisk.py
@@ -4,7 +4,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-import os, logging, re, sys
+import os, logging, re
import bb
logger = logging.getLogger("BitBake.Monitor")
diff --git a/poky/bitbake/lib/bb/msg.py b/poky/bitbake/lib/bb/msg.py
index 6216eb3bc..c0b344e32 100644
--- a/poky/bitbake/lib/bb/msg.py
+++ b/poky/bitbake/lib/bb/msg.py
@@ -13,9 +13,8 @@ Message handling infrastructure for bitbake
import sys
import copy
import logging
-import collections
+import logging.config
from itertools import groupby
-import warnings
import bb
import bb.event
@@ -100,6 +99,9 @@ class BBLogFormatter(logging.Formatter):
def enable_color(self):
self.color_enabled = True
+ def __repr__(self):
+ return "%s fmt='%s' color=%s" % (self.__class__.__name__, self._fmt, "True" if self.color_enabled else "False")
+
class BBLogFilter(object):
def __init__(self, handler, level, debug_domains):
self.stdlevel = level
@@ -118,60 +120,59 @@ class BBLogFilter(object):
return True
return False
-class BBLogFilterStdErr(BBLogFilter):
+class LogFilterGEQLevel(logging.Filter):
+ def __init__(self, level):
+ self.strlevel = str(level)
+ self.level = stringToLevel(level)
+
+ def __repr__(self):
+ return "%s level >= %s (%d)" % (self.__class__.__name__, self.strlevel, self.level)
+
def filter(self, record):
- if not BBLogFilter.filter(self, record):
- return False
- if record.levelno >= logging.ERROR:
- return True
- return False
+ return (record.levelno >= self.level)
+
+class LogFilterLTLevel(logging.Filter):
+ def __init__(self, level):
+ self.strlevel = str(level)
+ self.level = stringToLevel(level)
+
+ def __repr__(self):
+ return "%s level < %s (%d)" % (self.__class__.__name__, self.strlevel, self.level)
-class BBLogFilterStdOut(BBLogFilter):
def filter(self, record):
- if not BBLogFilter.filter(self, record):
- return False
- if record.levelno < logging.ERROR:
- return True
- return False
+ return (record.levelno < self.level)
# Message control functions
#
-loggerDefaultDebugLevel = 0
+loggerDefaultLogLevel = BBLogFormatter.NOTE
loggerDefaultVerbose = False
loggerVerboseLogs = False
-loggerDefaultDomains = []
+loggerDefaultDomains = {}
def init_msgconfig(verbose, debug, debug_domains=None):
"""
Set default verbosity and debug levels config the logger
"""
- bb.msg.loggerDefaultDebugLevel = debug
bb.msg.loggerDefaultVerbose = verbose
if verbose:
bb.msg.loggerVerboseLogs = True
- if debug_domains:
- bb.msg.loggerDefaultDomains = debug_domains
- else:
- bb.msg.loggerDefaultDomains = []
-
-def constructLogOptions():
- debug = loggerDefaultDebugLevel
- verbose = loggerDefaultVerbose
- domains = loggerDefaultDomains
if debug:
- level = BBLogFormatter.DEBUG - debug + 1
+ bb.msg.loggerDefaultLogLevel = BBLogFormatter.DEBUG - debug + 1
elif verbose:
- level = BBLogFormatter.VERBOSE
+ bb.msg.loggerDefaultLogLevel = BBLogFormatter.VERBOSE
else:
- level = BBLogFormatter.NOTE
+ bb.msg.loggerDefaultLogLevel = BBLogFormatter.NOTE
- debug_domains = {}
- for (domainarg, iterator) in groupby(domains):
- dlevel = len(tuple(iterator))
- debug_domains["BitBake.%s" % domainarg] = logging.DEBUG - dlevel + 1
- return level, debug_domains
+ bb.msg.loggerDefaultDomains = {}
+ if debug_domains:
+ for (domainarg, iterator) in groupby(debug_domains):
+ dlevel = len(tuple(iterator))
+ bb.msg.loggerDefaultDomains["BitBake.%s" % domainarg] = logging.DEBUG - dlevel + 1
+
+def constructLogOptions():
+ return loggerDefaultLogLevel, loggerDefaultDomains
def addDefaultlogFilter(handler, cls = BBLogFilter, forcelevel=None):
level, debug_domains = constructLogOptions()
@@ -181,6 +182,19 @@ def addDefaultlogFilter(handler, cls = BBLogFilter, forcelevel=None):
cls(handler, level, debug_domains)
+def stringToLevel(level):
+ try:
+ return int(level)
+ except ValueError:
+ pass
+
+ try:
+ return getattr(logging, level)
+ except AttributeError:
+ pass
+
+ return getattr(BBLogFormatter, level)
+
#
# Message handling functions
#
@@ -214,3 +228,105 @@ def has_console_handler(logger):
if handler.stream in [sys.stderr, sys.stdout]:
return True
return False
+
+def mergeLoggingConfig(logconfig, userconfig):
+ logconfig = copy.deepcopy(logconfig)
+ userconfig = copy.deepcopy(userconfig)
+
+ # Merge config with the default config
+ if userconfig.get('version') != logconfig['version']:
+ raise BaseException("Bad user configuration version. Expected %r, got %r" % (logconfig['version'], userconfig.get('version')))
+
+ # Set some defaults to make merging easier
+ userconfig.setdefault("loggers", {})
+
+ # If a handler, formatter, or filter is defined in the user
+ # config, it will replace an existing one in the default config
+ for k in ("handlers", "formatters", "filters"):
+ logconfig.setdefault(k, {}).update(userconfig.get(k, {}))
+
+ seen_loggers = set()
+ for name, l in logconfig["loggers"].items():
+ # If the merge option is set, merge the handlers and
+ # filters. Otherwise, if it is False, this logger won't get
+ # add to the set of seen loggers and will replace the
+ # existing one
+ if l.get('bitbake_merge', True):
+ ulogger = userconfig["loggers"].setdefault(name, {})
+ ulogger.setdefault("handlers", [])
+ ulogger.setdefault("filters", [])
+
+ # Merge lists
+ l.setdefault("handlers", []).extend(ulogger["handlers"])
+ l.setdefault("filters", []).extend(ulogger["filters"])
+
+ # Replace other properties if present
+ if "level" in ulogger:
+ l["level"] = ulogger["level"]
+
+ if "propagate" in ulogger:
+ l["propagate"] = ulogger["propagate"]
+
+ seen_loggers.add(name)
+
+ # Add all loggers present in the user config, but not any that
+ # have already been processed
+ for name in set(userconfig["loggers"].keys()) - seen_loggers:
+ logconfig["loggers"][name] = userconfig["loggers"][name]
+
+ return logconfig
+
+def setLoggingConfig(defaultconfig, userconfigfile=None):
+ logconfig = copy.deepcopy(defaultconfig)
+
+ if userconfigfile:
+ with open(userconfigfile, 'r') as f:
+ if userconfigfile.endswith('.yml') or userconfigfile.endswith('.yaml'):
+ import yaml
+ userconfig = yaml.load(f)
+ elif userconfigfile.endswith('.json') or userconfigfile.endswith('.cfg'):
+ import json
+ userconfig = json.load(f)
+ else:
+ raise BaseException("Unrecognized file format: %s" % userconfigfile)
+
+ if userconfig.get('bitbake_merge', True):
+ logconfig = mergeLoggingConfig(logconfig, userconfig)
+ else:
+ # Replace the entire default config
+ logconfig = userconfig
+
+ # Convert all level parameters to integers in case users want to use the
+ # bitbake defined level names
+ for h in logconfig["handlers"].values():
+ if "level" in h:
+ h["level"] = bb.msg.stringToLevel(h["level"])
+
+ for l in logconfig["loggers"].values():
+ if "level" in l:
+ l["level"] = bb.msg.stringToLevel(l["level"])
+
+ conf = logging.config.dictConfigClass(logconfig)
+ conf.configure()
+
+ # The user may have specified logging domains they want at a higher debug
+ # level than the standard.
+ for name, l in logconfig["loggers"].items():
+ if not name.startswith("BitBake."):
+ continue
+
+ if not "level" in l:
+ continue
+
+ curlevel = bb.msg.loggerDefaultDomains.get(name)
+ # Note: level parameter should already be a int because of conversion
+ # above
+ newlevel = int(l["level"])
+ if curlevel is None or newlevel < curlevel:
+ bb.msg.loggerDefaultDomains[name] = newlevel
+
+ # TODO: I don't think that setting the global log level should be necessary
+ #if newlevel < bb.msg.loggerDefaultLogLevel:
+ # bb.msg.loggerDefaultLogLevel = newlevel
+
+ return conf
diff --git a/poky/bitbake/lib/bb/parse/ast.py b/poky/bitbake/lib/bb/parse/ast.py
index f0911e6fb..eb8cfa21b 100644
--- a/poky/bitbake/lib/bb/parse/ast.py
+++ b/poky/bitbake/lib/bb/parse/ast.py
@@ -9,11 +9,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-import re
-import string
-import logging
import bb
-import itertools
from bb import methodpool
from bb.parse import logger
@@ -93,7 +89,7 @@ class DataNode(AstNode):
self.groupd = groupd
def getFunc(self, key, data):
- if 'flag' in self.groupd and self.groupd['flag'] != None:
+ if 'flag' in self.groupd and self.groupd['flag'] is not None:
return data.getVarFlag(key, self.groupd['flag'], expand=False, noweakdefault=True)
else:
return data.getVar(key, False, noweakdefault=True, parsing=True)
@@ -106,36 +102,36 @@ class DataNode(AstNode):
'file': self.filename,
'line': self.lineno,
}
- if "exp" in groupd and groupd["exp"] != None:
+ if "exp" in groupd and groupd["exp"] is not None:
data.setVarFlag(key, "export", 1, op = 'exported', **loginfo)
op = "set"
- if "ques" in groupd and groupd["ques"] != None:
+ if "ques" in groupd and groupd["ques"] is not None:
val = self.getFunc(key, data)
op = "set?"
- if val == None:
+ if val is None:
val = groupd["value"]
- elif "colon" in groupd and groupd["colon"] != None:
+ elif "colon" in groupd and groupd["colon"] is not None:
e = data.createCopy()
op = "immediate"
val = e.expand(groupd["value"], key + "[:=]")
- elif "append" in groupd and groupd["append"] != None:
+ elif "append" in groupd and groupd["append"] is not None:
op = "append"
val = "%s %s" % ((self.getFunc(key, data) or ""), groupd["value"])
- elif "prepend" in groupd and groupd["prepend"] != None:
+ elif "prepend" in groupd and groupd["prepend"] is not None:
op = "prepend"
val = "%s %s" % (groupd["value"], (self.getFunc(key, data) or ""))
- elif "postdot" in groupd and groupd["postdot"] != None:
+ elif "postdot" in groupd and groupd["postdot"] is not None:
op = "postdot"
val = "%s%s" % ((self.getFunc(key, data) or ""), groupd["value"])
- elif "predot" in groupd and groupd["predot"] != None:
+ elif "predot" in groupd and groupd["predot"] is not None:
op = "predot"
val = "%s%s" % (groupd["value"], (self.getFunc(key, data) or ""))
else:
val = groupd["value"]
flag = None
- if 'flag' in groupd and groupd['flag'] != None:
+ if 'flag' in groupd and groupd['flag'] is not None:
flag = groupd['flag']
elif groupd["lazyques"]:
flag = "_defaultval"
diff --git a/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py b/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py
index 6f7cf82b2..6e216effb 100644
--- a/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py
+++ b/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py
@@ -13,9 +13,7 @@
#
import re, bb, os
-import logging
import bb.build, bb.utils
-from bb import data
from . import ConfHandler
from .. import resolve_file, ast, logger, ParseError
diff --git a/poky/bitbake/lib/bb/persist_data.py b/poky/bitbake/lib/bb/persist_data.py
index de8f87a8b..7357ab2d4 100644
--- a/poky/bitbake/lib/bb/persist_data.py
+++ b/poky/bitbake/lib/bb/persist_data.py
@@ -179,6 +179,9 @@ class SQLTable(collections.MutableMapping):
elif not isinstance(value, str):
raise TypeError('Only string values are supported')
+ # Ensure the entire transaction (including SELECT) executes under write lock
+ cursor.execute("BEGIN EXCLUSIVE")
+
cursor.execute("SELECT * from %s where key=?;" % self.table, [key])
row = cursor.fetchone()
if row is not None:
diff --git a/poky/bitbake/lib/bb/progress.py b/poky/bitbake/lib/bb/progress.py
index 4022caa71..9c755b7f7 100644
--- a/poky/bitbake/lib/bb/progress.py
+++ b/poky/bitbake/lib/bb/progress.py
@@ -7,7 +7,6 @@ BitBake progress handling code
# SPDX-License-Identifier: GPL-2.0-only
#
-import sys
import re
import time
import inspect
diff --git a/poky/bitbake/lib/bb/providers.py b/poky/bitbake/lib/bb/providers.py
index f80963cb4..81459c36d 100644
--- a/poky/bitbake/lib/bb/providers.py
+++ b/poky/bitbake/lib/bb/providers.py
@@ -92,11 +92,11 @@ def preferredVersionMatch(pe, pv, pr, preferred_e, preferred_v, preferred_r):
Check if the version pe,pv,pr is the preferred one.
If there is preferred version defined and ends with '%', then pv has to start with that version after removing the '%'
"""
- if (pr == preferred_r or preferred_r == None):
- if (pe == preferred_e or preferred_e == None):
+ if pr == preferred_r or preferred_r is None:
+ if pe == preferred_e or preferred_e is None:
if preferred_v == pv:
return True
- if preferred_v != None and preferred_v.endswith('%') and pv.startswith(preferred_v[:len(preferred_v)-1]):
+ if preferred_v is not None and preferred_v.endswith('%') and pv.startswith(preferred_v[:len(preferred_v)-1]):
return True
return False
diff --git a/poky/bitbake/lib/bb/remotedata.py b/poky/bitbake/lib/bb/remotedata.py
index 7391e1b45..6c9864dd6 100644
--- a/poky/bitbake/lib/bb/remotedata.py
+++ b/poky/bitbake/lib/bb/remotedata.py
@@ -17,16 +17,16 @@ class RemoteDatastores:
self.cooker = cooker
self.datastores = {}
self.locked = []
+ self.datastores[0] = self.cooker.data
self.nextindex = 1
def __len__(self):
return len(self.datastores)
def __getitem__(self, key):
- if key is None:
- return self.cooker.data
- else:
- return self.datastores[key]
+ # Cooker could have changed its datastore from under us
+ self.datastores[0] = self.cooker.data
+ return self.datastores[key]
def items(self):
return self.datastores.items()
@@ -63,44 +63,3 @@ class RemoteDatastores:
raise Exception('Tried to release locked datastore %d' % idx)
del self.datastores[idx]
- def receive_datastore(self, remote_data):
- """Receive a datastore object sent from the client (as prepared by transmit_datastore())"""
- dct = dict(remote_data)
- d = bb.data_smart.DataSmart()
- d.dict = dct
- while True:
- if '_remote_data' in dct:
- dsindex = dct['_remote_data']['_content']
- del dct['_remote_data']
- if dsindex is None:
- dct['_data'] = self.cooker.data.dict
- else:
- dct['_data'] = self.datastores[dsindex].dict
- break
- elif '_data' in dct:
- idct = dict(dct['_data'])
- dct['_data'] = idct
- dct = idct
- else:
- break
- return d
-
- @staticmethod
- def transmit_datastore(d):
- """Prepare a datastore object for sending over IPC from the client end"""
- # FIXME content might be a dict, need to turn that into a list as well
- def copy_dicts(dct):
- if '_remote_data' in dct:
- dsindex = dct['_remote_data']['_content'].dsindex
- newdct = dct.copy()
- newdct['_remote_data'] = {'_content': dsindex}
- return list(newdct.items())
- elif '_data' in dct:
- newdct = dct.copy()
- newdata = copy_dicts(dct['_data'])
- if newdata:
- newdct['_data'] = newdata
- return list(newdct.items())
- return None
- main_dict = copy_dicts(d.dict)
- return main_dict
diff --git a/poky/bitbake/lib/bb/runqueue.py b/poky/bitbake/lib/bb/runqueue.py
index 26492e708..16f076f3b 100644
--- a/poky/bitbake/lib/bb/runqueue.py
+++ b/poky/bitbake/lib/bb/runqueue.py
@@ -12,14 +12,12 @@ Handles preparation and execution of a queue of tasks
import copy
import os
import sys
-import signal
import stat
-import fcntl
import errno
import logging
import re
import bb
-from bb import msg, data, event
+from bb import msg, event
from bb import monitordisk
import subprocess
import pickle
@@ -29,6 +27,7 @@ import pprint
bblogger = logging.getLogger("BitBake")
logger = logging.getLogger("BitBake.RunQueue")
+hashequiv_logger = logging.getLogger("BitBake.RunQueue.HashEquiv")
__find_sha256__ = re.compile( r'(?i)(?<![a-z0-9])[a-f0-9]{64}(?![a-z0-9])' )
@@ -148,8 +147,9 @@ class RunQueueScheduler(object):
"""
Return the id of the first task we find that is buildable
"""
+ # Once tasks are running we don't need to worry about them again
+ self.buildable.difference_update(self.rq.runq_running)
buildable = set(self.buildable)
- buildable.difference_update(self.rq.runq_running)
buildable.difference_update(self.rq.holdoff_tasks)
buildable.intersection_update(self.rq.tasks_covered | self.rq.tasks_notcovered)
if not buildable:
@@ -207,8 +207,6 @@ class RunQueueScheduler(object):
def newbuildable(self, task):
self.buildable.add(task)
- # Once tasks are running we don't need to worry about them again
- self.buildable.difference_update(self.rq.runq_running)
def removebuildable(self, task):
self.buildable.remove(task)
@@ -923,9 +921,11 @@ class RunQueueData:
runq_build = {}
for task in self.cooker.configuration.runall:
+ if not task.startswith("do_"):
+ task = "do_{0}".format(task)
runall_tids = set()
for tid in list(self.runtaskentries):
- wanttid = fn_from_tid(tid) + ":do_%s" % task
+ wanttid = "{0}:{1}".format(fn_from_tid(tid), task)
if wanttid in delcount:
self.runtaskentries[wanttid] = delcount[wanttid]
if wanttid in self.runtaskentries:
@@ -952,7 +952,9 @@ class RunQueueData:
runq_build = {}
for task in self.cooker.configuration.runonly:
- runonly_tids = { k: v for k, v in self.runtaskentries.items() if taskname_from_tid(k) == "do_%s" % task }
+ if not task.startswith("do_"):
+ task = "do_{0}".format(task)
+ runonly_tids = { k: v for k, v in self.runtaskentries.items() if taskname_from_tid(k) == task }
for tid in list(runonly_tids):
mark_active(tid,1)
@@ -1125,14 +1127,14 @@ class RunQueueData:
self.init_progress_reporter.next_stage()
# Iterate over the task list looking for tasks with a 'setscene' function
- self.runq_setscene_tids = []
+ self.runq_setscene_tids = set()
if not self.cooker.configuration.nosetscene:
for tid in self.runtaskentries:
(mc, fn, taskname, _) = split_tid_mcfn(tid)
setscenetid = tid + "_setscene"
if setscenetid not in taskData[mc].taskentries:
continue
- self.runq_setscene_tids.append(tid)
+ self.runq_setscene_tids.add(tid)
self.init_progress_reporter.next_stage()
@@ -1182,10 +1184,8 @@ class RunQueueData:
return len(self.runtaskentries)
def prepare_task_hash(self, tid):
- procdep = []
- for dep in self.runtaskentries[tid].depends:
- procdep.append(dep)
- self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(tid, procdep, self.dataCaches[mc_from_tid(tid)])
+ bb.parse.siggen.prep_taskhash(tid, self.runtaskentries[tid].depends, self.dataCaches[mc_from_tid(tid)])
+ self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(tid, self.runtaskentries[tid].depends, self.dataCaches[mc_from_tid(tid)])
self.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(tid)
def dump_data(self):
@@ -1255,7 +1255,7 @@ class RunQueue:
"fakerootdirs" : self.rqdata.dataCaches[mc].fakerootdirs,
"fakerootnoenv" : self.rqdata.dataCaches[mc].fakerootnoenv,
"sigdata" : bb.parse.siggen.get_taskdata(),
- "logdefaultdebug" : bb.msg.loggerDefaultDebugLevel,
+ "logdefaultlevel" : bb.msg.loggerDefaultLogLevel,
"logdefaultverbose" : bb.msg.loggerDefaultVerbose,
"logdefaultverboselogs" : bb.msg.loggerVerboseLogs,
"logdefaultdomain" : bb.msg.loggerDefaultDomains,
@@ -1711,6 +1711,7 @@ class RunQueueExecute:
self.runq_buildable = set()
self.runq_running = set()
self.runq_complete = set()
+ self.runq_tasksrun = set()
self.build_stamps = {}
self.build_stamps2 = []
@@ -1896,6 +1897,7 @@ class RunQueueExecute:
self.stats.taskCompleted()
bb.event.fire(runQueueTaskCompleted(task, self.stats, self.rq), self.cfgData)
self.task_completeoutright(task)
+ self.runq_tasksrun.add(task)
def task_fail(self, task, exitcode):
"""
@@ -1962,12 +1964,17 @@ class RunQueueExecute:
"""
self.rq.read_workers()
- self.process_possible_migrations()
+ if self.updated_taskhash_queue or self.pending_migrations:
+ self.process_possible_migrations()
+
+ if not hasattr(self, "sorted_setscene_tids"):
+ # Don't want to sort this set every execution
+ self.sorted_setscene_tids = sorted(self.rqdata.runq_setscene_tids)
task = None
if not self.sqdone and self.can_start_task():
# Find the next setscene to run
- for nexttask in sorted(self.rqdata.runq_setscene_tids):
+ for nexttask in self.sorted_setscene_tids:
if nexttask in self.sq_buildable and nexttask not in self.sq_running and self.sqdata.stamps[nexttask] not in self.build_stamps.values():
if nexttask not in self.sqdata.unskippable and len(self.sqdata.sq_revdeps[nexttask]) > 0 and self.sqdata.sq_revdeps[nexttask].issubset(self.scenequeue_covered) and self.check_dependencies(nexttask, self.sqdata.sq_revdeps[nexttask]):
if nexttask not in self.rqdata.target_tids:
@@ -2052,7 +2059,7 @@ class RunQueueExecute:
self.update_holdofftasks()
if not self.sq_live and not self.sqdone and not self.sq_deferred and not self.updated_taskhash_queue and not self.holdoff_tasks:
- logger.info("Setscene tasks completed")
+ hashequiv_logger.verbose("Setscene tasks completed")
err = self.summarise_scenequeue_errors()
if err:
@@ -2090,6 +2097,7 @@ class RunQueueExecute:
logger.debug(2, "Stamp current task %s", task)
self.task_skip(task, "existing")
+ self.runq_tasksrun.add(task)
return True
taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn]
@@ -2248,6 +2256,7 @@ class RunQueueExecute:
def process_possible_migrations(self):
changed = set()
+ toprocess = set()
for tid, unihash in self.updated_taskhash_queue.copy():
if tid in self.runq_running and tid not in self.runq_complete:
continue
@@ -2255,42 +2264,63 @@ class RunQueueExecute:
self.updated_taskhash_queue.remove((tid, unihash))
if unihash != self.rqdata.runtaskentries[tid].unihash:
- logger.info("Task %s unihash changed to %s" % (tid, unihash))
+ hashequiv_logger.verbose("Task %s unihash changed to %s" % (tid, unihash))
self.rqdata.runtaskentries[tid].unihash = unihash
bb.parse.siggen.set_unihash(tid, unihash)
+ toprocess.add(tid)
- # Work out all tasks which depend on this one
- total = set()
- next = set(self.rqdata.runtaskentries[tid].revdeps)
- while next:
- current = next.copy()
- total = total |next
- next = set()
- for ntid in current:
- next |= self.rqdata.runtaskentries[ntid].revdeps
- next.difference_update(total)
-
- # Now iterate those tasks in dependency order to regenerate their taskhash/unihash
- done = set()
- next = set(self.rqdata.runtaskentries[tid].revdeps)
- while next:
- current = next.copy()
- next = set()
- for tid in current:
- if not self.rqdata.runtaskentries[tid].depends.isdisjoint(total):
- continue
- procdep = []
- for dep in self.rqdata.runtaskentries[tid].depends:
- procdep.append(dep)
- orighash = self.rqdata.runtaskentries[tid].hash
- self.rqdata.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(tid, procdep, self.rqdata.dataCaches[mc_from_tid(tid)])
- origuni = self.rqdata.runtaskentries[tid].unihash
- self.rqdata.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(tid)
- logger.debug(1, "Task %s hash changes: %s->%s %s->%s" % (tid, orighash, self.rqdata.runtaskentries[tid].hash, origuni, self.rqdata.runtaskentries[tid].unihash))
- next |= self.rqdata.runtaskentries[tid].revdeps
- changed.add(tid)
- total.remove(tid)
- next.intersection_update(total)
+ # Work out all tasks which depend upon these
+ total = set()
+ next = set()
+ for p in toprocess:
+ next |= self.rqdata.runtaskentries[p].revdeps
+ while next:
+ current = next.copy()
+ total = total | next
+ next = set()
+ for ntid in current:
+ next |= self.rqdata.runtaskentries[ntid].revdeps
+ next.difference_update(total)
+
+ # Now iterate those tasks in dependency order to regenerate their taskhash/unihash
+ next = set()
+ for p in total:
+ if len(self.rqdata.runtaskentries[p].depends) == 0:
+ next.add(p)
+ elif self.rqdata.runtaskentries[p].depends.isdisjoint(total):
+ next.add(p)
+
+ # When an item doesn't have dependencies in total, we can process it. Drop items from total when handled
+ while next:
+ current = next.copy()
+ next = set()
+ for tid in current:
+ if len(self.rqdata.runtaskentries[p].depends) and not self.rqdata.runtaskentries[tid].depends.isdisjoint(total):
+ continue
+ orighash = self.rqdata.runtaskentries[tid].hash
+ newhash = bb.parse.siggen.get_taskhash(tid, self.rqdata.runtaskentries[tid].depends, self.rqdata.dataCaches[mc_from_tid(tid)])
+ origuni = self.rqdata.runtaskentries[tid].unihash
+ newuni = bb.parse.siggen.get_unihash(tid)
+ # FIXME, need to check it can come from sstate at all for determinism?
+ remapped = False
+ if newuni == origuni:
+ # Nothing to do, we match, skip code below
+ remapped = True
+ elif tid in self.scenequeue_covered or tid in self.sq_live:
+ # Already ran this setscene task or it running. Report the new taskhash
+ bb.parse.siggen.report_unihash_equiv(tid, newhash, origuni, newuni, self.rqdata.dataCaches)
+ hashequiv_logger.verbose("Already covered setscene for %s so ignoring rehash (remap)" % (tid))
+ remapped = True
+
+ if not remapped:
+ #logger.debug(1, "Task %s hash changes: %s->%s %s->%s" % (tid, orighash, newhash, origuni, newuni))
+ self.rqdata.runtaskentries[tid].hash = newhash
+ self.rqdata.runtaskentries[tid].unihash = newuni
+ changed.add(tid)
+
+ next |= self.rqdata.runtaskentries[tid].revdeps
+ total.remove(tid)
+ next.intersection_update(total)
if changed:
for mc in self.rq.worker:
@@ -2298,7 +2328,7 @@ class RunQueueExecute:
for mc in self.rq.fakeworker:
self.rq.fakeworker[mc].process.stdin.write(b"<newtaskhashes>" + pickle.dumps(bb.parse.siggen.get_taskhashes()) + b"</newtaskhashes>")
- logger.debug(1, pprint.pformat("Tasks changed:\n%s" % (changed)))
+ hashequiv_logger.debug(1, pprint.pformat("Tasks changed:\n%s" % (changed)))
for tid in changed:
if tid not in self.rqdata.runq_setscene_tids:
@@ -2306,24 +2336,18 @@ class RunQueueExecute:
if tid not in self.pending_migrations:
self.pending_migrations.add(tid)
+ update_tasks = []
for tid in self.pending_migrations.copy():
- if tid in self.runq_running:
+ if tid in self.runq_running or tid in self.sq_live:
# Too late, task already running, not much we can do now
self.pending_migrations.remove(tid)
continue
- if tid in self.scenequeue_covered or tid in self.sq_live:
- # Already ran this setscene task or it running
- # Potentially risky, should we report this hash as a match?
- logger.info("Already covered setscene for %s so ignoring rehash" % (tid))
- self.pending_migrations.remove(tid)
- continue
-
valid = True
# Check no tasks this covers are running
for dep in self.sqdata.sq_covered_tasks[tid]:
if dep in self.runq_running and dep not in self.runq_complete:
- logger.debug(2, "Task %s is running which blocks setscene for %s from running" % (dep, tid))
+ hashequiv_logger.debug(2, "Task %s is running which blocks setscene for %s from running" % (dep, tid))
valid = False
break
if not valid:
@@ -2335,6 +2359,12 @@ class RunQueueExecute:
if tid in self.tasks_scenequeue_done:
self.tasks_scenequeue_done.remove(tid)
for dep in self.sqdata.sq_covered_tasks[tid]:
+ if dep in self.runq_complete and dep not in self.runq_tasksrun:
+ bb.error("Task %s marked as completed but now needing to rerun? Aborting build." % dep)
+ self.failed_tids.append(tid)
+ self.rq.state = runQueueCleanUp
+ return
+
if dep not in self.runq_complete:
if dep in self.tasks_scenequeue_done and dep not in self.sqdata.unskippable:
self.tasks_scenequeue_done.remove(dep)
@@ -2343,7 +2373,12 @@ class RunQueueExecute:
self.sq_buildable.remove(tid)
if tid in self.sq_running:
self.sq_running.remove(tid)
- if self.sqdata.sq_revdeps[tid].issubset(self.scenequeue_covered | self.scenequeue_notcovered):
+ harddepfail = False
+ for t in self.sqdata.sq_harddeps:
+ if tid in self.sqdata.sq_harddeps[t] and t in self.scenequeue_notcovered:
+ harddepfail = True
+ break
+ if not harddepfail and self.sqdata.sq_revdeps[tid].issubset(self.scenequeue_covered | self.scenequeue_notcovered):
if tid not in self.sq_buildable:
self.sq_buildable.add(tid)
if len(self.sqdata.sq_revdeps[tid]) == 0:
@@ -2367,13 +2402,17 @@ class RunQueueExecute:
if tid in self.build_stamps:
del self.build_stamps[tid]
- origvalid = False
- if tid in self.sqdata.valid:
- origvalid = True
+ update_tasks.append((tid, harddepfail, tid in self.sqdata.valid))
+
+ if update_tasks:
self.sqdone = False
- update_scenequeue_data([tid], self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self, summary=False)
+ update_scenequeue_data([t[0] for t in update_tasks], self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self, summary=False)
+
+ for (tid, harddepfail, origvalid) in update_tasks:
if tid in self.sqdata.valid and not origvalid:
- logger.info("Setscene task %s became valid" % tid)
+ hashequiv_logger.verbose("Setscene task %s became valid" % tid)
+ if harddepfail:
+ self.sq_task_failoutright(tid)
if changed:
self.holdoff_need_update = True
@@ -2510,6 +2549,8 @@ class RunQueueExecute:
msg = 'Task %s.%s attempted to execute unexpectedly and should have been setscened' % (pn, taskname)
else:
msg = 'Task %s.%s attempted to execute unexpectedly' % (pn, taskname)
+ for t in self.scenequeue_notcovered:
+ msg = msg + "\nTask %s, unihash %s, taskhash %s" % (t, self.rqdata.runtaskentries[t].unihash, self.rqdata.runtaskentries[t].hash)
logger.error(msg + '\nThis is usually due to missing setscene tasks. Those missing in this build were: %s' % pprint.pformat(self.scenequeue_notcovered))
return True
return False
@@ -2760,7 +2801,7 @@ def update_scenequeue_data(tids, sqdata, rqdata, rq, cooker, stampcache, sqrq, s
sqdata.hashes[h] = tid
else:
sqrq.sq_deferred[tid] = sqdata.hashes[h]
- bb.warn("Deferring %s after %s" % (tid, sqdata.hashes[h]))
+ bb.note("Deferring %s after %s" % (tid, sqdata.hashes[h]))
class TaskFailure(Exception):
diff --git a/poky/bitbake/lib/bb/server/xmlrpcclient.py b/poky/bitbake/lib/bb/server/xmlrpcclient.py
index c054c3c89..442ea7b26 100644
--- a/poky/bitbake/lib/bb/server/xmlrpcclient.py
+++ b/poky/bitbake/lib/bb/server/xmlrpcclient.py
@@ -7,9 +7,6 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-import os
-import sys
-
import socket
import http.client
import xmlrpc.client
diff --git a/poky/bitbake/lib/bb/server/xmlrpcserver.py b/poky/bitbake/lib/bb/server/xmlrpcserver.py
index 54fa32f57..2fa71be66 100644
--- a/poky/bitbake/lib/bb/server/xmlrpcserver.py
+++ b/poky/bitbake/lib/bb/server/xmlrpcserver.py
@@ -7,9 +7,6 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-import os
-import sys
-
import hashlib
import time
import inspect
diff --git a/poky/bitbake/lib/bb/siggen.py b/poky/bitbake/lib/bb/siggen.py
index a4bb1ff7f..4c8d81c5d 100644
--- a/poky/bitbake/lib/bb/siggen.py
+++ b/poky/bitbake/lib/bb/siggen.py
@@ -16,6 +16,7 @@ from bb import runqueue
import hashserv
logger = logging.getLogger('BitBake.SigGen')
+hashequiv_logger = logging.getLogger('BitBake.SigGen.HashEquiv')
def init(d):
siggens = [obj for obj in globals().values()
@@ -40,18 +41,26 @@ class SignatureGenerator(object):
def __init__(self, data):
self.basehash = {}
self.taskhash = {}
+ self.unihash = {}
self.runtaskdeps = {}
self.file_checksum_values = {}
self.taints = {}
self.unitaskhashes = {}
- self.setscenetasks = {}
+ self.tidtopn = {}
+ self.setscenetasks = set()
def finalise(self, fn, d, varient):
return
+ def postparsing_clean_cache(self):
+ return
+
def get_unihash(self, tid):
return self.taskhash[tid]
+ def prep_taskhash(self, tid, deps, dataCache):
+ return
+
def get_taskhash(self, tid, deps, dataCache):
self.taskhash[tid] = hashlib.sha256(tid.encode("utf-8")).hexdigest()
return self.taskhash[tid]
@@ -76,19 +85,19 @@ class SignatureGenerator(object):
return
def get_taskdata(self):
- return (self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints, self.basehash, self.unitaskhashes, self.setscenetasks)
+ return (self.runtaskdeps, self.taskhash, self.unihash, self.file_checksum_values, self.taints, self.basehash, self.unitaskhashes, self.tidtopn, self.setscenetasks)
def set_taskdata(self, data):
- self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints, self.basehash, self.unitaskhashes, self.setscenetasks = data
+ self.runtaskdeps, self.taskhash, self.unihash, self.file_checksum_values, self.taints, self.basehash, self.unitaskhashes, self.tidtopn, self.setscenetasks = data
def reset(self, data):
self.__init__(data)
def get_taskhashes(self):
- return self.taskhash, self.unitaskhashes
+ return self.taskhash, self.unihash, self.unitaskhashes, self.tidtopn
def set_taskhashes(self, hashes):
- self.taskhash, self.unitaskhashes = hashes
+ self.taskhash, self.unihash, self.unitaskhashes, self.tidtopn = hashes
def save_unitaskhashes(self):
return
@@ -104,13 +113,14 @@ class SignatureGeneratorBasic(SignatureGenerator):
def __init__(self, data):
self.basehash = {}
self.taskhash = {}
+ self.unihash = {}
self.taskdeps = {}
self.runtaskdeps = {}
self.file_checksum_values = {}
self.taints = {}
self.gendeps = {}
self.lookupcache = {}
- self.setscenetasks = {}
+ self.setscenetasks = set()
self.basewhitelist = set((data.getVar("BB_HASHBASE_WHITELIST") or "").split())
self.taskwhitelist = None
self.init_rundepcheck(data)
@@ -121,8 +131,10 @@ class SignatureGeneratorBasic(SignatureGenerator):
else:
self.checksum_cache = None
- self.unihash_cache = bb.cache.SimpleCache("1")
+ self.unihash_cache = bb.cache.SimpleCache("3")
self.unitaskhashes = self.unihash_cache.init_cache(data, "bb_unihashes.dat", {})
+ self.localdirsexclude = (data.getVar("BB_SIGNATURE_LOCAL_DIRS_EXCLUDE") or "CVS .bzr .git .hg .osc .p4 .repo .svn").split()
+ self.tidtopn = {}
def init_rundepcheck(self, data):
self.taskwhitelist = data.getVar("BB_HASHTASK_WHITELIST") or None
@@ -134,7 +146,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
def _build_data(self, fn, d):
ignore_mismatch = ((d.getVar("BB_HASH_IGNORE_MISMATCH") or '') == '1')
- tasklist, gendeps, lookupcache = bb.data.generate_dependencies(d)
+ tasklist, gendeps, lookupcache = bb.data.generate_dependencies(d, self.basewhitelist)
taskdeps, basehash = bb.data.generate_dependency_hash(tasklist, gendeps, lookupcache, self.basewhitelist, fn)
@@ -157,7 +169,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
return taskdeps
def set_setscene_tasks(self, setscene_tasks):
- self.setscenetasks = setscene_tasks
+ self.setscenetasks = set(setscene_tasks)
def finalise(self, fn, d, variant):
@@ -180,6 +192,14 @@ class SignatureGeneratorBasic(SignatureGenerator):
for task in taskdeps:
d.setVar("BB_BASEHASH_task-%s" % task, self.basehash[fn + ":" + task])
+ def postparsing_clean_cache(self):
+ #
+ # After parsing we can remove some things from memory to reduce our memory footprint
+ #
+ self.gendeps = {}
+ self.lookupcache = {}
+ self.taskdeps = {}
+
def rundep_check(self, fn, recipename, task, dep, depname, dataCache):
# Return True if we should keep the dependency, False to drop it
# We only manipulate the dependencies for packages not in the whitelist
@@ -198,15 +218,17 @@ class SignatureGeneratorBasic(SignatureGenerator):
pass
return taint
- def get_taskhash(self, tid, deps, dataCache):
+ def prep_taskhash(self, tid, deps, dataCache):
(mc, _, task, fn) = bb.runqueue.split_tid_mcfn(tid)
- data = dataCache.basetaskhash[tid]
- self.basehash[tid] = data
+ self.basehash[tid] = dataCache.basetaskhash[tid]
self.runtaskdeps[tid] = []
self.file_checksum_values[tid] = []
recipename = dataCache.pkg_fn[fn]
+
+ self.tidtopn[tid] = recipename
+
for dep in sorted(deps, key=clean_basepath):
(depmc, _, deptaskname, depfn) = bb.runqueue.split_tid_mcfn(dep)
if mc != depmc:
@@ -216,33 +238,56 @@ class SignatureGeneratorBasic(SignatureGenerator):
continue
if dep not in self.taskhash:
bb.fatal("%s is not in taskhash, caller isn't calling in dependency order?" % dep)
- data = data + self.get_unihash(dep)
self.runtaskdeps[tid].append(dep)
if task in dataCache.file_checksums[fn]:
if self.checksum_cache:
- checksums = self.checksum_cache.get_checksums(dataCache.file_checksums[fn][task], recipename)
+ checksums = self.checksum_cache.get_checksums(dataCache.file_checksums[fn][task], recipename, self.localdirsexclude)
else:
- checksums = bb.fetch2.get_file_checksums(dataCache.file_checksums[fn][task], recipename)
+ checksums = bb.fetch2.get_file_checksums(dataCache.file_checksums[fn][task], recipename, self.localdirsexclude)
for (f,cs) in checksums:
self.file_checksum_values[tid].append((f,cs))
- if cs:
- data = data + cs
taskdep = dataCache.task_deps[fn]
if 'nostamp' in taskdep and task in taskdep['nostamp']:
# Nostamp tasks need an implicit taint so that they force any dependent tasks to run
- import uuid
- taint = str(uuid.uuid4())
- data = data + taint
- self.taints[tid] = "nostamp:" + taint
+ if tid in self.taints and self.taints[tid].startswith("nostamp:"):
+ # Don't reset taint value upon every call
+ pass
+ else:
+ import uuid
+ taint = str(uuid.uuid4())
+ self.taints[tid] = "nostamp:" + taint
taint = self.read_taint(fn, task, dataCache.stamp[fn])
if taint:
- data = data + taint
self.taints[tid] = taint
logger.warning("%s is tainted from a forced run" % tid)
+ return
+
+ def get_taskhash(self, tid, deps, dataCache):
+
+ data = self.basehash[tid]
+ for dep in self.runtaskdeps[tid]:
+ if dep in self.unihash:
+ if self.unihash[dep] is None:
+ data = data + self.taskhash[dep]
+ else:
+ data = data + self.unihash[dep]
+ else:
+ data = data + self.get_unihash(dep)
+
+ for (f, cs) in self.file_checksum_values[tid]:
+ if cs:
+ data = data + cs
+
+ if tid in self.taints:
+ if self.taints[tid].startswith("nostamp:"):
+ data = data + self.taints[tid][8:]
+ else:
+ data = data + self.taints[tid]
+
h = hashlib.sha256(data.encode("utf-8")).hexdigest()
self.taskhash[tid] = h
#d.setVar("BB_TASKHASH_task-%s" % task, taskhash[task])
@@ -371,50 +416,66 @@ class SignatureGeneratorBasicHash(SignatureGeneratorBasic):
bb.build.write_taint(task, d, fn)
class SignatureGeneratorUniHashMixIn(object):
+ def __init__(self, data):
+ self.extramethod = {}
+ super().__init__(data)
+
def get_taskdata(self):
- return (self.server, self.method) + super().get_taskdata()
+ return (self.server, self.method, self.extramethod) + super().get_taskdata()
def set_taskdata(self, data):
- self.server, self.method = data[:2]
- super().set_taskdata(data[2:])
+ self.server, self.method, self.extramethod = data[:3]
+ super().set_taskdata(data[3:])
def client(self):
if getattr(self, '_client', None) is None:
self._client = hashserv.create_client(self.server)
return self._client
- def __get_task_unihash_key(self, tid):
- # TODO: The key only *needs* to be the taskhash, the tid is just
- # convenient
- return '%s:%s' % (tid.rsplit("/", 1)[1], self.taskhash[tid])
-
def get_stampfile_hash(self, tid):
if tid in self.taskhash:
# If a unique hash is reported, use it as the stampfile hash. This
# ensures that if a task won't be re-run if the taskhash changes,
# but it would result in the same output hash
- unihash = self.unitaskhashes.get(self.__get_task_unihash_key(tid), None)
+ unihash = self._get_unihash(tid)
if unihash is not None:
return unihash
return super().get_stampfile_hash(tid)
def set_unihash(self, tid, unihash):
- self.unitaskhashes[self.__get_task_unihash_key(tid)] = unihash
+ (mc, fn, taskname, taskfn) = bb.runqueue.split_tid_mcfn(tid)
+ key = mc + ":" + self.tidtopn[tid] + ":" + taskname
+ self.unitaskhashes[key] = (self.taskhash[tid], unihash)
+ self.unihash[tid] = unihash
+
+ def _get_unihash(self, tid, checkkey=None):
+ if tid not in self.tidtopn:
+ return None
+ (mc, fn, taskname, taskfn) = bb.runqueue.split_tid_mcfn(tid)
+ key = mc + ":" + self.tidtopn[tid] + ":" + taskname
+ if key not in self.unitaskhashes:
+ return None
+ if not checkkey:
+ checkkey = self.taskhash[tid]
+ (key, unihash) = self.unitaskhashes[key]
+ if key != checkkey:
+ return None
+ return unihash
def get_unihash(self, tid):
taskhash = self.taskhash[tid]
# If its not a setscene task we can return
if self.setscenetasks and tid not in self.setscenetasks:
+ self.unihash[tid] = None
return taskhash
- key = self.__get_task_unihash_key(tid)
-
# TODO: This cache can grow unbounded. It probably only needs to keep
# for each task
- unihash = self.unitaskhashes.get(key, None)
+ unihash = self._get_unihash(tid)
if unihash is not None:
+ self.unihash[tid] = unihash
return unihash
# In the absence of being able to discover a unique hash from the
@@ -433,19 +494,23 @@ class SignatureGeneratorUniHashMixIn(object):
unihash = taskhash
try:
- data = self.client().get_unihash(self.method, self.taskhash[tid])
+ method = self.method
+ if tid in self.extramethod:
+ method = method + self.extramethod[tid]
+ data = self.client().get_unihash(method, self.taskhash[tid])
if data:
unihash = data
# A unique hash equal to the taskhash is not very interesting,
# so it is reported it at debug level 2. If they differ, that
# is much more interesting, so it is reported at debug level 1
- bb.debug((1, 2)[unihash == taskhash], 'Found unihash %s in place of %s for %s from %s' % (unihash, taskhash, tid, self.server))
+ hashequiv_logger.debug((1, 2)[unihash == taskhash], 'Found unihash %s in place of %s for %s from %s' % (unihash, taskhash, tid, self.server))
else:
- bb.debug(2, 'No reported unihash for %s:%s from %s' % (tid, taskhash, self.server))
+ hashequiv_logger.debug(2, 'No reported unihash for %s:%s from %s' % (tid, taskhash, self.server))
except hashserv.client.HashConnectionError as e:
bb.warn('Error contacting Hash Equivalence Server %s: %s' % (self.server, str(e)))
- self.unitaskhashes[key] = unihash
+ self.set_unihash(tid, unihash)
+ self.unihash[tid] = unihash
return unihash
def report_unihash(self, path, task, d):
@@ -457,13 +522,17 @@ class SignatureGeneratorUniHashMixIn(object):
tempdir = d.getVar('T')
fn = d.getVar('BB_FILENAME')
tid = fn + ':do_' + task
- key = tid.rsplit("/", 1)[1] + ':' + taskhash
+ key = tid + ':' + taskhash
if self.setscenetasks and tid not in self.setscenetasks:
return
+ # This can happen if locked sigs are in action. Detect and just abort
+ if taskhash != self.taskhash[tid]:
+ return
+
# Sanity checks
- cache_unihash = self.unitaskhashes.get(key, None)
+ cache_unihash = self._get_unihash(tid, checkkey=taskhash)
if cache_unihash is None:
bb.fatal('%s not in unihash cache. Please report this error' % key)
@@ -502,14 +571,20 @@ class SignatureGeneratorUniHashMixIn(object):
extra_data['task'] = task
extra_data['outhash_siginfo'] = sigfile.read().decode('utf-8')
- data = self.client().report_unihash(taskhash, self.method, outhash, unihash, extra_data)
+ method = self.method
+ if tid in self.extramethod:
+ method = method + self.extramethod[tid]
+
+ data = self.client().report_unihash(taskhash, method, outhash, unihash, extra_data)
new_unihash = data['unihash']
if new_unihash != unihash:
- bb.debug(1, 'Task %s unihash changed %s -> %s by server %s' % (taskhash, unihash, new_unihash, self.server))
+ hashequiv_logger.debug(1, 'Task %s unihash changed %s -> %s by server %s' % (taskhash, unihash, new_unihash, self.server))
bb.event.fire(bb.runqueue.taskUniHashUpdate(fn + ':do_' + task, new_unihash), d)
+ self.set_unihash(tid, new_unihash)
+ d.setVar('BB_UNIHASH', new_unihash)
else:
- bb.debug(1, 'Reported task %s as unihash %s to %s' % (taskhash, unihash, self.server))
+ hashequiv_logger.debug(1, 'Reported task %s as unihash %s to %s' % (taskhash, unihash, self.server))
except hashserv.client.HashConnectionError as e:
bb.warn('Error contacting Hash Equivalence Server %s: %s' % (self.server, str(e)))
finally:
@@ -524,6 +599,36 @@ class SignatureGeneratorUniHashMixIn(object):
except OSError:
pass
+ def report_unihash_equiv(self, tid, taskhash, wanted_unihash, current_unihash, datacaches):
+ try:
+ extra_data = {}
+ method = self.method
+ if tid in self.extramethod:
+ method = method + self.extramethod[tid]
+
+ data = self.client().report_unihash_equiv(taskhash, method, wanted_unihash, extra_data)
+ hashequiv_logger.verbose('Reported task %s as unihash %s to %s (%s)' % (tid, wanted_unihash, self.server, str(data)))
+
+ if data is None:
+ bb.warn("Server unable to handle unihash report")
+ return False
+
+ finalunihash = data['unihash']
+
+ if finalunihash == current_unihash:
+ hashequiv_logger.verbose('Task %s unihash %s unchanged by server' % (tid, finalunihash))
+ elif finalunihash == wanted_unihash:
+ hashequiv_logger.verbose('Task %s unihash changed %s -> %s as wanted' % (tid, current_unihash, finalunihash))
+ self.set_unihash(tid, finalunihash)
+ return True
+ else:
+ # TODO: What to do here?
+ hashequiv_logger.verbose('Task %s unihash reported as unwanted hash %s' % (tid, finalunihash))
+
+ except hashserv.client.HashConnectionError as e:
+ bb.warn('Error contacting Hash Equivalence Server %s: %s' % (self.server, str(e)))
+
+ return False
#
# Dummy class used for bitbake-selftest
diff --git a/poky/bitbake/lib/bb/taskdata.py b/poky/bitbake/lib/bb/taskdata.py
index 8c25e09e8..d13a12498 100644
--- a/poky/bitbake/lib/bb/taskdata.py
+++ b/poky/bitbake/lib/bb/taskdata.py
@@ -362,7 +362,7 @@ class TaskData:
bb.event.fire(bb.event.NoProvider(item, dependees=self.get_dependees(item), reasons=["No eligible PROVIDERs exist for '%s'" % item]), cfgData)
raise bb.providers.NoProvider(item)
- if len(eligible) > 1 and foundUnique == False:
+ if len(eligible) > 1 and not foundUnique:
if item not in self.consider_msgs_cache:
providers_list = []
for fn in eligible:
diff --git a/poky/bitbake/lib/bb/tests/cooker.py b/poky/bitbake/lib/bb/tests/cooker.py
index 090916e94..74c903f01 100644
--- a/poky/bitbake/lib/bb/tests/cooker.py
+++ b/poky/bitbake/lib/bb/tests/cooker.py
@@ -5,7 +5,6 @@
#
import unittest
-import tempfile
import os
import bb, bb.cooker
import re
diff --git a/poky/bitbake/lib/bb/tests/cow.py b/poky/bitbake/lib/bb/tests/cow.py
index b4af4bbcb..bf6e79fce 100644
--- a/poky/bitbake/lib/bb/tests/cow.py
+++ b/poky/bitbake/lib/bb/tests/cow.py
@@ -7,7 +7,7 @@
#
import unittest
-import os
+
class COWTestCase(unittest.TestCase):
"""
diff --git a/poky/bitbake/lib/bb/tests/data.py b/poky/bitbake/lib/bb/tests/data.py
index 3e49984c9..5f195047d 100644
--- a/poky/bitbake/lib/bb/tests/data.py
+++ b/poky/bitbake/lib/bb/tests/data.py
@@ -476,7 +476,7 @@ class Contains(unittest.TestCase):
class TaskHash(unittest.TestCase):
def test_taskhashes(self):
def gettask_bashhash(taskname, d):
- tasklist, gendeps, lookupcache = bb.data.generate_dependencies(d)
+ tasklist, gendeps, lookupcache = bb.data.generate_dependencies(d, set())
taskdeps, basehash = bb.data.generate_dependency_hash(tasklist, gendeps, lookupcache, set(), "somefile")
bb.warn(str(lookupcache))
return basehash["somefile:" + taskname]
@@ -544,142 +544,3 @@ class Serialize(unittest.TestCase):
self.assertEqual(newd.getVarFlag('HELLO', 'other'), 'planet')
-# Remote datastore tests
-# These really only test the interface, since in actual usage we have a
-# tinfoil connector that does everything over RPC, and this doesn't test
-# that.
-
-class TestConnector:
- d = None
- def __init__(self, d):
- self.d = d
- def getVar(self, name):
- return self.d._findVar(name)
- def getKeys(self):
- return set(self.d.keys())
- def getVarHistory(self, name):
- return self.d.varhistory.variable(name)
- def expandPythonRef(self, varname, expr, d):
- localdata = self.d.createCopy()
- for key in d.localkeys():
- localdata.setVar(d.getVar(key))
- varparse = bb.data_smart.VariableParse(varname, localdata)
- return varparse.python_sub(expr)
- def setVar(self, name, value):
- self.d.setVar(name, value)
- def setVarFlag(self, name, flag, value):
- self.d.setVarFlag(name, flag, value)
- def delVar(self, name):
- self.d.delVar(name)
- return False
- def delVarFlag(self, name, flag):
- self.d.delVarFlag(name, flag)
- return False
- def renameVar(self, name, newname):
- self.d.renameVar(name, newname)
- return False
-
-class Remote(unittest.TestCase):
- def test_remote(self):
-
- d1 = bb.data.init()
- d1.enableTracking()
- d2 = bb.data.init()
- d2.enableTracking()
- connector = TestConnector(d1)
-
- d2.setVar('_remote_data', connector)
-
- d1.setVar('HELLO', 'world')
- d1.setVarFlag('OTHER', 'flagname', 'flagvalue')
- self.assertEqual(d2.getVar('HELLO'), 'world')
- self.assertEqual(d2.expand('${HELLO}'), 'world')
- self.assertEqual(d2.expand('${@d.getVar("HELLO")}'), 'world')
- self.assertIn('flagname', d2.getVarFlags('OTHER'))
- self.assertEqual(d2.getVarFlag('OTHER', 'flagname'), 'flagvalue')
- self.assertEqual(d1.varhistory.variable('HELLO'), d2.varhistory.variable('HELLO'))
- # Test setVar on client side affects server
- d2.setVar('HELLO', 'other-world')
- self.assertEqual(d1.getVar('HELLO'), 'other-world')
- # Test setVarFlag on client side affects server
- d2.setVarFlag('HELLO', 'flagname', 'flagvalue')
- self.assertEqual(d1.getVarFlag('HELLO', 'flagname'), 'flagvalue')
- # Test client side data is incorporated in python expansion (which is done on server)
- d2.setVar('FOO', 'bar')
- self.assertEqual(d2.expand('${@d.getVar("FOO")}'), 'bar')
- # Test overrides work
- d1.setVar('FOO_test', 'baz')
- d1.appendVar('OVERRIDES', ':test')
- self.assertEqual(d2.getVar('FOO'), 'baz')
-
-
-# Remote equivalents of local test classes
-# Note that these aren't perfect since we only test in one direction
-
-class RemoteDataExpansions(DataExpansions):
- def setUp(self):
- self.d1 = bb.data.init()
- self.d = bb.data.init()
- self.d1["foo"] = "value_of_foo"
- self.d1["bar"] = "value_of_bar"
- self.d1["value_of_foo"] = "value_of_'value_of_foo'"
- connector = TestConnector(self.d1)
- self.d.setVar('_remote_data', connector)
-
-class TestRemoteNestedExpansions(TestNestedExpansions):
- def setUp(self):
- self.d1 = bb.data.init()
- self.d = bb.data.init()
- self.d1["foo"] = "foo"
- self.d1["bar"] = "bar"
- self.d1["value_of_foobar"] = "187"
- connector = TestConnector(self.d1)
- self.d.setVar('_remote_data', connector)
-
-class TestRemoteConcat(TestConcat):
- def setUp(self):
- self.d1 = bb.data.init()
- self.d = bb.data.init()
- self.d1.setVar("FOO", "foo")
- self.d1.setVar("VAL", "val")
- self.d1.setVar("BAR", "bar")
- connector = TestConnector(self.d1)
- self.d.setVar('_remote_data', connector)
-
-class TestRemoteConcatOverride(TestConcatOverride):
- def setUp(self):
- self.d1 = bb.data.init()
- self.d = bb.data.init()
- self.d1.setVar("FOO", "foo")
- self.d1.setVar("VAL", "val")
- self.d1.setVar("BAR", "bar")
- connector = TestConnector(self.d1)
- self.d.setVar('_remote_data', connector)
-
-class TestRemoteOverrides(TestOverrides):
- def setUp(self):
- self.d1 = bb.data.init()
- self.d = bb.data.init()
- self.d1.setVar("OVERRIDES", "foo:bar:local")
- self.d1.setVar("TEST", "testvalue")
- connector = TestConnector(self.d1)
- self.d.setVar('_remote_data', connector)
-
-class TestRemoteKeyExpansion(TestKeyExpansion):
- def setUp(self):
- self.d1 = bb.data.init()
- self.d = bb.data.init()
- self.d1.setVar("FOO", "foo")
- self.d1.setVar("BAR", "foo")
- connector = TestConnector(self.d1)
- self.d.setVar('_remote_data', connector)
-
-class TestRemoteFlags(TestFlags):
- def setUp(self):
- self.d1 = bb.data.init()
- self.d = bb.data.init()
- self.d1.setVar("foo", "value of foo")
- self.d1.setVarFlag("foo", "flag1", "value of flag1")
- self.d1.setVarFlag("foo", "flag2", "value of flag2")
- connector = TestConnector(self.d1)
- self.d.setVar('_remote_data', connector)
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/apple/cups/releases b/poky/bitbake/lib/bb/tests/fetch-testdata/apple/cups/releases
new file mode 100644
index 000000000..f8934f56f
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/apple/cups/releases
@@ -0,0 +1,2400 @@
+
+
+
+
+
+
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <link rel="dns-prefetch" href="https://github.githubassets.com">
+ <link rel="dns-prefetch" href="https://avatars0.githubusercontent.com">
+ <link rel="dns-prefetch" href="https://avatars1.githubusercontent.com">
+ <link rel="dns-prefetch" href="https://avatars2.githubusercontent.com">
+ <link rel="dns-prefetch" href="https://avatars3.githubusercontent.com">
+ <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
+ <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
+
+
+
+ <link crossorigin="anonymous" media="all" integrity="sha512-7mtunHqp/Bw0ND9akjJME8XCh0WPm3HAXOSeX7skL0qGAhpdfzkQvYcujYcwNPTpWKeKMFUGZGtvnEkcczFgwQ==" rel="stylesheet" href="https://github.githubassets.com/assets/frameworks-9b5314213e37056ed87b0418056c4f2c.css" />
+ <link crossorigin="anonymous" media="all" integrity="sha512-CmoegizWCUR1jC94Y2eukVQIFxJ9GxYerz9q7dBwImLlx8ODwYkXAMIhCfTnA45Ep6++rcO/ZtKVLvFBM8dapA==" rel="stylesheet" href="https://github.githubassets.com/assets/site-4e9f27fa33341743f730ae7b0e33eff5.css" />
+ <link crossorigin="anonymous" media="all" integrity="sha512-BvnICKFjIvT69o61dyYllXtaOnGVb7Ifj5c3lk3wj7tkjat2ICuN+XRwyk8tqP3dj7IFhEQzxDdxSHaJ3xj3Mw==" rel="stylesheet" href="https://github.githubassets.com/assets/github-ff986874cf7e28cbcd5d448cdca7245d.css" />
+
+
+
+
+
+
+ <meta name="viewport" content="width=device-width">
+
+ <title>Releases · apple/cups · GitHub</title>
+ <meta name="description" content="Official CUPS Sources. Contribute to apple/cups development by creating an account on GitHub.">
+ <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
+ <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
+ <meta property="fb:app_id" content="1401488693436528">
+
+ <meta name="twitter:image:src" content="https://avatars2.githubusercontent.com/u/10639145?s=400&amp;v=4" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary" /><meta name="twitter:title" content="apple/cups" /><meta name="twitter:description" content="Official CUPS Sources. Contribute to apple/cups development by creating an account on GitHub." />
+ <meta property="og:image" content="https://avatars2.githubusercontent.com/u/10639145?s=400&amp;v=4" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="apple/cups" /><meta property="og:url" content="https://github.com/apple/cups" /><meta property="og:description" content="Official CUPS Sources. Contribute to apple/cups development by creating an account on GitHub." />
+
+ <link rel="assets" href="https://github.githubassets.com/">
+
+
+
+ <meta name="request-id" content="E0CB:22348:508D9B:74D7B0:5DFA43C4" data-pjax-transient>
+
+
+
+
+
+ <meta name="selected-link" value="repo_releases" data-pjax-transient>
+
+ <meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
+ <meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
+ <meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc">
+
+ <meta name="octolytics-host" content="collector.githubapp.com" /><meta name="octolytics-app-id" content="github" /><meta name="octolytics-event-url" content="https://collector.githubapp.com/github-external/browser_event" /><meta name="octolytics-dimension-request_id" content="E0CB:22348:508D9B:74D7B0:5DFA43C4" /><meta name="octolytics-dimension-region_edge" content="ams" /><meta name="octolytics-dimension-region_render" content="iad" /><meta name="octolytics-dimension-ga_id" content="" class="js-octo-ga-id" /><meta name="octolytics-dimension-visitor_id" content="3868440108365136837" />
+
+<meta name="analytics-location" content="/&lt;user-name&gt;/&lt;repo-name&gt;/releases/index" data-pjax-transient="true" />
+
+
+
+ <meta name="google-analytics" content="UA-3769691-2">
+
+
+<meta class="js-ga-set" name="dimension1" content="Logged Out">
+
+
+
+
+
+ <meta name="hostname" content="github.com">
+ <meta name="user-login" content="">
+
+ <meta name="expected-hostname" content="github.com">
+
+ <meta name="js-proxy-site-detection-payload" content="NmQ3M2FjYmZiNDJmZTg4YjgzZmRkOWJlNjQzYjU2MGFmNDQ5OTM4ZGVmMjcyMTNmMGZjOGVlODg1NWM0NGJmOHx7InJlbW90ZV9hZGRyZXNzIjoiODcuODEuMjQ0LjE2MSIsInJlcXVlc3RfaWQiOiJFMENCOjIyMzQ4OjUwOEQ5Qjo3NEQ3QjA6NURGQTQzQzQiLCJ0aW1lc3RhbXAiOjE1NzY2ODI0MzcsImhvc3QiOiJnaXRodWIuY29tIn0=">
+
+ <meta name="enabled-features" content="MARKETPLACE_FEATURED_BLOG_POSTS,MARKETPLACE_INVOICED_BILLING,MARKETPLACE_SOCIAL_PROOF_CUSTOMERS,MARKETPLACE_TRENDING_SOCIAL_PROOF,MARKETPLACE_RECOMMENDATIONS,MARKETPLACE_PENDING_INSTALLATIONS">
+
+ <meta name="html-safe-nonce" content="99799050425011fe6bc71791e860bd50b46cc6a7">
+
+ <meta http-equiv="x-pjax-version" content="2d29eb011c4e56b5682393d6f45c86b9">
+
+
+ <link rel="alternate" type="application/atom+xml" title="cups Release Notes" href="https://github.com/apple/cups/releases.atom" />
+ <link rel="alternate" type="application/atom+xml" title="cups Tags" href="https://github.com/apple/cups/tags.atom" />
+ <link href="https://github.com/apple/cups/commits/master.atom" rel="alternate" title="Recent Commits to cups:master" type="application/atom+xml">
+
+ <meta name="go-import" content="github.com/apple/cups git https://github.com/apple/cups.git">
+
+ <meta name="octolytics-dimension-user_id" content="10639145" /><meta name="octolytics-dimension-user_login" content="apple" /><meta name="octolytics-dimension-repository_id" content="44137852" /><meta name="octolytics-dimension-repository_nwo" content="apple/cups" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="44137852" /><meta name="octolytics-dimension-repository_network_root_nwo" content="apple/cups" /><meta name="octolytics-dimension-repository_explore_github_marketplace_ci_cta_shown" content="false" />
+
+
+
+
+ <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">
+
+ <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
+
+ <link rel="mask-icon" href="https://github.githubassets.com/pinned-octocat.svg" color="#000000">
+ <link rel="icon" type="image/x-icon" class="js-site-favicon" href="https://github.githubassets.com/favicon.ico">
+
+<meta name="theme-color" content="#1e2327">
+
+
+
+
+
+ <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">
+
+ </head>
+
+ <body class="logged-out env-production page-responsive">
+
+
+ <div class="position-relative js-header-wrapper ">
+ <a href="#start-of-content" tabindex="1" class="px-2 py-4 bg-blue text-white show-on-focus js-skip-to-content">Skip to content</a>
+ <span class="Progress progress-pjax-loader position-fixed width-full js-pjax-loader-bar">
+ <span class="progress-pjax-loader-bar top-0 left-0" style="width: 0%;"></span>
+ </span>
+
+
+
+
+
+
+ <header class="Header-old header-logged-out js-details-container Details position-relative f4 py-2" role="banner">
+ <div class="container-lg d-lg-flex flex-items-center p-responsive">
+ <div class="d-flex flex-justify-between flex-items-center">
+ <a class="mr-4" href="https://github.com/" aria-label="Homepage" data-ga-click="(Logged out) Header, go to homepage, icon:logo-wordmark">
+ <svg height="32" class="octicon octicon-mark-github text-white" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg>
+ </a>
+
+ <div class="d-lg-none css-truncate css-truncate-target width-fit p-2">
+
+ <svg class="octicon octicon-repo" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
+ <a class="Header-link" href="/apple">apple</a>
+ /
+ <a class="Header-link" href="/apple/cups">cups</a>
+
+
+ </div>
+
+ <div class="d-flex flex-items-center">
+ <a href="/join?source=header-repo"
+ class="d-inline-block d-lg-none f5 text-white no-underline border border-gray-dark rounded-2 px-2 py-1 mr-3 mr-sm-5"
+ data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;E0CB:22348:508D9B:74D7B0:5DFA43C4&quot;,&quot;originating_url&quot;:&quot;https://github.com/apple/cups/releases&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2463445c045c6be86a7b48e6c0af96d0ba777892d6d236f27826323b35cef5d7"
+ data-ga-click="(Logged out) Header, clicked Sign up, text:sign-up">
+ Sign&nbsp;up
+ </a>
+
+ <button class="btn-link d-lg-none mt-1 js-details-target" type="button" aria-label="Toggle navigation" aria-expanded="false">
+ <svg height="24" class="octicon octicon-three-bars text-white" viewBox="0 0 12 16" version="1.1" width="18" aria-hidden="true"><path fill-rule="evenodd" d="M11.41 9H.59C0 9 0 8.59 0 8c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zm0-4H.59C0 5 0 4.59 0 4c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM.59 11H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1H.59C0 13 0 12.59 0 12c0-.59 0-1 .59-1z"/></svg>
+ </button>
+ </div>
+ </div>
+
+ <div class="HeaderMenu HeaderMenu--logged-out position-fixed top-0 right-0 bottom-0 height-fit position-lg-relative d-lg-flex flex-justify-between flex-items-center flex-auto">
+ <div class="d-flex d-lg-none flex-justify-end border-bottom bg-gray-light p-3">
+ <button class="btn-link js-details-target" type="button" aria-label="Toggle navigation" aria-expanded="false">
+ <svg height="24" class="octicon octicon-x text-gray" viewBox="0 0 12 16" version="1.1" width="18" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
+ </button>
+ </div>
+
+ <nav class="mt-0 px-3 px-lg-0 mb-5 mb-lg-0" aria-label="Global">
+ <ul class="d-lg-flex list-style-none">
+ <li class="d-block d-lg-flex flex-lg-nowrap flex-lg-items-center border-bottom border-lg-bottom-0 mr-0 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center ">
+ <details class="HeaderMenu-details details-overlay details-reset width-full">
+ <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-block d-lg-inline-block">
+ Why GitHub?
+ <svg x="0px" y="0px" viewBox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-absolute position-lg-relative">
+ <path d="M1,1l6.2,6L13,1"></path>
+ </svg>
+ </summary>
+ <div class="dropdown-menu flex-auto rounded-1 bg-white px-0 mt-0 pb-4 p-lg-4 position-relative position-lg-absolute left-0 left-lg-n4">
+ <a href="/features" class="py-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Features">Features <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a>
+ <ul class="list-style-none f5 pb-3">
+ <li class="edge-item-fix"><a href="/features/code-review/" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Code review">Code review</a></li>
+ <li class="edge-item-fix"><a href="/features/project-management/" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Project management">Project management</a></li>
+ <li class="edge-item-fix"><a href="/features/integrations" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Integrations">Integrations</a></li>
+ <li class="edge-item-fix"><a href="/features/actions" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Actions">Actions</a></li>
+ <li class="edge-item-fix"><a href="/features/packages" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to GitHub Packages">Packages</a></li>
+ <li class="edge-item-fix"><a href="/features/security" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Security">Security</a></li>
+ <li class="edge-item-fix"><a href="/features#team-management" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Team management">Team management</a></li>
+ <li class="edge-item-fix"><a href="/features#hosting" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Code hosting">Hosting</a></li>
+ </ul>
+
+ <ul class="list-style-none mb-0 border-lg-top pt-lg-3">
+ <li class="edge-item-fix"><a href="/customer-stories" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Customer stories">Customer stories <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
+ <li class="edge-item-fix"><a href="/security" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Security">Security <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
+ </ul>
+ </div>
+ </details>
+ </li>
+ <li class="border-bottom border-lg-bottom-0 mr-0 mr-lg-3">
+ <a href="/enterprise" class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to Enterprise">Enterprise</a>
+ </li>
+
+ <li class="d-block d-lg-flex flex-lg-nowrap flex-lg-items-center border-bottom border-lg-bottom-0 mr-0 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center ">
+ <details class="HeaderMenu-details details-overlay details-reset width-full">
+ <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-block d-lg-inline-block">
+ Explore
+ <svg x="0px" y="0px" viewBox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-absolute position-lg-relative">
+ <path d="M1,1l6.2,6L13,1"></path>
+ </svg>
+ </summary>
+
+ <div class="dropdown-menu flex-auto rounded-1 bg-white px-0 pt-2 pb-0 mt-0 pb-4 p-lg-4 position-relative position-lg-absolute left-0 left-lg-n4">
+ <ul class="list-style-none mb-3">
+ <li class="edge-item-fix"><a href="/explore" class="py-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Explore">Explore GitHub <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
+ </ul>
+
+ <h4 class="text-gray-light text-normal text-mono f5 mb-2 border-lg-top pt-lg-3">Learn &amp; contribute</h4>
+ <ul class="list-style-none mb-3">
+ <li class="edge-item-fix"><a href="/topics" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Topics">Topics</a></li>
+ <li class="edge-item-fix"><a href="/collections" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Collections">Collections</a></li>
+ <li class="edge-item-fix"><a href="/trending" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Trending">Trending</a></li>
+ <li class="edge-item-fix"><a href="https://lab.github.com/" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Learning lab">Learning Lab</a></li>
+ <li class="edge-item-fix"><a href="https://opensource.guide" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Open source guides">Open source guides</a></li>
+ </ul>
+
+ <h4 class="text-gray-light text-normal text-mono f5 mb-2 border-lg-top pt-lg-3">Connect with others</h4>
+ <ul class="list-style-none mb-0">
+ <li class="edge-item-fix"><a href="https://github.com/events" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Events">Events</a></li>
+ <li class="edge-item-fix"><a href="https://github.community" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Community forum">Community forum</a></li>
+ <li class="edge-item-fix"><a href="https://education.github.com" class="py-2 pb-0 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to GitHub Education">GitHub Education</a></li>
+ </ul>
+ </div>
+ </details>
+ </li>
+
+ <li class="border-bottom border-lg-bottom-0 mr-0 mr-lg-3">
+ <a href="/marketplace" class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to Marketplace">Marketplace</a>
+ </li>
+
+ <li class="d-block d-lg-flex flex-lg-nowrap flex-lg-items-center border-bottom border-lg-bottom-0 mr-0 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center ">
+ <details class="HeaderMenu-details details-overlay details-reset width-full">
+ <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-block d-lg-inline-block">
+ Pricing
+ <svg x="0px" y="0px" viewBox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-absolute position-lg-relative">
+ <path d="M1,1l6.2,6L13,1"></path>
+ </svg>
+ </summary>
+
+ <div class="dropdown-menu flex-auto rounded-1 bg-white px-0 pt-2 pb-4 mt-0 p-lg-4 position-relative position-lg-absolute left-0 left-lg-n4">
+ <a href="/pricing" class="pb-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Pricing">Plans <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a>
+
+ <ul class="list-style-none mb-3">
+ <li class="edge-item-fix"><a href="/pricing#feature-comparison" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Compare plans">Compare plans</a></li>
+ <li class="edge-item-fix"><a href="https://enterprise.github.com/contact" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Contact Sales">Contact Sales</a></li>
+ </ul>
+
+ <ul class="list-style-none mb-0 border-lg-top pt-lg-3">
+ <li class="edge-item-fix"><a href="/nonprofit" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Nonprofits">Nonprofit <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
+ <li class="edge-item-fix"><a href="https://education.github.com" class="py-2 pb-0 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Education">Education <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
+ </ul>
+ </div>
+ </details>
+ </li>
+ </ul>
+ </nav>
+
+ <div class="d-lg-flex flex-items-center px-3 px-lg-0 text-center text-lg-left">
+ <div class="d-lg-flex mb-3 mb-lg-0">
+ <div class="header-search flex-self-stretch flex-lg-self-auto mr-0 mr-lg-3 mb-3 mb-lg-0 scoped-search site-scoped-search js-site-search position-relative js-jump-to"
+ role="combobox"
+ aria-owns="jump-to-results"
+ aria-label="Search or jump to"
+ aria-haspopup="listbox"
+ aria-expanded="false"
+>
+ <div class="position-relative">
+ <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-site-search-form" role="search" aria-label="Site" data-scope-type="Repository" data-scope-id="44137852" data-scoped-search-url="/apple/cups/search" data-unscoped-search-url="/search" action="/apple/cups/search" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" />
+ <label class="form-control input-sm header-search-wrapper p-0 header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center js-chromeless-input-container">
+ <input type="text"
+ class="form-control input-sm header-search-input jump-to-field js-jump-to-field js-site-search-focus js-site-search-field is-clearable"
+ data-hotkey="s,/"
+ name="q"
+ value=""
+ placeholder="Search"
+ data-unscoped-placeholder="Search GitHub"
+ data-scoped-placeholder="Search"
+ autocapitalize="off"
+ aria-autocomplete="list"
+ aria-controls="jump-to-results"
+ aria-label="Search"
+ data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations#csrf-token=0QmMSuZHm84cPNVGQ7RYAXgPRiUfOcjNOC1vXOhVnyzm2B3JSHz1fcIJBZxMAKWUiBXjlVwLkcHLJPZy2gy+mg=="
+ spellcheck="false"
+ autocomplete="off"
+ >
+ <input type="hidden" class="js-site-search-type-field" name="type" >
+ <img src="https://github.githubassets.com/images/search-key-slash.svg" alt="" class="mr-2 header-search-key-slash">
+
+ <div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container">
+
+<ul class="d-none js-jump-to-suggestions-template-container">
+
+
+<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-suggestion" role="option">
+ <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
+ <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
+ <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
+ <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 00-1 1v14a1 1 0 001 1h13a1 1 0 001-1V1a1 1 0 00-1-1z"/></svg>
+ <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0013 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 000-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
+ </div>
+
+ <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
+
+ <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
+ </div>
+
+ <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
+ <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
+ In this repository
+ </span>
+ <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
+ All GitHub
+ </span>
+ <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
+ </div>
+
+ <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
+ Jump to
+ <span class="d-inline-block ml-1 v-align-middle">↵</span>
+ </div>
+ </a>
+</li>
+
+</ul>
+
+<ul class="d-none js-jump-to-no-results-template-container">
+ <li class="d-flex flex-justify-center flex-items-center f5 d-none js-jump-to-suggestion p-2">
+ <span class="text-gray">No suggested jump to results</span>
+ </li>
+</ul>
+
+<ul id="jump-to-results" role="listbox" class="p-0 m-0 js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container">
+
+
+<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-scoped-search d-none" role="option">
+ <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
+ <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
+ <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
+ <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 00-1 1v14a1 1 0 001 1h13a1 1 0 001-1V1a1 1 0 00-1-1z"/></svg>
+ <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0013 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 000-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
+ </div>
+
+ <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
+
+ <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
+ </div>
+
+ <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
+ <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
+ In this repository
+ </span>
+ <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
+ All GitHub
+ </span>
+ <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
+ </div>
+
+ <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
+ Jump to
+ <span class="d-inline-block ml-1 v-align-middle">↵</span>
+ </div>
+ </a>
+</li>
+
+
+
+<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-global-search d-none" role="option">
+ <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
+ <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
+ <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
+ <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 00-1 1v14a1 1 0 001 1h13a1 1 0 001-1V1a1 1 0 00-1-1z"/></svg>
+ <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0013 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 000-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
+ </div>
+
+ <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
+
+ <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
+ </div>
+
+ <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
+ <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
+ In this repository
+ </span>
+ <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
+ All GitHub
+ </span>
+ <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
+ </div>
+
+ <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
+ Jump to
+ <span class="d-inline-block ml-1 v-align-middle">↵</span>
+ </div>
+ </a>
+</li>
+
+
+</ul>
+
+ </div>
+ </label>
+</form> </div>
+</div>
+
+ </div>
+
+ <a href="/login?return_to=%2Fapple%2Fcups%2Freleases"
+ class="HeaderMenu-link no-underline mr-3"
+ data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;E0CB:22348:508D9B:74D7B0:5DFA43C4&quot;,&quot;originating_url&quot;:&quot;https://github.com/apple/cups/releases&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e4e34255c8485d6915d1448a86ea9723c3b2e92e9576e71845af735870da8d70"
+ data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in">
+ Sign&nbsp;in
+ </a>
+ <a href="/join?source=header-repo&amp;source_repo=apple%2Fcups"
+ class="HeaderMenu-link d-inline-block no-underline border border-gray-dark rounded-1 px-2 py-1"
+ data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;E0CB:22348:508D9B:74D7B0:5DFA43C4&quot;,&quot;originating_url&quot;:&quot;https://github.com/apple/cups/releases&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e4e34255c8485d6915d1448a86ea9723c3b2e92e9576e71845af735870da8d70"
+ data-ga-click="(Logged out) Header, clicked Sign up, text:sign-up">
+ Sign&nbsp;up
+ </a>
+ </div>
+ </div>
+ </div>
+</header>
+
+ </div>
+
+ <div id="start-of-content" class="show-on-focus"></div>
+
+
+ <div id="js-flash-container">
+
+</div>
+
+
+
+ <div class="application-main " data-commit-hovercards-enabled>
+ <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class="">
+ <main >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <div class=" pagehead repohead readability-menu experiment-repo-nav pt-0 pt-lg-4 ">
+ <div class="repohead-details-container clearfix container-lg p-responsive d-none d-lg-block">
+
+ <ul class="pagehead-actions">
+
+
+
+
+ <li>
+
+ <a class="tooltipped tooltipped-s btn btn-sm btn-with-count" aria-label="You must be signed in to watch a repository" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;notification subscription menu watch&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;E0CB:22348:508D9B:74D7B0:5DFA43C4&quot;,&quot;originating_url&quot;:&quot;https://github.com/apple/cups/releases&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="55e61ce807520942724d37d48d3d19c3da4baeecb2ec89bce4f6da0ceb91a62d" href="/login?return_to=%2Fapple%2Fcups">
+ <svg class="octicon octicon-eye v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
+ Watch
+</a> <a class="social-count" href="/apple/cups/watchers"
+ aria-label="88 users are watching this repository">
+ 88
+ </a>
+
+ </li>
+
+ <li>
+ <a class="btn btn-sm btn-with-count tooltipped tooltipped-s" aria-label="You must be signed in to star a repository" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:44137852,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;E0CB:22348:508D9B:74D7B0:5DFA43C4&quot;,&quot;originating_url&quot;:&quot;https://github.com/apple/cups/releases&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="f9704a715be46a567479973573477a583501a1976f99deb0ccdd0b1ed3b74e5b" href="/login?return_to=%2Fapple%2Fcups">
+ <svg aria-label="star" height="16" class="octicon octicon-star v-align-text-bottom" viewBox="0 0 14 16" version="1.1" width="14" role="img"><path fill-rule="evenodd" d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74L14 6z"/></svg>
+
+ Star
+</a>
+ <a class="social-count js-social-count" href="/apple/cups/stargazers"
+ aria-label="883 users starred this repository">
+ 883
+ </a>
+
+ </li>
+
+ <li>
+ <a class="btn btn-sm btn-with-count tooltipped tooltipped-s" aria-label="You must be signed in to fork a repository" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;repo details fork button&quot;,&quot;repository_id&quot;:44137852,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;E0CB:22348:508D9B:74D7B0:5DFA43C4&quot;,&quot;originating_url&quot;:&quot;https://github.com/apple/cups/releases&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b527b2fea0cd8e94870047972acd87358cf6a735da254b00eb05c15d676f7503" href="/login?return_to=%2Fapple%2Fcups">
+ <svg class="octicon octicon-repo-forked v-align-text-bottom" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1a1.993 1.993 0 00-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 002 1a1.993 1.993 0 00-1 3.72V6.5l3 3v1.78A1.993 1.993 0 005 15a1.993 1.993 0 001-3.72V9.5l3-3V4.72A1.993 1.993 0 008 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
+ Fork
+</a>
+ <a href="/apple/cups/network/members" class="social-count"
+ aria-label="260 users forked this repository">
+ 260
+ </a>
+ </li>
+</ul>
+
+ <h1 class="public ">
+ <svg class="octicon octicon-repo" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
+ <span class="author" itemprop="author"><a class="url fn" rel="author" data-hovercard-type="organization" data-hovercard-url="/orgs/apple/hovercard" href="/apple">apple</a></span><!--
+--><span class="path-divider">/</span><!--
+--><strong itemprop="name"><a data-pjax="#js-repo-pjax-container" href="/apple/cups">cups</a></strong>
+
+
+</h1>
+
+ </div>
+
+<nav class="hx_reponav reponav js-repo-nav js-sidenav-container-pjax container-lg p-responsive d-none d-lg-block"
+ itemscope
+ itemtype="http://schema.org/BreadcrumbList"
+ aria-label="Repository"
+ data-pjax="#js-repo-pjax-container">
+
+ <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
+ <a class="js-selected-navigation-item selected reponav-item" itemprop="url" data-hotkey="g c" aria-current="page" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages /apple/cups" href="/apple/cups">
+ <div class="d-inline"><svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg></div>
+ <span itemprop="name">Code</span>
+ <meta itemprop="position" content="1">
+</a> </span>
+
+ <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
+ <a itemprop="url" data-hotkey="g i" class="js-selected-navigation-item reponav-item" data-selected-links="repo_issues repo_labels repo_milestones /apple/cups/issues" href="/apple/cups/issues">
+ <div class="d-inline"><svg class="octicon octicon-issue-opened" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 011.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg></div>
+ <span itemprop="name">Issues</span>
+ <span class="Counter">10</span>
+ <meta itemprop="position" content="2">
+</a> </span>
+
+ <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
+ <a data-hotkey="g p" data-skip-pjax="true" itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_pulls checks /apple/cups/pulls" href="/apple/cups/pulls">
+ <div class="d-inline"><svg class="octicon octicon-git-pull-request" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0010 15a1.993 1.993 0 001-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 00-1 3.72v6.56A1.993 1.993 0 002 15a1.993 1.993 0 001-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg></div>
+ <span itemprop="name">Pull requests</span>
+ <span class="Counter">6</span>
+ <meta itemprop="position" content="3">
+</a> </span>
+
+
+ <a data-hotkey="g b" class="js-selected-navigation-item reponav-item" data-selected-links="repo_projects new_repo_project repo_project /apple/cups/projects" href="/apple/cups/projects">
+ <div class="d-inline"><svg class="octicon octicon-project" viewBox="0 0 15 16" version="1.1" width="15" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 00-1 1v14a1 1 0 001 1h13a1 1 0 001-1V1a1 1 0 00-1-1z"/></svg></div>
+ Projects
+ <span class="Counter" >0</span>
+</a>
+
+ <a class="js-selected-navigation-item reponav-item" data-hotkey="g w" data-selected-links="repo_wiki /apple/cups/wiki" href="/apple/cups/wiki">
+ <div class="d-inline"><svg class="octicon octicon-book" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3 5h4v1H3V5zm0 3h4V7H3v1zm0 2h4V9H3v1zm11-5h-4v1h4V5zm0 2h-4v1h4V7zm0 2h-4v1h4V9zm2-6v9c0 .55-.45 1-1 1H9.5l-1 1-1-1H2c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h5.5l1 1 1-1H15c.55 0 1 .45 1 1zm-8 .5L7.5 3H2v9h6V3.5zm7-.5H9.5l-.5.5V12h6V3z"/></svg></div>
+ Wiki
+</a>
+ <a data-skip-pjax="true" class="js-selected-navigation-item reponav-item" data-selected-links="security alerts policy code_scanning /apple/cups/security/advisories" href="/apple/cups/security/advisories">
+ <div class="d-inline"><svg class="octicon octicon-shield" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 2l7-2 7 2v6.02C14 12.69 8.69 16 7 16c-1.69 0-7-3.31-7-7.98V2zm1 .75L7 1l6 1.75v5.268C13 12.104 8.449 15 7 15c-1.449 0-6-2.896-6-6.982V2.75zm1 .75L7 2v12c-1.207 0-5-2.482-5-5.985V3.5z"/></svg></div>
+ Security
+</a>
+ <a class="js-selected-navigation-item reponav-item" data-selected-links="repo_graphs repo_contributors dependency_graph pulse people /apple/cups/pulse" href="/apple/cups/pulse">
+ <div class="d-inline"><svg class="octicon octicon-graph" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M16 14v1H0V0h1v14h15zM5 13H3V8h2v5zm4 0H7V3h2v10zm4 0h-2V6h2v7z"/></svg></div>
+ Insights
+</a>
+
+</nav>
+
+ <div class="reponav-wrapper reponav-small d-lg-none">
+ <nav class="reponav js-reponav text-center no-wrap"
+ itemscope
+ itemtype="http://schema.org/BreadcrumbList">
+
+ <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
+ <a class="js-selected-navigation-item selected reponav-item" itemprop="url" aria-current="page" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages /apple/cups" href="/apple/cups">
+ <span itemprop="name">Code</span>
+ <meta itemprop="position" content="1">
+</a> </span>
+
+ <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
+ <a itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_issues repo_labels repo_milestones /apple/cups/issues" href="/apple/cups/issues">
+ <span itemprop="name">Issues</span>
+ <span class="Counter">10</span>
+ <meta itemprop="position" content="2">
+</a> </span>
+
+ <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
+ <a itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_pulls checks /apple/cups/pulls" href="/apple/cups/pulls">
+ <span itemprop="name">Pull requests</span>
+ <span class="Counter">6</span>
+ <meta itemprop="position" content="3">
+</a> </span>
+
+ <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
+ <a itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_projects new_repo_project repo_project /apple/cups/projects" href="/apple/cups/projects">
+ <span itemprop="name">Projects</span>
+ <span class="Counter">0</span>
+ <meta itemprop="position" content="4">
+</a> </span>
+
+ <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
+ <a itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_wiki /apple/cups/wiki" href="/apple/cups/wiki">
+ <span itemprop="name">Wiki</span>
+ <meta itemprop="position" content="5">
+</a> </span>
+
+ <a itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="security alerts policy code_scanning /apple/cups/security/advisories" href="/apple/cups/security/advisories">
+ <span itemprop="name">Security</span>
+ <meta itemprop="position" content="6">
+</a>
+ <a class="js-selected-navigation-item reponav-item" data-selected-links="pulse /apple/cups/pulse" href="/apple/cups/pulse">
+ Pulse
+</a>
+
+ </nav>
+</div>
+
+
+ </div>
+<div class="container-lg clearfix new-discussion-timeline experiment-repo-nav p-responsive">
+ <div class="repository-content ">
+
+
+
+ <div class="signup-prompt-bg rounded-1 hide-sm">
+ <div class="signup-prompt p-4 text-center mb-4 rounded-1">
+ <div class="position-relative">
+ <!-- '"` --><!-- </textarea></xmp> --></option></form><form action="/prompt_dismissals/signup" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="kDaX/sF3AoSg/3mGTg7Nw4EgGoxBCvoq8adl0rdW8QfpUQnmpOeq3ExSYkQYQl6UfiRGGQlay9HzoVVnV9pjaQ==" />
+ <button type="submit" class="position-absolute top-0 right-0 btn-link link-gray" data-ga-click="(Logged out) Sign up prompt, clicked Dismiss, text:dismiss">
+ Dismiss
+ </button>
+</form> <h3 class="pt-2">Be notified of new releases</h3>
+ <p class="col-8 mx-auto">Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 40 million developers.</p>
+ <a class="btn btn-primary" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;releases signup prompt&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;E0CB:22348:508D9B:74D7B0:5DFA43C4&quot;,&quot;originating_url&quot;:&quot;https://github.com/apple/cups/releases&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="c2a9f870ddf9968cc69782464c68391f9e6ae7646501d13bcfcce68458bf82e5" data-ga-click="(Logged out) Sign up prompt, clicked Sign up, text:sign-up" href="/join?source=prompt-releases">Sign up</a>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="subnav">
+ <div class="d-flex flex-md-row flex-justify-between flex-md-items-center">
+ <div class="subnav-links float-left" role="navigation">
+ <a class="js-selected-navigation-item selected subnav-item" aria-current="page" data-selected-links="repo_releases /apple/cups/releases" href="/apple/cups/releases">Releases</a>
+ <a class="js-selected-navigation-item subnav-item" data-selected-links="repo_tags /apple/cups/tags" href="/apple/cups/tags">Tags</a>
+ </div>
+</div>
+
+
+ </div>
+
+ <div class="position-relative border-top clearfix">
+
+
+
+ <div class="release-entry">
+
+<div class="release pt-2 pt-md-0 pb-3 pb-md-0 clearfix label-latest">
+ <div class="d-none d-md-block flex-wrap flex-items-center col-12 col-md-3 col-lg-2 px-md-3 pb-1 pb-md-4 pt-md-4 float-left text-md-right v-align-top">
+ <div class="flex-auto flex-self-start">
+ <span class="flex-shrink-0 Label Label--outline mb-md-2 mr-2 mr-md-0 Label--outline-green">
+ <a class="border-0 Label--outline-green" href="/apple/cups/releases/latest">Latest release</a>
+ </span>
+
+
+ </div>
+
+ <ul class="d-none d-md-block mt-2 list-style-none">
+ <li class="d-block mb-1">
+ <a href="/apple/cups/tree/v2.3.1" class="muted-link css-truncate" title="v2.3.1">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.3.1</span>
+ </a>
+ </li>
+
+ <li class="d-block mb-1">
+ <a href="/apple/cups/commit/ed181c24e4b130d2981785d44488bef8cfda5f6d" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>ed181c2</code>
+ </a>
+ </li>
+
+ </ul>
+
+
+ </div><!-- /.meta -->
+
+ <div class="col-12 col-md-9 col-lg-10 px-md-3 py-md-4 release-main-section commit open float-left">
+ <div class="release-header">
+ <div class="d-flex flex-items-start">
+ <div class="f1 flex-auto min-width-0 text-normal">
+ <a href="/apple/cups/releases/tag/v2.3.1">v2.3.1</a>
+ </div>
+
+ <span class="d-md-none flex-shrink-0 ml-2 mt-2 mt-md-0 Label Label--outline Label--outline-green">
+ <a class="border-0 Label--outline-green" href="/apple/cups/releases/latest">Latest release</a>
+ </span>
+
+ </div>
+ <ul class="d-flex d-md-none flex-items-center mb-1 list-style-none">
+ <li class="d-block mr-2">
+ <a href="/apple/cups/tree/v2.3.1" class="muted-link css-truncate" title="v2.3.1">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.3.1</span>
+ </a>
+ </li>
+
+ <li class="d-block mr-2 flex-auto">
+ <a href="/apple/cups/commit/ed181c24e4b130d2981785d44488bef8cfda5f6d" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>ed181c2</code>
+ </a>
+ </li>
+
+
+
+
+ </ul>
+
+<p class="f5 text-gray mt-2 mt-md-1 mb-2 mb-md-4">
+ <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet"><img class="avatar" src="https://avatars3.githubusercontent.com/u/488103?s=40&amp;v=4" width="20" height="20" alt="@michaelrsweet" /></a>
+ <a class="text-bold text-gray" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet">michaelrsweet</a>
+ released this
+ <relative-time datetime="2019-12-13T14:51:11Z" class="no-wrap">Dec 13, 2019</relative-time>
+</p>
+ </div>
+
+
+
+ <div class="markdown-body">
+ <p>CUPS 2.3.1 is a general bug fix release, including a fix for CVE-2019-2228. Changes include:</p>
+<ul>
+<li>Documentation updates (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="504683457" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5661" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5661/hovercard" href="https://github.com/apple/cups/issues/5661">#5661</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="514973853" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5674" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5674/hovercard" href="https://github.com/apple/cups/issues/5674">#5674</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="520470189" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5682" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5682/hovercard" href="https://github.com/apple/cups/issues/5682">#5682</a>)</li>
+<li>CVE-2019-2228: The <code>ippSetValuetag</code> function did not validate the default<br>
+language value.</li>
+<li>Fixed a crash bug in the web interface (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="473925613" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5621" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5621/hovercard" href="https://github.com/apple/cups/pull/5621">#5621</a>)</li>
+<li>The PPD cache code now looks up page sizes using their dimensions<br>
+(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="479877680" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5633" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5633/hovercard" href="https://github.com/apple/cups/issues/5633">#5633</a>)</li>
+<li>PPD files containing "custom" option keywords did not work (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="486024591" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5639" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5639/hovercard" href="https://github.com/apple/cups/issues/5639">#5639</a>)</li>
+<li>Added a workaround for the scheduler's systemd support (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="486034405" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5640" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5640/hovercard" href="https://github.com/apple/cups/issues/5640">#5640</a>)</li>
+<li>On Windows, TLS certificates generated on February 29 would likely fail<br>
+(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="487215972" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5643" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5643/hovercard" href="https://github.com/apple/cups/pull/5643">#5643</a>)</li>
+<li>Added a DigestOptions directive for the <code>client.conf</code> file to control whether<br>
+MD5-based Digest authentication is allowed (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="489725887" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5647" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5647/hovercard" href="https://github.com/apple/cups/issues/5647">#5647</a>)</li>
+<li>Fixed a bug in the handling of printer resource files (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="495269347" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5652" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5652/hovercard" href="https://github.com/apple/cups/issues/5652">#5652</a>)</li>
+<li>The libusb-based USB backend now reports an error when the distribution<br>
+permissions are wrong (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="500594517" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5658" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5658/hovercard" href="https://github.com/apple/cups/issues/5658">#5658</a>)</li>
+<li>Added paint can labels to Dymo driver (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="504754248" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5662" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5662/hovercard" href="https://github.com/apple/cups/issues/5662">#5662</a>)</li>
+<li>The <code>ippeveprinter</code> program now supports authentication (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="505829095" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5665" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5665/hovercard" href="https://github.com/apple/cups/issues/5665">#5665</a>)</li>
+<li>The <code>ippeveprinter</code> program now advertises DNS-SD services on the correct<br>
+interfaces, and provides a way to turn them off (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="505830047" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5666" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5666/hovercard" href="https://github.com/apple/cups/issues/5666">#5666</a>)</li>
+<li>The <code>--with-dbusdir</code> option was ignored by the configure script (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="509611838" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5671" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5671/hovercard" href="https://github.com/apple/cups/issues/5671">#5671</a>)</li>
+<li>Sandboxed applications were not able to get the default printer (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="519179600" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5676" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5676/hovercard" href="https://github.com/apple/cups/issues/5676">#5676</a>)</li>
+<li>Log file access controls were not preserved by <code>cupsctl</code> (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="519230147" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5677" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5677/hovercard" href="https://github.com/apple/cups/pull/5677">#5677</a>)</li>
+<li>Default printers set with <code>lpoptions</code> did not work in all cases (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="520415966" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5681" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5681/hovercard" href="https://github.com/apple/cups/issues/5681">#5681</a>,<br>
+Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="522065376" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5683" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5683/hovercard" href="https://github.com/apple/cups/issues/5683">#5683</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="523200142" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5684" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5684/hovercard" href="https://github.com/apple/cups/issues/5684">#5684</a>)</li>
+<li>Fixed an error in the jobs web interface template (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="529989288" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5694" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5694/hovercard" href="https://github.com/apple/cups/pull/5694">#5694</a>)</li>
+<li>Fixed an off-by-one error in <code>ippEnumString</code> (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="532862341" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5695" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5695/hovercard" href="https://github.com/apple/cups/pull/5695">#5695</a>)</li>
+<li>Fixed some new compiler warnings (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="534545419" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5700" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5700/hovercard" href="https://github.com/apple/cups/pull/5700">#5700</a>)</li>
+<li>Fixed a few issues with the Apple Raster support (rdar://55301114)</li>
+<li>The IPP backend did not detect all cases where a job should be retried using<br>
+a raster format (rdar://56021091)</li>
+<li>Fixed spelling of "fold-accordion".</li>
+<li>Fixed the default common name for TLS certificates used by <code>ippeveprinter</code>.</li>
+<li>Fixed the option names used for IPP Everywhere finishing options.</li>
+<li>Added support for the second roll of the DYMO Twin/DUO label printers.</li>
+</ul>
+<p>Enjoy!</p>
+ </div>
+
+
+ <details
+ class="details-reset Details-element border-top pt-3 mt-4 mb-2 mb-md-4"
+ open
+
+ >
+ <summary>
+ <div class="d-flex flex-items-center">
+ <span class="mr-2 Details-content--closed"><svg class="octicon octicon-triangle-right" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 14l6-6-6-6v12z"/></svg></span>
+ <span class="mr-2 Details-content--open"><svg class="octicon octicon-triangle-down" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 5l6 6 6-6H0z"/></svg></span>
+ <span class="text-bold">Assets</span>
+ <span class="ml-1 Counter">4</span>
+ </div>
+ </summary>
+ <div class="Box Box--condensed mt-3">
+ <div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.3.1/cups-2.3.1-source.tar.gz" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.3.1-source.tar.gz</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">7.76 MB</small>
+ </div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.3.1/cups-2.3.1-source.tar.gz.sig" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.3.1-source.tar.gz.sig</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">585 Bytes</small>
+ </div>
+
+
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.3.1.zip" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (zip)
+ </a>
+ </div>
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.3.1.tar.gz" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (tar.gz)
+ </a>
+ </div>
+ </div>
+ </div>
+ </details>
+
+
+ </div><!-- /.release-body -->
+</div><!-- /.release -->
+
+ </div>
+
+
+
+ <div class="release-entry">
+
+<div class="release pt-2 pt-md-0 pb-3 pb-md-0 clearfix label-">
+ <div class="d-none d-md-block flex-wrap flex-items-center col-12 col-md-3 col-lg-2 px-md-3 pb-1 pb-md-4 pt-md-4 float-left text-md-right v-align-top">
+ <div class="flex-auto flex-self-start">
+
+
+ </div>
+
+ <ul class="d-none d-md-block mt-2 list-style-none">
+ <li class="d-block mb-1">
+ <a href="/apple/cups/tree/v2.2.13" class="muted-link css-truncate" title="v2.2.13">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.2.13</span>
+ </a>
+ </li>
+
+ <li class="d-block mb-1">
+ <a href="/apple/cups/commit/0ad6ac55da2686c6fa24b05bde5e9036fd4db5d1" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>0ad6ac5</code>
+ </a>
+ </li>
+
+ </ul>
+
+
+ </div><!-- /.meta -->
+
+ <div class="col-12 col-md-9 col-lg-10 px-md-3 py-md-4 release-main-section commit open float-left">
+ <div class="release-header">
+ <div class="d-flex flex-items-start">
+ <div class="f1 flex-auto min-width-0 text-normal">
+ <a href="/apple/cups/releases/tag/v2.2.13">v2.2.13</a>
+ </div>
+
+
+ </div>
+ <ul class="d-flex d-md-none flex-items-center mb-1 list-style-none">
+ <li class="d-block mr-2">
+ <a href="/apple/cups/tree/v2.2.13" class="muted-link css-truncate" title="v2.2.13">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.2.13</span>
+ </a>
+ </li>
+
+ <li class="d-block mr-2 flex-auto">
+ <a href="/apple/cups/commit/0ad6ac55da2686c6fa24b05bde5e9036fd4db5d1" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>0ad6ac5</code>
+ </a>
+ </li>
+
+
+
+
+ </ul>
+
+<p class="f5 text-gray mt-2 mt-md-1 mb-2 mb-md-4">
+ <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet"><img class="avatar" src="https://avatars3.githubusercontent.com/u/488103?s=40&amp;v=4" width="20" height="20" alt="@michaelrsweet" /></a>
+ <a class="text-bold text-gray" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet">michaelrsweet</a>
+ released this
+ <relative-time datetime="2019-12-13T14:49:55Z" class="no-wrap">Dec 13, 2019</relative-time>
+ &middot;
+ <a href="/apple/cups/compare/v2.2.13...master">
+ 793 commits</a>
+ to master
+ since this release
+</p>
+ </div>
+
+
+
+ <div class="markdown-body">
+ <p>CUPS 2.2.13 is the last general bug fix release in the 2.2.x series and includes<br>
+a fix for CVE-2019-2228. Changes include:</p>
+<ul>
+<li>CVE-2019-2228: The <code>ippSetValuetag</code> function did not validate the default<br>
+language value.</li>
+<li>Added a workaround for the scheduler's systemd support (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="486034405" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5640" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5640/hovercard" href="https://github.com/apple/cups/issues/5640">#5640</a>)</li>
+<li>Fixed spelling of "fold-accordion".</li>
+<li>Fixed the default common name for TLS certificates used by <code>ippserver</code>.</li>
+<li>The libusb-based USB backend now reports an error when the distribution<br>
+permissions are wrong (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="500594517" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5658" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5658/hovercard" href="https://github.com/apple/cups/issues/5658">#5658</a>)</li>
+<li>Default printers set with <code>lpoptions</code> did not work in all cases (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="520415966" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5681" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5681/hovercard" href="https://github.com/apple/cups/issues/5681">#5681</a>,<br>
+Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="522065376" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5683" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5683/hovercard" href="https://github.com/apple/cups/issues/5683">#5683</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="523200142" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5684" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5684/hovercard" href="https://github.com/apple/cups/issues/5684">#5684</a>)</li>
+<li>Fixed an off-by-one error in <code>ippEnumString</code> (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="532862341" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5695" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5695/hovercard" href="https://github.com/apple/cups/pull/5695">#5695</a>)</li>
+<li>Fixed some new compiler warnings (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="534545419" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5700" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5700/hovercard" href="https://github.com/apple/cups/pull/5700">#5700</a>)</li>
+<li>Fixed a few issues with the Apple Raster support (rdar://55301114)</li>
+<li>The IPP backend did not detect all cases where a job should be retried using<br>
+a raster format (rdar://56021091)</li>
+</ul>
+<p>Enjoy!</p>
+ </div>
+
+
+ <details
+ class="details-reset Details-element border-top pt-3 mt-4 mb-2 mb-md-4"
+
+
+ >
+ <summary>
+ <div class="d-flex flex-items-center">
+ <span class="mr-2 Details-content--closed"><svg class="octicon octicon-triangle-right" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 14l6-6-6-6v12z"/></svg></span>
+ <span class="mr-2 Details-content--open"><svg class="octicon octicon-triangle-down" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 5l6 6 6-6H0z"/></svg></span>
+ <span class="text-bold">Assets</span>
+ <span class="ml-1 Counter">4</span>
+ </div>
+ </summary>
+ <div class="Box Box--condensed mt-3">
+ <div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.2.13/cups-2.2.13-source.tar.gz" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.2.13-source.tar.gz</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">9.93 MB</small>
+ </div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.2.13/cups-2.2.13-source.tar.gz.sig" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.2.13-source.tar.gz.sig</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">585 Bytes</small>
+ </div>
+
+
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.2.13.zip" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (zip)
+ </a>
+ </div>
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.2.13.tar.gz" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (tar.gz)
+ </a>
+ </div>
+ </div>
+ </div>
+ </details>
+
+
+ </div><!-- /.release-body -->
+</div><!-- /.release -->
+
+ </div>
+
+
+
+ <div class="release-entry">
+
+<div class="release pt-2 pt-md-0 pb-3 pb-md-0 clearfix label-">
+ <div class="d-none d-md-block flex-wrap flex-items-center col-12 col-md-3 col-lg-2 px-md-3 pb-1 pb-md-4 pt-md-4 float-left text-md-right v-align-top">
+ <div class="flex-auto flex-self-start">
+
+
+ </div>
+
+ <ul class="d-none d-md-block mt-2 list-style-none">
+ <li class="d-block mb-1">
+ <a href="/apple/cups/tree/v2.3.0" class="muted-link css-truncate" title="v2.3.0">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.3.0</span>
+ </a>
+ </li>
+
+ <li class="d-block mb-1">
+ <a href="/apple/cups/commit/ee6be9cd7e863abf36b9b131fc379d967414aa2e" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>ee6be9c</code>
+ </a>
+ </li>
+
+ </ul>
+
+
+ </div><!-- /.meta -->
+
+ <div class="col-12 col-md-9 col-lg-10 px-md-3 py-md-4 release-main-section commit open float-left">
+ <div class="release-header">
+ <div class="d-flex flex-items-start">
+ <div class="f1 flex-auto min-width-0 text-normal">
+ <a href="/apple/cups/releases/tag/v2.3.0">v2.3.0</a>
+ </div>
+
+
+ </div>
+ <ul class="d-flex d-md-none flex-items-center mb-1 list-style-none">
+ <li class="d-block mr-2">
+ <a href="/apple/cups/tree/v2.3.0" class="muted-link css-truncate" title="v2.3.0">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.3.0</span>
+ </a>
+ </li>
+
+ <li class="d-block mr-2 flex-auto">
+ <a href="/apple/cups/commit/ee6be9cd7e863abf36b9b131fc379d967414aa2e" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>ee6be9c</code>
+ </a>
+ </li>
+
+
+
+
+ </ul>
+
+<p class="f5 text-gray mt-2 mt-md-1 mb-2 mb-md-4">
+ <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet"><img class="avatar" src="https://avatars3.githubusercontent.com/u/488103?s=40&amp;v=4" width="20" height="20" alt="@michaelrsweet" /></a>
+ <a class="text-bold text-gray" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet">michaelrsweet</a>
+ released this
+ <relative-time datetime="2019-08-23T18:17:21Z" class="no-wrap">Aug 23, 2019</relative-time>
+ &middot;
+ <a href="/apple/cups/compare/v2.3.0...master">
+ 65 commits</a>
+ to master
+ since this release
+</p>
+ </div>
+
+
+
+ <div class="markdown-body">
+ <p>CUPS 2.3.0 is now available for download, which adopts the new CUPS license, adds support for IPP presets and finishing templates, fixes a number of bugs and "polish" issues, and includes the new ippeveprinter utility. Changes include:</p>
+<ul>
+<li>CVE-2019-8696 and CVE-2019-8675: Fixed SNMP buffer overflows (rdar://51685251)</li>
+<li>Added a GPL2/LGPL2 exception to the new CUPS license terms.</li>
+<li>Documentation updates (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="459594644" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5604" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5604/hovercard" href="https://github.com/apple/cups/issues/5604">#5604</a>)</li>
+<li>Localization updates (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="483641898" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5637" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5637/hovercard" href="https://github.com/apple/cups/pull/5637">#5637</a>)</li>
+<li>Fixed a bug in the scheduler job cleanup code (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="450279216" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5588" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5588/hovercard" href="https://github.com/apple/cups/pull/5588">#5588</a>)</li>
+<li>Fixed builds when there is no TLS library (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="451578186" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5590" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5590/hovercard" href="https://github.com/apple/cups/pull/5590">#5590</a>)</li>
+<li>Eliminated some new GCC compiler warnings (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="453328747" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5591" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5591/hovercard" href="https://github.com/apple/cups/pull/5591">#5591</a>)</li>
+<li>Removed dead code from the scheduler (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="453329871" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5593" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5593/hovercard" href="https://github.com/apple/cups/pull/5593">#5593</a>)</li>
+<li>"make" failed with GZIP options (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="455017934" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5595" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5595/hovercard" href="https://github.com/apple/cups/issues/5595">#5595</a>)</li>
+<li>Fixed potential excess logging from the scheduler when removing job files<br>
+(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="456284406" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5597" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5597/hovercard" href="https://github.com/apple/cups/issues/5597">#5597</a>)</li>
+<li>Fixed a NULL pointer dereference bug in <code>httpGetSubField2</code> (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="456534137" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5598" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5598/hovercard" href="https://github.com/apple/cups/issues/5598">#5598</a>)</li>
+<li>Added FIPS-140 workarounds for GNU TLS (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="458015929" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5601" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5601/hovercard" href="https://github.com/apple/cups/issues/5601">#5601</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="474117231" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5622" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5622/hovercard" href="https://github.com/apple/cups/pull/5622">#5622</a>)</li>
+<li>The scheduler no longer provides a default value for the description<br>
+(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="459074733" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5603" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5603/hovercard" href="https://github.com/apple/cups/issues/5603">#5603</a>)</li>
+<li>The scheduler now logs jobs held for authentication using the error level so<br>
+it is clear what happened (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="459594644" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5604" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5604/hovercard" href="https://github.com/apple/cups/issues/5604">#5604</a>)</li>
+<li>The <code>lpadmin</code> command did not always update the PPD file for changes to the<br>
+<code>cupsIPPSupplies</code> and <code>cupsSNMPSupplies</code> keywords (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="465727195" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5610" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5610/hovercard" href="https://github.com/apple/cups/pull/5610">#5610</a>)</li>
+<li>The scheduler now uses both the group's membership list as well as the<br>
+various OS-specific membership functions to determine whether a user belongs<br>
+to a named group (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="468463678" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5613" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5613/hovercard" href="https://github.com/apple/cups/pull/5613">#5613</a>)</li>
+<li>Added USB quirks rule for HP LaserJet 1015 (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="470659313" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5617" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5617/hovercard" href="https://github.com/apple/cups/issues/5617">#5617</a>)</li>
+<li>Fixed some PPD parser issues (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="474314074" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5623" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5623/hovercard" href="https://github.com/apple/cups/pull/5623">#5623</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="474317092" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5624" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5624/hovercard" href="https://github.com/apple/cups/pull/5624">#5624</a>)</li>
+<li>The IPP parser no longer allows invalid member attributes in collections<br>
+(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="477979886" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5630" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5630/hovercard" href="https://github.com/apple/cups/issues/5630">#5630</a>)</li>
+<li>The configure script now treats the "wheel" group as a potential system<br>
+group (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="484535130" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5638" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5638/hovercard" href="https://github.com/apple/cups/pull/5638">#5638</a>)</li>
+<li>Fixed a USB printing issue on macOS (rdar://31433931)</li>
+<li>Fixed IPP buffer overflow (rdar://50035411)</li>
+<li>Fixed memory disclosure issue in the scheduler (rdar://51373853)</li>
+<li>Fixed DoS issues in the scheduler (rdar://51373929)</li>
+<li>Fixed an issue with unsupported "sides" values in the IPP backend<br>
+(rdar://51775322)</li>
+<li>The scheduler would restart continuously when idle and printers were not<br>
+shared (rdar://52561199)</li>
+<li>Fixed an issue with <code>EXPECT !name WITH-VALUE ...</code> tests.</li>
+<li>Fixed a command ordering issue in the Zebra ZPL driver.</li>
+<li>Fixed a memory leak in <code>ppdOpen</code>.</li>
+</ul>
+<p>Enjoy!</p>
+ </div>
+
+
+ <details
+ class="details-reset Details-element border-top pt-3 mt-4 mb-2 mb-md-4"
+
+
+ >
+ <summary>
+ <div class="d-flex flex-items-center">
+ <span class="mr-2 Details-content--closed"><svg class="octicon octicon-triangle-right" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 14l6-6-6-6v12z"/></svg></span>
+ <span class="mr-2 Details-content--open"><svg class="octicon octicon-triangle-down" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 5l6 6 6-6H0z"/></svg></span>
+ <span class="text-bold">Assets</span>
+ <span class="ml-1 Counter">4</span>
+ </div>
+ </summary>
+ <div class="Box Box--condensed mt-3">
+ <div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.3.0/cups-2.3.0-source.tar.gz" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.3.0-source.tar.gz</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">7.75 MB</small>
+ </div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.3.0/cups-2.3.0-source.tar.gz.sig" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.3.0-source.tar.gz.sig</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">585 Bytes</small>
+ </div>
+
+
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.3.0.zip" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (zip)
+ </a>
+ </div>
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.3.0.tar.gz" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (tar.gz)
+ </a>
+ </div>
+ </div>
+ </div>
+ </details>
+
+
+ </div><!-- /.release-body -->
+</div><!-- /.release -->
+
+ </div>
+
+
+
+ <div class="release-entry">
+
+<div class="release pt-2 pt-md-0 pb-3 pb-md-0 clearfix label-">
+ <div class="d-none d-md-block flex-wrap flex-items-center col-12 col-md-3 col-lg-2 px-md-3 pb-1 pb-md-4 pt-md-4 float-left text-md-right v-align-top">
+ <div class="flex-auto flex-self-start">
+
+
+ </div>
+
+ <ul class="d-none d-md-block mt-2 list-style-none">
+ <li class="d-block mb-1">
+ <a href="/apple/cups/tree/v2.2.12" class="muted-link css-truncate" title="v2.2.12">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.2.12</span>
+ </a>
+ </li>
+
+ <li class="d-block mb-1">
+ <a href="/apple/cups/commit/c8cb6400e317633f66cdc87884915d54710b53a0" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>c8cb640</code>
+ </a>
+ </li>
+
+ </ul>
+
+
+ </div><!-- /.meta -->
+
+ <div class="col-12 col-md-9 col-lg-10 px-md-3 py-md-4 release-main-section commit open float-left">
+ <div class="release-header">
+ <div class="d-flex flex-items-start">
+ <div class="f1 flex-auto min-width-0 text-normal">
+ <a href="/apple/cups/releases/tag/v2.2.12">v2.2.12</a>
+ </div>
+
+
+ </div>
+ <ul class="d-flex d-md-none flex-items-center mb-1 list-style-none">
+ <li class="d-block mr-2">
+ <a href="/apple/cups/tree/v2.2.12" class="muted-link css-truncate" title="v2.2.12">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.2.12</span>
+ </a>
+ </li>
+
+ <li class="d-block mr-2 flex-auto">
+ <a href="/apple/cups/commit/c8cb6400e317633f66cdc87884915d54710b53a0" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>c8cb640</code>
+ </a>
+ </li>
+
+
+
+
+ </ul>
+
+<p class="f5 text-gray mt-2 mt-md-1 mb-2 mb-md-4">
+ <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet"><img class="avatar" src="https://avatars3.githubusercontent.com/u/488103?s=40&amp;v=4" width="20" height="20" alt="@michaelrsweet" /></a>
+ <a class="text-bold text-gray" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet">michaelrsweet</a>
+ released this
+ <relative-time datetime="2019-08-15T22:52:44Z" class="no-wrap">Aug 15, 2019</relative-time>
+ &middot;
+ <a href="/apple/cups/compare/v2.2.12...master">
+ 793 commits</a>
+ to master
+ since this release
+</p>
+ </div>
+
+
+
+ <div class="markdown-body">
+ <p>CUPS 2.2.12 is now available and includes security, compatibility, and general bug fixes. Changes include:</p>
+<ul>
+<li>CVE-2019-8696 and CVE-2019-8675: Fixed SNMP buffer overflows (rdar://51685251)</li>
+<li>The <code>cupsctl</code> command now prevents setting "cups-files.conf" directives<br>
+(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="413829254" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5530" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5530/hovercard" href="https://github.com/apple/cups/issues/5530">#5530</a>)</li>
+<li>Updated the systemd service file for cupsd (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="426479041" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5551" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5551/hovercard" href="https://github.com/apple/cups/pull/5551">#5551</a>)</li>
+<li>The <code>cupsCheckDestSupported</code> function did not check octetString values<br>
+correctly (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="429820862" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5557" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5557/hovercard" href="https://github.com/apple/cups/pull/5557">#5557</a>)</li>
+<li>The scheduler did not encode octetString values like "job-password" correctly<br>
+for the print filters (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="429827127" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5558" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5558/hovercard" href="https://github.com/apple/cups/pull/5558">#5558</a>)</li>
+<li>Restored minimal support for the <code>Emulators</code> keyword in PPD files to allow<br>
+old Samsung printer drivers to continue to work (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="432214569" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5562" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5562/hovercard" href="https://github.com/apple/cups/issues/5562">#5562</a>)</li>
+<li>Timed out job submission now yields an error (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="437390564" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5570" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5570/hovercard" href="https://github.com/apple/cups/issues/5570">#5570</a>)</li>
+<li>The footer in the web interface covered some content on small displays<br>
+(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="440365801" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5574" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5574/hovercard" href="https://github.com/apple/cups/issues/5574">#5574</a>)</li>
+<li>The libusb-based USB backend now enforces read limits, improving print speed<br>
+in many cases (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="445315055" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5583" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5583/hovercard" href="https://github.com/apple/cups/issues/5583">#5583</a>)</li>
+<li>Fixed some compatibility issues with old releases of CUPS (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="449361069" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5587" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5587/hovercard" href="https://github.com/apple/cups/issues/5587">#5587</a>)</li>
+<li>Fixed a bug in the scheduler job cleanup code (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="450279216" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5588" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5588/hovercard" href="https://github.com/apple/cups/pull/5588">#5588</a>)</li>
+<li>"make" failed with GZIP options (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="455017934" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5595" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5595/hovercard" href="https://github.com/apple/cups/issues/5595">#5595</a>)</li>
+<li>Added FIPS-140 workarounds for GNU TLS (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="458015929" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5601" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5601/hovercard" href="https://github.com/apple/cups/issues/5601">#5601</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="474117231" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5622" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5622/hovercard" href="https://github.com/apple/cups/pull/5622">#5622</a>)</li>
+<li>The scheduler no longer provides a default value for the description<br>
+(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="459074733" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5603" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5603/hovercard" href="https://github.com/apple/cups/issues/5603">#5603</a>)</li>
+<li>The <code>lpadmin</code> command did not always update the PPD file for changes to the<br>
+<code>cupsIPPSupplies</code> and <code>cupsSNMPSupplies</code> keywords (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="465727195" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5610" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5610/hovercard" href="https://github.com/apple/cups/pull/5610">#5610</a>)</li>
+<li>The scheduler now uses both the group's membership list as well as the<br>
+various OS-specific membership functions to determine whether a user belongs<br>
+to a named group (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="468463678" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5613" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5613/hovercard" href="https://github.com/apple/cups/pull/5613">#5613</a>)</li>
+<li>Added USB quirks rule for HP LaserJet 1015 (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="470659313" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5617" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5617/hovercard" href="https://github.com/apple/cups/issues/5617">#5617</a>)</li>
+<li>Fixed some PPD parser issues (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="474314074" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5623" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5623/hovercard" href="https://github.com/apple/cups/pull/5623">#5623</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="474317092" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5624" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5624/hovercard" href="https://github.com/apple/cups/pull/5624">#5624</a>)</li>
+<li>The IPP parser no longer allows invalid member attributes in collections<br>
+(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="477979886" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5630" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5630/hovercard" href="https://github.com/apple/cups/issues/5630">#5630</a>)</li>
+<li>Fixed IPP buffer overflow (rdar://50035411)</li>
+<li>Fixed memory disclosure issue in the scheduler (rdar://51373853)</li>
+<li>Fixed DoS issues in the scheduler (rdar://51373929)</li>
+<li>The scheduler would restart continuously when idle and printers were not<br>
+shared (rdar://52561199)</li>
+<li>Fixed a command ordering issue in the Zebra ZPL driver.</li>
+<li>Fixed a memory leak in <code>ppdOpen</code>.</li>
+</ul>
+<p>Enjoy!</p>
+ </div>
+
+
+ <details
+ class="details-reset Details-element border-top pt-3 mt-4 mb-2 mb-md-4"
+
+
+ >
+ <summary>
+ <div class="d-flex flex-items-center">
+ <span class="mr-2 Details-content--closed"><svg class="octicon octicon-triangle-right" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 14l6-6-6-6v12z"/></svg></span>
+ <span class="mr-2 Details-content--open"><svg class="octicon octicon-triangle-down" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 5l6 6 6-6H0z"/></svg></span>
+ <span class="text-bold">Assets</span>
+ <span class="ml-1 Counter">4</span>
+ </div>
+ </summary>
+ <div class="Box Box--condensed mt-3">
+ <div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.2.12/cups-2.2.12-source.tar.gz" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.2.12-source.tar.gz</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">9.93 MB</small>
+ </div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.2.12/cups-2.2.12-source.tar.gz.sig" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.2.12-source.tar.gz.sig</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">585 Bytes</small>
+ </div>
+
+
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.2.12.zip" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (zip)
+ </a>
+ </div>
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.2.12.tar.gz" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (tar.gz)
+ </a>
+ </div>
+ </div>
+ </div>
+ </details>
+
+
+ </div><!-- /.release-body -->
+</div><!-- /.release -->
+
+ </div>
+
+
+
+ <div class="release-entry">
+
+<div class="release pt-2 pt-md-0 pb-3 pb-md-0 clearfix label-prerelease">
+ <div class="d-none d-md-block flex-wrap flex-items-center col-12 col-md-3 col-lg-2 px-md-3 pb-1 pb-md-4 pt-md-4 float-left text-md-right v-align-top">
+ <div class="flex-auto flex-self-start">
+ <span class="flex-shrink-0 Label Label--outline mb-md-2 mr-2 mr-md-0 Label--prerelease">
+ Pre-release
+ </span>
+
+
+ </div>
+
+ <ul class="d-none d-md-block mt-2 list-style-none">
+ <li class="d-block mb-1">
+ <a href="/apple/cups/tree/v2.3rc1" class="muted-link css-truncate" title="v2.3rc1">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.3rc1</span>
+ </a>
+ </li>
+
+ <li class="d-block mb-1">
+ <a href="/apple/cups/commit/4d03c4ca90d8c1c0d5303427858e537fd3c415e4" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>4d03c4c</code>
+ </a>
+ </li>
+
+ </ul>
+
+
+ </div><!-- /.meta -->
+
+ <div class="col-12 col-md-9 col-lg-10 px-md-3 py-md-4 release-main-section commit open float-left">
+ <div class="release-header">
+ <div class="d-flex flex-items-start">
+ <div class="f1 flex-auto min-width-0 text-normal">
+ <a href="/apple/cups/releases/tag/v2.3rc1">v2.3rc1</a>
+ </div>
+
+ <span class="d-md-none flex-shrink-0 ml-2 mt-2 mt-md-0 Label Label--outline Label--prerelease">
+ Pre-release
+ </span>
+
+ </div>
+ <ul class="d-flex d-md-none flex-items-center mb-1 list-style-none">
+ <li class="d-block mr-2">
+ <a href="/apple/cups/tree/v2.3rc1" class="muted-link css-truncate" title="v2.3rc1">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.3rc1</span>
+ </a>
+ </li>
+
+ <li class="d-block mr-2 flex-auto">
+ <a href="/apple/cups/commit/4d03c4ca90d8c1c0d5303427858e537fd3c415e4" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>4d03c4c</code>
+ </a>
+ </li>
+
+
+
+
+ </ul>
+
+<p class="f5 text-gray mt-2 mt-md-1 mb-2 mb-md-4">
+ <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet"><img class="avatar" src="https://avatars3.githubusercontent.com/u/488103?s=40&amp;v=4" width="20" height="20" alt="@michaelrsweet" /></a>
+ <a class="text-bold text-gray" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet">michaelrsweet</a>
+ released this
+ <relative-time datetime="2019-05-21T17:07:50Z" class="no-wrap">May 21, 2019</relative-time>
+ &middot;
+ <a href="/apple/cups/compare/v2.3rc1...master">
+ 122 commits</a>
+ to master
+ since this release
+</p>
+ </div>
+
+
+
+ <div class="markdown-body">
+ <p>CUPS 2.3rc1 is now available for download. This is the first release candidate for CUPS 2.3.0 which adopts the new CUPS license, adds support for IPP presets and finishing templates, and fixes a number of bugs and "polish" issues. This beta also includes the new ippeveprinter utility. Changes include:</p>
+<ul>
+<li>The <code>cups-config</code> script no longer adds extra libraries when linking against<br>
+shared libraries (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="303656158" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5261" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5261/hovercard" href="https://github.com/apple/cups/pull/5261">#5261</a>)</li>
+<li>The supplied example print documents have been optimized for size<br>
+(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="413810404" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5529" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5529/hovercard" href="https://github.com/apple/cups/pull/5529">#5529</a>)</li>
+<li>The <code>cupsctl</code> command now prevents setting "cups-files.conf" directives<br>
+(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="413829254" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5530" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5530/hovercard" href="https://github.com/apple/cups/issues/5530">#5530</a>)</li>
+<li>The "forbidden" message in the web interface is now explained (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="424534348" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5547" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5547/hovercard" href="https://github.com/apple/cups/issues/5547">#5547</a>)</li>
+<li>The footer in the web interface covered some content on small displays<br>
+(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="440365801" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5574" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5574/hovercard" href="https://github.com/apple/cups/issues/5574">#5574</a>)</li>
+<li>The libusb-based USB backend now enforces read limits, improving print speed<br>
+in many cases (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="445315055" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5583" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5583/hovercard" href="https://github.com/apple/cups/issues/5583">#5583</a>)</li>
+<li>The <code>ippeveprinter</code> command now looks for print commands in the "command"<br>
+subdirectory.</li>
+<li>The <code>ipptool</code> command now supports <code>$date-current</code> and <code>$date-start</code> variables<br>
+to insert the current and starting date and time values, as well as ISO-8601<br>
+relative time values such as "PT30S" for 30 seconds in the future.</li>
+</ul>
+<p>Enjoy!</p>
+ </div>
+
+
+ <details
+ class="details-reset Details-element border-top pt-3 mt-4 mb-2 mb-md-4"
+
+
+ >
+ <summary>
+ <div class="d-flex flex-items-center">
+ <span class="mr-2 Details-content--closed"><svg class="octicon octicon-triangle-right" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 14l6-6-6-6v12z"/></svg></span>
+ <span class="mr-2 Details-content--open"><svg class="octicon octicon-triangle-down" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 5l6 6 6-6H0z"/></svg></span>
+ <span class="text-bold">Assets</span>
+ <span class="ml-1 Counter">4</span>
+ </div>
+ </summary>
+ <div class="Box Box--condensed mt-3">
+ <div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.3rc1/cups-2.3rc1-source.tar.gz" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.3rc1-source.tar.gz</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">7.56 MB</small>
+ </div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.3rc1/cups-2.3rc1-source.tar.gz.sig" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.3rc1-source.tar.gz.sig</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">585 Bytes</small>
+ </div>
+
+
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.3rc1.zip" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (zip)
+ </a>
+ </div>
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.3rc1.tar.gz" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (tar.gz)
+ </a>
+ </div>
+ </div>
+ </div>
+ </details>
+
+
+ </div><!-- /.release-body -->
+</div><!-- /.release -->
+
+ </div>
+
+
+
+ <div class="release-entry">
+
+<div class="release pt-2 pt-md-0 pb-3 pb-md-0 clearfix label-prerelease">
+ <div class="d-none d-md-block flex-wrap flex-items-center col-12 col-md-3 col-lg-2 px-md-3 pb-1 pb-md-4 pt-md-4 float-left text-md-right v-align-top">
+ <div class="flex-auto flex-self-start">
+ <span class="flex-shrink-0 Label Label--outline mb-md-2 mr-2 mr-md-0 Label--prerelease">
+ Pre-release
+ </span>
+
+
+ </div>
+
+ <ul class="d-none d-md-block mt-2 list-style-none">
+ <li class="d-block mb-1">
+ <a href="/apple/cups/tree/v2.3b8" class="muted-link css-truncate" title="v2.3b8">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.3b8</span>
+ </a>
+ </li>
+
+ <li class="d-block mb-1">
+ <a href="/apple/cups/commit/0450ddd4f003de8aa8d8e7a54d181a992607d031" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>0450ddd</code>
+ </a>
+ </li>
+
+ </ul>
+
+
+ </div><!-- /.meta -->
+
+ <div class="col-12 col-md-9 col-lg-10 px-md-3 py-md-4 release-main-section commit open float-left">
+ <div class="release-header">
+ <div class="d-flex flex-items-start">
+ <div class="f1 flex-auto min-width-0 text-normal">
+ <a href="/apple/cups/releases/tag/v2.3b8">v2.3b8</a>
+ </div>
+
+ <span class="d-md-none flex-shrink-0 ml-2 mt-2 mt-md-0 Label Label--outline Label--prerelease">
+ Pre-release
+ </span>
+
+ </div>
+ <ul class="d-flex d-md-none flex-items-center mb-1 list-style-none">
+ <li class="d-block mr-2">
+ <a href="/apple/cups/tree/v2.3b8" class="muted-link css-truncate" title="v2.3b8">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.3b8</span>
+ </a>
+ </li>
+
+ <li class="d-block mr-2 flex-auto">
+ <a href="/apple/cups/commit/0450ddd4f003de8aa8d8e7a54d181a992607d031" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>0450ddd</code>
+ </a>
+ </li>
+
+
+
+
+ </ul>
+
+<p class="f5 text-gray mt-2 mt-md-1 mb-2 mb-md-4">
+ <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet"><img class="avatar" src="https://avatars3.githubusercontent.com/u/488103?s=40&amp;v=4" width="20" height="20" alt="@michaelrsweet" /></a>
+ <a class="text-bold text-gray" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet">michaelrsweet</a>
+ released this
+ <relative-time datetime="2019-05-02T17:10:16Z" class="no-wrap">May 2, 2019</relative-time>
+ &middot;
+ <a href="/apple/cups/compare/v2.3b8...master">
+ 165 commits</a>
+ to master
+ since this release
+</p>
+ </div>
+
+
+
+ <div class="markdown-body">
+ <p>CUPS 2.3b8 is now available for download. This is the eighth beta of the CUPS 2.3 series which adopts the new CUPS license, adds support for IPP presets and finishing templates, and fixes a number of bugs and "polish" issues. This beta also includes the new ippeveprinter utility. Changes include:</p>
+<ul>
+<li>Media size matching now uses a tolerance of 0.5mm (rdar://33822024)</li>
+<li>The lpadmin command would hang with a bad PPD file (rdar://41495016)</li>
+<li>Fixed a potential crash bug in cups-driverd (rdar://46625579)</li>
+<li>Fixed a performance regression with large PPDs (rdar://47040759)</li>
+<li>Fixed a memory reallocation bug in HTTP header value expansion<br>
+(rdar://problem/50000749)</li>
+<li>Timed out job submission now yields an error (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="437390564" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5570" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5570/hovercard" href="https://github.com/apple/cups/issues/5570">#5570</a>)</li>
+<li>Restored minimal support for the <code>Emulators</code> keyword in PPD files to allow<br>
+old Samsung printer drivers to continue to work (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="432214569" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5562" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5562/hovercard" href="https://github.com/apple/cups/issues/5562">#5562</a>)</li>
+<li>The scheduler did not encode octetString values like "job-password" correctly<br>
+for the print filters (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="429827127" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5558" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5558/hovercard" href="https://github.com/apple/cups/pull/5558">#5558</a>)</li>
+<li>The <code>cupsCheckDestSupported</code> function did not check octetString values<br>
+correctly (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="429820862" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5557" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5557/hovercard" href="https://github.com/apple/cups/pull/5557">#5557</a>)</li>
+<li>Added support for <code>UserAgentTokens</code> directive in "client.conf" (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="429062399" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5555" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5555/hovercard" href="https://github.com/apple/cups/issues/5555">#5555</a>)</li>
+<li>Updated the systemd service file for cupsd (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="426479041" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5551" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5551/hovercard" href="https://github.com/apple/cups/pull/5551">#5551</a>)</li>
+<li>The <code>ippValidateAttribute</code> function did not catch all instances of invalid<br>
+UTF-8 strings (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="406851979" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5509" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5509/hovercard" href="https://github.com/apple/cups/issues/5509">#5509</a>)</li>
+<li>Fixed an issue with the self-signed certificates generated by GNU TLS<br>
+(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="405881346" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5506" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5506/hovercard" href="https://github.com/apple/cups/issues/5506">#5506</a>)</li>
+<li>Fixed a potential memory leak when reading at the end of a file (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="397128929" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5473" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5473/hovercard" href="https://github.com/apple/cups/pull/5473">#5473</a>)</li>
+<li>Fixed potential unaligned accesses in the string pool (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="397129335" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5474" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5474/hovercard" href="https://github.com/apple/cups/pull/5474">#5474</a>)</li>
+<li>Fixed a potential memory leak when loading a PPD file (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="397129544" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5475" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5475/hovercard" href="https://github.com/apple/cups/pull/5475">#5475</a>)</li>
+<li>Added a USB quirks rule for the Lexmark E120n (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="398002110" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5478" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5478/hovercard" href="https://github.com/apple/cups/issues/5478">#5478</a>)</li>
+<li>Updated the USB quirks rule for Zebra label printers (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="357733286" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5395" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5395/hovercard" href="https://github.com/apple/cups/issues/5395">#5395</a>)</li>
+<li>Fixed a compile error on Linux (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="400297392" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5483" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5483/hovercard" href="https://github.com/apple/cups/issues/5483">#5483</a>)</li>
+<li>The lpadmin command, web interface, and scheduler all queried an IPP<br>
+Everywhere printer differently, resulting in different PPDs for the same<br>
+printer (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="400475471" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5484" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5484/hovercard" href="https://github.com/apple/cups/issues/5484">#5484</a>)</li>
+<li>The web interface no longer provides access to the log files (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="408923646" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5513" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5513/hovercard" href="https://github.com/apple/cups/pull/5513">#5513</a>)</li>
+<li>Non-Kerberized printing to Windows via IPP was broken (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="409779414" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5515" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5515/hovercard" href="https://github.com/apple/cups/issues/5515">#5515</a>)</li>
+<li>Eliminated use of private headers and some deprecated macOS APIs (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="410260107" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5516" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5516/hovercard" href="https://github.com/apple/cups/issues/5516">#5516</a>)</li>
+<li>The scheduler no longer stops a printer if an error occurs when a job is<br>
+canceled or aborted (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="410355270" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5517" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5517/hovercard" href="https://github.com/apple/cups/issues/5517">#5517</a>)</li>
+<li>Added a USB quirks rule for the DYMO 450 Turbo (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="411711197" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5521" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5521/hovercard" href="https://github.com/apple/cups/issues/5521">#5521</a>)</li>
+<li>Added a USB quirks rule for Xerox printers (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="411753258" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5523" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5523/hovercard" href="https://github.com/apple/cups/pull/5523">#5523</a>)</li>
+<li>The scheduler's self-signed certificate did not include all of the alternate<br>
+names for the server when using GNU TLS (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="412016449" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5525" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5525/hovercard" href="https://github.com/apple/cups/issues/5525">#5525</a>)</li>
+<li>Fixed compiler warnings with newer versions of GCC (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="414042934" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5532" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5532/hovercard" href="https://github.com/apple/cups/issues/5532">#5532</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="414066704" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5533" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5533/hovercard" href="https://github.com/apple/cups/issues/5533">#5533</a>)</li>
+<li>Fixed some PPD caching and IPP Everywhere PPD accounting/password bugs<br>
+(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="415271479" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5535" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5535/hovercard" href="https://github.com/apple/cups/pull/5535">#5535</a>)</li>
+<li>Fixed <code>PreserveJobHistory</code> bug with time values (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="417234320" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5538" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5538/hovercard" href="https://github.com/apple/cups/issues/5538">#5538</a>)</li>
+<li>The scheduler no longer advertises the HTTP methods it supports (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="418016911" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5540" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5540/hovercard" href="https://github.com/apple/cups/issues/5540">#5540</a>)</li>
+<li>Localization updates (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="389910117" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5461" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5461/hovercard" href="https://github.com/apple/cups/pull/5461">#5461</a>, Issues <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="396109475" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5471" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5471/hovercard" href="https://github.com/apple/cups/pull/5471">#5471</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="399515079" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5481" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5481/hovercard" href="https://github.com/apple/cups/pull/5481">#5481</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="401477553" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5486" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5486/hovercard" href="https://github.com/apple/cups/pull/5486">#5486</a>,<br>
+Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="401560266" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5489" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5489/hovercard" href="https://github.com/apple/cups/pull/5489">#5489</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="401580756" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5491" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5491/hovercard" href="https://github.com/apple/cups/issues/5491">#5491</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="401583167" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5492" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5492/hovercard" href="https://github.com/apple/cups/pull/5492">#5492</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="401587120" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5493" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5493/hovercard" href="https://github.com/apple/cups/pull/5493">#5493</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="401591890" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5494" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5494/hovercard" href="https://github.com/apple/cups/pull/5494">#5494</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="401976167" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5495" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5495/hovercard" href="https://github.com/apple/cups/issues/5495">#5495</a>,<br>
+Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="402516307" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5497" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5497/hovercard" href="https://github.com/apple/cups/issues/5497">#5497</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="402552206" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5499" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5499/hovercard" href="https://github.com/apple/cups/pull/5499">#5499</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="402552661" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5500" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5500/hovercard" href="https://github.com/apple/cups/pull/5500">#5500</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="402553767" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5501" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5501/hovercard" href="https://github.com/apple/cups/pull/5501">#5501</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="403396003" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5504" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5504/hovercard" href="https://github.com/apple/cups/pull/5504">#5504</a>)</li>
+<li>The scheduler did not always idle exit as quickly as it could.</li>
+<li>Added a new <code>ippeveprinter</code> command based on the old ippserver sample code.</li>
+</ul>
+<p>Enjoy!</p>
+ </div>
+
+
+ <details
+ class="details-reset Details-element border-top pt-3 mt-4 mb-2 mb-md-4"
+
+
+ >
+ <summary>
+ <div class="d-flex flex-items-center">
+ <span class="mr-2 Details-content--closed"><svg class="octicon octicon-triangle-right" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 14l6-6-6-6v12z"/></svg></span>
+ <span class="mr-2 Details-content--open"><svg class="octicon octicon-triangle-down" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 5l6 6 6-6H0z"/></svg></span>
+ <span class="text-bold">Assets</span>
+ <span class="ml-1 Counter">4</span>
+ </div>
+ </summary>
+ <div class="Box Box--condensed mt-3">
+ <div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.3b8/cups-2.3b8-source.tar.gz" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.3b8-source.tar.gz</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">9.89 MB</small>
+ </div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.3b8/cups-2.3b8-source.tar.gz.sig" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.3b8-source.tar.gz.sig</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">585 Bytes</small>
+ </div>
+
+
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.3b8.zip" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (zip)
+ </a>
+ </div>
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.3b8.tar.gz" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (tar.gz)
+ </a>
+ </div>
+ </div>
+ </div>
+ </details>
+
+
+ </div><!-- /.release-body -->
+</div><!-- /.release -->
+
+ </div>
+
+
+
+ <div class="release-entry">
+
+<div class="release pt-2 pt-md-0 pb-3 pb-md-0 clearfix label-">
+ <div class="d-none d-md-block flex-wrap flex-items-center col-12 col-md-3 col-lg-2 px-md-3 pb-1 pb-md-4 pt-md-4 float-left text-md-right v-align-top">
+ <div class="flex-auto flex-self-start">
+
+
+ </div>
+
+ <ul class="d-none d-md-block mt-2 list-style-none">
+ <li class="d-block mb-1">
+ <a href="/apple/cups/tree/v2.2.11" class="muted-link css-truncate" title="v2.2.11">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.2.11</span>
+ </a>
+ </li>
+
+ <li class="d-block mb-1">
+ <a href="/apple/cups/commit/e4a0aa86c96b5ddda3770c46709f4dee9a59071f" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>e4a0aa8</code>
+ </a>
+ </li>
+
+ </ul>
+
+
+ </div><!-- /.meta -->
+
+ <div class="col-12 col-md-9 col-lg-10 px-md-3 py-md-4 release-main-section commit open float-left">
+ <div class="release-header">
+ <div class="d-flex flex-items-start">
+ <div class="f1 flex-auto min-width-0 text-normal">
+ <a href="/apple/cups/releases/tag/v2.2.11">v2.2.11</a>
+ </div>
+
+
+ </div>
+ <ul class="d-flex d-md-none flex-items-center mb-1 list-style-none">
+ <li class="d-block mr-2">
+ <a href="/apple/cups/tree/v2.2.11" class="muted-link css-truncate" title="v2.2.11">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.2.11</span>
+ </a>
+ </li>
+
+ <li class="d-block mr-2 flex-auto">
+ <a href="/apple/cups/commit/e4a0aa86c96b5ddda3770c46709f4dee9a59071f" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>e4a0aa8</code>
+ </a>
+ </li>
+
+
+
+
+ </ul>
+
+<p class="f5 text-gray mt-2 mt-md-1 mb-2 mb-md-4">
+ <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet"><img class="avatar" src="https://avatars3.githubusercontent.com/u/488103?s=40&amp;v=4" width="20" height="20" alt="@michaelrsweet" /></a>
+ <a class="text-bold text-gray" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet">michaelrsweet</a>
+ released this
+ <relative-time datetime="2019-03-22T20:07:02Z" class="no-wrap">Mar 22, 2019</relative-time>
+ &middot;
+ <a href="/apple/cups/compare/v2.2.11...master">
+ 793 commits</a>
+ to master
+ since this release
+</p>
+ </div>
+
+
+
+ <div class="markdown-body">
+ <p>CUPS 2.2.11 is a bug fix release that addresses issues in the scheduler,<br>
+IPP Everywhere support, CUPS library, and USB printer support. Changes include:</p>
+<ul>
+<li>Running ppdmerge with the same input and output filenames did not work as<br>
+advertised (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="389283806" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5455" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5455/hovercard" href="https://github.com/apple/cups/issues/5455">#5455</a>)</li>
+<li>Fixed a potential memory leak when reading at the end of a file (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="397128929" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5473" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5473/hovercard" href="https://github.com/apple/cups/pull/5473">#5473</a>)</li>
+<li>Fixed potential unaligned accesses in the string pool (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="397129335" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5474" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5474/hovercard" href="https://github.com/apple/cups/pull/5474">#5474</a>)</li>
+<li>Fixed a potential memory leak when loading a PPD file (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="397129544" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5475" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5475/hovercard" href="https://github.com/apple/cups/pull/5475">#5475</a>)</li>
+<li>Added a USB quirks rule for the Lexmark E120n (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="398002110" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5478" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5478/hovercard" href="https://github.com/apple/cups/issues/5478">#5478</a>)</li>
+<li>Updated the USB quirks rule for Zebra label printers (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="357733286" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5395" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5395/hovercard" href="https://github.com/apple/cups/issues/5395">#5395</a>)</li>
+<li>Fixed a compile error on Linux (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="400297392" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5483" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5483/hovercard" href="https://github.com/apple/cups/issues/5483">#5483</a>)</li>
+<li>The lpadmin command, web interface, and scheduler all queried an IPP<br>
+Everywhere printer differently, resulting in different PPDs for the same<br>
+printer (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="400475471" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5484" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5484/hovercard" href="https://github.com/apple/cups/issues/5484">#5484</a>)</li>
+<li>Fixed an issue with the self-signed certificates generated by GNU TLS<br>
+(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="405881346" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5506" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5506/hovercard" href="https://github.com/apple/cups/issues/5506">#5506</a>)</li>
+<li>The <code>ippValidateAttribute</code> function did not catch all instances of invalid<br>
+UTF-8 strings (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="406851979" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5509" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5509/hovercard" href="https://github.com/apple/cups/issues/5509">#5509</a>)</li>
+<li>Non-Kerberized printing to Windows via IPP was broken (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="409779414" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5515" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5515/hovercard" href="https://github.com/apple/cups/issues/5515">#5515</a>)</li>
+<li>The scheduler no longer stops a printer if an error occurs when a job is<br>
+canceled or aborted (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="410355270" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5517" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5517/hovercard" href="https://github.com/apple/cups/issues/5517">#5517</a>)</li>
+<li>Added a USB quirks rule for the DYMO 450 Turbo (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="411711197" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5521" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5521/hovercard" href="https://github.com/apple/cups/issues/5521">#5521</a>)</li>
+<li>Added a USB quirks rule for Xerox printers (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="411753258" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5523" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5523/hovercard" href="https://github.com/apple/cups/pull/5523">#5523</a>)</li>
+<li>The scheduler's self-signed certificate did not include all of the alternate<br>
+names for the server when using GNU TLS (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="412016449" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5525" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5525/hovercard" href="https://github.com/apple/cups/issues/5525">#5525</a>)</li>
+<li>Fixed compiler warnings with newer versions of GCC (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="414042934" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5532" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5532/hovercard" href="https://github.com/apple/cups/issues/5532">#5532</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="414066704" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5533" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5533/hovercard" href="https://github.com/apple/cups/issues/5533">#5533</a>)</li>
+<li>Fixed some PPD caching and IPP Everywhere PPD accounting/password bugs<br>
+(Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="415271479" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5535" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5535/hovercard" href="https://github.com/apple/cups/pull/5535">#5535</a>)</li>
+<li>Fixed <code>PreserveJobHistory</code> bug with time values (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="417234320" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5538" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5538/hovercard" href="https://github.com/apple/cups/issues/5538">#5538</a>)</li>
+<li>Media size matching now uses a tolerance of 0.5mm (rdar://33822024)</li>
+<li>The lpadmin command would hang with a bad PPD file (rdar://41495016)</li>
+<li>Fixed a potential crash bug in cups-driverd (rdar://46625579)</li>
+<li>Fixed a performance regression with large PPDs (rdar://47040759)</li>
+<li>The scheduler did not always idle exit as quickly as it could.</li>
+</ul>
+<p>Enjoy!</p>
+ </div>
+
+
+ <details
+ class="details-reset Details-element border-top pt-3 mt-4 mb-2 mb-md-4"
+
+
+ >
+ <summary>
+ <div class="d-flex flex-items-center">
+ <span class="mr-2 Details-content--closed"><svg class="octicon octicon-triangle-right" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 14l6-6-6-6v12z"/></svg></span>
+ <span class="mr-2 Details-content--open"><svg class="octicon octicon-triangle-down" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 5l6 6 6-6H0z"/></svg></span>
+ <span class="text-bold">Assets</span>
+ <span class="ml-1 Counter">4</span>
+ </div>
+ </summary>
+ <div class="Box Box--condensed mt-3">
+ <div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.2.11/cups-2.2.11-source.tar.gz" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.2.11-source.tar.gz</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">9.92 MB</small>
+ </div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.2.11/cups-2.2.11-source.tar.gz.sig" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.2.11-source.tar.gz.sig</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">585 Bytes</small>
+ </div>
+
+
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.2.11.zip" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (zip)
+ </a>
+ </div>
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.2.11.tar.gz" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (tar.gz)
+ </a>
+ </div>
+ </div>
+ </div>
+ </details>
+
+
+ </div><!-- /.release-body -->
+</div><!-- /.release -->
+
+ </div>
+
+
+
+ <div class="release-entry">
+
+<div class="release pt-2 pt-md-0 pb-3 pb-md-0 clearfix label-prerelease">
+ <div class="d-none d-md-block flex-wrap flex-items-center col-12 col-md-3 col-lg-2 px-md-3 pb-1 pb-md-4 pt-md-4 float-left text-md-right v-align-top">
+ <div class="flex-auto flex-self-start">
+ <span class="flex-shrink-0 Label Label--outline mb-md-2 mr-2 mr-md-0 Label--prerelease">
+ Pre-release
+ </span>
+
+
+ </div>
+
+ <ul class="d-none d-md-block mt-2 list-style-none">
+ <li class="d-block mb-1">
+ <a href="/apple/cups/tree/v2.3b7" class="muted-link css-truncate" title="v2.3b7">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.3b7</span>
+ </a>
+ </li>
+
+ <li class="d-block mb-1">
+ <a href="/apple/cups/commit/b1e7afd5964cbe1aeab6f0a2d5b33884693a143a" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>b1e7afd</code>
+ </a>
+ </li>
+
+ </ul>
+
+
+ </div><!-- /.meta -->
+
+ <div class="col-12 col-md-9 col-lg-10 px-md-3 py-md-4 release-main-section commit open float-left">
+ <div class="release-header">
+ <div class="d-flex flex-items-start">
+ <div class="f1 flex-auto min-width-0 text-normal">
+ <a href="/apple/cups/releases/tag/v2.3b7">v2.3b7</a>
+ </div>
+
+ <span class="d-md-none flex-shrink-0 ml-2 mt-2 mt-md-0 Label Label--outline Label--prerelease">
+ Pre-release
+ </span>
+
+ </div>
+ <ul class="d-flex d-md-none flex-items-center mb-1 list-style-none">
+ <li class="d-block mr-2">
+ <a href="/apple/cups/tree/v2.3b7" class="muted-link css-truncate" title="v2.3b7">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.3b7</span>
+ </a>
+ </li>
+
+ <li class="d-block mr-2 flex-auto">
+ <a href="/apple/cups/commit/b1e7afd5964cbe1aeab6f0a2d5b33884693a143a" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>b1e7afd</code>
+ </a>
+ </li>
+
+
+
+
+ </ul>
+
+<p class="f5 text-gray mt-2 mt-md-1 mb-2 mb-md-4">
+ <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet"><img class="avatar" src="https://avatars3.githubusercontent.com/u/488103?s=40&amp;v=4" width="20" height="20" alt="@michaelrsweet" /></a>
+ <a class="text-bold text-gray" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet">michaelrsweet</a>
+ released this
+ <relative-time datetime="2018-12-14T15:25:40Z" class="no-wrap">Dec 14, 2018</relative-time>
+ &middot;
+ <a href="/apple/cups/compare/v2.3b7...master">
+ 350 commits</a>
+ to master
+ since this release
+</p>
+ </div>
+
+
+
+ <div class="markdown-body">
+ <p>CUPS 2.3b7 is now available for download. This is the sixth beta of the CUPS 2.3 series which adopts the new CUPS license, adds support for IPP presets and finishing templates, and fixes a number of bugs and "polish" issues.</p>
+<p>Changes include:</p>
+<ul>
+<li>Fixed some build failures (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="388917027" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5451" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5451/hovercard" href="https://github.com/apple/cups/pull/5451">#5451</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="391143584" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5463" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5463/hovercard" href="https://github.com/apple/cups/pull/5463">#5463</a>)</li>
+<li>Running ppdmerge with the same input and output filenames did not work as<br>
+advertised (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="389283806" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5455" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5455/hovercard" href="https://github.com/apple/cups/issues/5455">#5455</a>)</li>
+</ul>
+<p>Enjoy!</p>
+ </div>
+
+
+ <details
+ class="details-reset Details-element border-top pt-3 mt-4 mb-2 mb-md-4"
+
+
+ >
+ <summary>
+ <div class="d-flex flex-items-center">
+ <span class="mr-2 Details-content--closed"><svg class="octicon octicon-triangle-right" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 14l6-6-6-6v12z"/></svg></span>
+ <span class="mr-2 Details-content--open"><svg class="octicon octicon-triangle-down" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 5l6 6 6-6H0z"/></svg></span>
+ <span class="text-bold">Assets</span>
+ <span class="ml-1 Counter">4</span>
+ </div>
+ </summary>
+ <div class="Box Box--condensed mt-3">
+ <div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.3b7/cups-2.3b7-source.tar.gz" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.3b7-source.tar.gz</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">9.77 MB</small>
+ </div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.3b7/cups-2.3b7-source.tar.gz.sig" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.3b7-source.tar.gz.sig</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">585 Bytes</small>
+ </div>
+
+
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.3b7.zip" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (zip)
+ </a>
+ </div>
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.3b7.tar.gz" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (tar.gz)
+ </a>
+ </div>
+ </div>
+ </div>
+ </details>
+
+
+ </div><!-- /.release-body -->
+</div><!-- /.release -->
+
+ </div>
+
+
+
+ <div class="release-entry">
+
+<div class="release pt-2 pt-md-0 pb-3 pb-md-0 clearfix label-prerelease">
+ <div class="d-none d-md-block flex-wrap flex-items-center col-12 col-md-3 col-lg-2 px-md-3 pb-1 pb-md-4 pt-md-4 float-left text-md-right v-align-top">
+ <div class="flex-auto flex-self-start">
+ <span class="flex-shrink-0 Label Label--outline mb-md-2 mr-2 mr-md-0 Label--prerelease">
+ Pre-release
+ </span>
+
+
+ </div>
+
+ <ul class="d-none d-md-block mt-2 list-style-none">
+ <li class="d-block mb-1">
+ <a href="/apple/cups/tree/v2.3b6" class="muted-link css-truncate" title="v2.3b6">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.3b6</span>
+ </a>
+ </li>
+
+ <li class="d-block mb-1">
+ <a href="/apple/cups/commit/c13e2f44eb15bcdbff9126df86d1ed9a5108e47c" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>c13e2f4</code>
+ </a>
+ </li>
+
+ </ul>
+
+
+ </div><!-- /.meta -->
+
+ <div class="col-12 col-md-9 col-lg-10 px-md-3 py-md-4 release-main-section commit open float-left">
+ <div class="release-header">
+ <div class="d-flex flex-items-start">
+ <div class="f1 flex-auto min-width-0 text-normal">
+ <a href="/apple/cups/releases/tag/v2.3b6">v2.3b6</a>
+ </div>
+
+ <span class="d-md-none flex-shrink-0 ml-2 mt-2 mt-md-0 Label Label--outline Label--prerelease">
+ Pre-release
+ </span>
+
+ </div>
+ <ul class="d-flex d-md-none flex-items-center mb-1 list-style-none">
+ <li class="d-block mr-2">
+ <a href="/apple/cups/tree/v2.3b6" class="muted-link css-truncate" title="v2.3b6">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.3b6</span>
+ </a>
+ </li>
+
+ <li class="d-block mr-2 flex-auto">
+ <a href="/apple/cups/commit/c13e2f44eb15bcdbff9126df86d1ed9a5108e47c" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>c13e2f4</code>
+ </a>
+ </li>
+
+
+
+
+ </ul>
+
+<p class="f5 text-gray mt-2 mt-md-1 mb-2 mb-md-4">
+ <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet"><img class="avatar" src="https://avatars3.githubusercontent.com/u/488103?s=40&amp;v=4" width="20" height="20" alt="@michaelrsweet" /></a>
+ <a class="text-bold text-gray" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet">michaelrsweet</a>
+ released this
+ <relative-time datetime="2018-12-07T19:55:15Z" class="no-wrap">Dec 7, 2018</relative-time>
+ &middot;
+ <a href="/apple/cups/compare/v2.3b6...master">
+ 358 commits</a>
+ to master
+ since this release
+</p>
+ </div>
+
+
+
+ <div class="markdown-body">
+ <p>CUPS 2.3b6 is now available for download. This is the sixth beta of the CUPS 2.3 series which adopts the new CUPS license, adds support for IPP presets and finishing templates, and fixes a number of bugs and “polish” issues. Changes include:</p>
+<ul>
+<li>Localization update (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="331487448" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5339" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5339/hovercard" href="https://github.com/apple/cups/pull/5339">#5339</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="338371070" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5348" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5348/hovercard" href="https://github.com/apple/cups/pull/5348">#5348</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="346031038" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5362" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5362/hovercard" href="https://github.com/apple/cups/issues/5362">#5362</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="366787211" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5408" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5408/hovercard" href="https://github.com/apple/cups/pull/5408">#5408</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="368045074" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5410" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5410/hovercard" href="https://github.com/apple/cups/pull/5410">#5410</a>)</li>
+<li>Documentation updates (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="348353282" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5369" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5369/hovercard" href="https://github.com/apple/cups/pull/5369">#5369</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="363404487" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5402" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5402/hovercard" href="https://github.com/apple/cups/issues/5402">#5402</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="363405764" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5403" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5403/hovercard" href="https://github.com/apple/cups/issues/5403">#5403</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="364552772" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5404" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5404/hovercard" href="https://github.com/apple/cups/issues/5404">#5404</a>)</li>
+<li>CVE-2018-4700: Linux session cookies used a predictable random number seed.</li>
+<li>All user commands now support the <code>--help</code> option (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="330540965" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5326" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5326/hovercard" href="https://github.com/apple/cups/pull/5326">#5326</a>)</li>
+<li>The <code>lpoptions</code> command now works with IPP Everywhere printers that have not yet been added as local queues (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="240476360" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5045" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5045/hovercard" href="https://github.com/apple/cups/issues/5045">#5045</a>)</li>
+<li>The lpadmin command would create a non-working printer in some error cases (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="318946590" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5305" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5305/hovercard" href="https://github.com/apple/cups/issues/5305">#5305</a>)</li>
+<li>The scheduler would crash if an empty <code>AccessLog</code> directive was specified (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="320205820" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5309" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5309/hovercard" href="https://github.com/apple/cups/issues/5309">#5309</a>)</li>
+<li>The scheduler did not idle-exit on some Linux distributions (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="326681481" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5319" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5319/hovercard" href="https://github.com/apple/cups/issues/5319">#5319</a>)</li>
+<li>Fixed a regression in the changes to ippValidateAttribute (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="329849228" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5322" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5322/hovercard" href="https://github.com/apple/cups/issues/5322">#5322</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="330795910" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5330" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5330/hovercard" href="https://github.com/apple/cups/pull/5330">#5330</a>)</li>
+<li>Fixed a crash bug in the Epson dot matrix driver (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="329933700" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5323" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5323/hovercard" href="https://github.com/apple/cups/issues/5323">#5323</a>)</li>
+<li>Automatic debug logging of job errors did not work with systemd (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="331250505" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5337" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5337/hovercard" href="https://github.com/apple/cups/pull/5337">#5337</a>)</li>
+<li>The web interface did not list the IPP Everywhere "driver" (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="331312712" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5338" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5338/hovercard" href="https://github.com/apple/cups/issues/5338">#5338</a>)</li>
+<li>The scheduler did not report all of the supported job options and values (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="333276783" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5340" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5340/hovercard" href="https://github.com/apple/cups/issues/5340">#5340</a>)</li>
+<li>The IPP Everywhere "driver" now properly supports face-up printers (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="337083449" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5345" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5345/hovercard" href="https://github.com/apple/cups/pull/5345">#5345</a>)</li>
+<li>Fixed some typos in the label printer drivers (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="339185565" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5350" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5350/hovercard" href="https://github.com/apple/cups/pull/5350">#5350</a>)</li>
+<li>Setting the <code>Community</code> name to the empty string in <code>snmp.conf</code> now disables SNMP supply level monitoring by all the standard network backends (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="340624090" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5354" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5354/hovercard" href="https://github.com/apple/cups/issues/5354">#5354</a>)</li>
+<li>Multi-file jobs could get stuck if the backend failed (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="345069787" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5359" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5359/hovercard" href="https://github.com/apple/cups/issues/5359">#5359</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="371092957" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5413" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5413/hovercard" href="https://github.com/apple/cups/pull/5413">#5413</a>)</li>
+<li>The IPP Everywhere "driver" no longer does local filtering when printing to a shared CUPS printer (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="345371064" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5361" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5361/hovercard" href="https://github.com/apple/cups/issues/5361">#5361</a>)</li>
+<li>The lpadmin command now correctly reports IPP errors when configuring an IPP Everywhere printer (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="348454669" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5370" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5370/hovercard" href="https://github.com/apple/cups/issues/5370">#5370</a>)</li>
+<li>Fixed some memory leaks discovered by Coverity (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="350817056" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5375" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5375/hovercard" href="https://github.com/apple/cups/pull/5375">#5375</a>)</li>
+<li>The PPD compiler incorrectly terminated JCL options (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="353923453" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5379" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5379/hovercard" href="https://github.com/apple/cups/issues/5379">#5379</a>)</li>
+<li>The cupstestppd utility did not generate errors for missing/mismatched CloseUI/JCLCloseUI keywords (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="354366018" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5381" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5381/hovercard" href="https://github.com/apple/cups/issues/5381">#5381</a>)</li>
+<li>The scheduler now reports the actual location of the log file (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="360830362" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5398" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5398/hovercard" href="https://github.com/apple/cups/pull/5398">#5398</a>)</li>
+<li>Added USB quirk rules (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="357733286" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5395" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5395/hovercard" href="https://github.com/apple/cups/issues/5395">#5395</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="374789312" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5420" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5420/hovercard" href="https://github.com/apple/cups/issues/5420">#5420</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="383353143" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5443" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5443/hovercard" href="https://github.com/apple/cups/issues/5443">#5443</a>)</li>
+<li>The generated PPD files for IPP Everywhere printers did not contain the cupsManualCopies keyword (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="379168700" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5433" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5433/hovercard" href="https://github.com/apple/cups/issues/5433">#5433</a>)</li>
+<li>Kerberos credentials might be truncated (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="379992572" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5435" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5435/hovercard" href="https://github.com/apple/cups/pull/5435">#5435</a>)</li>
+<li>The handling of <code>MaxJobTime 0</code> did not match the documentation (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="381247863" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5438" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5438/hovercard" href="https://github.com/apple/cups/issues/5438">#5438</a>)</li>
+<li>Fixed a bug adding a queue with the <code>-E</code> option (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="381942069" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5440" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5440/hovercard" href="https://github.com/apple/cups/issues/5440">#5440</a>)</li>
+<li>The <code>cupsaddsmb</code> program has been removed (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="388302147" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5449" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5449/hovercard" href="https://github.com/apple/cups/issues/5449">#5449</a>)</li>
+<li>The <code>cupstestdsc</code> program has been removed (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="388307516" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5450" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5450/hovercard" href="https://github.com/apple/cups/issues/5450">#5450</a>)</li>
+<li>The scheduler was being backgrounded on macOS, causing applications to spin (rdar://40436080)</li>
+<li>The scheduler did not validate that required initial request attributes were in the operation group (rdar://41098178)</li>
+<li>Authentication in the web interface did not work on macOS (rdar://41444473)</li>
+<li>Fixed an issue with HTTP Digest authentication (rdar://41709086)</li>
+<li>The scheduler could crash when job history was purged (rdar://42198057)</li>
+<li>Fixed a crash bug when mapping PPD duplex options to IPP attributes (rdar://46183976)</li>
+<li>Fixed a memory leak for some IPP (extension) syntaxes.</li>
+<li>The <code>cupscgi</code>, <code>cupsmime</code>, and <code>cupsppdc</code> support libraries are no longer installed as shared libraries.</li>
+<li>The <code>snmp</code> backend is now deprecated.</li>
+</ul>
+<p>Enjoy!</p>
+ </div>
+
+
+ <details
+ class="details-reset Details-element border-top pt-3 mt-4 mb-2 mb-md-4"
+
+
+ >
+ <summary>
+ <div class="d-flex flex-items-center">
+ <span class="mr-2 Details-content--closed"><svg class="octicon octicon-triangle-right" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 14l6-6-6-6v12z"/></svg></span>
+ <span class="mr-2 Details-content--open"><svg class="octicon octicon-triangle-down" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 5l6 6 6-6H0z"/></svg></span>
+ <span class="text-bold">Assets</span>
+ <span class="ml-1 Counter">4</span>
+ </div>
+ </summary>
+ <div class="Box Box--condensed mt-3">
+ <div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.3b6/cups-2.3b6-source.tar.gz" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.3b6-source.tar.gz</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">9.77 MB</small>
+ </div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.3b6/cups-2.3b6-source.tar.gz.sig" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.3b6-source.tar.gz.sig</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">585 Bytes</small>
+ </div>
+
+
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.3b6.zip" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (zip)
+ </a>
+ </div>
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.3b6.tar.gz" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (tar.gz)
+ </a>
+ </div>
+ </div>
+ </div>
+ </details>
+
+
+ </div><!-- /.release-body -->
+</div><!-- /.release -->
+
+ </div>
+
+
+
+ <div class="release-entry">
+
+<div class="release pt-2 pt-md-0 pb-3 pb-md-0 clearfix label-">
+ <div class="d-none d-md-block flex-wrap flex-items-center col-12 col-md-3 col-lg-2 px-md-3 pb-1 pb-md-4 pt-md-4 float-left text-md-right v-align-top">
+ <div class="flex-auto flex-self-start">
+
+
+ </div>
+
+ <ul class="d-none d-md-block mt-2 list-style-none">
+ <li class="d-block mb-1">
+ <a href="/apple/cups/tree/v2.2.10" class="muted-link css-truncate" title="v2.2.10">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.2.10</span>
+ </a>
+ </li>
+
+ <li class="d-block mb-1">
+ <a href="/apple/cups/commit/25b2338346ef3abbb93ea88476887cba7b2b86f8" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>25b2338</code>
+ </a>
+ </li>
+
+ </ul>
+
+
+ </div><!-- /.meta -->
+
+ <div class="col-12 col-md-9 col-lg-10 px-md-3 py-md-4 release-main-section commit open float-left">
+ <div class="release-header">
+ <div class="d-flex flex-items-start">
+ <div class="f1 flex-auto min-width-0 text-normal">
+ <a href="/apple/cups/releases/tag/v2.2.10">v2.2.10</a>
+ </div>
+
+
+ </div>
+ <ul class="d-flex d-md-none flex-items-center mb-1 list-style-none">
+ <li class="d-block mr-2">
+ <a href="/apple/cups/tree/v2.2.10" class="muted-link css-truncate" title="v2.2.10">
+ <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
+ <span class="css-truncate-target" style="max-width: 125px">v2.2.10</span>
+ </a>
+ </li>
+
+ <li class="d-block mr-2 flex-auto">
+ <a href="/apple/cups/commit/25b2338346ef3abbb93ea88476887cba7b2b86f8" class="muted-link">
+ <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
+ <code>25b2338</code>
+ </a>
+ </li>
+
+
+
+
+ </ul>
+
+<p class="f5 text-gray mt-2 mt-md-1 mb-2 mb-md-4">
+ <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet"><img class="avatar" src="https://avatars3.githubusercontent.com/u/488103?s=40&amp;v=4" width="20" height="20" alt="@michaelrsweet" /></a>
+ <a class="text-bold text-gray" data-hovercard-type="user" data-hovercard-url="/users/michaelrsweet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/michaelrsweet">michaelrsweet</a>
+ released this
+ <relative-time datetime="2018-12-07T19:57:55Z" class="no-wrap">Dec 7, 2018</relative-time>
+ &middot;
+ <a href="/apple/cups/compare/v2.2.10...master">
+ 793 commits</a>
+ to master
+ since this release
+</p>
+ </div>
+
+
+
+ <div class="markdown-body">
+ <p>CUPS 2.2.10 is a bug fix release that addresses issues in the scheduler, IPP Everywhere support, CUPS library, and USB printer support. Changes include:</p>
+<ul>
+<li>CVE-2018-4300: Linux session cookies used a predictable random number seed.</li>
+<li>The <code>lpoptions</code> command now works with IPP Everywhere printers that have not yet been added as local queues (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="240476360" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5045" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5045/hovercard" href="https://github.com/apple/cups/issues/5045">#5045</a>)</li>
+<li>Added USB quirk rules (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="357733286" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5395" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5395/hovercard" href="https://github.com/apple/cups/issues/5395">#5395</a>, Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="383353143" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5443" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5443/hovercard" href="https://github.com/apple/cups/issues/5443">#5443</a>)</li>
+<li>The generated PPD files for IPP Everywhere printers did not contain the cupsManualCopies keyword (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="379168700" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5433" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5433/hovercard" href="https://github.com/apple/cups/issues/5433">#5433</a>)</li>
+<li>Kerberos credentials might be truncated (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="379992572" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5435" data-hovercard-type="pull_request" data-hovercard-url="/apple/cups/pull/5435/hovercard" href="https://github.com/apple/cups/pull/5435">#5435</a>)</li>
+<li>The handling of <code>MaxJobTime 0</code> did not match the documentation (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="381247863" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5438" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5438/hovercard" href="https://github.com/apple/cups/issues/5438">#5438</a>)</li>
+<li>Incorporated the page accounting changes from CUPS 2.3 (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="381531578" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5439" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5439/hovercard" href="https://github.com/apple/cups/issues/5439">#5439</a>)</li>
+<li>Fixed a bug adding a queue with the <code>-E</code> option (Issue <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="381942069" data-permission-text="Issue title is private" data-url="https://github.com/apple/cups/issues/5440" data-hovercard-type="issue" data-hovercard-url="/apple/cups/issues/5440/hovercard" href="https://github.com/apple/cups/issues/5440">#5440</a>)</li>
+<li>Fixed a crash bug when mapping PPD duplex options to IPP attributes (rdar://46183976)</li>
+</ul>
+<p>Enjoy!</p>
+ </div>
+
+
+ <details
+ class="details-reset Details-element border-top pt-3 mt-4 mb-2 mb-md-4"
+
+
+ >
+ <summary>
+ <div class="d-flex flex-items-center">
+ <span class="mr-2 Details-content--closed"><svg class="octicon octicon-triangle-right" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 14l6-6-6-6v12z"/></svg></span>
+ <span class="mr-2 Details-content--open"><svg class="octicon octicon-triangle-down" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 5l6 6 6-6H0z"/></svg></span>
+ <span class="text-bold">Assets</span>
+ <span class="ml-1 Counter">4</span>
+ </div>
+ </summary>
+ <div class="Box Box--condensed mt-3">
+ <div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.2.10/cups-2.2.10-source.tar.gz" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.2.10-source.tar.gz</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">9.92 MB</small>
+ </div>
+ <div class="d-flex flex-justify-between flex-items-center py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/releases/download/v2.2.10/cups-2.2.10-source.tar.gz.sig" rel="nofollow" class="d-flex flex-items-center min-width-0">
+ <svg class="octicon octicon-package flex-shrink-0 text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
+ <span class="pl-2 flex-auto min-width-0 text-bold">cups-2.2.10-source.tar.gz.sig</span>
+ </a>
+ <small class="pl-2 text-gray flex-shrink-0">585 Bytes</small>
+ </div>
+
+
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.2.10.zip" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (zip)
+ </a>
+ </div>
+ <div class="d-block py-1 py-md-2 Box-body px-2">
+ <a href="/apple/cups/archive/v2.2.10.tar.gz" rel="nofollow" class="d-flex flex-items-center">
+ <svg class="octicon octicon-file-zip flex-shrink-0 text-gray" width="16" height="16" viewBox="0 0 12 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 00-1 1v12a1 1 0 001 1h10a1 1 0 001-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 003 11v1h4v-1a2 2 0 00-2-2V8H4v1.28zM6 10v1H4v-1h2z"/></svg>
+ <span class="px-1 text-bold">Source code</span> (tar.gz)
+ </a>
+ </div>
+ </div>
+ </div>
+ </details>
+
+
+ </div><!-- /.release-body -->
+</div><!-- /.release -->
+
+ </div>
+
+ </div>
+
+ <div data-pjax class="paginate-container">
+ <div class="pagination"><span class="disabled">Previous</span><a rel="nofollow" href="https://github.com/apple/cups/releases?after=v2.2.10">Next</a></div>
+ </div>
+
+
+ </div>
+</div>
+
+ </main>
+ </div>
+
+
+ </div>
+
+
+<div class="footer container-lg width-full p-responsive" role="contentinfo">
+ <div class="position-relative d-flex flex-row-reverse flex-lg-row flex-wrap flex-lg-nowrap flex-justify-center flex-lg-justify-between pt-6 pb-2 mt-6 f6 text-gray border-top border-gray-light ">
+ <ul class="list-style-none d-flex flex-wrap col-12 col-lg-5 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0">
+ <li class="mr-3 mr-lg-0">&copy; 2019 GitHub, Inc.</li>
+ <li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to terms, text:terms" href="https://github.com/site/terms">Terms</a></li>
+ <li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to privacy, text:privacy" href="https://github.com/site/privacy">Privacy</a></li>
+ <li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to security, text:security" href="https://github.com/security">Security</a></li>
+ <li class="mr-3 mr-lg-0"><a href="https://githubstatus.com/" data-ga-click="Footer, go to status, text:status">Status</a></li>
+ <li><a data-ga-click="Footer, go to help, text:help" href="https://help.github.com">Help</a></li>
+ </ul>
+
+ <a aria-label="Homepage" title="GitHub" class="footer-octicon d-none d-lg-block mx-lg-4" href="https://github.com">
+ <svg height="24" class="octicon octicon-mark-github" viewBox="0 0 16 16" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg>
+</a>
+ <ul class="list-style-none d-flex flex-wrap col-12 col-lg-5 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0">
+ <li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to contact, text:contact" href="https://github.com/contact">Contact GitHub</a></li>
+ <li class="mr-3 mr-lg-0"><a href="https://github.com/pricing" data-ga-click="Footer, go to Pricing, text:Pricing">Pricing</a></li>
+ <li class="mr-3 mr-lg-0"><a href="https://developer.github.com" data-ga-click="Footer, go to api, text:api">API</a></li>
+ <li class="mr-3 mr-lg-0"><a href="https://training.github.com" data-ga-click="Footer, go to training, text:training">Training</a></li>
+ <li class="mr-3 mr-lg-0"><a href="https://github.blog" data-ga-click="Footer, go to blog, text:blog">Blog</a></li>
+ <li><a data-ga-click="Footer, go to about, text:about" href="https://github.com/about">About</a></li>
+
+ </ul>
+ </div>
+ <div class="d-flex flex-justify-center pb-6">
+ <span class="f6 text-gray-light"></span>
+ </div>
+</div>
+
+
+
+ <div id="ajax-error-message" class="ajax-error-message flash flash-error">
+ <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 000 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 00.01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg>
+ <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
+ <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
+ </button>
+ You can’t perform that action at this time.
+ </div>
+
+
+ <script crossorigin="anonymous" integrity="sha512-mdrBasYG+QjgS391PSyVkPr06io3gWplCVbPscguetNEHxIEt+mZwCeCxPR9eMNfda6qNuibNFqBo5ak2+O/hg==" type="application/javascript" src="https://github.githubassets.com/assets/compat-bootstrap-99dac16a.js"></script>
+ <script crossorigin="anonymous" integrity="sha512-QxcIZ5pa4j8P5eL6FLQaU/FAIfodWkzV2rf+7OlyiiiIM9ZaG3MODvgQme+LVDUPMBdmjYYZ+svSlFu5yjFhRw==" type="application/javascript" src="https://github.githubassets.com/assets/frameworks-43170867.js"></script>
+
+ <script crossorigin="anonymous" async="async" integrity="sha512-pWb+XERZ8B74prW8yPNeOMfFEfMfo8DvbO4kDA/DzPk10uGiVYPCB51sRRwisgKrPyfXtC+Igc5k9BfUpepmtQ==" type="application/javascript" src="https://github.githubassets.com/assets/github-bootstrap-a566fe5c.js"></script>
+
+
+
+ <div class="js-stale-session-flash flash flash-warn flash-banner" hidden
+ >
+ <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 000 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 00.01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg>
+ <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span>
+ <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span>
+ </div>
+ <template id="site-details-dialog">
+ <details class="details-reset details-overlay details-overlay-dark lh-default text-gray-dark hx_rsm" open>
+ <summary role="button" aria-label="Close dialog"></summary>
+ <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal">
+ <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog>
+ <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
+ </button>
+ <div class="octocat-spinner my-6 js-details-dialog-spinner"></div>
+ </details-dialog>
+ </details>
+</template>
+
+ <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0">
+ <div class="Popover-message Popover-message--bottom-left Popover-message--large Box box-shadow-large" style="width:360px;">
+ </div>
+</div>
+
+ <div aria-live="polite" class="js-global-screen-reader-notice sr-only"></div>
+
+ </body>
+</html>
+
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/debian/pool/main/d/db5.3/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/debian/pool/main/d/db5.3/index.html
new file mode 100644
index 000000000..a5a6f4839
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/debian/pool/main/d/db5.3/index.html
@@ -0,0 +1,509 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /debian/pool/main/d/db5.3</title>
+ </head>
+ <body>
+<h1>Index of /debian/pool/main/d/db5.3</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th></tr>
+ <tr><th colspan="4"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/debian/pool/main/d/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-doc_5.3.28+dfsg1-0.5_all.deb">db5.3-doc_5.3.28+dfsg1-0.5_all.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right"> 15M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-doc_5.3.28+dfsg1-0.6_all.deb">db5.3-doc_5.3.28+dfsg1-0.6_all.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right"> 15M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-doc_5.3.28-9+deb8u1_all.deb">db5.3-doc_5.3.28-9+deb8u1_all.deb</a></td><td align="right">2017-11-18 20:15 </td><td align="right"> 18M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-doc_5.3.28-12+deb9u1_all.deb">db5.3-doc_5.3.28-12+deb9u1_all.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right"> 18M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.5_amd64.deb">db5.3-sql-util_5.3.28+dfsg1-0.5_amd64.deb</a></td><td align="right">2019-02-26 10:11 </td><td align="right"> 21K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.5_arm64.deb">db5.3-sql-util_5.3.28+dfsg1-0.5_arm64.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right"> 19K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.5_armel.deb">db5.3-sql-util_5.3.28+dfsg1-0.5_armel.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right"> 20K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.5_armhf.deb">db5.3-sql-util_5.3.28+dfsg1-0.5_armhf.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right"> 19K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.5_i386.deb">db5.3-sql-util_5.3.28+dfsg1-0.5_i386.deb</a></td><td align="right">2019-02-26 09:46 </td><td align="right"> 22K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.5_mips.deb">db5.3-sql-util_5.3.28+dfsg1-0.5_mips.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right"> 19K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.5_mips64el.deb">db5.3-sql-util_5.3.28+dfsg1-0.5_mips64el.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right"> 19K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.5_mipsel.deb">db5.3-sql-util_5.3.28+dfsg1-0.5_mipsel.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right"> 19K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.5_ppc64el.deb">db5.3-sql-util_5.3.28+dfsg1-0.5_ppc64el.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right"> 23K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.5_s390x.deb">db5.3-sql-util_5.3.28+dfsg1-0.5_s390x.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right"> 20K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.6_amd64.deb">db5.3-sql-util_5.3.28+dfsg1-0.6_amd64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right"> 21K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.6_arm64.deb">db5.3-sql-util_5.3.28+dfsg1-0.6_arm64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right"> 19K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.6_armel.deb">db5.3-sql-util_5.3.28+dfsg1-0.6_armel.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right"> 20K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.6_armhf.deb">db5.3-sql-util_5.3.28+dfsg1-0.6_armhf.deb</a></td><td align="right">2019-03-12 06:14 </td><td align="right"> 19K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.6_i386.deb">db5.3-sql-util_5.3.28+dfsg1-0.6_i386.deb</a></td><td align="right">2019-03-12 05:43 </td><td align="right"> 22K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.6_mips64el.deb">db5.3-sql-util_5.3.28+dfsg1-0.6_mips64el.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right"> 19K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.6_mipsel.deb">db5.3-sql-util_5.3.28+dfsg1-0.6_mipsel.deb</a></td><td align="right">2019-03-12 07:30 </td><td align="right"> 19K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.6_ppc64el.deb">db5.3-sql-util_5.3.28+dfsg1-0.6_ppc64el.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right"> 23K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28+dfsg1-0.6_s390x.deb">db5.3-sql-util_5.3.28+dfsg1-0.6_s390x.deb</a></td><td align="right">2019-03-12 05:13 </td><td align="right"> 20K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28-9+deb8u1_amd64.deb">db5.3-sql-util_5.3.28-9+deb8u1_amd64.deb</a></td><td align="right">2017-11-20 03:40 </td><td align="right"> 21K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28-9+deb8u1_armel.deb">db5.3-sql-util_5.3.28-9+deb8u1_armel.deb</a></td><td align="right">2017-11-20 04:26 </td><td align="right"> 20K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28-9+deb8u1_armhf.deb">db5.3-sql-util_5.3.28-9+deb8u1_armhf.deb</a></td><td align="right">2017-12-02 16:26 </td><td align="right"> 19K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28-9+deb8u1_i386.deb">db5.3-sql-util_5.3.28-9+deb8u1_i386.deb</a></td><td align="right">2017-11-20 03:25 </td><td align="right"> 22K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28-12+deb9u1_amd64.deb">db5.3-sql-util_5.3.28-12+deb9u1_amd64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right"> 20K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28-12+deb9u1_arm64.deb">db5.3-sql-util_5.3.28-12+deb9u1_arm64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right"> 18K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28-12+deb9u1_armel.deb">db5.3-sql-util_5.3.28-12+deb9u1_armel.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right"> 20K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28-12+deb9u1_armhf.deb">db5.3-sql-util_5.3.28-12+deb9u1_armhf.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right"> 19K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28-12+deb9u1_i386.deb">db5.3-sql-util_5.3.28-12+deb9u1_i386.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right"> 22K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28-12+deb9u1_mips.deb">db5.3-sql-util_5.3.28-12+deb9u1_mips.deb</a></td><td align="right">2017-09-29 16:10 </td><td align="right"> 19K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28-12+deb9u1_mips64el.deb">db5.3-sql-util_5.3.28-12+deb9u1_mips64el.deb</a></td><td align="right">2017-09-28 11:29 </td><td align="right"> 19K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28-12+deb9u1_mipsel.deb">db5.3-sql-util_5.3.28-12+deb9u1_mipsel.deb</a></td><td align="right">2017-09-28 11:14 </td><td align="right"> 19K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28-12+deb9u1_ppc64el.deb">db5.3-sql-util_5.3.28-12+deb9u1_ppc64el.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right"> 19K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-sql-util_5.3.28-12+deb9u1_s390x.deb">db5.3-sql-util_5.3.28-12+deb9u1_s390x.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right"> 20K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.5_amd64.deb">db5.3-util_5.3.28+dfsg1-0.5_amd64.deb</a></td><td align="right">2019-02-26 10:11 </td><td align="right"> 63K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.5_arm64.deb">db5.3-util_5.3.28+dfsg1-0.5_arm64.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right"> 63K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.5_armel.deb">db5.3-util_5.3.28+dfsg1-0.5_armel.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right"> 58K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.5_armhf.deb">db5.3-util_5.3.28+dfsg1-0.5_armhf.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right"> 59K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.5_i386.deb">db5.3-util_5.3.28+dfsg1-0.5_i386.deb</a></td><td align="right">2019-02-26 09:46 </td><td align="right"> 65K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.5_mips.deb">db5.3-util_5.3.28+dfsg1-0.5_mips.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right"> 62K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.5_mips64el.deb">db5.3-util_5.3.28+dfsg1-0.5_mips64el.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right"> 64K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.5_mipsel.deb">db5.3-util_5.3.28+dfsg1-0.5_mipsel.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right"> 63K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.5_ppc64el.deb">db5.3-util_5.3.28+dfsg1-0.5_ppc64el.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right"> 69K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.5_s390x.deb">db5.3-util_5.3.28+dfsg1-0.5_s390x.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right"> 64K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.6_amd64.deb">db5.3-util_5.3.28+dfsg1-0.6_amd64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right"> 63K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.6_arm64.deb">db5.3-util_5.3.28+dfsg1-0.6_arm64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right"> 63K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.6_armel.deb">db5.3-util_5.3.28+dfsg1-0.6_armel.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right"> 58K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.6_armhf.deb">db5.3-util_5.3.28+dfsg1-0.6_armhf.deb</a></td><td align="right">2019-03-12 06:14 </td><td align="right"> 59K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.6_i386.deb">db5.3-util_5.3.28+dfsg1-0.6_i386.deb</a></td><td align="right">2019-03-12 05:43 </td><td align="right"> 65K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.6_mips64el.deb">db5.3-util_5.3.28+dfsg1-0.6_mips64el.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right"> 64K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.6_mipsel.deb">db5.3-util_5.3.28+dfsg1-0.6_mipsel.deb</a></td><td align="right">2019-03-12 07:30 </td><td align="right"> 63K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.6_ppc64el.deb">db5.3-util_5.3.28+dfsg1-0.6_ppc64el.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right"> 69K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28+dfsg1-0.6_s390x.deb">db5.3-util_5.3.28+dfsg1-0.6_s390x.deb</a></td><td align="right">2019-03-12 05:13 </td><td align="right"> 64K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28-9+deb8u1_amd64.deb">db5.3-util_5.3.28-9+deb8u1_amd64.deb</a></td><td align="right">2017-11-20 03:40 </td><td align="right"> 63K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28-9+deb8u1_armel.deb">db5.3-util_5.3.28-9+deb8u1_armel.deb</a></td><td align="right">2017-11-20 04:26 </td><td align="right"> 60K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28-9+deb8u1_armhf.deb">db5.3-util_5.3.28-9+deb8u1_armhf.deb</a></td><td align="right">2017-12-02 16:26 </td><td align="right"> 61K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28-9+deb8u1_i386.deb">db5.3-util_5.3.28-9+deb8u1_i386.deb</a></td><td align="right">2017-11-20 03:25 </td><td align="right"> 65K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28-12+deb9u1_amd64.deb">db5.3-util_5.3.28-12+deb9u1_amd64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right"> 63K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28-12+deb9u1_arm64.deb">db5.3-util_5.3.28-12+deb9u1_arm64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right"> 60K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28-12+deb9u1_armel.deb">db5.3-util_5.3.28-12+deb9u1_armel.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right"> 60K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28-12+deb9u1_armhf.deb">db5.3-util_5.3.28-12+deb9u1_armhf.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right"> 61K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28-12+deb9u1_i386.deb">db5.3-util_5.3.28-12+deb9u1_i386.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right"> 66K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28-12+deb9u1_mips.deb">db5.3-util_5.3.28-12+deb9u1_mips.deb</a></td><td align="right">2017-09-29 16:10 </td><td align="right"> 62K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28-12+deb9u1_mips64el.deb">db5.3-util_5.3.28-12+deb9u1_mips64el.deb</a></td><td align="right">2017-09-28 11:29 </td><td align="right"> 64K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28-12+deb9u1_mipsel.deb">db5.3-util_5.3.28-12+deb9u1_mipsel.deb</a></td><td align="right">2017-09-28 11:14 </td><td align="right"> 63K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28-12+deb9u1_ppc64el.deb">db5.3-util_5.3.28-12+deb9u1_ppc64el.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right"> 60K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3-util_5.3.28-12+deb9u1_s390x.deb">db5.3-util_5.3.28-12+deb9u1_s390x.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right"> 64K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3_5.3.28+dfsg1-0.5.debian.tar.xz">db5.3_5.3.28+dfsg1-0.5.debian.tar.xz</a></td><td align="right">2019-02-26 08:51 </td><td align="right"> 28K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3_5.3.28+dfsg1-0.5.dsc">db5.3_5.3.28+dfsg1-0.5.dsc</a></td><td align="right">2019-02-26 08:51 </td><td align="right">2.7K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3_5.3.28+dfsg1-0.6.debian.tar.xz">db5.3_5.3.28+dfsg1-0.6.debian.tar.xz</a></td><td align="right">2019-03-12 04:27 </td><td align="right"> 29K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3_5.3.28+dfsg1-0.6.dsc">db5.3_5.3.28+dfsg1-0.6.dsc</a></td><td align="right">2019-03-12 04:27 </td><td align="right">3.1K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3_5.3.28+dfsg1.orig.tar.xz">db5.3_5.3.28+dfsg1.orig.tar.xz</a></td><td align="right">2018-08-09 01:52 </td><td align="right"> 19M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3_5.3.28-9+deb8u1.debian.tar.xz">db5.3_5.3.28-9+deb8u1.debian.tar.xz</a></td><td align="right">2017-11-18 20:15 </td><td align="right"> 28K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3_5.3.28-9+deb8u1.dsc">db5.3_5.3.28-9+deb8u1.dsc</a></td><td align="right">2017-11-18 20:15 </td><td align="right">3.2K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3_5.3.28-12+deb9u1.debian.tar.xz">db5.3_5.3.28-12+deb9u1.debian.tar.xz</a></td><td align="right">2017-09-24 16:26 </td><td align="right"> 28K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3_5.3.28-12+deb9u1.dsc">db5.3_5.3.28-12+deb9u1.dsc</a></td><td align="right">2017-09-24 16:26 </td><td align="right">3.2K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="db5.3_5.3.28.orig.tar.xz">db5.3_5.3.28.orig.tar.xz</a></td><td align="right">2013-10-27 14:01 </td><td align="right"> 23M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.5_amd64.deb">libdb5.3++-dev_5.3.28+dfsg1-0.5_amd64.deb</a></td><td align="right">2019-02-26 10:11 </td><td align="right">760K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.5_arm64.deb">libdb5.3++-dev_5.3.28+dfsg1-0.5_arm64.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">722K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.5_armel.deb">libdb5.3++-dev_5.3.28+dfsg1-0.5_armel.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">668K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.5_armhf.deb">libdb5.3++-dev_5.3.28+dfsg1-0.5_armhf.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">692K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.5_i386.deb">libdb5.3++-dev_5.3.28+dfsg1-0.5_i386.deb</a></td><td align="right">2019-02-26 09:46 </td><td align="right">842K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.5_mips.deb">libdb5.3++-dev_5.3.28+dfsg1-0.5_mips.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">773K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.5_mips64el.deb">libdb5.3++-dev_5.3.28+dfsg1-0.5_mips64el.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">801K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.5_mipsel.deb">libdb5.3++-dev_5.3.28+dfsg1-0.5_mipsel.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">789K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.5_ppc64el.deb">libdb5.3++-dev_5.3.28+dfsg1-0.5_ppc64el.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">816K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.5_s390x.deb">libdb5.3++-dev_5.3.28+dfsg1-0.5_s390x.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">693K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.6_amd64.deb">libdb5.3++-dev_5.3.28+dfsg1-0.6_amd64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">759K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.6_arm64.deb">libdb5.3++-dev_5.3.28+dfsg1-0.6_arm64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">722K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.6_armel.deb">libdb5.3++-dev_5.3.28+dfsg1-0.6_armel.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">668K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.6_armhf.deb">libdb5.3++-dev_5.3.28+dfsg1-0.6_armhf.deb</a></td><td align="right">2019-03-12 06:14 </td><td align="right">692K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.6_i386.deb">libdb5.3++-dev_5.3.28+dfsg1-0.6_i386.deb</a></td><td align="right">2019-03-12 05:43 </td><td align="right">842K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.6_mips64el.deb">libdb5.3++-dev_5.3.28+dfsg1-0.6_mips64el.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">801K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.6_mipsel.deb">libdb5.3++-dev_5.3.28+dfsg1-0.6_mipsel.deb</a></td><td align="right">2019-03-12 07:30 </td><td align="right">789K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.6_ppc64el.deb">libdb5.3++-dev_5.3.28+dfsg1-0.6_ppc64el.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">816K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28+dfsg1-0.6_s390x.deb">libdb5.3++-dev_5.3.28+dfsg1-0.6_s390x.deb</a></td><td align="right">2019-03-12 05:13 </td><td align="right">693K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28-9+deb8u1_amd64.deb">libdb5.3++-dev_5.3.28-9+deb8u1_amd64.deb</a></td><td align="right">2017-11-20 03:40 </td><td align="right">740K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28-9+deb8u1_armel.deb">libdb5.3++-dev_5.3.28-9+deb8u1_armel.deb</a></td><td align="right">2017-11-20 04:26 </td><td align="right">643K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28-9+deb8u1_armhf.deb">libdb5.3++-dev_5.3.28-9+deb8u1_armhf.deb</a></td><td align="right">2017-12-02 16:26 </td><td align="right">672K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28-9+deb8u1_i386.deb">libdb5.3++-dev_5.3.28-9+deb8u1_i386.deb</a></td><td align="right">2017-11-20 03:25 </td><td align="right">780K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28-12+deb9u1_amd64.deb">libdb5.3++-dev_5.3.28-12+deb9u1_amd64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">757K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28-12+deb9u1_arm64.deb">libdb5.3++-dev_5.3.28-12+deb9u1_arm64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">663K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28-12+deb9u1_armel.deb">libdb5.3++-dev_5.3.28-12+deb9u1_armel.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">676K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28-12+deb9u1_armhf.deb">libdb5.3++-dev_5.3.28-12+deb9u1_armhf.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">690K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28-12+deb9u1_i386.deb">libdb5.3++-dev_5.3.28-12+deb9u1_i386.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">836K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28-12+deb9u1_mips.deb">libdb5.3++-dev_5.3.28-12+deb9u1_mips.deb</a></td><td align="right">2017-09-29 16:10 </td><td align="right">768K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28-12+deb9u1_mips64el.deb">libdb5.3++-dev_5.3.28-12+deb9u1_mips64el.deb</a></td><td align="right">2017-09-28 11:29 </td><td align="right">795K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28-12+deb9u1_mipsel.deb">libdb5.3++-dev_5.3.28-12+deb9u1_mipsel.deb</a></td><td align="right">2017-09-28 11:14 </td><td align="right">786K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28-12+deb9u1_ppc64el.deb">libdb5.3++-dev_5.3.28-12+deb9u1_ppc64el.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">701K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++-dev_5.3.28-12+deb9u1_s390x.deb">libdb5.3++-dev_5.3.28-12+deb9u1_s390x.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">714K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.5_amd64.deb">libdb5.3++_5.3.28+dfsg1-0.5_amd64.deb</a></td><td align="right">2019-02-26 10:11 </td><td align="right">690K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.5_arm64.deb">libdb5.3++_5.3.28+dfsg1-0.5_arm64.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">628K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.5_armel.deb">libdb5.3++_5.3.28+dfsg1-0.5_armel.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">576K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.5_armhf.deb">libdb5.3++_5.3.28+dfsg1-0.5_armhf.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">600K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.5_i386.deb">libdb5.3++_5.3.28+dfsg1-0.5_i386.deb</a></td><td align="right">2019-02-26 09:46 </td><td align="right">755K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.5_mips.deb">libdb5.3++_5.3.28+dfsg1-0.5_mips.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">595K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.5_mips64el.deb">libdb5.3++_5.3.28+dfsg1-0.5_mips64el.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">604K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.5_mipsel.deb">libdb5.3++_5.3.28+dfsg1-0.5_mipsel.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">604K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.5_ppc64el.deb">libdb5.3++_5.3.28+dfsg1-0.5_ppc64el.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">723K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.5_s390x.deb">libdb5.3++_5.3.28+dfsg1-0.5_s390x.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">619K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.6_amd64.deb">libdb5.3++_5.3.28+dfsg1-0.6_amd64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">690K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.6_arm64.deb">libdb5.3++_5.3.28+dfsg1-0.6_arm64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">629K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.6_armel.deb">libdb5.3++_5.3.28+dfsg1-0.6_armel.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">574K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.6_armhf.deb">libdb5.3++_5.3.28+dfsg1-0.6_armhf.deb</a></td><td align="right">2019-03-12 06:14 </td><td align="right">600K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.6_i386.deb">libdb5.3++_5.3.28+dfsg1-0.6_i386.deb</a></td><td align="right">2019-03-12 05:43 </td><td align="right">755K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.6_mips64el.deb">libdb5.3++_5.3.28+dfsg1-0.6_mips64el.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">604K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.6_mipsel.deb">libdb5.3++_5.3.28+dfsg1-0.6_mipsel.deb</a></td><td align="right">2019-03-12 07:30 </td><td align="right">604K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.6_ppc64el.deb">libdb5.3++_5.3.28+dfsg1-0.6_ppc64el.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">724K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28+dfsg1-0.6_s390x.deb">libdb5.3++_5.3.28+dfsg1-0.6_s390x.deb</a></td><td align="right">2019-03-12 05:13 </td><td align="right">620K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28-9+deb8u1_amd64.deb">libdb5.3++_5.3.28-9+deb8u1_amd64.deb</a></td><td align="right">2017-11-20 03:40 </td><td align="right">691K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28-9+deb8u1_armel.deb">libdb5.3++_5.3.28-9+deb8u1_armel.deb</a></td><td align="right">2017-11-20 04:26 </td><td align="right">580K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28-9+deb8u1_armhf.deb">libdb5.3++_5.3.28-9+deb8u1_armhf.deb</a></td><td align="right">2017-12-02 16:26 </td><td align="right">606K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28-9+deb8u1_i386.deb">libdb5.3++_5.3.28-9+deb8u1_i386.deb</a></td><td align="right">2017-11-20 03:25 </td><td align="right">749K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28-12+deb9u1_amd64.deb">libdb5.3++_5.3.28-12+deb9u1_amd64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">687K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28-12+deb9u1_arm64.deb">libdb5.3++_5.3.28-12+deb9u1_arm64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">574K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28-12+deb9u1_armel.deb">libdb5.3++_5.3.28-12+deb9u1_armel.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">575K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28-12+deb9u1_armhf.deb">libdb5.3++_5.3.28-12+deb9u1_armhf.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">600K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28-12+deb9u1_i386.deb">libdb5.3++_5.3.28-12+deb9u1_i386.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">751K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28-12+deb9u1_mips.deb">libdb5.3++_5.3.28-12+deb9u1_mips.deb</a></td><td align="right">2017-09-29 16:10 </td><td align="right">593K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28-12+deb9u1_mips64el.deb">libdb5.3++_5.3.28-12+deb9u1_mips64el.deb</a></td><td align="right">2017-09-28 11:29 </td><td align="right">601K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28-12+deb9u1_mipsel.deb">libdb5.3++_5.3.28-12+deb9u1_mipsel.deb</a></td><td align="right">2017-09-28 11:14 </td><td align="right">602K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28-12+deb9u1_ppc64el.deb">libdb5.3++_5.3.28-12+deb9u1_ppc64el.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">618K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3++_5.3.28-12+deb9u1_s390x.deb">libdb5.3++_5.3.28-12+deb9u1_s390x.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">637K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.5_amd64.deb">libdb5.3-dbg_5.3.28+dfsg1-0.5_amd64.deb</a></td><td align="right">2019-02-26 10:11 </td><td align="right"> 43M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.5_arm64.deb">libdb5.3-dbg_5.3.28+dfsg1-0.5_arm64.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right"> 42M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.5_armel.deb">libdb5.3-dbg_5.3.28+dfsg1-0.5_armel.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right"> 42M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.5_armhf.deb">libdb5.3-dbg_5.3.28+dfsg1-0.5_armhf.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right"> 42M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.5_i386.deb">libdb5.3-dbg_5.3.28+dfsg1-0.5_i386.deb</a></td><td align="right">2019-02-26 09:46 </td><td align="right"> 41M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.5_mips.deb">libdb5.3-dbg_5.3.28+dfsg1-0.5_mips.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right"> 43M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.5_mips64el.deb">libdb5.3-dbg_5.3.28+dfsg1-0.5_mips64el.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right"> 43M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.5_mipsel.deb">libdb5.3-dbg_5.3.28+dfsg1-0.5_mipsel.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right"> 42M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.5_ppc64el.deb">libdb5.3-dbg_5.3.28+dfsg1-0.5_ppc64el.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right"> 42M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.5_s390x.deb">libdb5.3-dbg_5.3.28+dfsg1-0.5_s390x.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right"> 44M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.6_amd64.deb">libdb5.3-dbg_5.3.28+dfsg1-0.6_amd64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right"> 43M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.6_arm64.deb">libdb5.3-dbg_5.3.28+dfsg1-0.6_arm64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right"> 42M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.6_armel.deb">libdb5.3-dbg_5.3.28+dfsg1-0.6_armel.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right"> 42M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.6_armhf.deb">libdb5.3-dbg_5.3.28+dfsg1-0.6_armhf.deb</a></td><td align="right">2019-03-12 06:14 </td><td align="right"> 42M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.6_i386.deb">libdb5.3-dbg_5.3.28+dfsg1-0.6_i386.deb</a></td><td align="right">2019-03-12 05:43 </td><td align="right"> 41M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.6_mips64el.deb">libdb5.3-dbg_5.3.28+dfsg1-0.6_mips64el.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right"> 43M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.6_mipsel.deb">libdb5.3-dbg_5.3.28+dfsg1-0.6_mipsel.deb</a></td><td align="right">2019-03-12 07:30 </td><td align="right"> 42M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.6_ppc64el.deb">libdb5.3-dbg_5.3.28+dfsg1-0.6_ppc64el.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right"> 42M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28+dfsg1-0.6_s390x.deb">libdb5.3-dbg_5.3.28+dfsg1-0.6_s390x.deb</a></td><td align="right">2019-03-12 05:13 </td><td align="right"> 44M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28-9+deb8u1_amd64.deb">libdb5.3-dbg_5.3.28-9+deb8u1_amd64.deb</a></td><td align="right">2017-11-20 03:40 </td><td align="right"> 34M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28-9+deb8u1_armel.deb">libdb5.3-dbg_5.3.28-9+deb8u1_armel.deb</a></td><td align="right">2017-11-20 04:26 </td><td align="right"> 35M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28-9+deb8u1_armhf.deb">libdb5.3-dbg_5.3.28-9+deb8u1_armhf.deb</a></td><td align="right">2017-12-02 16:26 </td><td align="right"> 35M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28-9+deb8u1_i386.deb">libdb5.3-dbg_5.3.28-9+deb8u1_i386.deb</a></td><td align="right">2017-11-20 03:25 </td><td align="right"> 32M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28-12+deb9u1_amd64.deb">libdb5.3-dbg_5.3.28-12+deb9u1_amd64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right"> 40M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28-12+deb9u1_arm64.deb">libdb5.3-dbg_5.3.28-12+deb9u1_arm64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right"> 40M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28-12+deb9u1_armel.deb">libdb5.3-dbg_5.3.28-12+deb9u1_armel.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right"> 39M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28-12+deb9u1_armhf.deb">libdb5.3-dbg_5.3.28-12+deb9u1_armhf.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right"> 39M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28-12+deb9u1_i386.deb">libdb5.3-dbg_5.3.28-12+deb9u1_i386.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right"> 38M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28-12+deb9u1_mips.deb">libdb5.3-dbg_5.3.28-12+deb9u1_mips.deb</a></td><td align="right">2017-09-29 16:10 </td><td align="right"> 41M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28-12+deb9u1_mips64el.deb">libdb5.3-dbg_5.3.28-12+deb9u1_mips64el.deb</a></td><td align="right">2017-09-28 11:29 </td><td align="right"> 40M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28-12+deb9u1_mipsel.deb">libdb5.3-dbg_5.3.28-12+deb9u1_mipsel.deb</a></td><td align="right">2017-09-28 11:14 </td><td align="right"> 39M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28-12+deb9u1_ppc64el.deb">libdb5.3-dbg_5.3.28-12+deb9u1_ppc64el.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right"> 40M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dbg_5.3.28-12+deb9u1_s390x.deb">libdb5.3-dbg_5.3.28-12+deb9u1_s390x.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right"> 42M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.5_amd64.deb">libdb5.3-dev_5.3.28+dfsg1-0.5_amd64.deb</a></td><td align="right">2019-02-26 10:11 </td><td align="right">743K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.5_arm64.deb">libdb5.3-dev_5.3.28+dfsg1-0.5_arm64.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">707K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.5_armel.deb">libdb5.3-dev_5.3.28+dfsg1-0.5_armel.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">654K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.5_armhf.deb">libdb5.3-dev_5.3.28+dfsg1-0.5_armhf.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">677K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.5_i386.deb">libdb5.3-dev_5.3.28+dfsg1-0.5_i386.deb</a></td><td align="right">2019-02-26 09:46 </td><td align="right">822K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.5_mips.deb">libdb5.3-dev_5.3.28+dfsg1-0.5_mips.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">753K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.5_mips64el.deb">libdb5.3-dev_5.3.28+dfsg1-0.5_mips64el.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">780K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.5_mipsel.deb">libdb5.3-dev_5.3.28+dfsg1-0.5_mipsel.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">769K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.5_ppc64el.deb">libdb5.3-dev_5.3.28+dfsg1-0.5_ppc64el.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">797K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.5_s390x.deb">libdb5.3-dev_5.3.28+dfsg1-0.5_s390x.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">679K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.6_amd64.deb">libdb5.3-dev_5.3.28+dfsg1-0.6_amd64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">743K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.6_arm64.deb">libdb5.3-dev_5.3.28+dfsg1-0.6_arm64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">707K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.6_armel.deb">libdb5.3-dev_5.3.28+dfsg1-0.6_armel.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">654K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.6_armhf.deb">libdb5.3-dev_5.3.28+dfsg1-0.6_armhf.deb</a></td><td align="right">2019-03-12 06:14 </td><td align="right">677K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.6_i386.deb">libdb5.3-dev_5.3.28+dfsg1-0.6_i386.deb</a></td><td align="right">2019-03-12 05:43 </td><td align="right">822K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.6_mips64el.deb">libdb5.3-dev_5.3.28+dfsg1-0.6_mips64el.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">780K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.6_mipsel.deb">libdb5.3-dev_5.3.28+dfsg1-0.6_mipsel.deb</a></td><td align="right">2019-03-12 07:30 </td><td align="right">769K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.6_ppc64el.deb">libdb5.3-dev_5.3.28+dfsg1-0.6_ppc64el.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">797K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28+dfsg1-0.6_s390x.deb">libdb5.3-dev_5.3.28+dfsg1-0.6_s390x.deb</a></td><td align="right">2019-03-12 05:13 </td><td align="right">679K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28-9+deb8u1_amd64.deb">libdb5.3-dev_5.3.28-9+deb8u1_amd64.deb</a></td><td align="right">2017-11-20 03:40 </td><td align="right">725K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28-9+deb8u1_armel.deb">libdb5.3-dev_5.3.28-9+deb8u1_armel.deb</a></td><td align="right">2017-11-20 04:26 </td><td align="right">630K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28-9+deb8u1_armhf.deb">libdb5.3-dev_5.3.28-9+deb8u1_armhf.deb</a></td><td align="right">2017-12-02 16:26 </td><td align="right">659K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28-9+deb8u1_i386.deb">libdb5.3-dev_5.3.28-9+deb8u1_i386.deb</a></td><td align="right">2017-11-20 03:25 </td><td align="right">766K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28-12+deb9u1_amd64.deb">libdb5.3-dev_5.3.28-12+deb9u1_amd64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">742K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28-12+deb9u1_arm64.deb">libdb5.3-dev_5.3.28-12+deb9u1_arm64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">648K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28-12+deb9u1_armel.deb">libdb5.3-dev_5.3.28-12+deb9u1_armel.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">660K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28-12+deb9u1_armhf.deb">libdb5.3-dev_5.3.28-12+deb9u1_armhf.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">676K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28-12+deb9u1_i386.deb">libdb5.3-dev_5.3.28-12+deb9u1_i386.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">817K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28-12+deb9u1_mips.deb">libdb5.3-dev_5.3.28-12+deb9u1_mips.deb</a></td><td align="right">2017-09-29 16:10 </td><td align="right">748K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28-12+deb9u1_mips64el.deb">libdb5.3-dev_5.3.28-12+deb9u1_mips64el.deb</a></td><td align="right">2017-09-28 11:29 </td><td align="right">774K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28-12+deb9u1_mipsel.deb">libdb5.3-dev_5.3.28-12+deb9u1_mipsel.deb</a></td><td align="right">2017-09-28 11:14 </td><td align="right">765K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28-12+deb9u1_ppc64el.deb">libdb5.3-dev_5.3.28-12+deb9u1_ppc64el.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">682K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-dev_5.3.28-12+deb9u1_s390x.deb">libdb5.3-dev_5.3.28-12+deb9u1_s390x.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">699K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.5_amd64.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.5_amd64.deb</a></td><td align="right">2019-02-26 10:11 </td><td align="right">757K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.5_arm64.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.5_arm64.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">720K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.5_armel.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.5_armel.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">662K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.5_armhf.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.5_armhf.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">688K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.5_i386.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.5_i386.deb</a></td><td align="right">2019-02-26 09:46 </td><td align="right">840K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.5_mips.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.5_mips.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">768K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.5_mips64el.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.5_mips64el.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">795K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.5_mipsel.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.5_mipsel.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">784K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.5_ppc64el.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.5_ppc64el.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">814K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.5_s390x.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.5_s390x.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">688K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.6_amd64.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.6_amd64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">756K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.6_arm64.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.6_arm64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">721K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.6_armel.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.6_armel.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">663K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.6_armhf.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.6_armhf.deb</a></td><td align="right">2019-03-12 06:14 </td><td align="right">688K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.6_i386.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.6_i386.deb</a></td><td align="right">2019-03-12 05:43 </td><td align="right">840K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.6_mips64el.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.6_mips64el.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">796K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.6_mipsel.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.6_mipsel.deb</a></td><td align="right">2019-03-12 07:30 </td><td align="right">785K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.6_ppc64el.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.6_ppc64el.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">814K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28+dfsg1-0.6_s390x.deb">libdb5.3-java-dev_5.3.28+dfsg1-0.6_s390x.deb</a></td><td align="right">2019-03-12 05:13 </td><td align="right">688K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28-9+deb8u1_amd64.deb">libdb5.3-java-dev_5.3.28-9+deb8u1_amd64.deb</a></td><td align="right">2017-11-20 03:40 </td><td align="right">737K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28-9+deb8u1_armel.deb">libdb5.3-java-dev_5.3.28-9+deb8u1_armel.deb</a></td><td align="right">2017-11-20 04:26 </td><td align="right">637K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28-9+deb8u1_armhf.deb">libdb5.3-java-dev_5.3.28-9+deb8u1_armhf.deb</a></td><td align="right">2017-12-02 16:26 </td><td align="right">666K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28-9+deb8u1_i386.deb">libdb5.3-java-dev_5.3.28-9+deb8u1_i386.deb</a></td><td align="right">2017-11-20 03:25 </td><td align="right">781K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28-12+deb9u1_amd64.deb">libdb5.3-java-dev_5.3.28-12+deb9u1_amd64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">756K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28-12+deb9u1_arm64.deb">libdb5.3-java-dev_5.3.28-12+deb9u1_arm64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">657K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28-12+deb9u1_armel.deb">libdb5.3-java-dev_5.3.28-12+deb9u1_armel.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">670K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28-12+deb9u1_armhf.deb">libdb5.3-java-dev_5.3.28-12+deb9u1_armhf.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">686K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28-12+deb9u1_i386.deb">libdb5.3-java-dev_5.3.28-12+deb9u1_i386.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">836K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28-12+deb9u1_mips.deb">libdb5.3-java-dev_5.3.28-12+deb9u1_mips.deb</a></td><td align="right">2017-09-29 16:10 </td><td align="right">763K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28-12+deb9u1_mips64el.deb">libdb5.3-java-dev_5.3.28-12+deb9u1_mips64el.deb</a></td><td align="right">2017-09-28 11:29 </td><td align="right">789K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28-12+deb9u1_mipsel.deb">libdb5.3-java-dev_5.3.28-12+deb9u1_mipsel.deb</a></td><td align="right">2017-09-28 11:14 </td><td align="right">780K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28-12+deb9u1_ppc64el.deb">libdb5.3-java-dev_5.3.28-12+deb9u1_ppc64el.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">691K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-dev_5.3.28-12+deb9u1_s390x.deb">libdb5.3-java-dev_5.3.28-12+deb9u1_s390x.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">711K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-gcj_5.3.28-9+deb8u1_amd64.deb">libdb5.3-java-gcj_5.3.28-9+deb8u1_amd64.deb</a></td><td align="right">2017-11-20 03:40 </td><td align="right">602K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-gcj_5.3.28-9+deb8u1_armel.deb">libdb5.3-java-gcj_5.3.28-9+deb8u1_armel.deb</a></td><td align="right">2017-11-20 04:26 </td><td align="right">455K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-gcj_5.3.28-9+deb8u1_armhf.deb">libdb5.3-java-gcj_5.3.28-9+deb8u1_armhf.deb</a></td><td align="right">2017-12-02 16:26 </td><td align="right">450K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-gcj_5.3.28-9+deb8u1_i386.deb">libdb5.3-java-gcj_5.3.28-9+deb8u1_i386.deb</a></td><td align="right">2017-11-20 03:25 </td><td align="right">503K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-gcj_5.3.28-12+deb9u1_amd64.deb">libdb5.3-java-gcj_5.3.28-12+deb9u1_amd64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">602K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-gcj_5.3.28-12+deb9u1_arm64.deb">libdb5.3-java-gcj_5.3.28-12+deb9u1_arm64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">595K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-gcj_5.3.28-12+deb9u1_armel.deb">libdb5.3-java-gcj_5.3.28-12+deb9u1_armel.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">453K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-gcj_5.3.28-12+deb9u1_armhf.deb">libdb5.3-java-gcj_5.3.28-12+deb9u1_armhf.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">447K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-gcj_5.3.28-12+deb9u1_i386.deb">libdb5.3-java-gcj_5.3.28-12+deb9u1_i386.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">518K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-gcj_5.3.28-12+deb9u1_mips.deb">libdb5.3-java-gcj_5.3.28-12+deb9u1_mips.deb</a></td><td align="right">2017-09-29 16:10 </td><td align="right">463K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-gcj_5.3.28-12+deb9u1_mips64el.deb">libdb5.3-java-gcj_5.3.28-12+deb9u1_mips64el.deb</a></td><td align="right">2017-09-28 11:29 </td><td align="right">474K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-gcj_5.3.28-12+deb9u1_mipsel.deb">libdb5.3-java-gcj_5.3.28-12+deb9u1_mipsel.deb</a></td><td align="right">2017-09-28 11:14 </td><td align="right">471K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-gcj_5.3.28-12+deb9u1_ppc64el.deb">libdb5.3-java-gcj_5.3.28-12+deb9u1_ppc64el.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">611K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-gcj_5.3.28-12+deb9u1_s390x.deb">libdb5.3-java-gcj_5.3.28-12+deb9u1_s390x.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">578K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.5_amd64.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.5_amd64.deb</a></td><td align="right">2019-02-26 10:11 </td><td align="right">696K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.5_arm64.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.5_arm64.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">635K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.5_armel.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.5_armel.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">580K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.5_armhf.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.5_armhf.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">606K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.5_i386.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.5_i386.deb</a></td><td align="right">2019-02-26 09:46 </td><td align="right">763K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.5_mips.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.5_mips.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">596K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.5_mips64el.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.5_mips64el.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">603K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.5_mipsel.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.5_mipsel.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">605K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.5_ppc64el.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.5_ppc64el.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">732K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.5_s390x.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.5_s390x.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">624K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.6_amd64.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.6_amd64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">696K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.6_arm64.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.6_arm64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">636K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.6_armel.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.6_armel.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">581K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.6_armhf.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.6_armhf.deb</a></td><td align="right">2019-03-12 06:14 </td><td align="right">606K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.6_i386.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.6_i386.deb</a></td><td align="right">2019-03-12 05:43 </td><td align="right">762K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.6_mips64el.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.6_mips64el.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">603K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.6_mipsel.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.6_mipsel.deb</a></td><td align="right">2019-03-12 07:30 </td><td align="right">605K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.6_ppc64el.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.6_ppc64el.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">733K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28+dfsg1-0.6_s390x.deb">libdb5.3-java-jni_5.3.28+dfsg1-0.6_s390x.deb</a></td><td align="right">2019-03-12 05:13 </td><td align="right">625K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28-9+deb8u1_amd64.deb">libdb5.3-java-jni_5.3.28-9+deb8u1_amd64.deb</a></td><td align="right">2017-11-20 03:40 </td><td align="right">696K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28-9+deb8u1_armel.deb">libdb5.3-java-jni_5.3.28-9+deb8u1_armel.deb</a></td><td align="right">2017-11-20 04:26 </td><td align="right">583K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28-9+deb8u1_armhf.deb">libdb5.3-java-jni_5.3.28-9+deb8u1_armhf.deb</a></td><td align="right">2017-12-02 16:26 </td><td align="right">612K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28-9+deb8u1_i386.deb">libdb5.3-java-jni_5.3.28-9+deb8u1_i386.deb</a></td><td align="right">2017-11-20 03:25 </td><td align="right">754K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28-12+deb9u1_amd64.deb">libdb5.3-java-jni_5.3.28-12+deb9u1_amd64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">695K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28-12+deb9u1_arm64.deb">libdb5.3-java-jni_5.3.28-12+deb9u1_arm64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">574K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28-12+deb9u1_armel.deb">libdb5.3-java-jni_5.3.28-12+deb9u1_armel.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">580K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28-12+deb9u1_armhf.deb">libdb5.3-java-jni_5.3.28-12+deb9u1_armhf.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">606K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28-12+deb9u1_i386.deb">libdb5.3-java-jni_5.3.28-12+deb9u1_i386.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">758K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28-12+deb9u1_mips.deb">libdb5.3-java-jni_5.3.28-12+deb9u1_mips.deb</a></td><td align="right">2017-09-29 16:10 </td><td align="right">593K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28-12+deb9u1_mips64el.deb">libdb5.3-java-jni_5.3.28-12+deb9u1_mips64el.deb</a></td><td align="right">2017-09-28 11:29 </td><td align="right">600K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28-12+deb9u1_mipsel.deb">libdb5.3-java-jni_5.3.28-12+deb9u1_mipsel.deb</a></td><td align="right">2017-09-28 11:14 </td><td align="right">603K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28-12+deb9u1_ppc64el.deb">libdb5.3-java-jni_5.3.28-12+deb9u1_ppc64el.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">618K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java-jni_5.3.28-12+deb9u1_s390x.deb">libdb5.3-java-jni_5.3.28-12+deb9u1_s390x.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">641K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java_5.3.28+dfsg1-0.5_all.deb">libdb5.3-java_5.3.28+dfsg1-0.5_all.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">575K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java_5.3.28+dfsg1-0.6_all.deb">libdb5.3-java_5.3.28+dfsg1-0.6_all.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">575K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java_5.3.28-9+deb8u1_all.deb">libdb5.3-java_5.3.28-9+deb8u1_all.deb</a></td><td align="right">2017-11-18 20:15 </td><td align="right">543K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-java_5.3.28-12+deb9u1_all.deb">libdb5.3-java_5.3.28-12+deb9u1_all.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">548K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.5_amd64.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.5_amd64.deb</a></td><td align="right">2019-02-26 10:11 </td><td align="right">1.0M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.5_arm64.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.5_arm64.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">968K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.5_armel.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.5_armel.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">901K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.5_armhf.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.5_armhf.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">929K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.5_i386.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.5_i386.deb</a></td><td align="right">2019-02-26 09:46 </td><td align="right">1.1M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.5_mips.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.5_mips.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">1.0M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.5_mips64el.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.5_mips64el.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">1.1M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.5_mipsel.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.5_mipsel.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">1.0M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.5_ppc64el.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.5_ppc64el.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">1.1M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.5_s390x.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.5_s390x.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">938K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.6_amd64.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.6_amd64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">1.0M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.6_arm64.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.6_arm64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">968K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.6_armel.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.6_armel.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">901K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.6_armhf.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.6_armhf.deb</a></td><td align="right">2019-03-12 06:14 </td><td align="right">929K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.6_i386.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.6_i386.deb</a></td><td align="right">2019-03-12 05:43 </td><td align="right">1.1M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.6_mips64el.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.6_mips64el.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">1.1M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.6_mipsel.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.6_mipsel.deb</a></td><td align="right">2019-03-12 07:30 </td><td align="right">1.0M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.6_ppc64el.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.6_ppc64el.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">1.1M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28+dfsg1-0.6_s390x.deb">libdb5.3-sql-dev_5.3.28+dfsg1-0.6_s390x.deb</a></td><td align="right">2019-03-12 05:13 </td><td align="right">938K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28-9+deb8u1_amd64.deb">libdb5.3-sql-dev_5.3.28-9+deb8u1_amd64.deb</a></td><td align="right">2017-11-20 03:40 </td><td align="right">1.0M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28-9+deb8u1_armel.deb">libdb5.3-sql-dev_5.3.28-9+deb8u1_armel.deb</a></td><td align="right">2017-11-20 04:26 </td><td align="right">869K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28-9+deb8u1_armhf.deb">libdb5.3-sql-dev_5.3.28-9+deb8u1_armhf.deb</a></td><td align="right">2017-12-02 16:26 </td><td align="right">906K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28-9+deb8u1_i386.deb">libdb5.3-sql-dev_5.3.28-9+deb8u1_i386.deb</a></td><td align="right">2017-11-20 03:25 </td><td align="right">1.0M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28-12+deb9u1_amd64.deb">libdb5.3-sql-dev_5.3.28-12+deb9u1_amd64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">1.0M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28-12+deb9u1_arm64.deb">libdb5.3-sql-dev_5.3.28-12+deb9u1_arm64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">891K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28-12+deb9u1_armel.deb">libdb5.3-sql-dev_5.3.28-12+deb9u1_armel.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">910K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28-12+deb9u1_armhf.deb">libdb5.3-sql-dev_5.3.28-12+deb9u1_armhf.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">929K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28-12+deb9u1_i386.deb">libdb5.3-sql-dev_5.3.28-12+deb9u1_i386.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">1.1M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28-12+deb9u1_mips.deb">libdb5.3-sql-dev_5.3.28-12+deb9u1_mips.deb</a></td><td align="right">2017-09-29 16:10 </td><td align="right">1.0M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28-12+deb9u1_mips64el.deb">libdb5.3-sql-dev_5.3.28-12+deb9u1_mips64el.deb</a></td><td align="right">2017-09-28 11:29 </td><td align="right">1.0M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28-12+deb9u1_mipsel.deb">libdb5.3-sql-dev_5.3.28-12+deb9u1_mipsel.deb</a></td><td align="right">2017-09-28 11:14 </td><td align="right">1.0M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28-12+deb9u1_ppc64el.deb">libdb5.3-sql-dev_5.3.28-12+deb9u1_ppc64el.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">939K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql-dev_5.3.28-12+deb9u1_s390x.deb">libdb5.3-sql-dev_5.3.28-12+deb9u1_s390x.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">965K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.5_amd64.deb">libdb5.3-sql_5.3.28+dfsg1-0.5_amd64.deb</a></td><td align="right">2019-02-26 10:11 </td><td align="right">885K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.5_arm64.deb">libdb5.3-sql_5.3.28+dfsg1-0.5_arm64.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">808K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.5_armel.deb">libdb5.3-sql_5.3.28+dfsg1-0.5_armel.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">737K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.5_armhf.deb">libdb5.3-sql_5.3.28+dfsg1-0.5_armhf.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">766K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.5_i386.deb">libdb5.3-sql_5.3.28+dfsg1-0.5_i386.deb</a></td><td align="right">2019-02-26 09:46 </td><td align="right">963K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.5_mips.deb">libdb5.3-sql_5.3.28+dfsg1-0.5_mips.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">777K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.5_mips64el.deb">libdb5.3-sql_5.3.28+dfsg1-0.5_mips64el.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">789K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.5_mipsel.deb">libdb5.3-sql_5.3.28+dfsg1-0.5_mipsel.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">788K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.5_ppc64el.deb">libdb5.3-sql_5.3.28+dfsg1-0.5_ppc64el.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">928K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.5_s390x.deb">libdb5.3-sql_5.3.28+dfsg1-0.5_s390x.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">794K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.6_amd64.deb">libdb5.3-sql_5.3.28+dfsg1-0.6_amd64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">883K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.6_arm64.deb">libdb5.3-sql_5.3.28+dfsg1-0.6_arm64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">808K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.6_armel.deb">libdb5.3-sql_5.3.28+dfsg1-0.6_armel.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">739K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.6_armhf.deb">libdb5.3-sql_5.3.28+dfsg1-0.6_armhf.deb</a></td><td align="right">2019-03-12 06:14 </td><td align="right">766K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.6_i386.deb">libdb5.3-sql_5.3.28+dfsg1-0.6_i386.deb</a></td><td align="right">2019-03-12 05:43 </td><td align="right">963K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.6_mips64el.deb">libdb5.3-sql_5.3.28+dfsg1-0.6_mips64el.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">789K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.6_mipsel.deb">libdb5.3-sql_5.3.28+dfsg1-0.6_mipsel.deb</a></td><td align="right">2019-03-12 07:30 </td><td align="right">788K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.6_ppc64el.deb">libdb5.3-sql_5.3.28+dfsg1-0.6_ppc64el.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">927K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28+dfsg1-0.6_s390x.deb">libdb5.3-sql_5.3.28+dfsg1-0.6_s390x.deb</a></td><td align="right">2019-03-12 05:13 </td><td align="right">794K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28-9+deb8u1_amd64.deb">libdb5.3-sql_5.3.28-9+deb8u1_amd64.deb</a></td><td align="right">2017-11-20 03:40 </td><td align="right">882K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28-9+deb8u1_armel.deb">libdb5.3-sql_5.3.28-9+deb8u1_armel.deb</a></td><td align="right">2017-11-20 04:26 </td><td align="right">742K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28-9+deb8u1_armhf.deb">libdb5.3-sql_5.3.28-9+deb8u1_armhf.deb</a></td><td align="right">2017-12-02 16:26 </td><td align="right">774K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28-9+deb8u1_i386.deb">libdb5.3-sql_5.3.28-9+deb8u1_i386.deb</a></td><td align="right">2017-11-20 03:25 </td><td align="right">954K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28-12+deb9u1_amd64.deb">libdb5.3-sql_5.3.28-12+deb9u1_amd64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">879K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28-12+deb9u1_arm64.deb">libdb5.3-sql_5.3.28-12+deb9u1_arm64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">733K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28-12+deb9u1_armel.deb">libdb5.3-sql_5.3.28-12+deb9u1_armel.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">737K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28-12+deb9u1_armhf.deb">libdb5.3-sql_5.3.28-12+deb9u1_armhf.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">766K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28-12+deb9u1_i386.deb">libdb5.3-sql_5.3.28-12+deb9u1_i386.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">958K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28-12+deb9u1_mips.deb">libdb5.3-sql_5.3.28-12+deb9u1_mips.deb</a></td><td align="right">2017-09-29 16:10 </td><td align="right">776K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28-12+deb9u1_mips64el.deb">libdb5.3-sql_5.3.28-12+deb9u1_mips64el.deb</a></td><td align="right">2017-09-28 11:29 </td><td align="right">786K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28-12+deb9u1_mipsel.deb">libdb5.3-sql_5.3.28-12+deb9u1_mipsel.deb</a></td><td align="right">2017-09-28 11:14 </td><td align="right">788K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28-12+deb9u1_ppc64el.deb">libdb5.3-sql_5.3.28-12+deb9u1_ppc64el.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">786K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-sql_5.3.28-12+deb9u1_s390x.deb">libdb5.3-sql_5.3.28-12+deb9u1_s390x.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">817K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.5_amd64.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.5_amd64.deb</a></td><td align="right">2019-02-26 10:11 </td><td align="right">842K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.5_arm64.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.5_arm64.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">804K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.5_armel.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.5_armel.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">751K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.5_armhf.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.5_armhf.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">774K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.5_i386.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.5_i386.deb</a></td><td align="right">2019-02-26 09:46 </td><td align="right">927K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.5_mips.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.5_mips.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">856K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.5_mips64el.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.5_mips64el.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">885K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.5_mipsel.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.5_mipsel.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">874K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.5_ppc64el.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.5_ppc64el.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">900K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.5_s390x.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.5_s390x.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">773K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.6_amd64.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.6_amd64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">842K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.6_arm64.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.6_arm64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">804K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.6_armel.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.6_armel.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">751K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.6_armhf.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.6_armhf.deb</a></td><td align="right">2019-03-12 06:14 </td><td align="right">774K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.6_i386.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.6_i386.deb</a></td><td align="right">2019-03-12 05:43 </td><td align="right">927K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.6_mips64el.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.6_mips64el.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">886K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.6_mipsel.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.6_mipsel.deb</a></td><td align="right">2019-03-12 07:30 </td><td align="right">874K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.6_ppc64el.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.6_ppc64el.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">900K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28+dfsg1-0.6_s390x.deb">libdb5.3-stl-dev_5.3.28+dfsg1-0.6_s390x.deb</a></td><td align="right">2019-03-12 05:13 </td><td align="right">774K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28-9+deb8u1_amd64.deb">libdb5.3-stl-dev_5.3.28-9+deb8u1_amd64.deb</a></td><td align="right">2017-11-20 03:40 </td><td align="right">826K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28-9+deb8u1_armel.deb">libdb5.3-stl-dev_5.3.28-9+deb8u1_armel.deb</a></td><td align="right">2017-11-20 04:26 </td><td align="right">727K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28-9+deb8u1_armhf.deb">libdb5.3-stl-dev_5.3.28-9+deb8u1_armhf.deb</a></td><td align="right">2017-12-02 16:26 </td><td align="right">757K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28-9+deb8u1_i386.deb">libdb5.3-stl-dev_5.3.28-9+deb8u1_i386.deb</a></td><td align="right">2017-11-20 03:25 </td><td align="right">868K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28-12+deb9u1_amd64.deb">libdb5.3-stl-dev_5.3.28-12+deb9u1_amd64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">838K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28-12+deb9u1_arm64.deb">libdb5.3-stl-dev_5.3.28-12+deb9u1_arm64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">745K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28-12+deb9u1_armel.deb">libdb5.3-stl-dev_5.3.28-12+deb9u1_armel.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">759K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28-12+deb9u1_armhf.deb">libdb5.3-stl-dev_5.3.28-12+deb9u1_armhf.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">773K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28-12+deb9u1_i386.deb">libdb5.3-stl-dev_5.3.28-12+deb9u1_i386.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">920K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28-12+deb9u1_mips.deb">libdb5.3-stl-dev_5.3.28-12+deb9u1_mips.deb</a></td><td align="right">2017-09-29 16:10 </td><td align="right">852K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28-12+deb9u1_mips64el.deb">libdb5.3-stl-dev_5.3.28-12+deb9u1_mips64el.deb</a></td><td align="right">2017-09-28 11:29 </td><td align="right">880K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28-12+deb9u1_mipsel.deb">libdb5.3-stl-dev_5.3.28-12+deb9u1_mipsel.deb</a></td><td align="right">2017-09-28 11:14 </td><td align="right">870K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28-12+deb9u1_ppc64el.deb">libdb5.3-stl-dev_5.3.28-12+deb9u1_ppc64el.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">783K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl-dev_5.3.28-12+deb9u1_s390x.deb">libdb5.3-stl-dev_5.3.28-12+deb9u1_s390x.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">795K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.5_amd64.deb">libdb5.3-stl_5.3.28+dfsg1-0.5_amd64.deb</a></td><td align="right">2019-02-26 10:11 </td><td align="right">711K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.5_arm64.deb">libdb5.3-stl_5.3.28+dfsg1-0.5_arm64.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">650K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.5_armel.deb">libdb5.3-stl_5.3.28+dfsg1-0.5_armel.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">592K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.5_armhf.deb">libdb5.3-stl_5.3.28+dfsg1-0.5_armhf.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">618K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.5_i386.deb">libdb5.3-stl_5.3.28+dfsg1-0.5_i386.deb</a></td><td align="right">2019-02-26 09:46 </td><td align="right">779K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.5_mips.deb">libdb5.3-stl_5.3.28+dfsg1-0.5_mips.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">614K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.5_mips64el.deb">libdb5.3-stl_5.3.28+dfsg1-0.5_mips64el.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">623K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.5_mipsel.deb">libdb5.3-stl_5.3.28+dfsg1-0.5_mipsel.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">623K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.5_ppc64el.deb">libdb5.3-stl_5.3.28+dfsg1-0.5_ppc64el.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">746K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.5_s390x.deb">libdb5.3-stl_5.3.28+dfsg1-0.5_s390x.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">639K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.6_amd64.deb">libdb5.3-stl_5.3.28+dfsg1-0.6_amd64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">712K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.6_arm64.deb">libdb5.3-stl_5.3.28+dfsg1-0.6_arm64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">649K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.6_armel.deb">libdb5.3-stl_5.3.28+dfsg1-0.6_armel.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">592K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.6_armhf.deb">libdb5.3-stl_5.3.28+dfsg1-0.6_armhf.deb</a></td><td align="right">2019-03-12 06:14 </td><td align="right">618K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.6_i386.deb">libdb5.3-stl_5.3.28+dfsg1-0.6_i386.deb</a></td><td align="right">2019-03-12 05:43 </td><td align="right">779K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.6_mips64el.deb">libdb5.3-stl_5.3.28+dfsg1-0.6_mips64el.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">623K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.6_mipsel.deb">libdb5.3-stl_5.3.28+dfsg1-0.6_mipsel.deb</a></td><td align="right">2019-03-12 07:30 </td><td align="right">624K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.6_ppc64el.deb">libdb5.3-stl_5.3.28+dfsg1-0.6_ppc64el.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">746K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28+dfsg1-0.6_s390x.deb">libdb5.3-stl_5.3.28+dfsg1-0.6_s390x.deb</a></td><td align="right">2019-03-12 05:13 </td><td align="right">639K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28-9+deb8u1_amd64.deb">libdb5.3-stl_5.3.28-9+deb8u1_amd64.deb</a></td><td align="right">2017-11-20 03:40 </td><td align="right">714K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28-9+deb8u1_armel.deb">libdb5.3-stl_5.3.28-9+deb8u1_armel.deb</a></td><td align="right">2017-11-20 04:26 </td><td align="right">599K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28-9+deb8u1_armhf.deb">libdb5.3-stl_5.3.28-9+deb8u1_armhf.deb</a></td><td align="right">2017-12-02 16:26 </td><td align="right">627K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28-9+deb8u1_i386.deb">libdb5.3-stl_5.3.28-9+deb8u1_i386.deb</a></td><td align="right">2017-11-20 03:25 </td><td align="right">774K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28-12+deb9u1_amd64.deb">libdb5.3-stl_5.3.28-12+deb9u1_amd64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">707K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28-12+deb9u1_arm64.deb">libdb5.3-stl_5.3.28-12+deb9u1_arm64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">594K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28-12+deb9u1_armel.deb">libdb5.3-stl_5.3.28-12+deb9u1_armel.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">591K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28-12+deb9u1_armhf.deb">libdb5.3-stl_5.3.28-12+deb9u1_armhf.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">617K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28-12+deb9u1_i386.deb">libdb5.3-stl_5.3.28-12+deb9u1_i386.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">774K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28-12+deb9u1_mips.deb">libdb5.3-stl_5.3.28-12+deb9u1_mips.deb</a></td><td align="right">2017-09-29 16:10 </td><td align="right">612K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28-12+deb9u1_mips64el.deb">libdb5.3-stl_5.3.28-12+deb9u1_mips64el.deb</a></td><td align="right">2017-09-28 11:29 </td><td align="right">620K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28-12+deb9u1_mipsel.deb">libdb5.3-stl_5.3.28-12+deb9u1_mipsel.deb</a></td><td align="right">2017-09-28 11:14 </td><td align="right">622K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28-12+deb9u1_ppc64el.deb">libdb5.3-stl_5.3.28-12+deb9u1_ppc64el.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">639K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-stl_5.3.28-12+deb9u1_s390x.deb">libdb5.3-stl_5.3.28-12+deb9u1_s390x.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">657K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.5_amd64.deb">libdb5.3-tcl_5.3.28+dfsg1-0.5_amd64.deb</a></td><td align="right">2019-02-26 10:11 </td><td align="right">954K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.5_arm64.deb">libdb5.3-tcl_5.3.28+dfsg1-0.5_arm64.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">894K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.5_armel.deb">libdb5.3-tcl_5.3.28+dfsg1-0.5_armel.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">805K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.5_armhf.deb">libdb5.3-tcl_5.3.28+dfsg1-0.5_armhf.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">826K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.5_i386.deb">libdb5.3-tcl_5.3.28+dfsg1-0.5_i386.deb</a></td><td align="right">2019-02-26 09:46 </td><td align="right">1.0M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.5_mips.deb">libdb5.3-tcl_5.3.28+dfsg1-0.5_mips.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">921K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.5_mips64el.deb">libdb5.3-tcl_5.3.28+dfsg1-0.5_mips64el.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">952K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.5_mipsel.deb">libdb5.3-tcl_5.3.28+dfsg1-0.5_mipsel.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">941K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.5_ppc64el.deb">libdb5.3-tcl_5.3.28+dfsg1-0.5_ppc64el.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">1.0M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.5_s390x.deb">libdb5.3-tcl_5.3.28+dfsg1-0.5_s390x.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">854K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.6_amd64.deb">libdb5.3-tcl_5.3.28+dfsg1-0.6_amd64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">954K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.6_arm64.deb">libdb5.3-tcl_5.3.28+dfsg1-0.6_arm64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">894K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.6_armel.deb">libdb5.3-tcl_5.3.28+dfsg1-0.6_armel.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">803K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.6_armhf.deb">libdb5.3-tcl_5.3.28+dfsg1-0.6_armhf.deb</a></td><td align="right">2019-03-12 06:14 </td><td align="right">825K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.6_i386.deb">libdb5.3-tcl_5.3.28+dfsg1-0.6_i386.deb</a></td><td align="right">2019-03-12 05:43 </td><td align="right">1.0M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.6_mips64el.deb">libdb5.3-tcl_5.3.28+dfsg1-0.6_mips64el.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">952K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.6_mipsel.deb">libdb5.3-tcl_5.3.28+dfsg1-0.6_mipsel.deb</a></td><td align="right">2019-03-12 07:30 </td><td align="right">942K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.6_ppc64el.deb">libdb5.3-tcl_5.3.28+dfsg1-0.6_ppc64el.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">1.0M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28+dfsg1-0.6_s390x.deb">libdb5.3-tcl_5.3.28+dfsg1-0.6_s390x.deb</a></td><td align="right">2019-03-12 05:13 </td><td align="right">853K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28-9+deb8u1_amd64.deb">libdb5.3-tcl_5.3.28-9+deb8u1_amd64.deb</a></td><td align="right">2017-11-20 03:40 </td><td align="right">1.1M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28-9+deb8u1_armel.deb">libdb5.3-tcl_5.3.28-9+deb8u1_armel.deb</a></td><td align="right">2017-11-20 04:26 </td><td align="right">971K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28-9+deb8u1_armhf.deb">libdb5.3-tcl_5.3.28-9+deb8u1_armhf.deb</a></td><td align="right">2017-12-02 16:26 </td><td align="right">1.0M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28-9+deb8u1_i386.deb">libdb5.3-tcl_5.3.28-9+deb8u1_i386.deb</a></td><td align="right">2017-11-20 03:25 </td><td align="right">1.3M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28-12+deb9u1_amd64.deb">libdb5.3-tcl_5.3.28-12+deb9u1_amd64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">949K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28-12+deb9u1_arm64.deb">libdb5.3-tcl_5.3.28-12+deb9u1_arm64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">809K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28-12+deb9u1_armel.deb">libdb5.3-tcl_5.3.28-12+deb9u1_armel.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">808K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28-12+deb9u1_armhf.deb">libdb5.3-tcl_5.3.28-12+deb9u1_armhf.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">823K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28-12+deb9u1_i386.deb">libdb5.3-tcl_5.3.28-12+deb9u1_i386.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">1.0M</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28-12+deb9u1_mips.deb">libdb5.3-tcl_5.3.28-12+deb9u1_mips.deb</a></td><td align="right">2017-09-29 16:10 </td><td align="right">915K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28-12+deb9u1_mips64el.deb">libdb5.3-tcl_5.3.28-12+deb9u1_mips64el.deb</a></td><td align="right">2017-09-28 11:29 </td><td align="right">943K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28-12+deb9u1_mipsel.deb">libdb5.3-tcl_5.3.28-12+deb9u1_mipsel.deb</a></td><td align="right">2017-09-28 11:14 </td><td align="right">936K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28-12+deb9u1_ppc64el.deb">libdb5.3-tcl_5.3.28-12+deb9u1_ppc64el.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">871K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3-tcl_5.3.28-12+deb9u1_s390x.deb">libdb5.3-tcl_5.3.28-12+deb9u1_s390x.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">885K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.5_amd64.deb">libdb5.3_5.3.28+dfsg1-0.5_amd64.deb</a></td><td align="right">2019-02-26 10:11 </td><td align="right">667K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.5_arm64.deb">libdb5.3_5.3.28+dfsg1-0.5_arm64.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">607K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.5_armel.deb">libdb5.3_5.3.28+dfsg1-0.5_armel.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">558K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.5_armhf.deb">libdb5.3_5.3.28+dfsg1-0.5_armhf.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">583K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.5_i386.deb">libdb5.3_5.3.28+dfsg1-0.5_i386.deb</a></td><td align="right">2019-02-26 09:46 </td><td align="right">730K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.5_mips.deb">libdb5.3_5.3.28+dfsg1-0.5_mips.deb</a></td><td align="right">2019-02-26 10:57 </td><td align="right">575K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.5_mips64el.deb">libdb5.3_5.3.28+dfsg1-0.5_mips64el.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">583K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.5_mipsel.deb">libdb5.3_5.3.28+dfsg1-0.5_mipsel.deb</a></td><td align="right">2019-02-26 12:42 </td><td align="right">584K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.5_ppc64el.deb">libdb5.3_5.3.28+dfsg1-0.5_ppc64el.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">701K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.5_s390x.deb">libdb5.3_5.3.28+dfsg1-0.5_s390x.deb</a></td><td align="right">2019-02-26 09:56 </td><td align="right">599K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.6_amd64.deb">libdb5.3_5.3.28+dfsg1-0.6_amd64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">667K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.6_arm64.deb">libdb5.3_5.3.28+dfsg1-0.6_arm64.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">607K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.6_armel.deb">libdb5.3_5.3.28+dfsg1-0.6_armel.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">559K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.6_armhf.deb">libdb5.3_5.3.28+dfsg1-0.6_armhf.deb</a></td><td align="right">2019-03-12 06:14 </td><td align="right">583K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.6_i386.deb">libdb5.3_5.3.28+dfsg1-0.6_i386.deb</a></td><td align="right">2019-03-12 05:43 </td><td align="right">730K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.6_mips64el.deb">libdb5.3_5.3.28+dfsg1-0.6_mips64el.deb</a></td><td align="right">2019-03-12 06:29 </td><td align="right">583K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.6_mipsel.deb">libdb5.3_5.3.28+dfsg1-0.6_mipsel.deb</a></td><td align="right">2019-03-12 07:30 </td><td align="right">584K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.6_ppc64el.deb">libdb5.3_5.3.28+dfsg1-0.6_ppc64el.deb</a></td><td align="right">2019-03-12 05:28 </td><td align="right">701K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28+dfsg1-0.6_s390x.deb">libdb5.3_5.3.28+dfsg1-0.6_s390x.deb</a></td><td align="right">2019-03-12 05:13 </td><td align="right">598K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28-9+deb8u1_amd64.deb">libdb5.3_5.3.28-9+deb8u1_amd64.deb</a></td><td align="right">2017-11-20 03:40 </td><td align="right">664K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28-9+deb8u1_armel.deb">libdb5.3_5.3.28-9+deb8u1_armel.deb</a></td><td align="right">2017-11-20 04:26 </td><td align="right">561K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28-9+deb8u1_armhf.deb">libdb5.3_5.3.28-9+deb8u1_armhf.deb</a></td><td align="right">2017-12-02 16:26 </td><td align="right">587K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28-9+deb8u1_i386.deb">libdb5.3_5.3.28-9+deb8u1_i386.deb</a></td><td align="right">2017-11-20 03:25 </td><td align="right">721K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28-12+deb9u1_amd64.deb">libdb5.3_5.3.28-12+deb9u1_amd64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">663K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28-12+deb9u1_arm64.deb">libdb5.3_5.3.28-12+deb9u1_arm64.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">550K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28-12+deb9u1_armel.deb">libdb5.3_5.3.28-12+deb9u1_armel.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">556K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28-12+deb9u1_armhf.deb">libdb5.3_5.3.28-12+deb9u1_armhf.deb</a></td><td align="right">2017-09-28 10:28 </td><td align="right">581K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28-12+deb9u1_i386.deb">libdb5.3_5.3.28-12+deb9u1_i386.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">725K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28-12+deb9u1_mips.deb">libdb5.3_5.3.28-12+deb9u1_mips.deb</a></td><td align="right">2017-09-29 16:10 </td><td align="right">572K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28-12+deb9u1_mips64el.deb">libdb5.3_5.3.28-12+deb9u1_mips64el.deb</a></td><td align="right">2017-09-28 11:29 </td><td align="right">579K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28-12+deb9u1_mipsel.deb">libdb5.3_5.3.28-12+deb9u1_mipsel.deb</a></td><td align="right">2017-09-28 11:14 </td><td align="right">581K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28-12+deb9u1_ppc64el.deb">libdb5.3_5.3.28-12+deb9u1_ppc64el.deb</a></td><td align="right">2017-09-28 09:27 </td><td align="right">594K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="libdb5.3_5.3.28-12+deb9u1_s390x.deb">libdb5.3_5.3.28-12+deb9u1_s390x.deb</a></td><td align="right">2017-09-28 09:42 </td><td align="right">615K</td></tr>
+ <tr><th colspan="4"><hr></th></tr>
+</table>
+<address>Apache Server at ftp.debian.org Port 80</address>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/downloads/enchant/1.6.0/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/downloads/enchant/1.6.0/index.html
new file mode 100644
index 000000000..b7bfb1e94
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/downloads/enchant/1.6.0/index.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /downloads/enchant/1.6.0</title>
+ </head>
+ <body>
+<h1>Index of /downloads/enchant/1.6.0</h1>
+<table><tr><th><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr><tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[DIR]"></td><td><a href="/downloads/enchant/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="MD5SUM">MD5SUM</a></td><td align="right">01-Apr-2010 23:03 </td><td align="right"> 55 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="enchant-1.6.0.tar.gz">enchant-1.6.0.tar.gz</a></td><td align="right">01-Apr-2010 23:02 </td><td align="right">593K</td><td>&nbsp;</td></tr>
+<tr><th colspan="5"><hr></th></tr>
+</table>
+<address>Apache/2.2.15 (Fedora) Server at www.abisource.com Port 443</address>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/files/v2.8/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v2.8/index.html
new file mode 100644
index 000000000..9ea077d5b
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v2.8/index.html
@@ -0,0 +1,774 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /files/v2.8</title>
+ </head>
+ <body>
+<h1>Index of /files/v2.8</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/files/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="-*">-*</a></td><td align="right">2012-06-07 12:08 </td><td align="right"> 0 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="CMakeChangeLog-2.8.0">CMakeChangeLog-2.8.0</a></td><td align="right">2009-11-13 15:41 </td><td align="right"> 13K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="CMakeChangeLog-2.8.1">CMakeChangeLog-2.8.1</a></td><td align="right">2010-03-17 14:37 </td><td align="right"> 17K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="CMakeChangeLog-2.8.2">CMakeChangeLog-2.8.2</a></td><td align="right">2010-06-28 14:37 </td><td align="right"> 23K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="CMakeChangeLog-2.8.3">CMakeChangeLog-2.8.3</a></td><td align="right">2010-11-03 17:21 </td><td align="right"> 41K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="CMakeChangeLog-2.8.4">CMakeChangeLog-2.8.4</a></td><td align="right">2011-02-16 09:15 </td><td align="right"> 61K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="CMakeChangeLog-2.8.5">CMakeChangeLog-2.8.5</a></td><td align="right">2011-07-08 10:49 </td><td align="right"> 81K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="CMakeChangeLog-2.8.6">CMakeChangeLog-2.8.6</a></td><td align="right">2011-12-30 15:30 </td><td align="right">100K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="CMakeChangeLog-2.8.7">CMakeChangeLog-2.8.7</a></td><td align="right">2011-12-30 15:31 </td><td align="right">115K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="CMakeChangeLog-2.8.8">CMakeChangeLog-2.8.8</a></td><td align="right">2012-04-18 17:47 </td><td align="right">144K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="CMakeChangeLog-2.8.9">CMakeChangeLog-2.8.9</a></td><td align="right">2012-08-09 16:29 </td><td align="right">163K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="CMakeChangeLog-2.8.10">CMakeChangeLog-2.8.10</a></td><td align="right">2012-10-31 15:09 </td><td align="right">185K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="CMakeChangeLog-2.8.10.1">CMakeChangeLog-2.8.10.1</a></td><td align="right">2012-11-07 11:52 </td><td align="right">186K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="CMakeChangeLog-2.8.10.2">CMakeChangeLog-2.8.10.2</a></td><td align="right">2012-11-27 15:15 </td><td align="right">186K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="CMakeChangeLog-2.8.11">CMakeChangeLog-2.8.11</a></td><td align="right">2013-05-16 09:39 </td><td align="right">218K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="CMakeChangeLog-2.8.12">CMakeChangeLog-2.8.12</a></td><td align="right">2013-10-11 08:57 </td><td align="right">247K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="CMakeChangeLog-2.8.12.1">CMakeChangeLog-2.8.12.1</a></td><td align="right">2013-11-08 14:33 </td><td align="right">248K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="CMakeVS10FindMake.cmake">CMakeVS10FindMake.cmake</a></td><td align="right">2010-05-27 09:45 </td><td align="right">1.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.0-AIX-powerpc.sh">cmake-2.8.0-AIX-powerpc.sh</a></td><td align="right">2010-02-08 10:44 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.0-AIX-powerpc.tar.Z">cmake-2.8.0-AIX-powerpc.tar.Z</a></td><td align="right">2010-02-08 10:44 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.0-AIX-powerpc.tar.gz">cmake-2.8.0-AIX-powerpc.tar.gz</a></td><td align="right">2010-02-08 10:44 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.0-Darwin-universal.dmg">cmake-2.8.0-Darwin-universal.dmg</a></td><td align="right">2009-11-13 15:32 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.0-Darwin-universal.tar.Z">cmake-2.8.0-Darwin-universal.tar.Z</a></td><td align="right">2009-11-13 15:32 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.0-Darwin-universal.tar.gz">cmake-2.8.0-Darwin-universal.tar.gz</a></td><td align="right">2009-11-13 15:33 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.0-HP-UX-9000_785.sh">cmake-2.8.0-HP-UX-9000_785.sh</a></td><td align="right">2009-11-13 15:32 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.0-HP-UX-9000_785.tar.Z">cmake-2.8.0-HP-UX-9000_785.tar.Z</a></td><td align="right">2009-11-13 15:32 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.0-HP-UX-9000_785.tar.gz">cmake-2.8.0-HP-UX-9000_785.tar.gz</a></td><td align="right">2009-11-13 15:32 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.0-IRIX64-64.sh">cmake-2.8.0-IRIX64-64.sh</a></td><td align="right">2009-11-13 15:32 </td><td align="right">9.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.0-IRIX64-64.tar.Z">cmake-2.8.0-IRIX64-64.tar.Z</a></td><td align="right">2009-11-13 15:32 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.0-IRIX64-64.tar.gz">cmake-2.8.0-IRIX64-64.tar.gz</a></td><td align="right">2009-11-13 15:32 </td><td align="right">9.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.0-IRIX64-n32.sh">cmake-2.8.0-IRIX64-n32.sh</a></td><td align="right">2009-11-13 15:32 </td><td align="right">8.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.0-IRIX64-n32.tar.Z">cmake-2.8.0-IRIX64-n32.tar.Z</a></td><td align="right">2009-11-13 15:32 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.0-IRIX64-n32.tar.gz">cmake-2.8.0-IRIX64-n32.tar.gz</a></td><td align="right">2009-11-13 15:32 </td><td align="right">8.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.0-Linux-i386.sh">cmake-2.8.0-Linux-i386.sh</a></td><td align="right">2009-11-13 15:32 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.0-Linux-i386.tar.Z">cmake-2.8.0-Linux-i386.tar.Z</a></td><td align="right">2009-11-13 15:32 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.0-Linux-i386.tar.gz">cmake-2.8.0-Linux-i386.tar.gz</a></td><td align="right">2009-11-13 15:32 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.0-SunOS-sparc.sh">cmake-2.8.0-SunOS-sparc.sh</a></td><td align="right">2009-11-13 15:32 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.0-SunOS-sparc.tar.Z">cmake-2.8.0-SunOS-sparc.tar.Z</a></td><td align="right">2009-11-13 15:32 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.0-SunOS-sparc.tar.gz">cmake-2.8.0-SunOS-sparc.tar.gz</a></td><td align="right">2009-11-13 15:32 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.0-win32-x86.exe">cmake-2.8.0-win32-x86.exe</a></td><td align="right">2009-11-13 15:32 </td><td align="right">7.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.0-win32-x86.zip">cmake-2.8.0-win32-x86.zip</a></td><td align="right">2009-11-13 15:32 </td><td align="right">9.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.0.tar.Z">cmake-2.8.0.tar.Z</a></td><td align="right">2009-11-13 15:32 </td><td align="right">5.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.0.tar.gz">cmake-2.8.0.tar.gz</a></td><td align="right">2009-11-13 15:32 </td><td align="right">3.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.0.zip">cmake-2.8.0.zip</a></td><td align="right">2009-11-13 15:32 </td><td align="right">4.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.1-AIX-powerpc.sh">cmake-2.8.1-AIX-powerpc.sh</a></td><td align="right">2010-04-06 14:37 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.1-AIX-powerpc.tar.Z">cmake-2.8.1-AIX-powerpc.tar.Z</a></td><td align="right">2010-04-06 14:37 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.1-AIX-powerpc.tar.gz">cmake-2.8.1-AIX-powerpc.tar.gz</a></td><td align="right">2010-04-06 14:37 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.1-Darwin-universal.dmg">cmake-2.8.1-Darwin-universal.dmg</a></td><td align="right">2010-04-06 14:37 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.1-Darwin-universal.tar.Z">cmake-2.8.1-Darwin-universal.tar.Z</a></td><td align="right">2010-04-06 14:37 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.1-Darwin-universal.tar.gz">cmake-2.8.1-Darwin-universal.tar.gz</a></td><td align="right">2010-04-06 14:37 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.1-HP-UX-9000_785.sh">cmake-2.8.1-HP-UX-9000_785.sh</a></td><td align="right">2010-04-06 14:37 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.1-HP-UX-9000_785.tar.Z">cmake-2.8.1-HP-UX-9000_785.tar.Z</a></td><td align="right">2010-04-06 14:37 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.1-HP-UX-9000_785.tar.gz">cmake-2.8.1-HP-UX-9000_785.tar.gz</a></td><td align="right">2010-04-06 14:37 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.1-IRIX64-64.sh">cmake-2.8.1-IRIX64-64.sh</a></td><td align="right">2010-04-06 14:37 </td><td align="right">9.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.1-IRIX64-64.tar.Z">cmake-2.8.1-IRIX64-64.tar.Z</a></td><td align="right">2010-04-06 14:37 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.1-IRIX64-64.tar.gz">cmake-2.8.1-IRIX64-64.tar.gz</a></td><td align="right">2010-04-06 14:37 </td><td align="right">9.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.1-IRIX64-n32.sh">cmake-2.8.1-IRIX64-n32.sh</a></td><td align="right">2010-04-06 14:37 </td><td align="right">8.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.1-IRIX64-n32.tar.Z">cmake-2.8.1-IRIX64-n32.tar.Z</a></td><td align="right">2010-04-06 14:37 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.1-IRIX64-n32.tar.gz">cmake-2.8.1-IRIX64-n32.tar.gz</a></td><td align="right">2010-04-06 14:37 </td><td align="right">8.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.1-Linux-i386.sh">cmake-2.8.1-Linux-i386.sh</a></td><td align="right">2010-04-06 14:37 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.1-Linux-i386.tar.Z">cmake-2.8.1-Linux-i386.tar.Z</a></td><td align="right">2010-04-06 14:37 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.1-Linux-i386.tar.gz">cmake-2.8.1-Linux-i386.tar.gz</a></td><td align="right">2010-04-06 14:37 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.1-SunOS-sparc.sh">cmake-2.8.1-SunOS-sparc.sh</a></td><td align="right">2010-04-06 14:37 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.1-SunOS-sparc.tar.Z">cmake-2.8.1-SunOS-sparc.tar.Z</a></td><td align="right">2010-04-06 14:37 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.1-SunOS-sparc.tar.gz">cmake-2.8.1-SunOS-sparc.tar.gz</a></td><td align="right">2010-04-06 14:37 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.1-win32-x86.exe">cmake-2.8.1-win32-x86.exe</a></td><td align="right">2010-04-06 14:37 </td><td align="right">7.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.1-win32-x86.zip">cmake-2.8.1-win32-x86.zip</a></td><td align="right">2010-04-06 14:37 </td><td align="right">9.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.1.tar.Z">cmake-2.8.1.tar.Z</a></td><td align="right">2010-04-06 14:37 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.1.tar.gz">cmake-2.8.1.tar.gz</a></td><td align="right">2010-04-06 14:37 </td><td align="right">3.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.1.zip">cmake-2.8.1.zip</a></td><td align="right">2010-04-06 14:37 </td><td align="right">4.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.2-AIX-powerpc.sh">cmake-2.8.2-AIX-powerpc.sh</a></td><td align="right">2010-06-28 14:10 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.2-AIX-powerpc.tar.Z">cmake-2.8.2-AIX-powerpc.tar.Z</a></td><td align="right">2010-06-28 14:09 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.2-AIX-powerpc.tar.gz">cmake-2.8.2-AIX-powerpc.tar.gz</a></td><td align="right">2010-06-28 14:09 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.2-Darwin-universal.dmg">cmake-2.8.2-Darwin-universal.dmg</a></td><td align="right">2010-06-28 14:10 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.2-Darwin-universal.tar.Z">cmake-2.8.2-Darwin-universal.tar.Z</a></td><td align="right">2010-06-28 14:10 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.2-Darwin-universal.tar.gz">cmake-2.8.2-Darwin-universal.tar.gz</a></td><td align="right">2010-06-28 14:09 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.2-HP-UX-9000_785.sh">cmake-2.8.2-HP-UX-9000_785.sh</a></td><td align="right">2010-06-28 14:09 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.2-HP-UX-9000_785.tar.Z">cmake-2.8.2-HP-UX-9000_785.tar.Z</a></td><td align="right">2010-06-28 14:10 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.2-HP-UX-9000_785.tar.gz">cmake-2.8.2-HP-UX-9000_785.tar.gz</a></td><td align="right">2010-06-28 14:10 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.2-IRIX64-64.sh">cmake-2.8.2-IRIX64-64.sh</a></td><td align="right">2010-06-28 14:10 </td><td align="right">9.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.2-IRIX64-64.tar.Z">cmake-2.8.2-IRIX64-64.tar.Z</a></td><td align="right">2010-06-28 14:09 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.2-IRIX64-64.tar.gz">cmake-2.8.2-IRIX64-64.tar.gz</a></td><td align="right">2010-06-28 14:10 </td><td align="right">9.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.2-IRIX64-n32.sh">cmake-2.8.2-IRIX64-n32.sh</a></td><td align="right">2010-06-28 14:10 </td><td align="right">9.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.2-IRIX64-n32.tar.Z">cmake-2.8.2-IRIX64-n32.tar.Z</a></td><td align="right">2010-06-28 14:09 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.2-IRIX64-n32.tar.gz">cmake-2.8.2-IRIX64-n32.tar.gz</a></td><td align="right">2010-06-28 14:10 </td><td align="right">9.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.2-Linux-i386.sh">cmake-2.8.2-Linux-i386.sh</a></td><td align="right">2010-06-28 14:10 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.2-Linux-i386.tar.Z">cmake-2.8.2-Linux-i386.tar.Z</a></td><td align="right">2010-06-28 14:09 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.2-Linux-i386.tar.gz">cmake-2.8.2-Linux-i386.tar.gz</a></td><td align="right">2010-06-28 14:10 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.2-SunOS-sparc.sh">cmake-2.8.2-SunOS-sparc.sh</a></td><td align="right">2010-06-28 14:09 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.2-SunOS-sparc.tar.Z">cmake-2.8.2-SunOS-sparc.tar.Z</a></td><td align="right">2010-06-28 14:10 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.2-SunOS-sparc.tar.gz">cmake-2.8.2-SunOS-sparc.tar.gz</a></td><td align="right">2010-06-28 14:10 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.2-win32-x86.exe">cmake-2.8.2-win32-x86.exe</a></td><td align="right">2010-06-28 14:09 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.2-win32-x86.zip">cmake-2.8.2-win32-x86.zip</a></td><td align="right">2010-06-28 14:09 </td><td align="right">9.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.2.tar.Z">cmake-2.8.2.tar.Z</a></td><td align="right">2010-06-28 14:10 </td><td align="right">8.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.2.tar.gz">cmake-2.8.2.tar.gz</a></td><td align="right">2010-06-28 14:09 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.2.zip">cmake-2.8.2.zip</a></td><td align="right">2010-06-28 14:10 </td><td align="right">6.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.3-AIX-powerpc.sh">cmake-2.8.3-AIX-powerpc.sh</a></td><td align="right">2010-11-03 17:11 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.3-AIX-powerpc.tar.Z">cmake-2.8.3-AIX-powerpc.tar.Z</a></td><td align="right">2010-11-03 17:11 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.3-AIX-powerpc.tar.gz">cmake-2.8.3-AIX-powerpc.tar.gz</a></td><td align="right">2010-11-03 17:10 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.3-Darwin-universal.dmg">cmake-2.8.3-Darwin-universal.dmg</a></td><td align="right">2010-11-03 17:11 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.3-Darwin-universal.tar.Z">cmake-2.8.3-Darwin-universal.tar.Z</a></td><td align="right">2010-11-03 17:11 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.3-Darwin-universal.tar.gz">cmake-2.8.3-Darwin-universal.tar.gz</a></td><td align="right">2010-11-03 17:11 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.3-IRIX64-64.sh">cmake-2.8.3-IRIX64-64.sh</a></td><td align="right">2010-11-03 17:11 </td><td align="right">9.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.3-IRIX64-64.tar.Z">cmake-2.8.3-IRIX64-64.tar.Z</a></td><td align="right">2010-11-03 17:11 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.3-IRIX64-64.tar.gz">cmake-2.8.3-IRIX64-64.tar.gz</a></td><td align="right">2010-11-03 17:11 </td><td align="right">9.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.3-IRIX64-n32.sh">cmake-2.8.3-IRIX64-n32.sh</a></td><td align="right">2010-11-03 17:10 </td><td align="right">9.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.3-IRIX64-n32.tar.Z">cmake-2.8.3-IRIX64-n32.tar.Z</a></td><td align="right">2010-11-03 17:11 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.3-IRIX64-n32.tar.gz">cmake-2.8.3-IRIX64-n32.tar.gz</a></td><td align="right">2010-11-03 17:10 </td><td align="right">9.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.3-Linux-i386.sh">cmake-2.8.3-Linux-i386.sh</a></td><td align="right">2010-11-03 17:11 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.3-Linux-i386.tar.Z">cmake-2.8.3-Linux-i386.tar.Z</a></td><td align="right">2010-11-03 17:11 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.3-Linux-i386.tar.gz">cmake-2.8.3-Linux-i386.tar.gz</a></td><td align="right">2010-11-03 17:10 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.3-SunOS-sparc.sh">cmake-2.8.3-SunOS-sparc.sh</a></td><td align="right">2010-11-03 17:10 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.3-SunOS-sparc.tar.Z">cmake-2.8.3-SunOS-sparc.tar.Z</a></td><td align="right">2010-11-03 17:11 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.3-SunOS-sparc.tar.gz">cmake-2.8.3-SunOS-sparc.tar.gz</a></td><td align="right">2010-11-03 17:11 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.3-win32-x86.exe">cmake-2.8.3-win32-x86.exe</a></td><td align="right">2010-11-03 17:11 </td><td align="right">7.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.3-win32-x86.zip">cmake-2.8.3-win32-x86.zip</a></td><td align="right">2010-11-03 17:11 </td><td align="right">9.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.3.tar.Z">cmake-2.8.3.tar.Z</a></td><td align="right">2010-11-03 17:11 </td><td align="right">8.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.3.tar.gz">cmake-2.8.3.tar.gz</a></td><td align="right">2010-11-03 17:11 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.3.zip">cmake-2.8.3.zip</a></td><td align="right">2010-11-03 17:11 </td><td align="right">6.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.4-AIX-powerpc.sh">cmake-2.8.4-AIX-powerpc.sh</a></td><td align="right">2011-02-15 15:54 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.4-AIX-powerpc.tar.Z">cmake-2.8.4-AIX-powerpc.tar.Z</a></td><td align="right">2011-02-15 15:54 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.4-AIX-powerpc.tar.gz">cmake-2.8.4-AIX-powerpc.tar.gz</a></td><td align="right">2011-02-15 15:53 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.4-Darwin-universal.dmg">cmake-2.8.4-Darwin-universal.dmg</a></td><td align="right">2011-02-15 15:53 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.4-Darwin-universal.tar.Z">cmake-2.8.4-Darwin-universal.tar.Z</a></td><td align="right">2011-02-15 15:54 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.4-Darwin-universal.tar.gz">cmake-2.8.4-Darwin-universal.tar.gz</a></td><td align="right">2011-02-15 15:54 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.4-IRIX64-64.sh">cmake-2.8.4-IRIX64-64.sh</a></td><td align="right">2011-02-15 15:53 </td><td align="right">9.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.4-IRIX64-64.tar.Z">cmake-2.8.4-IRIX64-64.tar.Z</a></td><td align="right">2011-02-15 15:54 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.4-IRIX64-64.tar.gz">cmake-2.8.4-IRIX64-64.tar.gz</a></td><td align="right">2011-02-15 15:54 </td><td align="right">9.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.4-IRIX64-n32.sh">cmake-2.8.4-IRIX64-n32.sh</a></td><td align="right">2011-02-15 15:53 </td><td align="right">9.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.4-IRIX64-n32.tar.Z">cmake-2.8.4-IRIX64-n32.tar.Z</a></td><td align="right">2011-02-15 15:55 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.4-IRIX64-n32.tar.gz">cmake-2.8.4-IRIX64-n32.tar.gz</a></td><td align="right">2011-02-15 15:54 </td><td align="right">9.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.4-Linux-i386.sh">cmake-2.8.4-Linux-i386.sh</a></td><td align="right">2011-02-15 15:54 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.4-Linux-i386.tar.Z">cmake-2.8.4-Linux-i386.tar.Z</a></td><td align="right">2011-02-15 15:54 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.4-Linux-i386.tar.gz">cmake-2.8.4-Linux-i386.tar.gz</a></td><td align="right">2011-02-15 15:54 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.4-SunOS-sparc.sh">cmake-2.8.4-SunOS-sparc.sh</a></td><td align="right">2011-02-15 15:54 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.4-SunOS-sparc.tar.Z">cmake-2.8.4-SunOS-sparc.tar.Z</a></td><td align="right">2011-02-15 15:54 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.4-SunOS-sparc.tar.gz">cmake-2.8.4-SunOS-sparc.tar.gz</a></td><td align="right">2011-02-15 15:54 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.4-win32-x86.exe">cmake-2.8.4-win32-x86.exe</a></td><td align="right">2011-02-15 15:54 </td><td align="right">7.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.4-win32-x86.zip">cmake-2.8.4-win32-x86.zip</a></td><td align="right">2011-02-15 15:54 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.4.tar.Z">cmake-2.8.4.tar.Z</a></td><td align="right">2011-02-15 15:54 </td><td align="right">8.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.4.tar.gz">cmake-2.8.4.tar.gz</a></td><td align="right">2011-02-15 15:54 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.4.zip">cmake-2.8.4.zip</a></td><td align="right">2011-02-15 15:54 </td><td align="right">7.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.5-1-src.tar.bz2">cmake-2.8.5-1-src.tar.bz2</a></td><td align="right">2011-07-08 10:34 </td><td align="right">4.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.5-1.tar.bz2">cmake-2.8.5-1.tar.bz2</a></td><td align="right">2011-07-08 10:34 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.5-AIX-powerpc.sh">cmake-2.8.5-AIX-powerpc.sh</a></td><td align="right">2011-07-08 10:34 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.5-AIX-powerpc.tar.Z">cmake-2.8.5-AIX-powerpc.tar.Z</a></td><td align="right">2011-07-08 10:34 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.5-AIX-powerpc.tar.gz">cmake-2.8.5-AIX-powerpc.tar.gz</a></td><td align="right">2011-07-08 10:34 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.5-Darwin-universal.dmg">cmake-2.8.5-Darwin-universal.dmg</a></td><td align="right">2011-07-08 10:34 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.5-Darwin-universal.tar.Z">cmake-2.8.5-Darwin-universal.tar.Z</a></td><td align="right">2011-07-08 10:34 </td><td align="right"> 40M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.5-Darwin-universal.tar.gz">cmake-2.8.5-Darwin-universal.tar.gz</a></td><td align="right">2011-07-08 10:34 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.5-IRIX64-64.sh">cmake-2.8.5-IRIX64-64.sh</a></td><td align="right">2011-07-08 10:34 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.5-IRIX64-64.tar.Z">cmake-2.8.5-IRIX64-64.tar.Z</a></td><td align="right">2011-07-08 10:34 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.5-IRIX64-64.tar.gz">cmake-2.8.5-IRIX64-64.tar.gz</a></td><td align="right">2011-07-08 10:34 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.5-IRIX64-n32.sh">cmake-2.8.5-IRIX64-n32.sh</a></td><td align="right">2011-07-08 10:34 </td><td align="right">9.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.5-IRIX64-n32.tar.Z">cmake-2.8.5-IRIX64-n32.tar.Z</a></td><td align="right">2011-07-08 10:34 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.5-IRIX64-n32.tar.gz">cmake-2.8.5-IRIX64-n32.tar.gz</a></td><td align="right">2011-07-08 10:34 </td><td align="right">9.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.5-Linux-i386.sh">cmake-2.8.5-Linux-i386.sh</a></td><td align="right">2011-07-08 10:34 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.5-Linux-i386.tar.Z">cmake-2.8.5-Linux-i386.tar.Z</a></td><td align="right">2011-07-08 10:34 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.5-Linux-i386.tar.gz">cmake-2.8.5-Linux-i386.tar.gz</a></td><td align="right">2011-07-08 10:34 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.5-SunOS-sparc.sh">cmake-2.8.5-SunOS-sparc.sh</a></td><td align="right">2011-07-08 10:34 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.5-SunOS-sparc.tar.Z">cmake-2.8.5-SunOS-sparc.tar.Z</a></td><td align="right">2011-07-08 10:34 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.5-SunOS-sparc.tar.gz">cmake-2.8.5-SunOS-sparc.tar.gz</a></td><td align="right">2011-07-08 10:34 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.5-win32-x86.exe">cmake-2.8.5-win32-x86.exe</a></td><td align="right">2011-07-08 10:34 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.5-win32-x86.zip">cmake-2.8.5-win32-x86.zip</a></td><td align="right">2011-07-08 10:34 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.5.tar.Z">cmake-2.8.5.tar.Z</a></td><td align="right">2011-07-08 10:34 </td><td align="right">8.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.5.tar.gz">cmake-2.8.5.tar.gz</a></td><td align="right">2011-07-08 10:34 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.5.zip">cmake-2.8.5.zip</a></td><td align="right">2011-07-08 10:34 </td><td align="right">7.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.6-1-src.tar.bz2">cmake-2.8.6-1-src.tar.bz2</a></td><td align="right">2011-10-04 13:59 </td><td align="right">4.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.6-1.tar.bz2">cmake-2.8.6-1.tar.bz2</a></td><td align="right">2011-10-04 13:59 </td><td align="right">6.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.6-AIX-powerpc.sh">cmake-2.8.6-AIX-powerpc.sh</a></td><td align="right">2011-10-04 13:59 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.6-AIX-powerpc.tar.Z">cmake-2.8.6-AIX-powerpc.tar.Z</a></td><td align="right">2011-10-04 13:59 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.6-AIX-powerpc.tar.gz">cmake-2.8.6-AIX-powerpc.tar.gz</a></td><td align="right">2011-10-04 13:59 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.6-Darwin-universal.dmg">cmake-2.8.6-Darwin-universal.dmg</a></td><td align="right">2011-10-04 13:59 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.6-Darwin-universal.tar.Z">cmake-2.8.6-Darwin-universal.tar.Z</a></td><td align="right">2011-10-04 13:59 </td><td align="right"> 40M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.6-Darwin-universal.tar.gz">cmake-2.8.6-Darwin-universal.tar.gz</a></td><td align="right">2011-10-04 13:59 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.6-Darwin64-universal.dmg">cmake-2.8.6-Darwin64-universal.dmg</a></td><td align="right">2011-10-04 13:59 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.6-Darwin64-universal.tar.Z">cmake-2.8.6-Darwin64-universal.tar.Z</a></td><td align="right">2011-10-04 13:59 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.6-Darwin64-universal.tar.gz">cmake-2.8.6-Darwin64-universal.tar.gz</a></td><td align="right">2011-10-04 13:59 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.6-IRIX64-64.sh">cmake-2.8.6-IRIX64-64.sh</a></td><td align="right">2011-10-04 13:59 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.6-IRIX64-64.tar.Z">cmake-2.8.6-IRIX64-64.tar.Z</a></td><td align="right">2011-10-04 13:59 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.6-IRIX64-64.tar.gz">cmake-2.8.6-IRIX64-64.tar.gz</a></td><td align="right">2011-10-04 13:59 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.6-IRIX64-n32.sh">cmake-2.8.6-IRIX64-n32.sh</a></td><td align="right">2011-10-04 13:59 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.6-IRIX64-n32.tar.Z">cmake-2.8.6-IRIX64-n32.tar.Z</a></td><td align="right">2011-10-04 13:59 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.6-IRIX64-n32.tar.gz">cmake-2.8.6-IRIX64-n32.tar.gz</a></td><td align="right">2011-10-04 13:59 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.6-Linux-i386.sh">cmake-2.8.6-Linux-i386.sh</a></td><td align="right">2011-10-04 13:59 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.6-Linux-i386.tar.Z">cmake-2.8.6-Linux-i386.tar.Z</a></td><td align="right">2011-10-04 13:59 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.6-Linux-i386.tar.gz">cmake-2.8.6-Linux-i386.tar.gz</a></td><td align="right">2011-10-04 13:58 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.6-win32-x86.exe">cmake-2.8.6-win32-x86.exe</a></td><td align="right">2011-10-04 13:58 </td><td align="right">8.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.6-win32-x86.zip">cmake-2.8.6-win32-x86.zip</a></td><td align="right">2011-10-04 13:58 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.6.tar.Z">cmake-2.8.6.tar.Z</a></td><td align="right">2011-10-04 13:58 </td><td align="right">8.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.6.tar.gz">cmake-2.8.6.tar.gz</a></td><td align="right">2011-10-04 13:58 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.6.zip">cmake-2.8.6.zip</a></td><td align="right">2011-10-04 13:58 </td><td align="right">7.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.7-1-src.tar.bz2">cmake-2.8.7-1-src.tar.bz2</a></td><td align="right">2011-12-30 14:14 </td><td align="right">4.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.7-1.tar.bz2">cmake-2.8.7-1.tar.bz2</a></td><td align="right">2011-12-30 14:14 </td><td align="right">6.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.7-AIX-powerpc.sh">cmake-2.8.7-AIX-powerpc.sh</a></td><td align="right">2012-01-03 16:51 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.7-AIX-powerpc.tar.Z">cmake-2.8.7-AIX-powerpc.tar.Z</a></td><td align="right">2012-01-03 16:51 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.7-AIX-powerpc.tar.gz">cmake-2.8.7-AIX-powerpc.tar.gz</a></td><td align="right">2012-01-03 16:51 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.7-Darwin-universal.dmg">cmake-2.8.7-Darwin-universal.dmg</a></td><td align="right">2011-12-30 14:14 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.7-Darwin-universal.tar.Z">cmake-2.8.7-Darwin-universal.tar.Z</a></td><td align="right">2011-12-30 14:14 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.7-Darwin-universal.tar.gz">cmake-2.8.7-Darwin-universal.tar.gz</a></td><td align="right">2011-12-30 14:14 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.7-Darwin64-universal.dmg">cmake-2.8.7-Darwin64-universal.dmg</a></td><td align="right">2011-12-30 14:14 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.7-Darwin64-universal.tar.Z">cmake-2.8.7-Darwin64-universal.tar.Z</a></td><td align="right">2011-12-30 14:13 </td><td align="right"> 42M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.7-Darwin64-universal.tar.gz">cmake-2.8.7-Darwin64-universal.tar.gz</a></td><td align="right">2011-12-30 14:13 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.7-IRIX64-64.sh">cmake-2.8.7-IRIX64-64.sh</a></td><td align="right">2011-12-30 14:13 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.7-IRIX64-64.tar.Z">cmake-2.8.7-IRIX64-64.tar.Z</a></td><td align="right">2011-12-30 14:13 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.7-IRIX64-64.tar.gz">cmake-2.8.7-IRIX64-64.tar.gz</a></td><td align="right">2011-12-30 14:13 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.7-IRIX64-n32.sh">cmake-2.8.7-IRIX64-n32.sh</a></td><td align="right">2011-12-30 14:13 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.7-IRIX64-n32.tar.Z">cmake-2.8.7-IRIX64-n32.tar.Z</a></td><td align="right">2011-12-30 14:13 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.7-IRIX64-n32.tar.gz">cmake-2.8.7-IRIX64-n32.tar.gz</a></td><td align="right">2011-12-30 14:13 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.7-Linux-i386.sh">cmake-2.8.7-Linux-i386.sh</a></td><td align="right">2011-12-30 14:13 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.7-Linux-i386.tar.Z">cmake-2.8.7-Linux-i386.tar.Z</a></td><td align="right">2011-12-30 14:13 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.7-Linux-i386.tar.gz">cmake-2.8.7-Linux-i386.tar.gz</a></td><td align="right">2011-12-30 14:13 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.7-win32-x86.exe">cmake-2.8.7-win32-x86.exe</a></td><td align="right">2011-12-30 14:13 </td><td align="right">8.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.7-win32-x86.zip">cmake-2.8.7-win32-x86.zip</a></td><td align="right">2011-12-30 14:13 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.7.tar.Z">cmake-2.8.7.tar.Z</a></td><td align="right">2011-12-30 14:13 </td><td align="right">8.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.7.tar.gz">cmake-2.8.7.tar.gz</a></td><td align="right">2011-12-30 14:13 </td><td align="right">5.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.7.zip">cmake-2.8.7.zip</a></td><td align="right">2011-12-30 14:13 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.8-AIX-powerpc.sh">cmake-2.8.8-AIX-powerpc.sh</a></td><td align="right">2012-04-18 15:23 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.8-AIX-powerpc.tar.Z">cmake-2.8.8-AIX-powerpc.tar.Z</a></td><td align="right">2012-04-18 15:23 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.8-AIX-powerpc.tar.gz">cmake-2.8.8-AIX-powerpc.tar.gz</a></td><td align="right">2012-04-18 15:23 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.8-Darwin-universal.dmg">cmake-2.8.8-Darwin-universal.dmg</a></td><td align="right">2012-04-18 15:23 </td><td align="right"> 34M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.8-Darwin-universal.tar.Z">cmake-2.8.8-Darwin-universal.tar.Z</a></td><td align="right">2012-04-18 15:23 </td><td align="right"> 49M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.8-Darwin-universal.tar.gz">cmake-2.8.8-Darwin-universal.tar.gz</a></td><td align="right">2012-04-18 15:23 </td><td align="right"> 34M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.8-Darwin64-universal.dmg">cmake-2.8.8-Darwin64-universal.dmg</a></td><td align="right">2012-04-18 15:22 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.8-Darwin64-universal.tar.Z">cmake-2.8.8-Darwin64-universal.tar.Z</a></td><td align="right">2012-04-18 15:22 </td><td align="right"> 44M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.8-Darwin64-universal.tar.gz">cmake-2.8.8-Darwin64-universal.tar.gz</a></td><td align="right">2012-04-18 15:22 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.8-IRIX64-64.sh">cmake-2.8.8-IRIX64-64.sh</a></td><td align="right">2012-04-18 15:22 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.8-IRIX64-64.tar.Z">cmake-2.8.8-IRIX64-64.tar.Z</a></td><td align="right">2012-04-18 15:22 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.8-IRIX64-64.tar.gz">cmake-2.8.8-IRIX64-64.tar.gz</a></td><td align="right">2012-04-18 15:22 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.8-IRIX64-n32.sh">cmake-2.8.8-IRIX64-n32.sh</a></td><td align="right">2012-04-18 15:22 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.8-IRIX64-n32.tar.Z">cmake-2.8.8-IRIX64-n32.tar.Z</a></td><td align="right">2012-04-18 15:22 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.8-IRIX64-n32.tar.gz">cmake-2.8.8-IRIX64-n32.tar.gz</a></td><td align="right">2012-04-18 15:22 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.8-Linux-i386.sh">cmake-2.8.8-Linux-i386.sh</a></td><td align="right">2012-04-18 15:22 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.8-Linux-i386.tar.Z">cmake-2.8.8-Linux-i386.tar.Z</a></td><td align="right">2012-04-18 15:22 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.8-Linux-i386.tar.gz">cmake-2.8.8-Linux-i386.tar.gz</a></td><td align="right">2012-04-18 15:22 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.8-SHA-256.txt">cmake-2.8.8-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.1K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.8-SHA-256.txt.asc">cmake-2.8.8-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.8-win32-x86.exe">cmake-2.8.8-win32-x86.exe</a></td><td align="right">2012-04-18 15:22 </td><td align="right">8.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.8-win32-x86.zip">cmake-2.8.8-win32-x86.zip</a></td><td align="right">2012-04-18 15:22 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.8.tar.Z">cmake-2.8.8.tar.Z</a></td><td align="right">2012-04-18 15:22 </td><td align="right">8.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.8.tar.gz">cmake-2.8.8.tar.gz</a></td><td align="right">2012-04-18 15:22 </td><td align="right">5.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.8.zip">cmake-2.8.8.zip</a></td><td align="right">2012-04-18 15:22 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.9-AIX-powerpc.sh">cmake-2.8.9-AIX-powerpc.sh</a></td><td align="right">2012-08-09 15:36 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.9-AIX-powerpc.tar.Z">cmake-2.8.9-AIX-powerpc.tar.Z</a></td><td align="right">2012-08-09 15:36 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.9-AIX-powerpc.tar.gz">cmake-2.8.9-AIX-powerpc.tar.gz</a></td><td align="right">2012-08-09 15:36 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.9-Darwin-universal.dmg">cmake-2.8.9-Darwin-universal.dmg</a></td><td align="right">2012-08-09 15:36 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.9-Darwin-universal.tar.Z">cmake-2.8.9-Darwin-universal.tar.Z</a></td><td align="right">2012-08-09 15:36 </td><td align="right"> 50M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.9-Darwin-universal.tar.gz">cmake-2.8.9-Darwin-universal.tar.gz</a></td><td align="right">2012-08-09 15:36 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.9-Darwin64-universal.dmg">cmake-2.8.9-Darwin64-universal.dmg</a></td><td align="right">2012-08-09 15:36 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.9-Darwin64-universal.tar.Z">cmake-2.8.9-Darwin64-universal.tar.Z</a></td><td align="right">2012-08-09 15:35 </td><td align="right"> 45M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.9-Darwin64-universal.tar.gz">cmake-2.8.9-Darwin64-universal.tar.gz</a></td><td align="right">2012-08-09 15:35 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.9-IRIX64-64.sh">cmake-2.8.9-IRIX64-64.sh</a></td><td align="right">2012-08-09 15:35 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.9-IRIX64-64.tar.Z">cmake-2.8.9-IRIX64-64.tar.Z</a></td><td align="right">2012-08-09 15:35 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.9-IRIX64-64.tar.gz">cmake-2.8.9-IRIX64-64.tar.gz</a></td><td align="right">2012-08-09 15:35 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.9-IRIX64-n32.sh">cmake-2.8.9-IRIX64-n32.sh</a></td><td align="right">2012-08-09 15:35 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.9-IRIX64-n32.tar.Z">cmake-2.8.9-IRIX64-n32.tar.Z</a></td><td align="right">2012-08-09 15:35 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.9-IRIX64-n32.tar.gz">cmake-2.8.9-IRIX64-n32.tar.gz</a></td><td align="right">2012-08-09 15:35 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.9-Linux-i386.sh">cmake-2.8.9-Linux-i386.sh</a></td><td align="right">2012-08-09 15:35 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.9-Linux-i386.tar.Z">cmake-2.8.9-Linux-i386.tar.Z</a></td><td align="right">2012-08-09 15:35 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.9-Linux-i386.tar.gz">cmake-2.8.9-Linux-i386.tar.gz</a></td><td align="right">2012-08-09 15:35 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.9-SHA-256.txt">cmake-2.8.9-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.1K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.9-SHA-256.txt.asc">cmake-2.8.9-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.9-win32-x86.exe">cmake-2.8.9-win32-x86.exe</a></td><td align="right">2012-08-09 15:35 </td><td align="right">8.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.9-win32-x86.zip">cmake-2.8.9-win32-x86.zip</a></td><td align="right">2012-08-09 15:35 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.9.tar.Z">cmake-2.8.9.tar.Z</a></td><td align="right">2012-08-09 15:35 </td><td align="right">8.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.9.tar.gz">cmake-2.8.9.tar.gz</a></td><td align="right">2012-08-09 15:35 </td><td align="right">5.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.9.zip">cmake-2.8.9.zip</a></td><td align="right">2012-08-09 15:35 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-AIX-powerpc.sh">cmake-2.8.10-AIX-powerpc.sh</a></td><td align="right">2012-10-31 13:05 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-AIX-powerpc.tar.Z">cmake-2.8.10-AIX-powerpc.tar.Z</a></td><td align="right">2012-10-31 13:05 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-AIX-powerpc.tar.gz">cmake-2.8.10-AIX-powerpc.tar.gz</a></td><td align="right">2012-10-31 13:05 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-Darwin-universal.dmg">cmake-2.8.10-Darwin-universal.dmg</a></td><td align="right">2012-10-31 13:04 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-Darwin-universal.tar.Z">cmake-2.8.10-Darwin-universal.tar.Z</a></td><td align="right">2012-10-31 13:04 </td><td align="right"> 58M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-Darwin-universal.tar.gz">cmake-2.8.10-Darwin-universal.tar.gz</a></td><td align="right">2012-10-31 13:04 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-Darwin64-universal.dmg">cmake-2.8.10-Darwin64-universal.dmg</a></td><td align="right">2012-10-31 13:04 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-Darwin64-universal.tar.Z">cmake-2.8.10-Darwin64-universal.tar.Z</a></td><td align="right">2012-10-31 13:04 </td><td align="right"> 53M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-Darwin64-universal.tar.gz">cmake-2.8.10-Darwin64-universal.tar.gz</a></td><td align="right">2012-10-31 13:04 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-IRIX64-64.sh">cmake-2.8.10-IRIX64-64.sh</a></td><td align="right">2012-10-31 13:04 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-IRIX64-64.tar.Z">cmake-2.8.10-IRIX64-64.tar.Z</a></td><td align="right">2012-10-31 13:04 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-IRIX64-64.tar.gz">cmake-2.8.10-IRIX64-64.tar.gz</a></td><td align="right">2012-10-31 13:04 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-IRIX64-n32.sh">cmake-2.8.10-IRIX64-n32.sh</a></td><td align="right">2012-10-31 13:04 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-IRIX64-n32.tar.Z">cmake-2.8.10-IRIX64-n32.tar.Z</a></td><td align="right">2012-10-31 13:04 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-IRIX64-n32.tar.gz">cmake-2.8.10-IRIX64-n32.tar.gz</a></td><td align="right">2012-10-31 13:04 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-Linux-i386.sh">cmake-2.8.10-Linux-i386.sh</a></td><td align="right">2012-10-31 13:04 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-Linux-i386.tar.Z">cmake-2.8.10-Linux-i386.tar.Z</a></td><td align="right">2012-10-31 13:04 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-Linux-i386.tar.gz">cmake-2.8.10-Linux-i386.tar.gz</a></td><td align="right">2012-10-31 13:04 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-SHA-256.txt">cmake-2.8.10-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.1K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-SHA-256.txt.asc">cmake-2.8.10-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-rc1-AIX-powerpc.sh">cmake-2.8.10-rc1-AIX-powerpc.sh</a></td><td align="right">2012-10-02 13:28 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1-AIX-powerpc.tar.Z">cmake-2.8.10-rc1-AIX-powerpc.tar.Z</a></td><td align="right">2012-10-02 13:28 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1-AIX-powerpc.tar.gz">cmake-2.8.10-rc1-AIX-powerpc.tar.gz</a></td><td align="right">2012-10-02 13:28 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1-Darwin-universal.dmg">cmake-2.8.10-rc1-Darwin-universal.dmg</a></td><td align="right">2012-10-02 13:28 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1-Darwin-universal.tar.Z">cmake-2.8.10-rc1-Darwin-universal.tar.Z</a></td><td align="right">2012-10-02 13:28 </td><td align="right"> 58M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1-Darwin-universal.tar.gz">cmake-2.8.10-rc1-Darwin-universal.tar.gz</a></td><td align="right">2012-10-02 13:28 </td><td align="right"> 40M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1-Darwin64-universal.dmg">cmake-2.8.10-rc1-Darwin64-universal.dmg</a></td><td align="right">2012-10-02 13:28 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1-Darwin64-universal.tar.Z">cmake-2.8.10-rc1-Darwin64-universal.tar.Z</a></td><td align="right">2012-10-02 13:28 </td><td align="right"> 53M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1-Darwin64-universal.tar.gz">cmake-2.8.10-rc1-Darwin64-universal.tar.gz</a></td><td align="right">2012-10-02 13:28 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-rc1-IRIX64-64.sh">cmake-2.8.10-rc1-IRIX64-64.sh</a></td><td align="right">2012-10-02 13:27 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1-IRIX64-64.tar.Z">cmake-2.8.10-rc1-IRIX64-64.tar.Z</a></td><td align="right">2012-10-02 13:27 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1-IRIX64-64.tar.gz">cmake-2.8.10-rc1-IRIX64-64.tar.gz</a></td><td align="right">2012-10-02 13:27 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-rc1-IRIX64-n32.sh">cmake-2.8.10-rc1-IRIX64-n32.sh</a></td><td align="right">2012-10-02 13:27 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1-IRIX64-n32.tar.Z">cmake-2.8.10-rc1-IRIX64-n32.tar.Z</a></td><td align="right">2012-10-02 13:27 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1-IRIX64-n32.tar.gz">cmake-2.8.10-rc1-IRIX64-n32.tar.gz</a></td><td align="right">2012-10-02 13:27 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-rc1-Linux-i386.sh">cmake-2.8.10-rc1-Linux-i386.sh</a></td><td align="right">2012-10-02 13:27 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1-Linux-i386.tar.Z">cmake-2.8.10-rc1-Linux-i386.tar.Z</a></td><td align="right">2012-10-02 13:27 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1-Linux-i386.tar.gz">cmake-2.8.10-rc1-Linux-i386.tar.gz</a></td><td align="right">2012-10-02 13:27 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-rc1-SHA-256.txt">cmake-2.8.10-rc1-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-rc1-SHA-256.txt.asc">cmake-2.8.10-rc1-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1-win32-x86.exe">cmake-2.8.10-rc1-win32-x86.exe</a></td><td align="right">2012-10-02 13:27 </td><td align="right">9.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1-win32-x86.zip">cmake-2.8.10-rc1-win32-x86.zip</a></td><td align="right">2012-10-02 13:27 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1.tar.Z">cmake-2.8.10-rc1.tar.Z</a></td><td align="right">2012-10-02 13:27 </td><td align="right">8.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1.tar.gz">cmake-2.8.10-rc1.tar.gz</a></td><td align="right">2012-10-02 13:27 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc1.zip">cmake-2.8.10-rc1.zip</a></td><td align="right">2012-10-02 13:27 </td><td align="right">7.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-rc2-AIX-powerpc.sh">cmake-2.8.10-rc2-AIX-powerpc.sh</a></td><td align="right">2012-10-19 09:26 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2-AIX-powerpc.tar.Z">cmake-2.8.10-rc2-AIX-powerpc.tar.Z</a></td><td align="right">2012-10-19 09:26 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2-AIX-powerpc.tar.gz">cmake-2.8.10-rc2-AIX-powerpc.tar.gz</a></td><td align="right">2012-10-19 09:26 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2-Darwin-universal.dmg">cmake-2.8.10-rc2-Darwin-universal.dmg</a></td><td align="right">2012-10-19 09:26 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2-Darwin-universal.tar.Z">cmake-2.8.10-rc2-Darwin-universal.tar.Z</a></td><td align="right">2012-10-19 09:26 </td><td align="right"> 58M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2-Darwin-universal.tar.gz">cmake-2.8.10-rc2-Darwin-universal.tar.gz</a></td><td align="right">2012-10-19 09:26 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2-Darwin64-universal.dmg">cmake-2.8.10-rc2-Darwin64-universal.dmg</a></td><td align="right">2012-10-19 09:25 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2-Darwin64-universal.tar.Z">cmake-2.8.10-rc2-Darwin64-universal.tar.Z</a></td><td align="right">2012-10-19 09:25 </td><td align="right"> 53M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2-Darwin64-universal.tar.gz">cmake-2.8.10-rc2-Darwin64-universal.tar.gz</a></td><td align="right">2012-10-19 09:25 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-rc2-IRIX64-64.sh">cmake-2.8.10-rc2-IRIX64-64.sh</a></td><td align="right">2012-10-19 09:25 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2-IRIX64-64.tar.Z">cmake-2.8.10-rc2-IRIX64-64.tar.Z</a></td><td align="right">2012-10-19 09:25 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2-IRIX64-64.tar.gz">cmake-2.8.10-rc2-IRIX64-64.tar.gz</a></td><td align="right">2012-10-19 09:25 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-rc2-IRIX64-n32.sh">cmake-2.8.10-rc2-IRIX64-n32.sh</a></td><td align="right">2012-10-19 09:25 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2-IRIX64-n32.tar.Z">cmake-2.8.10-rc2-IRIX64-n32.tar.Z</a></td><td align="right">2012-10-19 09:25 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2-IRIX64-n32.tar.gz">cmake-2.8.10-rc2-IRIX64-n32.tar.gz</a></td><td align="right">2012-10-19 09:25 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-rc2-Linux-i386.sh">cmake-2.8.10-rc2-Linux-i386.sh</a></td><td align="right">2012-10-19 09:25 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2-Linux-i386.tar.Z">cmake-2.8.10-rc2-Linux-i386.tar.Z</a></td><td align="right">2012-10-19 09:24 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2-Linux-i386.tar.gz">cmake-2.8.10-rc2-Linux-i386.tar.gz</a></td><td align="right">2012-10-19 09:24 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-rc2-SHA-256.txt">cmake-2.8.10-rc2-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-rc2-SHA-256.txt.asc">cmake-2.8.10-rc2-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2-win32-x86.exe">cmake-2.8.10-rc2-win32-x86.exe</a></td><td align="right">2012-10-19 09:24 </td><td align="right">9.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2-win32-x86.zip">cmake-2.8.10-rc2-win32-x86.zip</a></td><td align="right">2012-10-19 09:24 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2.tar.Z">cmake-2.8.10-rc2.tar.Z</a></td><td align="right">2012-10-19 09:24 </td><td align="right">8.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2.tar.gz">cmake-2.8.10-rc2.tar.gz</a></td><td align="right">2012-10-19 09:24 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc2.zip">cmake-2.8.10-rc2.zip</a></td><td align="right">2012-10-19 09:24 </td><td align="right">7.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-rc3-AIX-powerpc.sh">cmake-2.8.10-rc3-AIX-powerpc.sh</a></td><td align="right">2012-10-24 15:11 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3-AIX-powerpc.tar.Z">cmake-2.8.10-rc3-AIX-powerpc.tar.Z</a></td><td align="right">2012-10-24 15:11 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3-AIX-powerpc.tar.gz">cmake-2.8.10-rc3-AIX-powerpc.tar.gz</a></td><td align="right">2012-10-24 15:10 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3-Darwin-universal.dmg">cmake-2.8.10-rc3-Darwin-universal.dmg</a></td><td align="right">2012-10-24 15:10 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3-Darwin-universal.tar.Z">cmake-2.8.10-rc3-Darwin-universal.tar.Z</a></td><td align="right">2012-10-24 15:10 </td><td align="right"> 58M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3-Darwin-universal.tar.gz">cmake-2.8.10-rc3-Darwin-universal.tar.gz</a></td><td align="right">2012-10-24 15:10 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3-Darwin64-universal.dmg">cmake-2.8.10-rc3-Darwin64-universal.dmg</a></td><td align="right">2012-10-24 15:10 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3-Darwin64-universal.tar.Z">cmake-2.8.10-rc3-Darwin64-universal.tar.Z</a></td><td align="right">2012-10-24 15:10 </td><td align="right"> 53M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3-Darwin64-universal.tar.gz">cmake-2.8.10-rc3-Darwin64-universal.tar.gz</a></td><td align="right">2012-10-24 15:10 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-rc3-IRIX64-64.sh">cmake-2.8.10-rc3-IRIX64-64.sh</a></td><td align="right">2012-10-24 15:10 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3-IRIX64-64.tar.Z">cmake-2.8.10-rc3-IRIX64-64.tar.Z</a></td><td align="right">2012-10-24 15:10 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3-IRIX64-64.tar.gz">cmake-2.8.10-rc3-IRIX64-64.tar.gz</a></td><td align="right">2012-10-24 15:10 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-rc3-IRIX64-n32.sh">cmake-2.8.10-rc3-IRIX64-n32.sh</a></td><td align="right">2012-10-24 15:10 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3-IRIX64-n32.tar.Z">cmake-2.8.10-rc3-IRIX64-n32.tar.Z</a></td><td align="right">2012-10-24 15:10 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3-IRIX64-n32.tar.gz">cmake-2.8.10-rc3-IRIX64-n32.tar.gz</a></td><td align="right">2012-10-24 15:10 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-rc3-Linux-i386.sh">cmake-2.8.10-rc3-Linux-i386.sh</a></td><td align="right">2012-10-24 15:10 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3-Linux-i386.tar.Z">cmake-2.8.10-rc3-Linux-i386.tar.Z</a></td><td align="right">2012-10-24 15:10 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3-Linux-i386.tar.gz">cmake-2.8.10-rc3-Linux-i386.tar.gz</a></td><td align="right">2012-10-24 15:10 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-rc3-SHA-256.txt">cmake-2.8.10-rc3-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10-rc3-SHA-256.txt.asc">cmake-2.8.10-rc3-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3-win32-x86.exe">cmake-2.8.10-rc3-win32-x86.exe</a></td><td align="right">2012-10-24 15:10 </td><td align="right">9.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3-win32-x86.zip">cmake-2.8.10-rc3-win32-x86.zip</a></td><td align="right">2012-10-24 15:09 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3.tar.Z">cmake-2.8.10-rc3.tar.Z</a></td><td align="right">2012-10-24 15:09 </td><td align="right">8.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3.tar.gz">cmake-2.8.10-rc3.tar.gz</a></td><td align="right">2012-10-24 15:09 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-rc3.zip">cmake-2.8.10-rc3.zip</a></td><td align="right">2012-10-24 15:09 </td><td align="right">7.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-win32-x86.exe">cmake-2.8.10-win32-x86.exe</a></td><td align="right">2012-10-31 13:04 </td><td align="right">9.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10-win32-x86.zip">cmake-2.8.10-win32-x86.zip</a></td><td align="right">2012-10-31 13:04 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10.1-AIX-powerpc.sh">cmake-2.8.10.1-AIX-powerpc.sh</a></td><td align="right">2012-11-07 11:48 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1-AIX-powerpc.tar.Z">cmake-2.8.10.1-AIX-powerpc.tar.Z</a></td><td align="right">2012-11-07 11:48 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1-AIX-powerpc.tar.gz">cmake-2.8.10.1-AIX-powerpc.tar.gz</a></td><td align="right">2012-11-07 11:48 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1-Darwin-universal.dmg">cmake-2.8.10.1-Darwin-universal.dmg</a></td><td align="right">2012-11-07 11:48 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1-Darwin-universal.tar.Z">cmake-2.8.10.1-Darwin-universal.tar.Z</a></td><td align="right">2012-11-07 11:48 </td><td align="right"> 58M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1-Darwin-universal.tar.gz">cmake-2.8.10.1-Darwin-universal.tar.gz</a></td><td align="right">2012-11-07 11:48 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1-Darwin64-universal.dmg">cmake-2.8.10.1-Darwin64-universal.dmg</a></td><td align="right">2012-11-07 11:48 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1-Darwin64-universal.tar.Z">cmake-2.8.10.1-Darwin64-universal.tar.Z</a></td><td align="right">2012-11-07 11:48 </td><td align="right"> 53M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1-Darwin64-universal.tar.gz">cmake-2.8.10.1-Darwin64-universal.tar.gz</a></td><td align="right">2012-11-07 11:48 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10.1-IRIX64-64.sh">cmake-2.8.10.1-IRIX64-64.sh</a></td><td align="right">2012-11-07 11:48 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1-IRIX64-64.tar.Z">cmake-2.8.10.1-IRIX64-64.tar.Z</a></td><td align="right">2012-11-07 11:48 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1-IRIX64-64.tar.gz">cmake-2.8.10.1-IRIX64-64.tar.gz</a></td><td align="right">2012-11-07 11:48 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10.1-IRIX64-n32.sh">cmake-2.8.10.1-IRIX64-n32.sh</a></td><td align="right">2012-11-07 11:47 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1-IRIX64-n32.tar.Z">cmake-2.8.10.1-IRIX64-n32.tar.Z</a></td><td align="right">2012-11-07 11:47 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1-IRIX64-n32.tar.gz">cmake-2.8.10.1-IRIX64-n32.tar.gz</a></td><td align="right">2012-11-07 11:47 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10.1-Linux-i386.sh">cmake-2.8.10.1-Linux-i386.sh</a></td><td align="right">2012-11-07 11:47 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1-Linux-i386.tar.Z">cmake-2.8.10.1-Linux-i386.tar.Z</a></td><td align="right">2012-11-07 11:47 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1-Linux-i386.tar.gz">cmake-2.8.10.1-Linux-i386.tar.gz</a></td><td align="right">2012-11-07 11:47 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10.1-SHA-256.txt">cmake-2.8.10.1-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10.1-SHA-256.txt.asc">cmake-2.8.10.1-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1-win32-x86.exe">cmake-2.8.10.1-win32-x86.exe</a></td><td align="right">2012-11-07 11:47 </td><td align="right">9.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1-win32-x86.zip">cmake-2.8.10.1-win32-x86.zip</a></td><td align="right">2012-11-07 11:47 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1.tar.Z">cmake-2.8.10.1.tar.Z</a></td><td align="right">2012-11-07 11:47 </td><td align="right">8.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1.tar.gz">cmake-2.8.10.1.tar.gz</a></td><td align="right">2012-11-07 11:47 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.1.zip">cmake-2.8.10.1.zip</a></td><td align="right">2012-11-07 11:47 </td><td align="right">7.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10.2-AIX-powerpc.sh">cmake-2.8.10.2-AIX-powerpc.sh</a></td><td align="right">2012-11-27 15:05 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2-AIX-powerpc.tar.Z">cmake-2.8.10.2-AIX-powerpc.tar.Z</a></td><td align="right">2012-11-27 15:05 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2-AIX-powerpc.tar.gz">cmake-2.8.10.2-AIX-powerpc.tar.gz</a></td><td align="right">2012-11-27 15:04 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2-Darwin-universal.dmg">cmake-2.8.10.2-Darwin-universal.dmg</a></td><td align="right">2012-11-27 15:04 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2-Darwin-universal.tar.Z">cmake-2.8.10.2-Darwin-universal.tar.Z</a></td><td align="right">2012-11-27 15:04 </td><td align="right"> 58M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2-Darwin-universal.tar.gz">cmake-2.8.10.2-Darwin-universal.tar.gz</a></td><td align="right">2012-11-27 15:04 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2-Darwin64-universal.dmg">cmake-2.8.10.2-Darwin64-universal.dmg</a></td><td align="right">2012-11-27 15:04 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2-Darwin64-universal.tar.Z">cmake-2.8.10.2-Darwin64-universal.tar.Z</a></td><td align="right">2012-11-27 15:04 </td><td align="right"> 53M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2-Darwin64-universal.tar.gz">cmake-2.8.10.2-Darwin64-universal.tar.gz</a></td><td align="right">2012-11-27 15:04 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10.2-IRIX64-64.sh">cmake-2.8.10.2-IRIX64-64.sh</a></td><td align="right">2012-11-27 15:04 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2-IRIX64-64.tar.Z">cmake-2.8.10.2-IRIX64-64.tar.Z</a></td><td align="right">2012-11-27 15:04 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2-IRIX64-64.tar.gz">cmake-2.8.10.2-IRIX64-64.tar.gz</a></td><td align="right">2012-11-27 15:04 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10.2-IRIX64-n32.sh">cmake-2.8.10.2-IRIX64-n32.sh</a></td><td align="right">2012-11-27 15:04 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2-IRIX64-n32.tar.Z">cmake-2.8.10.2-IRIX64-n32.tar.Z</a></td><td align="right">2012-11-27 15:04 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2-IRIX64-n32.tar.gz">cmake-2.8.10.2-IRIX64-n32.tar.gz</a></td><td align="right">2012-11-27 15:04 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10.2-Linux-i386.sh">cmake-2.8.10.2-Linux-i386.sh</a></td><td align="right">2012-11-27 15:04 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2-Linux-i386.tar.Z">cmake-2.8.10.2-Linux-i386.tar.Z</a></td><td align="right">2012-11-27 15:04 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2-Linux-i386.tar.gz">cmake-2.8.10.2-Linux-i386.tar.gz</a></td><td align="right">2012-11-27 15:04 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10.2-SHA-256.txt">cmake-2.8.10.2-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.10.2-SHA-256.txt.asc">cmake-2.8.10.2-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2-win32-x86.exe">cmake-2.8.10.2-win32-x86.exe</a></td><td align="right">2012-11-27 15:04 </td><td align="right">9.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2-win32-x86.zip">cmake-2.8.10.2-win32-x86.zip</a></td><td align="right">2012-11-27 15:03 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2.tar.Z">cmake-2.8.10.2.tar.Z</a></td><td align="right">2012-11-27 15:03 </td><td align="right">8.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2.tar.gz">cmake-2.8.10.2.tar.gz</a></td><td align="right">2012-11-27 15:03 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.2.zip">cmake-2.8.10.2.zip</a></td><td align="right">2012-11-27 15:03 </td><td align="right">7.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.tar.Z">cmake-2.8.10.tar.Z</a></td><td align="right">2012-10-31 13:03 </td><td align="right">8.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.tar.gz">cmake-2.8.10.tar.gz</a></td><td align="right">2012-10-31 13:03 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.10.zip">cmake-2.8.10.zip</a></td><td align="right">2012-10-31 13:03 </td><td align="right">7.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-AIX-powerpc.sh">cmake-2.8.11-AIX-powerpc.sh</a></td><td align="right">2013-06-07 14:42 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-AIX-powerpc.tar.Z">cmake-2.8.11-AIX-powerpc.tar.Z</a></td><td align="right">2013-06-07 14:42 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-AIX-powerpc.tar.gz">cmake-2.8.11-AIX-powerpc.tar.gz</a></td><td align="right">2013-06-07 14:42 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-Darwin-universal.dmg">cmake-2.8.11-Darwin-universal.dmg</a></td><td align="right">2013-05-15 15:54 </td><td align="right"> 42M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-Darwin-universal.tar.Z">cmake-2.8.11-Darwin-universal.tar.Z</a></td><td align="right">2013-05-15 15:54 </td><td align="right"> 59M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-Darwin-universal.tar.gz">cmake-2.8.11-Darwin-universal.tar.gz</a></td><td align="right">2013-05-15 15:54 </td><td align="right"> 42M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-Darwin64-universal.dmg">cmake-2.8.11-Darwin64-universal.dmg</a></td><td align="right">2013-05-15 15:54 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-Darwin64-universal.tar.Z">cmake-2.8.11-Darwin64-universal.tar.Z</a></td><td align="right">2013-05-15 15:54 </td><td align="right"> 55M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-Darwin64-universal.tar.gz">cmake-2.8.11-Darwin64-universal.tar.gz</a></td><td align="right">2013-05-15 15:54 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-IRIX64-64.sh">cmake-2.8.11-IRIX64-64.sh</a></td><td align="right">2013-05-15 15:53 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-IRIX64-64.tar.Z">cmake-2.8.11-IRIX64-64.tar.Z</a></td><td align="right">2013-05-15 15:53 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-IRIX64-64.tar.gz">cmake-2.8.11-IRIX64-64.tar.gz</a></td><td align="right">2013-05-15 15:53 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-IRIX64-n32.sh">cmake-2.8.11-IRIX64-n32.sh</a></td><td align="right">2013-05-15 15:53 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-IRIX64-n32.tar.Z">cmake-2.8.11-IRIX64-n32.tar.Z</a></td><td align="right">2013-05-15 15:53 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-IRIX64-n32.tar.gz">cmake-2.8.11-IRIX64-n32.tar.gz</a></td><td align="right">2013-05-15 15:53 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-Linux-i386.sh">cmake-2.8.11-Linux-i386.sh</a></td><td align="right">2013-05-15 15:53 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-Linux-i386.tar.Z">cmake-2.8.11-Linux-i386.tar.Z</a></td><td align="right">2013-05-15 15:53 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-Linux-i386.tar.gz">cmake-2.8.11-Linux-i386.tar.gz</a></td><td align="right">2013-05-15 15:53 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-SHA-256.txt">cmake-2.8.11-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.4K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-SHA-256.txt.asc">cmake-2.8.11-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc1-AIX-powerpc.sh">cmake-2.8.11-rc1-AIX-powerpc.sh</a></td><td align="right">2013-03-14 17:16 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1-AIX-powerpc.tar.Z">cmake-2.8.11-rc1-AIX-powerpc.tar.Z</a></td><td align="right">2013-03-14 17:16 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1-AIX-powerpc.tar.gz">cmake-2.8.11-rc1-AIX-powerpc.tar.gz</a></td><td align="right">2013-03-14 17:16 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1-Darwin-universal.dmg">cmake-2.8.11-rc1-Darwin-universal.dmg</a></td><td align="right">2013-03-14 17:16 </td><td align="right"> 42M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1-Darwin-universal.tar.Z">cmake-2.8.11-rc1-Darwin-universal.tar.Z</a></td><td align="right">2013-03-14 17:16 </td><td align="right"> 59M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1-Darwin-universal.tar.gz">cmake-2.8.11-rc1-Darwin-universal.tar.gz</a></td><td align="right">2013-03-14 17:16 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1-Darwin64-universal.dmg">cmake-2.8.11-rc1-Darwin64-universal.dmg</a></td><td align="right">2013-03-14 17:15 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1-Darwin64-universal.tar.Z">cmake-2.8.11-rc1-Darwin64-universal.tar.Z</a></td><td align="right">2013-03-14 17:15 </td><td align="right"> 55M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1-Darwin64-universal.tar.gz">cmake-2.8.11-rc1-Darwin64-universal.tar.gz</a></td><td align="right">2013-03-14 17:15 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc1-IRIX64-64.sh">cmake-2.8.11-rc1-IRIX64-64.sh</a></td><td align="right">2013-03-14 17:15 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1-IRIX64-64.tar.Z">cmake-2.8.11-rc1-IRIX64-64.tar.Z</a></td><td align="right">2013-03-14 17:15 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1-IRIX64-64.tar.gz">cmake-2.8.11-rc1-IRIX64-64.tar.gz</a></td><td align="right">2013-03-14 17:15 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc1-IRIX64-n32.sh">cmake-2.8.11-rc1-IRIX64-n32.sh</a></td><td align="right">2013-03-14 17:15 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1-IRIX64-n32.tar.Z">cmake-2.8.11-rc1-IRIX64-n32.tar.Z</a></td><td align="right">2013-03-14 17:15 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1-IRIX64-n32.tar.gz">cmake-2.8.11-rc1-IRIX64-n32.tar.gz</a></td><td align="right">2013-03-14 17:15 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc1-Linux-i386.sh">cmake-2.8.11-rc1-Linux-i386.sh</a></td><td align="right">2013-03-14 17:15 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1-Linux-i386.tar.Z">cmake-2.8.11-rc1-Linux-i386.tar.Z</a></td><td align="right">2013-03-14 17:15 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1-Linux-i386.tar.gz">cmake-2.8.11-rc1-Linux-i386.tar.gz</a></td><td align="right">2013-03-14 17:15 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc1-SHA-256.txt">cmake-2.8.11-rc1-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc1-SHA-256.txt.asc">cmake-2.8.11-rc1-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1-win32-x86.exe">cmake-2.8.11-rc1-win32-x86.exe</a></td><td align="right">2013-03-14 17:15 </td><td align="right">9.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1-win32-x86.zip">cmake-2.8.11-rc1-win32-x86.zip</a></td><td align="right">2013-03-14 17:14 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1.tar.Z">cmake-2.8.11-rc1.tar.Z</a></td><td align="right">2013-03-14 17:14 </td><td align="right">8.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1.tar.gz">cmake-2.8.11-rc1.tar.gz</a></td><td align="right">2013-03-14 17:14 </td><td align="right">5.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc1.zip">cmake-2.8.11-rc1.zip</a></td><td align="right">2013-03-14 17:14 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc2-AIX-powerpc.sh">cmake-2.8.11-rc2-AIX-powerpc.sh</a></td><td align="right">2013-04-05 18:01 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2-AIX-powerpc.tar.Z">cmake-2.8.11-rc2-AIX-powerpc.tar.Z</a></td><td align="right">2013-04-05 18:01 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2-AIX-powerpc.tar.gz">cmake-2.8.11-rc2-AIX-powerpc.tar.gz</a></td><td align="right">2013-04-05 18:01 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2-Darwin-universal.dmg">cmake-2.8.11-rc2-Darwin-universal.dmg</a></td><td align="right">2013-04-05 18:01 </td><td align="right"> 42M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2-Darwin-universal.tar.Z">cmake-2.8.11-rc2-Darwin-universal.tar.Z</a></td><td align="right">2013-04-05 18:01 </td><td align="right"> 59M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2-Darwin-universal.tar.gz">cmake-2.8.11-rc2-Darwin-universal.tar.gz</a></td><td align="right">2013-04-05 18:01 </td><td align="right"> 42M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2-Darwin64-universal.dmg">cmake-2.8.11-rc2-Darwin64-universal.dmg</a></td><td align="right">2013-04-05 18:01 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2-Darwin64-universal.tar.Z">cmake-2.8.11-rc2-Darwin64-universal.tar.Z</a></td><td align="right">2013-04-05 18:01 </td><td align="right"> 55M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2-Darwin64-universal.tar.gz">cmake-2.8.11-rc2-Darwin64-universal.tar.gz</a></td><td align="right">2013-04-05 18:01 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc2-IRIX64-64.sh">cmake-2.8.11-rc2-IRIX64-64.sh</a></td><td align="right">2013-04-05 18:01 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2-IRIX64-64.tar.Z">cmake-2.8.11-rc2-IRIX64-64.tar.Z</a></td><td align="right">2013-04-05 18:01 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2-IRIX64-64.tar.gz">cmake-2.8.11-rc2-IRIX64-64.tar.gz</a></td><td align="right">2013-04-05 18:01 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc2-IRIX64-n32.sh">cmake-2.8.11-rc2-IRIX64-n32.sh</a></td><td align="right">2013-04-05 18:01 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2-IRIX64-n32.tar.Z">cmake-2.8.11-rc2-IRIX64-n32.tar.Z</a></td><td align="right">2013-04-05 18:01 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2-IRIX64-n32.tar.gz">cmake-2.8.11-rc2-IRIX64-n32.tar.gz</a></td><td align="right">2013-04-05 18:00 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc2-Linux-i386.sh">cmake-2.8.11-rc2-Linux-i386.sh</a></td><td align="right">2013-04-05 18:00 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2-Linux-i386.tar.Z">cmake-2.8.11-rc2-Linux-i386.tar.Z</a></td><td align="right">2013-04-05 18:00 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2-Linux-i386.tar.gz">cmake-2.8.11-rc2-Linux-i386.tar.gz</a></td><td align="right">2013-04-05 18:00 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc2-SHA-256.txt">cmake-2.8.11-rc2-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc2-SHA-256.txt.asc">cmake-2.8.11-rc2-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2-win32-x86.exe">cmake-2.8.11-rc2-win32-x86.exe</a></td><td align="right">2013-04-05 18:00 </td><td align="right">9.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2-win32-x86.zip">cmake-2.8.11-rc2-win32-x86.zip</a></td><td align="right">2013-04-05 18:00 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2.tar.Z">cmake-2.8.11-rc2.tar.Z</a></td><td align="right">2013-04-05 18:00 </td><td align="right">8.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2.tar.gz">cmake-2.8.11-rc2.tar.gz</a></td><td align="right">2013-04-05 18:00 </td><td align="right">5.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc2.zip">cmake-2.8.11-rc2.zip</a></td><td align="right">2013-04-05 18:00 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc3-AIX-powerpc.sh">cmake-2.8.11-rc3-AIX-powerpc.sh</a></td><td align="right">2013-04-18 17:33 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3-AIX-powerpc.tar.Z">cmake-2.8.11-rc3-AIX-powerpc.tar.Z</a></td><td align="right">2013-04-18 17:33 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3-AIX-powerpc.tar.gz">cmake-2.8.11-rc3-AIX-powerpc.tar.gz</a></td><td align="right">2013-04-18 17:33 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3-Darwin-universal.dmg">cmake-2.8.11-rc3-Darwin-universal.dmg</a></td><td align="right">2013-04-18 17:33 </td><td align="right"> 42M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3-Darwin-universal.tar.Z">cmake-2.8.11-rc3-Darwin-universal.tar.Z</a></td><td align="right">2013-04-18 17:33 </td><td align="right"> 59M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3-Darwin-universal.tar.gz">cmake-2.8.11-rc3-Darwin-universal.tar.gz</a></td><td align="right">2013-04-18 17:33 </td><td align="right"> 42M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3-Darwin64-universal.dmg">cmake-2.8.11-rc3-Darwin64-universal.dmg</a></td><td align="right">2013-04-18 17:33 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3-Darwin64-universal.tar.Z">cmake-2.8.11-rc3-Darwin64-universal.tar.Z</a></td><td align="right">2013-04-18 17:33 </td><td align="right"> 55M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3-Darwin64-universal.tar.gz">cmake-2.8.11-rc3-Darwin64-universal.tar.gz</a></td><td align="right">2013-04-18 17:33 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc3-IRIX64-64.sh">cmake-2.8.11-rc3-IRIX64-64.sh</a></td><td align="right">2013-04-18 17:33 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3-IRIX64-64.tar.Z">cmake-2.8.11-rc3-IRIX64-64.tar.Z</a></td><td align="right">2013-04-18 17:33 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3-IRIX64-64.tar.gz">cmake-2.8.11-rc3-IRIX64-64.tar.gz</a></td><td align="right">2013-04-18 17:33 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc3-IRIX64-n32.sh">cmake-2.8.11-rc3-IRIX64-n32.sh</a></td><td align="right">2013-04-18 17:33 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3-IRIX64-n32.tar.Z">cmake-2.8.11-rc3-IRIX64-n32.tar.Z</a></td><td align="right">2013-04-18 17:33 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3-IRIX64-n32.tar.gz">cmake-2.8.11-rc3-IRIX64-n32.tar.gz</a></td><td align="right">2013-04-18 17:33 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc3-Linux-i386.sh">cmake-2.8.11-rc3-Linux-i386.sh</a></td><td align="right">2013-04-18 17:32 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3-Linux-i386.tar.Z">cmake-2.8.11-rc3-Linux-i386.tar.Z</a></td><td align="right">2013-04-18 17:32 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3-Linux-i386.tar.gz">cmake-2.8.11-rc3-Linux-i386.tar.gz</a></td><td align="right">2013-04-18 17:32 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc3-SHA-256.txt">cmake-2.8.11-rc3-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc3-SHA-256.txt.asc">cmake-2.8.11-rc3-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3-win32-x86.exe">cmake-2.8.11-rc3-win32-x86.exe</a></td><td align="right">2013-04-18 17:32 </td><td align="right">9.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3-win32-x86.zip">cmake-2.8.11-rc3-win32-x86.zip</a></td><td align="right">2013-04-18 17:32 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3.tar.Z">cmake-2.8.11-rc3.tar.Z</a></td><td align="right">2013-04-18 17:32 </td><td align="right">8.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3.tar.gz">cmake-2.8.11-rc3.tar.gz</a></td><td align="right">2013-04-18 17:32 </td><td align="right">5.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc3.zip">cmake-2.8.11-rc3.zip</a></td><td align="right">2013-04-18 17:32 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc4-AIX-powerpc.sh">cmake-2.8.11-rc4-AIX-powerpc.sh</a></td><td align="right">2013-05-08 09:54 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4-AIX-powerpc.tar.Z">cmake-2.8.11-rc4-AIX-powerpc.tar.Z</a></td><td align="right">2013-05-08 09:54 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4-AIX-powerpc.tar.gz">cmake-2.8.11-rc4-AIX-powerpc.tar.gz</a></td><td align="right">2013-05-08 09:54 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4-Darwin-universal.dmg">cmake-2.8.11-rc4-Darwin-universal.dmg</a></td><td align="right">2013-05-08 09:54 </td><td align="right"> 42M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4-Darwin-universal.tar.Z">cmake-2.8.11-rc4-Darwin-universal.tar.Z</a></td><td align="right">2013-05-08 09:54 </td><td align="right"> 59M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4-Darwin-universal.tar.gz">cmake-2.8.11-rc4-Darwin-universal.tar.gz</a></td><td align="right">2013-05-08 09:54 </td><td align="right"> 42M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4-Darwin64-universal.dmg">cmake-2.8.11-rc4-Darwin64-universal.dmg</a></td><td align="right">2013-05-08 09:54 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4-Darwin64-universal.tar.Z">cmake-2.8.11-rc4-Darwin64-universal.tar.Z</a></td><td align="right">2013-05-08 09:54 </td><td align="right"> 55M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4-Darwin64-universal.tar.gz">cmake-2.8.11-rc4-Darwin64-universal.tar.gz</a></td><td align="right">2013-05-08 09:54 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc4-IRIX64-64.sh">cmake-2.8.11-rc4-IRIX64-64.sh</a></td><td align="right">2013-05-08 09:54 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4-IRIX64-64.tar.Z">cmake-2.8.11-rc4-IRIX64-64.tar.Z</a></td><td align="right">2013-05-08 09:54 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4-IRIX64-64.tar.gz">cmake-2.8.11-rc4-IRIX64-64.tar.gz</a></td><td align="right">2013-05-08 09:53 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc4-IRIX64-n32.sh">cmake-2.8.11-rc4-IRIX64-n32.sh</a></td><td align="right">2013-05-08 09:53 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4-IRIX64-n32.tar.Z">cmake-2.8.11-rc4-IRIX64-n32.tar.Z</a></td><td align="right">2013-05-08 09:53 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4-IRIX64-n32.tar.gz">cmake-2.8.11-rc4-IRIX64-n32.tar.gz</a></td><td align="right">2013-05-08 09:53 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc4-Linux-i386.sh">cmake-2.8.11-rc4-Linux-i386.sh</a></td><td align="right">2013-05-08 09:53 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4-Linux-i386.tar.Z">cmake-2.8.11-rc4-Linux-i386.tar.Z</a></td><td align="right">2013-05-08 09:53 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4-Linux-i386.tar.gz">cmake-2.8.11-rc4-Linux-i386.tar.gz</a></td><td align="right">2013-05-08 09:53 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc4-SHA-256.txt">cmake-2.8.11-rc4-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11-rc4-SHA-256.txt.asc">cmake-2.8.11-rc4-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4-win32-x86.exe">cmake-2.8.11-rc4-win32-x86.exe</a></td><td align="right">2013-05-08 09:53 </td><td align="right">9.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4-win32-x86.zip">cmake-2.8.11-rc4-win32-x86.zip</a></td><td align="right">2013-05-08 09:53 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4.tar.Z">cmake-2.8.11-rc4.tar.Z</a></td><td align="right">2013-05-08 09:53 </td><td align="right">8.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4.tar.gz">cmake-2.8.11-rc4.tar.gz</a></td><td align="right">2013-05-08 09:53 </td><td align="right">5.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-rc4.zip">cmake-2.8.11-rc4.zip</a></td><td align="right">2013-05-08 09:53 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-win32-x86.exe">cmake-2.8.11-win32-x86.exe</a></td><td align="right">2013-05-15 15:53 </td><td align="right">9.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11-win32-x86.zip">cmake-2.8.11-win32-x86.zip</a></td><td align="right">2013-05-15 15:53 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11.1-AIX-powerpc.sh">cmake-2.8.11.1-AIX-powerpc.sh</a></td><td align="right">2013-06-07 14:41 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1-AIX-powerpc.tar.Z">cmake-2.8.11.1-AIX-powerpc.tar.Z</a></td><td align="right">2013-06-07 14:41 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1-AIX-powerpc.tar.gz">cmake-2.8.11.1-AIX-powerpc.tar.gz</a></td><td align="right">2013-06-07 14:41 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1-Darwin-universal.dmg">cmake-2.8.11.1-Darwin-universal.dmg</a></td><td align="right">2013-06-07 14:41 </td><td align="right"> 42M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1-Darwin-universal.tar.Z">cmake-2.8.11.1-Darwin-universal.tar.Z</a></td><td align="right">2013-06-07 14:41 </td><td align="right"> 59M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1-Darwin-universal.tar.gz">cmake-2.8.11.1-Darwin-universal.tar.gz</a></td><td align="right">2013-06-07 14:41 </td><td align="right"> 42M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1-Darwin64-universal.dmg">cmake-2.8.11.1-Darwin64-universal.dmg</a></td><td align="right">2013-06-07 14:41 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1-Darwin64-universal.tar.Z">cmake-2.8.11.1-Darwin64-universal.tar.Z</a></td><td align="right">2013-06-07 14:41 </td><td align="right"> 55M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1-Darwin64-universal.tar.gz">cmake-2.8.11.1-Darwin64-universal.tar.gz</a></td><td align="right">2013-06-07 14:41 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11.1-IRIX64-64.sh">cmake-2.8.11.1-IRIX64-64.sh</a></td><td align="right">2013-06-07 14:41 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1-IRIX64-64.tar.Z">cmake-2.8.11.1-IRIX64-64.tar.Z</a></td><td align="right">2013-06-07 14:41 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1-IRIX64-64.tar.gz">cmake-2.8.11.1-IRIX64-64.tar.gz</a></td><td align="right">2013-06-07 14:41 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11.1-IRIX64-n32.sh">cmake-2.8.11.1-IRIX64-n32.sh</a></td><td align="right">2013-06-07 14:41 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1-IRIX64-n32.tar.Z">cmake-2.8.11.1-IRIX64-n32.tar.Z</a></td><td align="right">2013-06-07 14:41 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1-IRIX64-n32.tar.gz">cmake-2.8.11.1-IRIX64-n32.tar.gz</a></td><td align="right">2013-06-07 14:41 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11.1-Linux-i386.sh">cmake-2.8.11.1-Linux-i386.sh</a></td><td align="right">2013-06-07 14:41 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1-Linux-i386.tar.Z">cmake-2.8.11.1-Linux-i386.tar.Z</a></td><td align="right">2013-06-07 14:40 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1-Linux-i386.tar.gz">cmake-2.8.11.1-Linux-i386.tar.gz</a></td><td align="right">2013-06-07 14:40 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11.1-SHA-256.txt">cmake-2.8.11.1-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11.1-SHA-256.txt.asc">cmake-2.8.11.1-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1-win32-x86.exe">cmake-2.8.11.1-win32-x86.exe</a></td><td align="right">2013-06-07 14:40 </td><td align="right">9.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1-win32-x86.zip">cmake-2.8.11.1-win32-x86.zip</a></td><td align="right">2013-06-07 14:40 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1.tar.Z">cmake-2.8.11.1.tar.Z</a></td><td align="right">2013-06-07 14:40 </td><td align="right">8.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1.tar.gz">cmake-2.8.11.1.tar.gz</a></td><td align="right">2013-06-07 14:40 </td><td align="right">5.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.1.zip">cmake-2.8.11.1.zip</a></td><td align="right">2013-06-07 14:40 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11.2-AIX-powerpc.sh">cmake-2.8.11.2-AIX-powerpc.sh</a></td><td align="right">2013-07-03 11:53 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2-AIX-powerpc.tar.Z">cmake-2.8.11.2-AIX-powerpc.tar.Z</a></td><td align="right">2013-07-03 11:53 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2-AIX-powerpc.tar.gz">cmake-2.8.11.2-AIX-powerpc.tar.gz</a></td><td align="right">2013-07-03 11:53 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2-Darwin-universal.dmg">cmake-2.8.11.2-Darwin-universal.dmg</a></td><td align="right">2013-07-03 11:53 </td><td align="right"> 42M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2-Darwin-universal.tar.Z">cmake-2.8.11.2-Darwin-universal.tar.Z</a></td><td align="right">2013-07-03 11:53 </td><td align="right"> 59M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2-Darwin-universal.tar.gz">cmake-2.8.11.2-Darwin-universal.tar.gz</a></td><td align="right">2013-07-03 11:53 </td><td align="right"> 42M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2-Darwin64-universal.dmg">cmake-2.8.11.2-Darwin64-universal.dmg</a></td><td align="right">2013-07-03 11:53 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2-Darwin64-universal.tar.Z">cmake-2.8.11.2-Darwin64-universal.tar.Z</a></td><td align="right">2013-07-03 11:53 </td><td align="right"> 55M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2-Darwin64-universal.tar.gz">cmake-2.8.11.2-Darwin64-universal.tar.gz</a></td><td align="right">2013-07-03 11:53 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11.2-IRIX64-64.sh">cmake-2.8.11.2-IRIX64-64.sh</a></td><td align="right">2013-07-03 11:53 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2-IRIX64-64.tar.Z">cmake-2.8.11.2-IRIX64-64.tar.Z</a></td><td align="right">2013-07-03 11:53 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2-IRIX64-64.tar.gz">cmake-2.8.11.2-IRIX64-64.tar.gz</a></td><td align="right">2013-07-03 11:52 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11.2-IRIX64-n32.sh">cmake-2.8.11.2-IRIX64-n32.sh</a></td><td align="right">2013-07-03 11:52 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2-IRIX64-n32.tar.Z">cmake-2.8.11.2-IRIX64-n32.tar.Z</a></td><td align="right">2013-07-03 11:52 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2-IRIX64-n32.tar.gz">cmake-2.8.11.2-IRIX64-n32.tar.gz</a></td><td align="right">2013-07-03 11:52 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11.2-Linux-i386.sh">cmake-2.8.11.2-Linux-i386.sh</a></td><td align="right">2013-07-03 11:52 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2-Linux-i386.tar.Z">cmake-2.8.11.2-Linux-i386.tar.Z</a></td><td align="right">2013-07-03 11:52 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2-Linux-i386.tar.gz">cmake-2.8.11.2-Linux-i386.tar.gz</a></td><td align="right">2013-07-03 11:52 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11.2-SHA-256.txt">cmake-2.8.11.2-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.11.2-SHA-256.txt.asc">cmake-2.8.11.2-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2-win32-x86.exe">cmake-2.8.11.2-win32-x86.exe</a></td><td align="right">2013-07-03 11:52 </td><td align="right">9.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2-win32-x86.zip">cmake-2.8.11.2-win32-x86.zip</a></td><td align="right">2013-07-03 11:52 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2.tar.Z">cmake-2.8.11.2.tar.Z</a></td><td align="right">2013-07-03 11:52 </td><td align="right">8.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2.tar.gz">cmake-2.8.11.2.tar.gz</a></td><td align="right">2013-07-03 11:52 </td><td align="right">5.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.2.zip">cmake-2.8.11.2.zip</a></td><td align="right">2013-07-03 11:52 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.tar.Z">cmake-2.8.11.tar.Z</a></td><td align="right">2013-05-15 15:53 </td><td align="right">8.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.tar.gz">cmake-2.8.11.tar.gz</a></td><td align="right">2013-05-15 15:53 </td><td align="right">5.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.11.zip">cmake-2.8.11.zip</a></td><td align="right">2013-05-15 15:53 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-AIX-powerpc.sh">cmake-2.8.12-AIX-powerpc.sh</a></td><td align="right">2013-10-07 14:34 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-AIX-powerpc.tar.Z">cmake-2.8.12-AIX-powerpc.tar.Z</a></td><td align="right">2013-10-07 14:34 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-AIX-powerpc.tar.gz">cmake-2.8.12-AIX-powerpc.tar.gz</a></td><td align="right">2013-10-07 14:34 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-Darwin-universal.dmg">cmake-2.8.12-Darwin-universal.dmg</a></td><td align="right">2013-10-07 14:34 </td><td align="right"> 43M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-Darwin-universal.tar.Z">cmake-2.8.12-Darwin-universal.tar.Z</a></td><td align="right">2013-10-07 14:33 </td><td align="right"> 61M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-Darwin-universal.tar.gz">cmake-2.8.12-Darwin-universal.tar.gz</a></td><td align="right">2013-10-07 14:33 </td><td align="right"> 43M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-Darwin64-universal.dmg">cmake-2.8.12-Darwin64-universal.dmg</a></td><td align="right">2013-10-07 14:33 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-Darwin64-universal.tar.Z">cmake-2.8.12-Darwin64-universal.tar.Z</a></td><td align="right">2013-10-07 14:33 </td><td align="right"> 57M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-Darwin64-universal.tar.gz">cmake-2.8.12-Darwin64-universal.tar.gz</a></td><td align="right">2013-10-07 14:33 </td><td align="right"> 40M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-IRIX64-64.sh">cmake-2.8.12-IRIX64-64.sh</a></td><td align="right">2013-10-07 14:33 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-IRIX64-64.tar.Z">cmake-2.8.12-IRIX64-64.tar.Z</a></td><td align="right">2013-10-07 14:33 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-IRIX64-64.tar.gz">cmake-2.8.12-IRIX64-64.tar.gz</a></td><td align="right">2013-10-07 14:33 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-IRIX64-n32.sh">cmake-2.8.12-IRIX64-n32.sh</a></td><td align="right">2013-10-07 14:33 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-IRIX64-n32.tar.Z">cmake-2.8.12-IRIX64-n32.tar.Z</a></td><td align="right">2013-10-07 14:33 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-IRIX64-n32.tar.gz">cmake-2.8.12-IRIX64-n32.tar.gz</a></td><td align="right">2013-10-07 14:33 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-Linux-i386.sh">cmake-2.8.12-Linux-i386.sh</a></td><td align="right">2013-10-07 14:33 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-Linux-i386.tar.Z">cmake-2.8.12-Linux-i386.tar.Z</a></td><td align="right">2013-10-07 14:33 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-Linux-i386.tar.gz">cmake-2.8.12-Linux-i386.tar.gz</a></td><td align="right">2013-10-07 14:33 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-SHA-256.txt">cmake-2.8.12-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.1K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-SHA-256.txt.asc">cmake-2.8.12-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc1-AIX-powerpc.sh">cmake-2.8.12-rc1-AIX-powerpc.sh</a></td><td align="right">2013-08-19 08:54 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1-AIX-powerpc.tar.Z">cmake-2.8.12-rc1-AIX-powerpc.tar.Z</a></td><td align="right">2013-08-19 08:54 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1-AIX-powerpc.tar.gz">cmake-2.8.12-rc1-AIX-powerpc.tar.gz</a></td><td align="right">2013-08-19 08:54 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1-Darwin-universal.dmg">cmake-2.8.12-rc1-Darwin-universal.dmg</a></td><td align="right">2013-08-19 08:54 </td><td align="right"> 43M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1-Darwin-universal.tar.Z">cmake-2.8.12-rc1-Darwin-universal.tar.Z</a></td><td align="right">2013-08-19 08:53 </td><td align="right"> 61M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1-Darwin-universal.tar.gz">cmake-2.8.12-rc1-Darwin-universal.tar.gz</a></td><td align="right">2013-08-19 08:53 </td><td align="right"> 43M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1-Darwin64-universal.dmg">cmake-2.8.12-rc1-Darwin64-universal.dmg</a></td><td align="right">2013-08-19 08:53 </td><td align="right"> 40M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1-Darwin64-universal.tar.Z">cmake-2.8.12-rc1-Darwin64-universal.tar.Z</a></td><td align="right">2013-08-19 08:53 </td><td align="right"> 57M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1-Darwin64-universal.tar.gz">cmake-2.8.12-rc1-Darwin64-universal.tar.gz</a></td><td align="right">2013-08-19 08:53 </td><td align="right"> 40M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc1-IRIX64-64.sh">cmake-2.8.12-rc1-IRIX64-64.sh</a></td><td align="right">2013-08-19 08:53 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1-IRIX64-64.tar.Z">cmake-2.8.12-rc1-IRIX64-64.tar.Z</a></td><td align="right">2013-08-19 08:53 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1-IRIX64-64.tar.gz">cmake-2.8.12-rc1-IRIX64-64.tar.gz</a></td><td align="right">2013-08-19 08:53 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc1-IRIX64-n32.sh">cmake-2.8.12-rc1-IRIX64-n32.sh</a></td><td align="right">2013-08-19 08:53 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1-IRIX64-n32.tar.Z">cmake-2.8.12-rc1-IRIX64-n32.tar.Z</a></td><td align="right">2013-08-19 08:53 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1-IRIX64-n32.tar.gz">cmake-2.8.12-rc1-IRIX64-n32.tar.gz</a></td><td align="right">2013-08-19 08:53 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc1-Linux-i386.sh">cmake-2.8.12-rc1-Linux-i386.sh</a></td><td align="right">2013-08-19 08:52 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1-Linux-i386.tar.Z">cmake-2.8.12-rc1-Linux-i386.tar.Z</a></td><td align="right">2013-08-19 08:52 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1-Linux-i386.tar.gz">cmake-2.8.12-rc1-Linux-i386.tar.gz</a></td><td align="right">2013-08-19 08:52 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc1-SHA-256.txt">cmake-2.8.12-rc1-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc1-SHA-256.txt.asc">cmake-2.8.12-rc1-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1-win32-x86.exe">cmake-2.8.12-rc1-win32-x86.exe</a></td><td align="right">2013-08-19 08:52 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1-win32-x86.zip">cmake-2.8.12-rc1-win32-x86.zip</a></td><td align="right">2013-08-19 08:52 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1.tar.Z">cmake-2.8.12-rc1.tar.Z</a></td><td align="right">2013-08-19 08:52 </td><td align="right">9.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1.tar.gz">cmake-2.8.12-rc1.tar.gz</a></td><td align="right">2013-08-19 08:52 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc1.zip">cmake-2.8.12-rc1.zip</a></td><td align="right">2013-08-19 08:52 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc2-AIX-powerpc.sh">cmake-2.8.12-rc2-AIX-powerpc.sh</a></td><td align="right">2013-08-30 15:59 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2-AIX-powerpc.tar.Z">cmake-2.8.12-rc2-AIX-powerpc.tar.Z</a></td><td align="right">2013-08-30 15:59 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2-AIX-powerpc.tar.gz">cmake-2.8.12-rc2-AIX-powerpc.tar.gz</a></td><td align="right">2013-08-30 15:59 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2-Darwin-universal.dmg">cmake-2.8.12-rc2-Darwin-universal.dmg</a></td><td align="right">2013-08-30 15:59 </td><td align="right"> 43M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2-Darwin-universal.tar.Z">cmake-2.8.12-rc2-Darwin-universal.tar.Z</a></td><td align="right">2013-08-30 15:59 </td><td align="right"> 61M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2-Darwin-universal.tar.gz">cmake-2.8.12-rc2-Darwin-universal.tar.gz</a></td><td align="right">2013-08-30 15:59 </td><td align="right"> 43M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2-Darwin64-universal.dmg">cmake-2.8.12-rc2-Darwin64-universal.dmg</a></td><td align="right">2013-08-30 15:59 </td><td align="right"> 40M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2-Darwin64-universal.tar.Z">cmake-2.8.12-rc2-Darwin64-universal.tar.Z</a></td><td align="right">2013-08-30 15:59 </td><td align="right"> 57M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2-Darwin64-universal.tar.gz">cmake-2.8.12-rc2-Darwin64-universal.tar.gz</a></td><td align="right">2013-08-30 15:58 </td><td align="right"> 40M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2-IRIX64-64.tar.Z">cmake-2.8.12-rc2-IRIX64-64.tar.Z</a></td><td align="right">2013-08-30 15:58 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2-IRIX64-64.tar.gz">cmake-2.8.12-rc2-IRIX64-64.tar.gz</a></td><td align="right">2013-08-30 15:58 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc2-IRIX64-n32.sh">cmake-2.8.12-rc2-IRIX64-n32.sh</a></td><td align="right">2013-08-30 15:58 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2-IRIX64-n32.tar.Z">cmake-2.8.12-rc2-IRIX64-n32.tar.Z</a></td><td align="right">2013-08-30 15:58 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2-IRIX64-n32.tar.gz">cmake-2.8.12-rc2-IRIX64-n32.tar.gz</a></td><td align="right">2013-08-30 15:58 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc2-Linux-i386.sh">cmake-2.8.12-rc2-Linux-i386.sh</a></td><td align="right">2013-08-30 15:58 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2-Linux-i386.tar.Z">cmake-2.8.12-rc2-Linux-i386.tar.Z</a></td><td align="right">2013-08-30 15:58 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2-Linux-i386.tar.gz">cmake-2.8.12-rc2-Linux-i386.tar.gz</a></td><td align="right">2013-08-30 15:58 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc2-SHA-256.txt">cmake-2.8.12-rc2-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.1K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc2-SHA-256.txt.asc">cmake-2.8.12-rc2-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2-win32-x86.exe">cmake-2.8.12-rc2-win32-x86.exe</a></td><td align="right">2013-08-30 15:58 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2-win32-x86.zip">cmake-2.8.12-rc2-win32-x86.zip</a></td><td align="right">2013-08-30 15:58 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2.tar.Z">cmake-2.8.12-rc2.tar.Z</a></td><td align="right">2013-08-30 15:58 </td><td align="right">9.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2.tar.gz">cmake-2.8.12-rc2.tar.gz</a></td><td align="right">2013-08-30 15:58 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc2.zip">cmake-2.8.12-rc2.zip</a></td><td align="right">2013-08-30 15:58 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc3-AIX-powerpc.sh">cmake-2.8.12-rc3-AIX-powerpc.sh</a></td><td align="right">2013-09-10 15:39 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc3-AIX-powerpc.tar.Z">cmake-2.8.12-rc3-AIX-powerpc.tar.Z</a></td><td align="right">2013-09-10 15:39 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc3-AIX-powerpc.tar.gz">cmake-2.8.12-rc3-AIX-powerpc.tar.gz</a></td><td align="right">2013-09-10 15:39 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc3-Darwin-universal.dmg">cmake-2.8.12-rc3-Darwin-universal.dmg</a></td><td align="right">2013-09-10 15:39 </td><td align="right"> 43M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc3-Darwin-universal.tar.Z">cmake-2.8.12-rc3-Darwin-universal.tar.Z</a></td><td align="right">2013-09-10 15:39 </td><td align="right"> 61M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc3-Darwin-universal.tar.gz">cmake-2.8.12-rc3-Darwin-universal.tar.gz</a></td><td align="right">2013-09-10 15:39 </td><td align="right"> 43M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc3-Darwin64-universal.dmg">cmake-2.8.12-rc3-Darwin64-universal.dmg</a></td><td align="right">2013-09-10 15:39 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc3-Darwin64-universal.tar.Z">cmake-2.8.12-rc3-Darwin64-universal.tar.Z</a></td><td align="right">2013-09-10 15:39 </td><td align="right"> 57M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc3-Darwin64-universal.tar.gz">cmake-2.8.12-rc3-Darwin64-universal.tar.gz</a></td><td align="right">2013-09-10 15:39 </td><td align="right"> 40M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc3-Linux-i386.sh">cmake-2.8.12-rc3-Linux-i386.sh</a></td><td align="right">2013-09-10 15:39 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc3-Linux-i386.tar.Z">cmake-2.8.12-rc3-Linux-i386.tar.Z</a></td><td align="right">2013-09-10 15:39 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc3-Linux-i386.tar.gz">cmake-2.8.12-rc3-Linux-i386.tar.gz</a></td><td align="right">2013-09-10 15:39 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc3-SHA-256.txt">cmake-2.8.12-rc3-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.7K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc3-SHA-256.txt.asc">cmake-2.8.12-rc3-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc3-win32-x86.exe">cmake-2.8.12-rc3-win32-x86.exe</a></td><td align="right">2013-09-10 15:39 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc3-win32-x86.zip">cmake-2.8.12-rc3-win32-x86.zip</a></td><td align="right">2013-09-10 15:38 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc3.tar.Z">cmake-2.8.12-rc3.tar.Z</a></td><td align="right">2013-09-10 15:38 </td><td align="right">9.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc3.tar.gz">cmake-2.8.12-rc3.tar.gz</a></td><td align="right">2013-09-10 15:38 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc3.zip">cmake-2.8.12-rc3.zip</a></td><td align="right">2013-09-10 15:38 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc4-AIX-powerpc.sh">cmake-2.8.12-rc4-AIX-powerpc.sh</a></td><td align="right">2013-10-01 16:23 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4-AIX-powerpc.tar.Z">cmake-2.8.12-rc4-AIX-powerpc.tar.Z</a></td><td align="right">2013-10-01 16:23 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4-AIX-powerpc.tar.gz">cmake-2.8.12-rc4-AIX-powerpc.tar.gz</a></td><td align="right">2013-10-01 16:23 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4-Darwin-universal.dmg">cmake-2.8.12-rc4-Darwin-universal.dmg</a></td><td align="right">2013-10-01 16:23 </td><td align="right"> 43M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4-Darwin-universal.tar.Z">cmake-2.8.12-rc4-Darwin-universal.tar.Z</a></td><td align="right">2013-10-01 16:23 </td><td align="right"> 61M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4-Darwin-universal.tar.gz">cmake-2.8.12-rc4-Darwin-universal.tar.gz</a></td><td align="right">2013-10-01 16:23 </td><td align="right"> 43M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4-Darwin64-universal.dmg">cmake-2.8.12-rc4-Darwin64-universal.dmg</a></td><td align="right">2013-10-01 16:23 </td><td align="right"> 40M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4-Darwin64-universal.tar.Z">cmake-2.8.12-rc4-Darwin64-universal.tar.Z</a></td><td align="right">2013-10-01 16:23 </td><td align="right"> 57M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4-Darwin64-universal.tar.gz">cmake-2.8.12-rc4-Darwin64-universal.tar.gz</a></td><td align="right">2013-10-01 16:23 </td><td align="right"> 40M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc4-IRIX64-64.sh">cmake-2.8.12-rc4-IRIX64-64.sh</a></td><td align="right">2013-10-01 16:23 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4-IRIX64-64.tar.Z">cmake-2.8.12-rc4-IRIX64-64.tar.Z</a></td><td align="right">2013-10-01 16:23 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4-IRIX64-64.tar.gz">cmake-2.8.12-rc4-IRIX64-64.tar.gz</a></td><td align="right">2013-10-01 16:23 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc4-IRIX64-n32.sh">cmake-2.8.12-rc4-IRIX64-n32.sh</a></td><td align="right">2013-10-01 16:23 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4-IRIX64-n32.tar.Z">cmake-2.8.12-rc4-IRIX64-n32.tar.Z</a></td><td align="right">2013-10-01 16:23 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4-IRIX64-n32.tar.gz">cmake-2.8.12-rc4-IRIX64-n32.tar.gz</a></td><td align="right">2013-10-01 16:23 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc4-Linux-i386.sh">cmake-2.8.12-rc4-Linux-i386.sh</a></td><td align="right">2013-10-01 16:23 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4-Linux-i386.tar.Z">cmake-2.8.12-rc4-Linux-i386.tar.Z</a></td><td align="right">2013-10-01 16:23 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4-Linux-i386.tar.gz">cmake-2.8.12-rc4-Linux-i386.tar.gz</a></td><td align="right">2013-10-01 16:23 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc4-SHA-256.txt">cmake-2.8.12-rc4-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12-rc4-SHA-256.txt.asc">cmake-2.8.12-rc4-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4-win32-x86.exe">cmake-2.8.12-rc4-win32-x86.exe</a></td><td align="right">2013-10-01 16:22 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4-win32-x86.zip">cmake-2.8.12-rc4-win32-x86.zip</a></td><td align="right">2013-10-01 16:22 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4.tar.Z">cmake-2.8.12-rc4.tar.Z</a></td><td align="right">2013-10-01 16:22 </td><td align="right">9.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4.tar.gz">cmake-2.8.12-rc4.tar.gz</a></td><td align="right">2013-10-01 16:22 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-rc4.zip">cmake-2.8.12-rc4.zip</a></td><td align="right">2013-10-01 16:22 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-win32-x86.exe">cmake-2.8.12-win32-x86.exe</a></td><td align="right">2013-10-07 14:33 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12-win32-x86.zip">cmake-2.8.12-win32-x86.zip</a></td><td align="right">2013-10-07 14:33 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12.1-AIX-powerpc.sh">cmake-2.8.12.1-AIX-powerpc.sh</a></td><td align="right">2013-11-06 10:48 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1-AIX-powerpc.tar.Z">cmake-2.8.12.1-AIX-powerpc.tar.Z</a></td><td align="right">2013-11-06 10:47 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1-AIX-powerpc.tar.gz">cmake-2.8.12.1-AIX-powerpc.tar.gz</a></td><td align="right">2013-11-06 10:47 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1-Darwin-universal.dmg">cmake-2.8.12.1-Darwin-universal.dmg</a></td><td align="right">2013-11-06 10:47 </td><td align="right"> 43M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1-Darwin-universal.tar.Z">cmake-2.8.12.1-Darwin-universal.tar.Z</a></td><td align="right">2013-11-06 10:47 </td><td align="right"> 61M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1-Darwin-universal.tar.gz">cmake-2.8.12.1-Darwin-universal.tar.gz</a></td><td align="right">2013-11-06 10:47 </td><td align="right"> 43M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1-Darwin64-universal.dmg">cmake-2.8.12.1-Darwin64-universal.dmg</a></td><td align="right">2013-11-06 10:47 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1-Darwin64-universal.tar.Z">cmake-2.8.12.1-Darwin64-universal.tar.Z</a></td><td align="right">2013-11-06 10:46 </td><td align="right"> 57M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1-Darwin64-universal.tar.gz">cmake-2.8.12.1-Darwin64-universal.tar.gz</a></td><td align="right">2013-11-06 10:46 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12.1-IRIX64-64.sh">cmake-2.8.12.1-IRIX64-64.sh</a></td><td align="right">2013-11-06 10:46 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1-IRIX64-64.tar.Z">cmake-2.8.12.1-IRIX64-64.tar.Z</a></td><td align="right">2013-11-06 10:46 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1-IRIX64-64.tar.gz">cmake-2.8.12.1-IRIX64-64.tar.gz</a></td><td align="right">2013-11-06 10:46 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12.1-IRIX64-n32.sh">cmake-2.8.12.1-IRIX64-n32.sh</a></td><td align="right">2013-11-06 10:46 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1-IRIX64-n32.tar.Z">cmake-2.8.12.1-IRIX64-n32.tar.Z</a></td><td align="right">2013-11-06 10:46 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1-IRIX64-n32.tar.gz">cmake-2.8.12.1-IRIX64-n32.tar.gz</a></td><td align="right">2013-11-06 10:46 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12.1-Linux-i386.sh">cmake-2.8.12.1-Linux-i386.sh</a></td><td align="right">2013-11-06 10:46 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1-Linux-i386.tar.Z">cmake-2.8.12.1-Linux-i386.tar.Z</a></td><td align="right">2013-11-06 10:46 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1-Linux-i386.tar.gz">cmake-2.8.12.1-Linux-i386.tar.gz</a></td><td align="right">2013-11-06 10:46 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12.1-SHA-256.txt">cmake-2.8.12.1-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12.1-SHA-256.txt.asc">cmake-2.8.12.1-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1-win32-x86.exe">cmake-2.8.12.1-win32-x86.exe</a></td><td align="right">2013-11-06 10:46 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1-win32-x86.zip">cmake-2.8.12.1-win32-x86.zip</a></td><td align="right">2013-11-06 10:46 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1.tar.Z">cmake-2.8.12.1.tar.Z</a></td><td align="right">2013-11-06 10:45 </td><td align="right">9.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1.tar.gz">cmake-2.8.12.1.tar.gz</a></td><td align="right">2013-11-06 10:45 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.1.zip">cmake-2.8.12.1.zip</a></td><td align="right">2013-11-06 10:45 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12.2-AIX-powerpc.sh">cmake-2.8.12.2-AIX-powerpc.sh</a></td><td align="right">2014-01-16 14:49 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2-AIX-powerpc.tar.Z">cmake-2.8.12.2-AIX-powerpc.tar.Z</a></td><td align="right">2014-01-16 14:49 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2-AIX-powerpc.tar.gz">cmake-2.8.12.2-AIX-powerpc.tar.gz</a></td><td align="right">2014-01-16 14:49 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2-Darwin-universal.dmg">cmake-2.8.12.2-Darwin-universal.dmg</a></td><td align="right">2014-01-16 14:48 </td><td align="right"> 43M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2-Darwin-universal.tar.Z">cmake-2.8.12.2-Darwin-universal.tar.Z</a></td><td align="right">2014-01-16 14:48 </td><td align="right"> 61M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2-Darwin-universal.tar.gz">cmake-2.8.12.2-Darwin-universal.tar.gz</a></td><td align="right">2014-01-16 14:48 </td><td align="right"> 43M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2-Darwin64-universal.dmg">cmake-2.8.12.2-Darwin64-universal.dmg</a></td><td align="right">2014-01-16 14:48 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2-Darwin64-universal.tar.Z">cmake-2.8.12.2-Darwin64-universal.tar.Z</a></td><td align="right">2014-01-16 14:48 </td><td align="right"> 57M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2-Darwin64-universal.tar.gz">cmake-2.8.12.2-Darwin64-universal.tar.gz</a></td><td align="right">2014-01-16 14:48 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12.2-IRIX64-64.sh">cmake-2.8.12.2-IRIX64-64.sh</a></td><td align="right">2014-01-16 14:48 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2-IRIX64-64.tar.Z">cmake-2.8.12.2-IRIX64-64.tar.Z</a></td><td align="right">2014-01-16 14:48 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2-IRIX64-64.tar.gz">cmake-2.8.12.2-IRIX64-64.tar.gz</a></td><td align="right">2014-01-16 14:48 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12.2-IRIX64-n32.sh">cmake-2.8.12.2-IRIX64-n32.sh</a></td><td align="right">2014-01-16 14:48 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2-IRIX64-n32.tar.Z">cmake-2.8.12.2-IRIX64-n32.tar.Z</a></td><td align="right">2014-01-16 14:48 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2-IRIX64-n32.tar.gz">cmake-2.8.12.2-IRIX64-n32.tar.gz</a></td><td align="right">2014-01-16 14:48 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12.2-Linux-i386.sh">cmake-2.8.12.2-Linux-i386.sh</a></td><td align="right">2014-01-16 14:48 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2-Linux-i386.tar.Z">cmake-2.8.12.2-Linux-i386.tar.Z</a></td><td align="right">2014-01-16 14:48 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2-Linux-i386.tar.gz">cmake-2.8.12.2-Linux-i386.tar.gz</a></td><td align="right">2014-01-16 14:48 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12.2-SHA-256.txt">cmake-2.8.12.2-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-2.8.12.2-SHA-256.txt.asc">cmake-2.8.12.2-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2-win32-x86.exe">cmake-2.8.12.2-win32-x86.exe</a></td><td align="right">2014-01-16 14:48 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2-win32-x86.zip">cmake-2.8.12.2-win32-x86.zip</a></td><td align="right">2014-01-16 14:48 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2.tar.Z">cmake-2.8.12.2.tar.Z</a></td><td align="right">2014-01-16 14:48 </td><td align="right">9.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2.tar.gz">cmake-2.8.12.2.tar.gz</a></td><td align="right">2014-01-16 14:48 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.2.zip">cmake-2.8.12.2.zip</a></td><td align="right">2014-01-16 14:48 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.tar.Z">cmake-2.8.12.tar.Z</a></td><td align="right">2013-10-07 14:32 </td><td align="right">9.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.tar.gz">cmake-2.8.12.tar.gz</a></td><td align="right">2013-10-07 14:32 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-2.8.12.zip">cmake-2.8.12.zip</a></td><td align="right">2013-10-07 14:32 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.0/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.0/index.html
new file mode 100644
index 000000000..2583dcd71
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.0/index.html
@@ -0,0 +1,209 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /files/v3.0</title>
+ </head>
+ <body>
+<h1>Index of /files/v3.0</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/files/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-1-src.tar.bz2">cmake-3.0.0-1-src.tar.bz2</a></td><td align="right">2014-06-10 13:28 </td><td align="right">4.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-1.tar.bz2">cmake-3.0.0-1.tar.bz2</a></td><td align="right">2014-06-10 13:28 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-Darwin-universal.dmg">cmake-3.0.0-Darwin-universal.dmg</a></td><td align="right">2014-06-10 13:28 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-Darwin-universal.tar.Z">cmake-3.0.0-Darwin-universal.tar.Z</a></td><td align="right">2014-06-10 13:27 </td><td align="right"> 58M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-Darwin-universal.tar.gz">cmake-3.0.0-Darwin-universal.tar.gz</a></td><td align="right">2014-06-10 13:27 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-Darwin64-universal.dmg">cmake-3.0.0-Darwin64-universal.dmg</a></td><td align="right">2014-06-10 13:27 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-Darwin64-universal.tar.Z">cmake-3.0.0-Darwin64-universal.tar.Z</a></td><td align="right">2014-06-10 13:27 </td><td align="right"> 54M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-Darwin64-universal.tar.gz">cmake-3.0.0-Darwin64-universal.tar.gz</a></td><td align="right">2014-06-10 13:27 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-Linux-i386.sh">cmake-3.0.0-Linux-i386.sh</a></td><td align="right">2014-06-10 13:27 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-Linux-i386.tar.Z">cmake-3.0.0-Linux-i386.tar.Z</a></td><td align="right">2014-06-10 13:27 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-Linux-i386.tar.gz">cmake-3.0.0-Linux-i386.tar.gz</a></td><td align="right">2014-06-10 13:27 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-SHA-256.txt">cmake-3.0.0-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.3K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-SHA-256.txt.asc">cmake-3.0.0-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1-1-src.tar.bz2">cmake-3.0.0-rc1-1-src.tar.bz2</a></td><td align="right">2014-02-28 13:54 </td><td align="right">4.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1-1.tar.bz2">cmake-3.0.0-rc1-1.tar.bz2</a></td><td align="right">2014-02-28 13:54 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc1-AIX-powerpc.sh">cmake-3.0.0-rc1-AIX-powerpc.sh</a></td><td align="right">2014-02-28 13:54 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1-AIX-powerpc.tar.Z">cmake-3.0.0-rc1-AIX-powerpc.tar.Z</a></td><td align="right">2014-02-28 13:54 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1-AIX-powerpc.tar.gz">cmake-3.0.0-rc1-AIX-powerpc.tar.gz</a></td><td align="right">2014-02-28 13:54 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1-Darwin-universal.dmg">cmake-3.0.0-rc1-Darwin-universal.dmg</a></td><td align="right">2014-02-28 13:54 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1-Darwin-universal.tar.Z">cmake-3.0.0-rc1-Darwin-universal.tar.Z</a></td><td align="right">2014-02-28 13:54 </td><td align="right"> 58M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1-Darwin-universal.tar.gz">cmake-3.0.0-rc1-Darwin-universal.tar.gz</a></td><td align="right">2014-02-28 13:54 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1-Darwin64-universal.dmg">cmake-3.0.0-rc1-Darwin64-universal.dmg</a></td><td align="right">2014-02-28 13:54 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1-Darwin64-universal.tar.Z">cmake-3.0.0-rc1-Darwin64-universal.tar.Z</a></td><td align="right">2014-02-28 13:54 </td><td align="right"> 54M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1-Darwin64-universal.tar.gz">cmake-3.0.0-rc1-Darwin64-universal.tar.gz</a></td><td align="right">2014-02-28 13:54 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc1-IRIX64-64.sh">cmake-3.0.0-rc1-IRIX64-64.sh</a></td><td align="right">2014-02-28 13:54 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1-IRIX64-64.tar.Z">cmake-3.0.0-rc1-IRIX64-64.tar.Z</a></td><td align="right">2014-02-28 13:54 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1-IRIX64-64.tar.gz">cmake-3.0.0-rc1-IRIX64-64.tar.gz</a></td><td align="right">2014-02-28 13:54 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc1-IRIX64-n32.sh">cmake-3.0.0-rc1-IRIX64-n32.sh</a></td><td align="right">2014-02-28 13:54 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1-IRIX64-n32.tar.Z">cmake-3.0.0-rc1-IRIX64-n32.tar.Z</a></td><td align="right">2014-02-28 13:54 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1-IRIX64-n32.tar.gz">cmake-3.0.0-rc1-IRIX64-n32.tar.gz</a></td><td align="right">2014-02-28 13:54 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc1-Linux-i386.sh">cmake-3.0.0-rc1-Linux-i386.sh</a></td><td align="right">2014-02-28 13:54 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1-Linux-i386.tar.Z">cmake-3.0.0-rc1-Linux-i386.tar.Z</a></td><td align="right">2014-02-28 13:54 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1-Linux-i386.tar.gz">cmake-3.0.0-rc1-Linux-i386.tar.gz</a></td><td align="right">2014-02-28 13:53 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc1-SHA-256.txt">cmake-3.0.0-rc1-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc1-SHA-256.txt.asc">cmake-3.0.0-rc1-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1-win32-x86.exe">cmake-3.0.0-rc1-win32-x86.exe</a></td><td align="right">2014-02-28 13:53 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1-win32-x86.zip">cmake-3.0.0-rc1-win32-x86.zip</a></td><td align="right">2014-02-28 13:53 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1.tar.Z">cmake-3.0.0-rc1.tar.Z</a></td><td align="right">2014-02-28 13:53 </td><td align="right">8.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1.tar.gz">cmake-3.0.0-rc1.tar.gz</a></td><td align="right">2014-02-28 13:53 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc1.zip">cmake-3.0.0-rc1.zip</a></td><td align="right">2014-02-28 13:53 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2-1-src.tar.bz2">cmake-3.0.0-rc2-1-src.tar.bz2</a></td><td align="right">2014-03-19 10:29 </td><td align="right">4.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2-1.tar.bz2">cmake-3.0.0-rc2-1.tar.bz2</a></td><td align="right">2014-03-19 10:28 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc2-AIX-powerpc.sh">cmake-3.0.0-rc2-AIX-powerpc.sh</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2-AIX-powerpc.tar.Z">cmake-3.0.0-rc2-AIX-powerpc.tar.Z</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2-AIX-powerpc.tar.gz">cmake-3.0.0-rc2-AIX-powerpc.tar.gz</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2-Darwin-universal.dmg">cmake-3.0.0-rc2-Darwin-universal.dmg</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2-Darwin-universal.tar.Z">cmake-3.0.0-rc2-Darwin-universal.tar.Z</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 58M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2-Darwin-universal.tar.gz">cmake-3.0.0-rc2-Darwin-universal.tar.gz</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2-Darwin64-universal.dmg">cmake-3.0.0-rc2-Darwin64-universal.dmg</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2-Darwin64-universal.tar.Z">cmake-3.0.0-rc2-Darwin64-universal.tar.Z</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 54M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2-Darwin64-universal.tar.gz">cmake-3.0.0-rc2-Darwin64-universal.tar.gz</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc2-IRIX64-64.sh">cmake-3.0.0-rc2-IRIX64-64.sh</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2-IRIX64-64.tar.Z">cmake-3.0.0-rc2-IRIX64-64.tar.Z</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2-IRIX64-64.tar.gz">cmake-3.0.0-rc2-IRIX64-64.tar.gz</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc2-IRIX64-n32.sh">cmake-3.0.0-rc2-IRIX64-n32.sh</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2-IRIX64-n32.tar.Z">cmake-3.0.0-rc2-IRIX64-n32.tar.Z</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2-IRIX64-n32.tar.gz">cmake-3.0.0-rc2-IRIX64-n32.tar.gz</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc2-Linux-i386.sh">cmake-3.0.0-rc2-Linux-i386.sh</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2-Linux-i386.tar.Z">cmake-3.0.0-rc2-Linux-i386.tar.Z</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2-Linux-i386.tar.gz">cmake-3.0.0-rc2-Linux-i386.tar.gz</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc2-SHA-256.txt">cmake-3.0.0-rc2-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc2-SHA-256.txt.asc">cmake-3.0.0-rc2-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2-win32-x86.exe">cmake-3.0.0-rc2-win32-x86.exe</a></td><td align="right">2014-03-19 10:28 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2-win32-x86.zip">cmake-3.0.0-rc2-win32-x86.zip</a></td><td align="right">2014-03-19 10:27 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2.tar.Z">cmake-3.0.0-rc2.tar.Z</a></td><td align="right">2014-03-19 10:27 </td><td align="right">8.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2.tar.gz">cmake-3.0.0-rc2.tar.gz</a></td><td align="right">2014-03-19 10:27 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc2.zip">cmake-3.0.0-rc2.zip</a></td><td align="right">2014-03-19 10:27 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3-1-src.tar.bz2">cmake-3.0.0-rc3-1-src.tar.bz2</a></td><td align="right">2014-03-26 13:00 </td><td align="right">4.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3-1.tar.bz2">cmake-3.0.0-rc3-1.tar.bz2</a></td><td align="right">2014-03-26 13:00 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc3-AIX-powerpc.sh">cmake-3.0.0-rc3-AIX-powerpc.sh</a></td><td align="right">2014-03-26 13:00 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3-AIX-powerpc.tar.Z">cmake-3.0.0-rc3-AIX-powerpc.tar.Z</a></td><td align="right">2014-03-26 13:00 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3-AIX-powerpc.tar.gz">cmake-3.0.0-rc3-AIX-powerpc.tar.gz</a></td><td align="right">2014-03-26 13:00 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3-Darwin-universal.dmg">cmake-3.0.0-rc3-Darwin-universal.dmg</a></td><td align="right">2014-03-26 13:00 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3-Darwin-universal.tar.Z">cmake-3.0.0-rc3-Darwin-universal.tar.Z</a></td><td align="right">2014-03-26 13:00 </td><td align="right"> 58M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3-Darwin-universal.tar.gz">cmake-3.0.0-rc3-Darwin-universal.tar.gz</a></td><td align="right">2014-03-26 13:00 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3-Darwin64-universal.dmg">cmake-3.0.0-rc3-Darwin64-universal.dmg</a></td><td align="right">2014-03-26 12:59 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3-Darwin64-universal.tar.Z">cmake-3.0.0-rc3-Darwin64-universal.tar.Z</a></td><td align="right">2014-03-26 12:59 </td><td align="right"> 54M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3-Darwin64-universal.tar.gz">cmake-3.0.0-rc3-Darwin64-universal.tar.gz</a></td><td align="right">2014-03-26 12:59 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc3-IRIX64-64.sh">cmake-3.0.0-rc3-IRIX64-64.sh</a></td><td align="right">2014-03-26 12:59 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3-IRIX64-64.tar.Z">cmake-3.0.0-rc3-IRIX64-64.tar.Z</a></td><td align="right">2014-03-26 12:59 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3-IRIX64-64.tar.gz">cmake-3.0.0-rc3-IRIX64-64.tar.gz</a></td><td align="right">2014-03-26 12:59 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc3-IRIX64-n32.sh">cmake-3.0.0-rc3-IRIX64-n32.sh</a></td><td align="right">2014-03-26 12:59 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3-IRIX64-n32.tar.Z">cmake-3.0.0-rc3-IRIX64-n32.tar.Z</a></td><td align="right">2014-03-26 12:59 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3-IRIX64-n32.tar.gz">cmake-3.0.0-rc3-IRIX64-n32.tar.gz</a></td><td align="right">2014-03-26 12:59 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc3-SHA-256.txt">cmake-3.0.0-rc3-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.9K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc3-SHA-256.txt.asc">cmake-3.0.0-rc3-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3-win32-x86.exe">cmake-3.0.0-rc3-win32-x86.exe</a></td><td align="right">2014-03-26 12:59 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3-win32-x86.zip">cmake-3.0.0-rc3-win32-x86.zip</a></td><td align="right">2014-03-26 12:59 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3.tar.Z">cmake-3.0.0-rc3.tar.Z</a></td><td align="right">2014-03-26 12:59 </td><td align="right">8.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3.tar.gz">cmake-3.0.0-rc3.tar.gz</a></td><td align="right">2014-03-26 12:59 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc3.zip">cmake-3.0.0-rc3.zip</a></td><td align="right">2014-03-26 12:59 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4-1-src.tar.bz2">cmake-3.0.0-rc4-1-src.tar.bz2</a></td><td align="right">2014-04-18 09:52 </td><td align="right">4.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4-1.tar.bz2">cmake-3.0.0-rc4-1.tar.bz2</a></td><td align="right">2014-04-18 09:52 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc4-AIX-powerpc.sh">cmake-3.0.0-rc4-AIX-powerpc.sh</a></td><td align="right">2014-04-18 09:52 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4-AIX-powerpc.tar.Z">cmake-3.0.0-rc4-AIX-powerpc.tar.Z</a></td><td align="right">2014-04-18 09:52 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4-AIX-powerpc.tar.gz">cmake-3.0.0-rc4-AIX-powerpc.tar.gz</a></td><td align="right">2014-04-18 09:52 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4-Darwin-universal.dmg">cmake-3.0.0-rc4-Darwin-universal.dmg</a></td><td align="right">2014-04-18 09:52 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4-Darwin-universal.tar.Z">cmake-3.0.0-rc4-Darwin-universal.tar.Z</a></td><td align="right">2014-04-18 09:52 </td><td align="right"> 58M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4-Darwin-universal.tar.gz">cmake-3.0.0-rc4-Darwin-universal.tar.gz</a></td><td align="right">2014-04-18 09:51 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4-Darwin64-universal.dmg">cmake-3.0.0-rc4-Darwin64-universal.dmg</a></td><td align="right">2014-04-18 09:51 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4-Darwin64-universal.tar.Z">cmake-3.0.0-rc4-Darwin64-universal.tar.Z</a></td><td align="right">2014-04-18 09:51 </td><td align="right"> 54M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4-Darwin64-universal.tar.gz">cmake-3.0.0-rc4-Darwin64-universal.tar.gz</a></td><td align="right">2014-04-18 09:51 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc4-IRIX64-64.sh">cmake-3.0.0-rc4-IRIX64-64.sh</a></td><td align="right">2014-04-18 09:51 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4-IRIX64-64.tar.Z">cmake-3.0.0-rc4-IRIX64-64.tar.Z</a></td><td align="right">2014-04-18 09:51 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4-IRIX64-64.tar.gz">cmake-3.0.0-rc4-IRIX64-64.tar.gz</a></td><td align="right">2014-04-18 09:51 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc4-IRIX64-n32.sh">cmake-3.0.0-rc4-IRIX64-n32.sh</a></td><td align="right">2014-04-18 09:51 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4-IRIX64-n32.tar.Z">cmake-3.0.0-rc4-IRIX64-n32.tar.Z</a></td><td align="right">2014-04-18 09:51 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4-IRIX64-n32.tar.gz">cmake-3.0.0-rc4-IRIX64-n32.tar.gz</a></td><td align="right">2014-04-18 09:51 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc4-Linux-i386.sh">cmake-3.0.0-rc4-Linux-i386.sh</a></td><td align="right">2014-04-18 09:51 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4-Linux-i386.tar.Z">cmake-3.0.0-rc4-Linux-i386.tar.Z</a></td><td align="right">2014-04-18 09:51 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4-Linux-i386.tar.gz">cmake-3.0.0-rc4-Linux-i386.tar.gz</a></td><td align="right">2014-04-18 09:51 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc4-SHA-256.txt">cmake-3.0.0-rc4-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">2.2K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc4-SHA-256.txt.asc">cmake-3.0.0-rc4-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4-win32-x86.exe">cmake-3.0.0-rc4-win32-x86.exe</a></td><td align="right">2014-04-18 09:51 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4-win32-x86.zip">cmake-3.0.0-rc4-win32-x86.zip</a></td><td align="right">2014-04-18 09:51 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4.tar.Z">cmake-3.0.0-rc4.tar.Z</a></td><td align="right">2014-04-18 09:51 </td><td align="right">8.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4.tar.gz">cmake-3.0.0-rc4.tar.gz</a></td><td align="right">2014-04-18 09:51 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc4.zip">cmake-3.0.0-rc4.zip</a></td><td align="right">2014-04-18 09:51 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc5-1-src.tar.bz2">cmake-3.0.0-rc5-1-src.tar.bz2</a></td><td align="right">2014-05-13 14:25 </td><td align="right">4.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc5-1.tar.bz2">cmake-3.0.0-rc5-1.tar.bz2</a></td><td align="right">2014-05-13 14:25 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc5-Darwin-universal.dmg">cmake-3.0.0-rc5-Darwin-universal.dmg</a></td><td align="right">2014-05-13 14:25 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc5-Darwin-universal.tar.Z">cmake-3.0.0-rc5-Darwin-universal.tar.Z</a></td><td align="right">2014-05-13 14:24 </td><td align="right"> 58M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc5-Darwin-universal.tar.gz">cmake-3.0.0-rc5-Darwin-universal.tar.gz</a></td><td align="right">2014-05-13 14:24 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc5-Darwin64-universal.dmg">cmake-3.0.0-rc5-Darwin64-universal.dmg</a></td><td align="right">2014-05-13 14:24 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc5-Darwin64-universal.tar.Z">cmake-3.0.0-rc5-Darwin64-universal.tar.Z</a></td><td align="right">2014-05-13 14:24 </td><td align="right"> 54M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc5-Darwin64-universal.tar.gz">cmake-3.0.0-rc5-Darwin64-universal.tar.gz</a></td><td align="right">2014-05-13 14:24 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc5-Linux-i386.sh">cmake-3.0.0-rc5-Linux-i386.sh</a></td><td align="right">2014-05-13 14:24 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc5-Linux-i386.tar.Z">cmake-3.0.0-rc5-Linux-i386.tar.Z</a></td><td align="right">2014-05-13 14:24 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc5-Linux-i386.tar.gz">cmake-3.0.0-rc5-Linux-i386.tar.gz</a></td><td align="right">2014-05-13 14:24 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc5-SHA-256.txt">cmake-3.0.0-rc5-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.4K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc5-SHA-256.txt.asc">cmake-3.0.0-rc5-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc5-win32-x86.exe">cmake-3.0.0-rc5-win32-x86.exe</a></td><td align="right">2014-05-13 14:24 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc5-win32-x86.zip">cmake-3.0.0-rc5-win32-x86.zip</a></td><td align="right">2014-05-13 14:24 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc5.tar.Z">cmake-3.0.0-rc5.tar.Z</a></td><td align="right">2014-05-13 14:24 </td><td align="right">8.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc5.tar.gz">cmake-3.0.0-rc5.tar.gz</a></td><td align="right">2014-05-13 14:24 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc5.zip">cmake-3.0.0-rc5.zip</a></td><td align="right">2014-05-13 14:24 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc6-1-src.tar.bz2">cmake-3.0.0-rc6-1-src.tar.bz2</a></td><td align="right">2014-05-22 14:57 </td><td align="right">4.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc6-1.tar.bz2">cmake-3.0.0-rc6-1.tar.bz2</a></td><td align="right">2014-05-22 14:57 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc6-Darwin-universal.dmg">cmake-3.0.0-rc6-Darwin-universal.dmg</a></td><td align="right">2014-05-22 14:57 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc6-Darwin-universal.tar.Z">cmake-3.0.0-rc6-Darwin-universal.tar.Z</a></td><td align="right">2014-05-22 14:56 </td><td align="right"> 58M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc6-Darwin-universal.tar.gz">cmake-3.0.0-rc6-Darwin-universal.tar.gz</a></td><td align="right">2014-05-22 14:56 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc6-Darwin64-universal.dmg">cmake-3.0.0-rc6-Darwin64-universal.dmg</a></td><td align="right">2014-05-22 14:56 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc6-Darwin64-universal.tar.Z">cmake-3.0.0-rc6-Darwin64-universal.tar.Z</a></td><td align="right">2014-05-22 14:56 </td><td align="right"> 54M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc6-Darwin64-universal.tar.gz">cmake-3.0.0-rc6-Darwin64-universal.tar.gz</a></td><td align="right">2014-05-22 14:56 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc6-Linux-i386.sh">cmake-3.0.0-rc6-Linux-i386.sh</a></td><td align="right">2014-05-22 14:56 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc6-Linux-i386.tar.Z">cmake-3.0.0-rc6-Linux-i386.tar.Z</a></td><td align="right">2014-05-22 14:56 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc6-Linux-i386.tar.gz">cmake-3.0.0-rc6-Linux-i386.tar.gz</a></td><td align="right">2014-05-22 14:56 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc6-SHA-256.txt">cmake-3.0.0-rc6-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.4K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.0-rc6-SHA-256.txt.asc">cmake-3.0.0-rc6-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc6-win32-x86.exe">cmake-3.0.0-rc6-win32-x86.exe</a></td><td align="right">2014-05-22 14:56 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc6-win32-x86.zip">cmake-3.0.0-rc6-win32-x86.zip</a></td><td align="right">2014-05-22 14:56 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc6.tar.Z">cmake-3.0.0-rc6.tar.Z</a></td><td align="right">2014-05-22 14:56 </td><td align="right">8.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc6.tar.gz">cmake-3.0.0-rc6.tar.gz</a></td><td align="right">2014-05-22 14:56 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-rc6.zip">cmake-3.0.0-rc6.zip</a></td><td align="right">2014-05-22 14:56 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-win32-x86.exe">cmake-3.0.0-win32-x86.exe</a></td><td align="right">2014-06-10 13:27 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0-win32-x86.zip">cmake-3.0.0-win32-x86.zip</a></td><td align="right">2014-06-10 13:27 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0.tar.Z">cmake-3.0.0.tar.Z</a></td><td align="right">2014-06-10 13:27 </td><td align="right">8.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0.tar.gz">cmake-3.0.0.tar.gz</a></td><td align="right">2014-06-10 13:27 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.0.zip">cmake-3.0.0.zip</a></td><td align="right">2014-06-10 13:27 </td><td align="right">7.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.1-1-src.tar.bz2">cmake-3.0.1-1-src.tar.bz2</a></td><td align="right">2014-09-11 09:19 </td><td align="right">4.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.1-1.tar.bz2">cmake-3.0.1-1.tar.bz2</a></td><td align="right">2014-09-11 09:19 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.1-Darwin-universal.dmg">cmake-3.0.1-Darwin-universal.dmg</a></td><td align="right">2014-09-11 09:19 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.1-Darwin-universal.tar.Z">cmake-3.0.1-Darwin-universal.tar.Z</a></td><td align="right">2014-09-11 09:19 </td><td align="right"> 58M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.1-Darwin-universal.tar.gz">cmake-3.0.1-Darwin-universal.tar.gz</a></td><td align="right">2014-09-11 09:19 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.1-Darwin64-universal.dmg">cmake-3.0.1-Darwin64-universal.dmg</a></td><td align="right">2014-09-11 09:18 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.1-Darwin64-universal.tar.Z">cmake-3.0.1-Darwin64-universal.tar.Z</a></td><td align="right">2014-09-11 09:18 </td><td align="right"> 54M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.1-Darwin64-universal.tar.gz">cmake-3.0.1-Darwin64-universal.tar.gz</a></td><td align="right">2014-09-11 09:18 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.1-Linux-i386.sh">cmake-3.0.1-Linux-i386.sh</a></td><td align="right">2014-09-11 09:18 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.1-Linux-i386.tar.Z">cmake-3.0.1-Linux-i386.tar.Z</a></td><td align="right">2014-09-11 09:18 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.1-Linux-i386.tar.gz">cmake-3.0.1-Linux-i386.tar.gz</a></td><td align="right">2014-09-11 09:18 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.1-SHA-256.txt">cmake-3.0.1-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.3K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.1-SHA-256.txt.asc">cmake-3.0.1-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.0.1-win32-x86.exe">cmake-3.0.1-win32-x86.exe</a></td><td align="right">2014-09-11 09:18 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.1-win32-x86.zip">cmake-3.0.1-win32-x86.zip</a></td><td align="right">2014-09-11 09:18 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.1.tar.Z">cmake-3.0.1.tar.Z</a></td><td align="right">2014-09-11 09:18 </td><td align="right">8.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.1.tar.gz">cmake-3.0.1.tar.gz</a></td><td align="right">2014-09-11 09:18 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.1.zip">cmake-3.0.1.zip</a></td><td align="right">2014-09-11 09:18 </td><td align="right">7.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.2-1-src.tar.bz2">cmake-3.0.2-1-src.tar.bz2</a></td><td align="right">2014-09-11 12:19 </td><td align="right">4.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.2-1.tar.bz2">cmake-3.0.2-1.tar.bz2</a></td><td align="right">2014-09-11 12:19 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.2-Darwin-universal.dmg">cmake-3.0.2-Darwin-universal.dmg</a></td><td align="right">2014-09-11 12:19 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.2-Darwin-universal.tar.Z">cmake-3.0.2-Darwin-universal.tar.Z</a></td><td align="right">2014-09-11 12:19 </td><td align="right"> 58M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.2-Darwin-universal.tar.gz">cmake-3.0.2-Darwin-universal.tar.gz</a></td><td align="right">2014-09-11 12:19 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.0.2-Darwin64-universal.dmg">cmake-3.0.2-Darwin64-universal.dmg</a></td><td align="right">2014-09-11 12:19 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.2-Darwin64-universal.tar.Z">cmake-3.0.2-Darwin64-universal.tar.Z</a></td><td align="right">2014-09-11 12:19 </td><td align="right"> 54M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.2-Darwin64-universal.tar.gz">cmake-3.0.2-Darwin64-universal.tar.gz</a></td><td align="right">2014-09-11 12:18 </td><td align="right"> 39M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.2-Linux-i386.sh">cmake-3.0.2-Linux-i386.sh</a></td><td align="right">2014-09-11 12:18 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.2-Linux-i386.tar.Z">cmake-3.0.2-Linux-i386.tar.Z</a></td><td align="right">2014-09-11 12:18 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.2-Linux-i386.tar.gz">cmake-3.0.2-Linux-i386.tar.gz</a></td><td align="right">2014-09-11 12:18 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.2-SHA-256.txt">cmake-3.0.2-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.3K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.0.2-SHA-256.txt.asc">cmake-3.0.2-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.0.2-win32-x86.exe">cmake-3.0.2-win32-x86.exe</a></td><td align="right">2014-09-11 12:18 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.2-win32-x86.zip">cmake-3.0.2-win32-x86.zip</a></td><td align="right">2014-09-11 12:18 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.2.tar.Z">cmake-3.0.2.tar.Z</a></td><td align="right">2014-09-11 12:18 </td><td align="right">8.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.2.tar.gz">cmake-3.0.2.tar.gz</a></td><td align="right">2014-09-11 12:18 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.0.2.zip">cmake-3.0.2.zip</a></td><td align="right">2014-09-11 12:18 </td><td align="right">7.9M</td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.1/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.1/index.html
new file mode 100644
index 000000000..635d34c09
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.1/index.html
@@ -0,0 +1,156 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /files/v3.1</title>
+ </head>
+ <body>
+<h1>Index of /files/v3.1</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/files/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-1-src.tar.bz2">cmake-3.1.0-1-src.tar.bz2</a></td><td align="right">2014-12-17 13:10 </td><td align="right">4.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-1.tar.bz2">cmake-3.1.0-1.tar.bz2</a></td><td align="right">2014-12-17 13:10 </td><td align="right">9.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-Darwin-universal.dmg">cmake-3.1.0-Darwin-universal.dmg</a></td><td align="right">2014-12-17 13:10 </td><td align="right"> 45M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-Darwin-universal.tar.Z">cmake-3.1.0-Darwin-universal.tar.Z</a></td><td align="right">2014-12-17 13:10 </td><td align="right"> 63M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-Darwin-universal.tar.gz">cmake-3.1.0-Darwin-universal.tar.gz</a></td><td align="right">2014-12-17 13:10 </td><td align="right"> 44M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-Darwin64-universal.dmg">cmake-3.1.0-Darwin64-universal.dmg</a></td><td align="right">2014-12-17 13:10 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-Darwin64-universal.tar.Z">cmake-3.1.0-Darwin64-universal.tar.Z</a></td><td align="right">2014-12-17 13:10 </td><td align="right"> 40M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-Darwin64-universal.tar.gz">cmake-3.1.0-Darwin64-universal.tar.gz</a></td><td align="right">2014-12-17 13:10 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-Darwin64.dmg">cmake-3.1.0-Darwin64.dmg</a></td><td align="right">2014-12-19 11:38 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-Darwin64.tar.Z">cmake-3.1.0-Darwin64.tar.Z</a></td><td align="right">2014-12-19 11:38 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-Darwin64.tar.gz">cmake-3.1.0-Darwin64.tar.gz</a></td><td align="right">2014-12-19 11:38 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.0-Linux-i386.sh">cmake-3.1.0-Linux-i386.sh</a></td><td align="right">2014-12-17 13:10 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-Linux-i386.tar.Z">cmake-3.1.0-Linux-i386.tar.Z</a></td><td align="right">2014-12-17 13:10 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-Linux-i386.tar.gz">cmake-3.1.0-Linux-i386.tar.gz</a></td><td align="right">2014-12-17 13:10 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.0-Linux-x86_64.sh">cmake-3.1.0-Linux-x86_64.sh</a></td><td align="right">2014-12-17 13:10 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-Linux-x86_64.tar.Z">cmake-3.1.0-Linux-x86_64.tar.Z</a></td><td align="right">2014-12-17 13:10 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-Linux-x86_64.tar.gz">cmake-3.1.0-Linux-x86_64.tar.gz</a></td><td align="right">2014-12-17 13:10 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.0-SHA-256.txt">cmake-3.1.0-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.9K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.0-SHA-256.txt.asc">cmake-3.1.0-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc1-1-src.tar.bz2">cmake-3.1.0-rc1-1-src.tar.bz2</a></td><td align="right">2014-10-28 14:09 </td><td align="right">4.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc1-1.tar.bz2">cmake-3.1.0-rc1-1.tar.bz2</a></td><td align="right">2014-10-28 14:09 </td><td align="right">9.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc1-Darwin-universal.dmg">cmake-3.1.0-rc1-Darwin-universal.dmg</a></td><td align="right">2014-10-28 14:09 </td><td align="right"> 45M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc1-Darwin-universal.tar.Z">cmake-3.1.0-rc1-Darwin-universal.tar.Z</a></td><td align="right">2014-10-28 14:09 </td><td align="right"> 63M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc1-Darwin-universal.tar.gz">cmake-3.1.0-rc1-Darwin-universal.tar.gz</a></td><td align="right">2014-10-28 14:09 </td><td align="right"> 44M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc1-Darwin64-universal.dmg">cmake-3.1.0-rc1-Darwin64-universal.dmg</a></td><td align="right">2014-10-28 14:09 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc1-Darwin64-universal.tar.Z">cmake-3.1.0-rc1-Darwin64-universal.tar.Z</a></td><td align="right">2014-10-28 14:09 </td><td align="right"> 40M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc1-Darwin64-universal.tar.gz">cmake-3.1.0-rc1-Darwin64-universal.tar.gz</a></td><td align="right">2014-10-28 14:08 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.0-rc1-Linux-i386.sh">cmake-3.1.0-rc1-Linux-i386.sh</a></td><td align="right">2014-10-28 14:08 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc1-Linux-i386.tar.Z">cmake-3.1.0-rc1-Linux-i386.tar.Z</a></td><td align="right">2014-10-28 14:08 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc1-Linux-i386.tar.gz">cmake-3.1.0-rc1-Linux-i386.tar.gz</a></td><td align="right">2014-10-28 14:08 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.0-rc1-SHA-256.txt">cmake-3.1.0-rc1-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.4K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.0-rc1-SHA-256.txt.asc">cmake-3.1.0-rc1-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc1-win32-x86.exe">cmake-3.1.0-rc1-win32-x86.exe</a></td><td align="right">2014-10-28 14:08 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc1-win32-x86.zip">cmake-3.1.0-rc1-win32-x86.zip</a></td><td align="right">2014-10-28 14:08 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc1.tar.Z">cmake-3.1.0-rc1.tar.Z</a></td><td align="right">2014-10-28 14:08 </td><td align="right">9.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc1.tar.gz">cmake-3.1.0-rc1.tar.gz</a></td><td align="right">2014-10-28 14:08 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc1.zip">cmake-3.1.0-rc1.zip</a></td><td align="right">2014-10-28 14:08 </td><td align="right">9.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc2-1-src.tar.bz2">cmake-3.1.0-rc2-1-src.tar.bz2</a></td><td align="right">2014-11-13 11:51 </td><td align="right">4.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc2-1.tar.bz2">cmake-3.1.0-rc2-1.tar.bz2</a></td><td align="right">2014-11-13 11:51 </td><td align="right">9.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc2-Darwin-universal.dmg">cmake-3.1.0-rc2-Darwin-universal.dmg</a></td><td align="right">2014-11-13 11:51 </td><td align="right"> 45M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc2-Darwin-universal.tar.Z">cmake-3.1.0-rc2-Darwin-universal.tar.Z</a></td><td align="right">2014-11-13 11:51 </td><td align="right"> 63M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc2-Darwin-universal.tar.gz">cmake-3.1.0-rc2-Darwin-universal.tar.gz</a></td><td align="right">2014-11-13 11:50 </td><td align="right"> 44M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc2-Darwin64-universal.dmg">cmake-3.1.0-rc2-Darwin64-universal.dmg</a></td><td align="right">2014-11-13 11:50 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc2-Darwin64-universal.tar.Z">cmake-3.1.0-rc2-Darwin64-universal.tar.Z</a></td><td align="right">2014-11-13 11:50 </td><td align="right"> 40M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc2-Darwin64-universal.tar.gz">cmake-3.1.0-rc2-Darwin64-universal.tar.gz</a></td><td align="right">2014-11-13 11:50 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.0-rc2-Linux-i386.sh">cmake-3.1.0-rc2-Linux-i386.sh</a></td><td align="right">2014-11-13 11:50 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc2-Linux-i386.tar.Z">cmake-3.1.0-rc2-Linux-i386.tar.Z</a></td><td align="right">2014-11-13 11:50 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc2-Linux-i386.tar.gz">cmake-3.1.0-rc2-Linux-i386.tar.gz</a></td><td align="right">2014-11-13 11:50 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.0-rc2-SHA-256.txt">cmake-3.1.0-rc2-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.4K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.0-rc2-SHA-256.txt.asc">cmake-3.1.0-rc2-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc2-win32-x86.exe">cmake-3.1.0-rc2-win32-x86.exe</a></td><td align="right">2014-11-13 11:50 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc2-win32-x86.zip">cmake-3.1.0-rc2-win32-x86.zip</a></td><td align="right">2014-11-13 11:50 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc2.tar.Z">cmake-3.1.0-rc2.tar.Z</a></td><td align="right">2014-11-13 11:50 </td><td align="right">9.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc2.tar.gz">cmake-3.1.0-rc2.tar.gz</a></td><td align="right">2014-11-13 11:50 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc2.zip">cmake-3.1.0-rc2.zip</a></td><td align="right">2014-11-13 11:50 </td><td align="right">9.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc3-1-src.tar.bz2">cmake-3.1.0-rc3-1-src.tar.bz2</a></td><td align="right">2014-12-09 16:53 </td><td align="right">4.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc3-1.tar.bz2">cmake-3.1.0-rc3-1.tar.bz2</a></td><td align="right">2014-12-09 16:53 </td><td align="right">9.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc3-Darwin-universal.dmg">cmake-3.1.0-rc3-Darwin-universal.dmg</a></td><td align="right">2014-12-09 16:53 </td><td align="right"> 45M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc3-Darwin-universal.tar.Z">cmake-3.1.0-rc3-Darwin-universal.tar.Z</a></td><td align="right">2014-12-09 16:52 </td><td align="right"> 63M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc3-Darwin-universal.tar.gz">cmake-3.1.0-rc3-Darwin-universal.tar.gz</a></td><td align="right">2014-12-09 16:52 </td><td align="right"> 44M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc3-Darwin64-universal.dmg">cmake-3.1.0-rc3-Darwin64-universal.dmg</a></td><td align="right">2014-12-09 16:52 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc3-Darwin64-universal.tar.Z">cmake-3.1.0-rc3-Darwin64-universal.tar.Z</a></td><td align="right">2014-12-09 16:52 </td><td align="right"> 40M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc3-Darwin64-universal.tar.gz">cmake-3.1.0-rc3-Darwin64-universal.tar.gz</a></td><td align="right">2014-12-09 16:52 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.0-rc3-Linux-i386.sh">cmake-3.1.0-rc3-Linux-i386.sh</a></td><td align="right">2014-12-09 16:52 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc3-Linux-i386.tar.Z">cmake-3.1.0-rc3-Linux-i386.tar.Z</a></td><td align="right">2014-12-09 16:52 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc3-Linux-i386.tar.gz">cmake-3.1.0-rc3-Linux-i386.tar.gz</a></td><td align="right">2014-12-09 16:52 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.0-rc3-Linux-x86_64.sh">cmake-3.1.0-rc3-Linux-x86_64.sh</a></td><td align="right">2014-12-09 16:52 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc3-Linux-x86_64.tar.Z">cmake-3.1.0-rc3-Linux-x86_64.tar.Z</a></td><td align="right">2014-12-09 16:52 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc3-Linux-x86_64.tar.gz">cmake-3.1.0-rc3-Linux-x86_64.tar.gz</a></td><td align="right">2014-12-09 16:52 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.0-rc3-SHA-256.txt">cmake-3.1.0-rc3-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.6K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.0-rc3-SHA-256.txt.asc">cmake-3.1.0-rc3-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc3-win32-x86.exe">cmake-3.1.0-rc3-win32-x86.exe</a></td><td align="right">2014-12-09 16:52 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc3-win32-x86.zip">cmake-3.1.0-rc3-win32-x86.zip</a></td><td align="right">2014-12-09 16:52 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc3.tar.Z">cmake-3.1.0-rc3.tar.Z</a></td><td align="right">2014-12-09 16:52 </td><td align="right">9.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc3.tar.gz">cmake-3.1.0-rc3.tar.gz</a></td><td align="right">2014-12-09 16:52 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-rc3.zip">cmake-3.1.0-rc3.zip</a></td><td align="right">2014-12-09 16:52 </td><td align="right">9.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-win32-x86.exe">cmake-3.1.0-win32-x86.exe</a></td><td align="right">2014-12-17 13:10 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0-win32-x86.zip">cmake-3.1.0-win32-x86.zip</a></td><td align="right">2014-12-17 13:10 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0.tar.Z">cmake-3.1.0.tar.Z</a></td><td align="right">2014-12-17 13:10 </td><td align="right">9.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0.tar.gz">cmake-3.1.0.tar.gz</a></td><td align="right">2014-12-17 13:10 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.0.zip">cmake-3.1.0.zip</a></td><td align="right">2014-12-17 13:10 </td><td align="right">9.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.1-1-src.tar.bz2">cmake-3.1.1-1-src.tar.bz2</a></td><td align="right">2015-01-22 16:49 </td><td align="right">4.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.1-1.tar.bz2">cmake-3.1.1-1.tar.bz2</a></td><td align="right">2015-01-22 16:49 </td><td align="right">9.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.1-Darwin-universal.dmg">cmake-3.1.1-Darwin-universal.dmg</a></td><td align="right">2015-01-22 16:49 </td><td align="right"> 45M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.1-Darwin-universal.tar.Z">cmake-3.1.1-Darwin-universal.tar.Z</a></td><td align="right">2015-01-22 16:49 </td><td align="right"> 64M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.1-Darwin-universal.tar.gz">cmake-3.1.1-Darwin-universal.tar.gz</a></td><td align="right">2015-01-22 16:49 </td><td align="right"> 44M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.1-Darwin-x86_64.dmg">cmake-3.1.1-Darwin-x86_64.dmg</a></td><td align="right">2015-01-22 16:48 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.1-Darwin-x86_64.tar.Z">cmake-3.1.1-Darwin-x86_64.tar.Z</a></td><td align="right">2015-01-22 16:48 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.1-Darwin-x86_64.tar.gz">cmake-3.1.1-Darwin-x86_64.tar.gz</a></td><td align="right">2015-01-22 16:48 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.1-Linux-i386.sh">cmake-3.1.1-Linux-i386.sh</a></td><td align="right">2015-01-22 16:48 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.1-Linux-i386.tar.Z">cmake-3.1.1-Linux-i386.tar.Z</a></td><td align="right">2015-01-22 16:48 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.1-Linux-i386.tar.gz">cmake-3.1.1-Linux-i386.tar.gz</a></td><td align="right">2015-01-22 16:48 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.1-Linux-x86_64.sh">cmake-3.1.1-Linux-x86_64.sh</a></td><td align="right">2015-01-22 16:48 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.1-Linux-x86_64.tar.Z">cmake-3.1.1-Linux-x86_64.tar.Z</a></td><td align="right">2015-01-22 16:48 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.1-Linux-x86_64.tar.gz">cmake-3.1.1-Linux-x86_64.tar.gz</a></td><td align="right">2015-01-22 16:48 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.1-SHA-256.txt">cmake-3.1.1-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.6K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.1-SHA-256.txt.asc">cmake-3.1.1-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.1.1-win32-x86.exe">cmake-3.1.1-win32-x86.exe</a></td><td align="right">2015-01-22 16:48 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.1-win32-x86.zip">cmake-3.1.1-win32-x86.zip</a></td><td align="right">2015-01-22 16:48 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.1.tar.Z">cmake-3.1.1.tar.Z</a></td><td align="right">2015-01-22 16:48 </td><td align="right">9.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.1.tar.gz">cmake-3.1.1.tar.gz</a></td><td align="right">2015-01-22 16:48 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.1.zip">cmake-3.1.1.zip</a></td><td align="right">2015-01-22 16:48 </td><td align="right">9.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.2-Darwin-universal.dmg">cmake-3.1.2-Darwin-universal.dmg</a></td><td align="right">2015-02-05 10:06 </td><td align="right"> 45M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.2-Darwin-universal.tar.Z">cmake-3.1.2-Darwin-universal.tar.Z</a></td><td align="right">2015-02-05 10:06 </td><td align="right"> 64M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.2-Darwin-universal.tar.gz">cmake-3.1.2-Darwin-universal.tar.gz</a></td><td align="right">2015-02-05 10:06 </td><td align="right"> 44M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.2-Darwin-x86_64.dmg">cmake-3.1.2-Darwin-x86_64.dmg</a></td><td align="right">2015-02-05 10:06 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.2-Darwin-x86_64.tar.Z">cmake-3.1.2-Darwin-x86_64.tar.Z</a></td><td align="right">2015-02-05 10:06 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.2-Darwin-x86_64.tar.gz">cmake-3.1.2-Darwin-x86_64.tar.gz</a></td><td align="right">2015-02-05 10:06 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.2-Linux-i386.sh">cmake-3.1.2-Linux-i386.sh</a></td><td align="right">2015-02-05 10:06 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.2-Linux-i386.tar.Z">cmake-3.1.2-Linux-i386.tar.Z</a></td><td align="right">2015-02-05 10:06 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.2-Linux-i386.tar.gz">cmake-3.1.2-Linux-i386.tar.gz</a></td><td align="right">2015-02-05 10:05 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.2-Linux-x86_64.sh">cmake-3.1.2-Linux-x86_64.sh</a></td><td align="right">2015-02-05 10:05 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.2-Linux-x86_64.tar.Z">cmake-3.1.2-Linux-x86_64.tar.Z</a></td><td align="right">2015-02-05 10:05 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.2-Linux-x86_64.tar.gz">cmake-3.1.2-Linux-x86_64.tar.gz</a></td><td align="right">2015-02-05 10:05 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.2-SHA-256.txt">cmake-3.1.2-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.6K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.2-SHA-256.txt.asc">cmake-3.1.2-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.1.2-win32-x86.exe">cmake-3.1.2-win32-x86.exe</a></td><td align="right">2015-02-05 10:05 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.2-win32-x86.zip">cmake-3.1.2-win32-x86.zip</a></td><td align="right">2015-02-05 10:05 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.2.tar.Z">cmake-3.1.2.tar.Z</a></td><td align="right">2015-02-05 10:05 </td><td align="right">9.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.2.tar.gz">cmake-3.1.2.tar.gz</a></td><td align="right">2015-02-05 10:05 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.2.zip">cmake-3.1.2.zip</a></td><td align="right">2015-02-05 10:05 </td><td align="right">9.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.3-1-src.tar.bz2">cmake-3.1.3-1-src.tar.bz2</a></td><td align="right">2015-02-12 17:40 </td><td align="right">4.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.3-1.tar.bz2">cmake-3.1.3-1.tar.bz2</a></td><td align="right">2015-02-12 17:40 </td><td align="right">9.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.3-Darwin-universal.dmg">cmake-3.1.3-Darwin-universal.dmg</a></td><td align="right">2015-02-12 17:40 </td><td align="right"> 45M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.3-Darwin-universal.tar.Z">cmake-3.1.3-Darwin-universal.tar.Z</a></td><td align="right">2015-02-12 17:40 </td><td align="right"> 64M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.3-Darwin-universal.tar.gz">cmake-3.1.3-Darwin-universal.tar.gz</a></td><td align="right">2015-02-12 17:40 </td><td align="right"> 44M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.1.3-Darwin-x86_64.dmg">cmake-3.1.3-Darwin-x86_64.dmg</a></td><td align="right">2015-02-12 17:40 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.3-Darwin-x86_64.tar.Z">cmake-3.1.3-Darwin-x86_64.tar.Z</a></td><td align="right">2015-02-12 17:40 </td><td align="right"> 41M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.3-Darwin-x86_64.tar.gz">cmake-3.1.3-Darwin-x86_64.tar.gz</a></td><td align="right">2015-02-12 17:39 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.3-Linux-i386.sh">cmake-3.1.3-Linux-i386.sh</a></td><td align="right">2015-02-12 17:39 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.3-Linux-i386.tar.Z">cmake-3.1.3-Linux-i386.tar.Z</a></td><td align="right">2015-02-12 17:39 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.3-Linux-i386.tar.gz">cmake-3.1.3-Linux-i386.tar.gz</a></td><td align="right">2015-02-12 17:39 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.3-Linux-x86_64.sh">cmake-3.1.3-Linux-x86_64.sh</a></td><td align="right">2015-02-12 17:39 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.3-Linux-x86_64.tar.Z">cmake-3.1.3-Linux-x86_64.tar.Z</a></td><td align="right">2015-02-12 17:39 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.3-Linux-x86_64.tar.gz">cmake-3.1.3-Linux-x86_64.tar.gz</a></td><td align="right">2015-02-12 17:39 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.3-SHA-256.txt">cmake-3.1.3-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.6K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.1.3-SHA-256.txt.asc">cmake-3.1.3-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.1.3-win32-x86.exe">cmake-3.1.3-win32-x86.exe</a></td><td align="right">2015-02-12 17:39 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.3-win32-x86.zip">cmake-3.1.3-win32-x86.zip</a></td><td align="right">2015-02-12 17:39 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.3.tar.Z">cmake-3.1.3.tar.Z</a></td><td align="right">2015-02-12 17:39 </td><td align="right">9.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.3.tar.gz">cmake-3.1.3.tar.gz</a></td><td align="right">2015-02-12 17:39 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.1.3.zip">cmake-3.1.3.zip</a></td><td align="right">2015-02-12 17:39 </td><td align="right">9.0M</td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.10/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.10/index.html
new file mode 100644
index 000000000..df654a369
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.10/index.html
@@ -0,0 +1,131 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /files/v3.10</title>
+ </head>
+ <body>
+<h1>Index of /files/v3.10</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/files/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-Darwin-x86_64.dmg">cmake-3.10.0-Darwin-x86_64.dmg</a></td><td align="right">2017-11-20 16:00 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-Darwin-x86_64.tar.gz">cmake-3.10.0-Darwin-x86_64.tar.gz</a></td><td align="right">2017-11-20 16:00 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.0-Linux-x86_64.sh">cmake-3.10.0-Linux-x86_64.sh</a></td><td align="right">2017-11-20 16:00 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-Linux-x86_64.tar.gz">cmake-3.10.0-Linux-x86_64.tar.gz</a></td><td align="right">2017-11-20 16:00 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.0-SHA-256.txt">cmake-3.10.0-SHA-256.txt</a></td><td align="right">2017-11-20 16:00 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.0-SHA-256.txt.asc">cmake-3.10.0-SHA-256.txt.asc</a></td><td align="right">2017-11-20 16:00 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc1-Darwin-x86_64.dmg">cmake-3.10.0-rc1-Darwin-x86_64.dmg</a></td><td align="right">2017-10-05 15:50 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc1-Darwin-x86_64.tar.gz">cmake-3.10.0-rc1-Darwin-x86_64.tar.gz</a></td><td align="right">2017-10-05 15:50 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.0-rc1-Linux-x86_64.sh">cmake-3.10.0-rc1-Linux-x86_64.sh</a></td><td align="right">2017-10-05 15:50 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc1-Linux-x86_64.tar.gz">cmake-3.10.0-rc1-Linux-x86_64.tar.gz</a></td><td align="right">2017-10-05 15:50 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.0-rc1-SHA-256.txt">cmake-3.10.0-rc1-SHA-256.txt</a></td><td align="right">2017-10-05 15:50 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.0-rc1-SHA-256.txt.asc">cmake-3.10.0-rc1-SHA-256.txt.asc</a></td><td align="right">2017-10-05 15:50 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc1-win32-x86.msi">cmake-3.10.0-rc1-win32-x86.msi</a></td><td align="right">2017-10-05 15:50 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc1-win32-x86.zip">cmake-3.10.0-rc1-win32-x86.zip</a></td><td align="right">2017-10-05 15:50 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc1-win64-x64.msi">cmake-3.10.0-rc1-win64-x64.msi</a></td><td align="right">2017-10-05 15:50 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc1-win64-x64.zip">cmake-3.10.0-rc1-win64-x64.zip</a></td><td align="right">2017-10-05 15:50 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc1.tar.Z">cmake-3.10.0-rc1.tar.Z</a></td><td align="right">2017-10-05 15:50 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc1.tar.gz">cmake-3.10.0-rc1.tar.gz</a></td><td align="right">2017-10-05 15:50 </td><td align="right">7.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc1.zip">cmake-3.10.0-rc1.zip</a></td><td align="right">2017-10-05 15:50 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc2-Darwin-x86_64.dmg">cmake-3.10.0-rc2-Darwin-x86_64.dmg</a></td><td align="right">2017-10-12 12:07 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc2-Darwin-x86_64.tar.gz">cmake-3.10.0-rc2-Darwin-x86_64.tar.gz</a></td><td align="right">2017-10-12 12:07 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.0-rc2-Linux-x86_64.sh">cmake-3.10.0-rc2-Linux-x86_64.sh</a></td><td align="right">2017-10-12 12:07 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc2-Linux-x86_64.tar.gz">cmake-3.10.0-rc2-Linux-x86_64.tar.gz</a></td><td align="right">2017-10-12 12:07 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.0-rc2-SHA-256.txt">cmake-3.10.0-rc2-SHA-256.txt</a></td><td align="right">2017-10-12 12:07 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.0-rc2-SHA-256.txt.asc">cmake-3.10.0-rc2-SHA-256.txt.asc</a></td><td align="right">2017-10-12 12:06 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc2-win32-x86.msi">cmake-3.10.0-rc2-win32-x86.msi</a></td><td align="right">2017-10-12 12:06 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc2-win32-x86.zip">cmake-3.10.0-rc2-win32-x86.zip</a></td><td align="right">2017-10-12 12:06 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc2-win64-x64.msi">cmake-3.10.0-rc2-win64-x64.msi</a></td><td align="right">2017-10-12 12:06 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc2-win64-x64.zip">cmake-3.10.0-rc2-win64-x64.zip</a></td><td align="right">2017-10-12 12:06 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc2.tar.Z">cmake-3.10.0-rc2.tar.Z</a></td><td align="right">2017-10-12 12:06 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc2.tar.gz">cmake-3.10.0-rc2.tar.gz</a></td><td align="right">2017-10-12 12:06 </td><td align="right">7.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc2.zip">cmake-3.10.0-rc2.zip</a></td><td align="right">2017-10-12 12:06 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc3-Darwin-x86_64.dmg">cmake-3.10.0-rc3-Darwin-x86_64.dmg</a></td><td align="right">2017-10-19 13:24 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc3-Darwin-x86_64.tar.gz">cmake-3.10.0-rc3-Darwin-x86_64.tar.gz</a></td><td align="right">2017-10-19 13:24 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.0-rc3-Linux-x86_64.sh">cmake-3.10.0-rc3-Linux-x86_64.sh</a></td><td align="right">2017-10-19 13:24 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc3-Linux-x86_64.tar.gz">cmake-3.10.0-rc3-Linux-x86_64.tar.gz</a></td><td align="right">2017-10-19 13:24 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.0-rc3-SHA-256.txt">cmake-3.10.0-rc3-SHA-256.txt</a></td><td align="right">2017-10-19 13:24 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.0-rc3-SHA-256.txt.asc">cmake-3.10.0-rc3-SHA-256.txt.asc</a></td><td align="right">2017-10-19 13:24 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc3-win32-x86.msi">cmake-3.10.0-rc3-win32-x86.msi</a></td><td align="right">2017-10-19 13:24 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc3-win32-x86.zip">cmake-3.10.0-rc3-win32-x86.zip</a></td><td align="right">2017-10-19 13:24 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc3-win64-x64.msi">cmake-3.10.0-rc3-win64-x64.msi</a></td><td align="right">2017-10-19 13:24 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc3-win64-x64.zip">cmake-3.10.0-rc3-win64-x64.zip</a></td><td align="right">2017-10-19 13:24 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc3.tar.Z">cmake-3.10.0-rc3.tar.Z</a></td><td align="right">2017-10-19 13:24 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc3.tar.gz">cmake-3.10.0-rc3.tar.gz</a></td><td align="right">2017-10-19 13:24 </td><td align="right">7.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc3.zip">cmake-3.10.0-rc3.zip</a></td><td align="right">2017-10-19 13:24 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc4-Darwin-x86_64.dmg">cmake-3.10.0-rc4-Darwin-x86_64.dmg</a></td><td align="right">2017-11-01 15:37 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc4-Darwin-x86_64.tar.gz">cmake-3.10.0-rc4-Darwin-x86_64.tar.gz</a></td><td align="right">2017-11-01 15:37 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.0-rc4-Linux-x86_64.sh">cmake-3.10.0-rc4-Linux-x86_64.sh</a></td><td align="right">2017-11-01 15:37 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc4-Linux-x86_64.tar.gz">cmake-3.10.0-rc4-Linux-x86_64.tar.gz</a></td><td align="right">2017-11-01 15:37 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.0-rc4-SHA-256.txt">cmake-3.10.0-rc4-SHA-256.txt</a></td><td align="right">2017-11-01 15:37 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.0-rc4-SHA-256.txt.asc">cmake-3.10.0-rc4-SHA-256.txt.asc</a></td><td align="right">2017-11-01 15:37 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc4-win32-x86.msi">cmake-3.10.0-rc4-win32-x86.msi</a></td><td align="right">2017-11-01 15:37 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc4-win32-x86.zip">cmake-3.10.0-rc4-win32-x86.zip</a></td><td align="right">2017-11-01 15:37 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc4-win64-x64.msi">cmake-3.10.0-rc4-win64-x64.msi</a></td><td align="right">2017-11-01 15:37 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc4-win64-x64.zip">cmake-3.10.0-rc4-win64-x64.zip</a></td><td align="right">2017-11-01 15:37 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc4.tar.Z">cmake-3.10.0-rc4.tar.Z</a></td><td align="right">2017-11-01 15:37 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc4.tar.gz">cmake-3.10.0-rc4.tar.gz</a></td><td align="right">2017-11-01 15:37 </td><td align="right">7.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc4.zip">cmake-3.10.0-rc4.zip</a></td><td align="right">2017-11-01 15:37 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc5-Darwin-x86_64.dmg">cmake-3.10.0-rc5-Darwin-x86_64.dmg</a></td><td align="right">2017-11-10 14:01 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc5-Darwin-x86_64.tar.gz">cmake-3.10.0-rc5-Darwin-x86_64.tar.gz</a></td><td align="right">2017-11-10 14:01 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.0-rc5-Linux-x86_64.sh">cmake-3.10.0-rc5-Linux-x86_64.sh</a></td><td align="right">2017-11-10 14:01 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc5-Linux-x86_64.tar.gz">cmake-3.10.0-rc5-Linux-x86_64.tar.gz</a></td><td align="right">2017-11-10 14:01 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.0-rc5-SHA-256.txt">cmake-3.10.0-rc5-SHA-256.txt</a></td><td align="right">2017-11-10 14:01 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.0-rc5-SHA-256.txt.asc">cmake-3.10.0-rc5-SHA-256.txt.asc</a></td><td align="right">2017-11-10 14:01 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc5-win32-x86.msi">cmake-3.10.0-rc5-win32-x86.msi</a></td><td align="right">2017-11-10 14:01 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc5-win32-x86.zip">cmake-3.10.0-rc5-win32-x86.zip</a></td><td align="right">2017-11-10 14:01 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc5-win64-x64.msi">cmake-3.10.0-rc5-win64-x64.msi</a></td><td align="right">2017-11-10 14:01 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc5-win64-x64.zip">cmake-3.10.0-rc5-win64-x64.zip</a></td><td align="right">2017-11-10 14:01 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc5.tar.Z">cmake-3.10.0-rc5.tar.Z</a></td><td align="right">2017-11-10 14:01 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc5.tar.gz">cmake-3.10.0-rc5.tar.gz</a></td><td align="right">2017-11-10 14:01 </td><td align="right">7.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-rc5.zip">cmake-3.10.0-rc5.zip</a></td><td align="right">2017-11-10 14:00 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-win32-x86.msi">cmake-3.10.0-win32-x86.msi</a></td><td align="right">2017-11-20 16:00 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-win32-x86.zip">cmake-3.10.0-win32-x86.zip</a></td><td align="right">2017-11-20 16:00 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-win64-x64.msi">cmake-3.10.0-win64-x64.msi</a></td><td align="right">2017-11-20 16:00 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0-win64-x64.zip">cmake-3.10.0-win64-x64.zip</a></td><td align="right">2017-11-20 16:00 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0.tar.Z">cmake-3.10.0.tar.Z</a></td><td align="right">2017-11-20 16:00 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0.tar.gz">cmake-3.10.0.tar.gz</a></td><td align="right">2017-11-20 16:00 </td><td align="right">7.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.0.zip">cmake-3.10.0.zip</a></td><td align="right">2017-11-20 16:00 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.1-Darwin-x86_64.dmg">cmake-3.10.1-Darwin-x86_64.dmg</a></td><td align="right">2017-12-14 09:10 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.1-Darwin-x86_64.tar.gz">cmake-3.10.1-Darwin-x86_64.tar.gz</a></td><td align="right">2017-12-14 09:10 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.1-Linux-x86_64.sh">cmake-3.10.1-Linux-x86_64.sh</a></td><td align="right">2017-12-14 09:10 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.1-Linux-x86_64.tar.gz">cmake-3.10.1-Linux-x86_64.tar.gz</a></td><td align="right">2017-12-14 09:10 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.1-SHA-256.txt">cmake-3.10.1-SHA-256.txt</a></td><td align="right">2017-12-14 09:10 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.1-SHA-256.txt.asc">cmake-3.10.1-SHA-256.txt.asc</a></td><td align="right">2017-12-14 09:10 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.1-win32-x86.msi">cmake-3.10.1-win32-x86.msi</a></td><td align="right">2017-12-14 09:10 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.1-win32-x86.zip">cmake-3.10.1-win32-x86.zip</a></td><td align="right">2017-12-14 09:10 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.1-win64-x64.msi">cmake-3.10.1-win64-x64.msi</a></td><td align="right">2017-12-14 09:10 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.1-win64-x64.zip">cmake-3.10.1-win64-x64.zip</a></td><td align="right">2017-12-14 09:09 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.1.tar.Z">cmake-3.10.1.tar.Z</a></td><td align="right">2017-12-14 09:09 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.1.tar.gz">cmake-3.10.1.tar.gz</a></td><td align="right">2017-12-14 09:09 </td><td align="right">7.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.1.zip">cmake-3.10.1.zip</a></td><td align="right">2017-12-14 09:09 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.2-Darwin-x86_64.dmg">cmake-3.10.2-Darwin-x86_64.dmg</a></td><td align="right">2018-01-18 12:09 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.2-Darwin-x86_64.tar.gz">cmake-3.10.2-Darwin-x86_64.tar.gz</a></td><td align="right">2018-01-18 12:09 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.2-Linux-x86_64.sh">cmake-3.10.2-Linux-x86_64.sh</a></td><td align="right">2018-01-18 12:09 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.2-Linux-x86_64.tar.gz">cmake-3.10.2-Linux-x86_64.tar.gz</a></td><td align="right">2018-01-18 12:09 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.2-SHA-256.txt">cmake-3.10.2-SHA-256.txt</a></td><td align="right">2018-01-18 12:09 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.2-SHA-256.txt.asc">cmake-3.10.2-SHA-256.txt.asc</a></td><td align="right">2018-01-18 12:09 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.2-win32-x86.msi">cmake-3.10.2-win32-x86.msi</a></td><td align="right">2018-01-18 12:09 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.2-win32-x86.zip">cmake-3.10.2-win32-x86.zip</a></td><td align="right">2018-01-18 12:09 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.2-win64-x64.msi">cmake-3.10.2-win64-x64.msi</a></td><td align="right">2018-01-18 12:09 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.2-win64-x64.zip">cmake-3.10.2-win64-x64.zip</a></td><td align="right">2018-01-18 12:09 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.2.tar.Z">cmake-3.10.2.tar.Z</a></td><td align="right">2018-01-18 12:09 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.2.tar.gz">cmake-3.10.2.tar.gz</a></td><td align="right">2018-01-18 12:09 </td><td align="right">7.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.2.zip">cmake-3.10.2.zip</a></td><td align="right">2018-01-18 12:08 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.3-Darwin-x86_64.dmg">cmake-3.10.3-Darwin-x86_64.dmg</a></td><td align="right">2018-03-16 09:38 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.3-Darwin-x86_64.tar.gz">cmake-3.10.3-Darwin-x86_64.tar.gz</a></td><td align="right">2018-03-16 09:38 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.3-Linux-x86_64.sh">cmake-3.10.3-Linux-x86_64.sh</a></td><td align="right">2018-03-16 09:38 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.3-Linux-x86_64.tar.gz">cmake-3.10.3-Linux-x86_64.tar.gz</a></td><td align="right">2018-03-16 09:38 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.3-SHA-256.txt">cmake-3.10.3-SHA-256.txt</a></td><td align="right">2018-03-16 09:38 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.10.3-SHA-256.txt.asc">cmake-3.10.3-SHA-256.txt.asc</a></td><td align="right">2018-03-16 09:38 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.3-win32-x86.msi">cmake-3.10.3-win32-x86.msi</a></td><td align="right">2018-03-16 09:38 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.3-win32-x86.zip">cmake-3.10.3-win32-x86.zip</a></td><td align="right">2018-03-16 09:38 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.10.3-win64-x64.msi">cmake-3.10.3-win64-x64.msi</a></td><td align="right">2018-03-16 09:38 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.3-win64-x64.zip">cmake-3.10.3-win64-x64.zip</a></td><td align="right">2018-03-16 09:38 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.3.tar.Z">cmake-3.10.3.tar.Z</a></td><td align="right">2018-03-16 09:38 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.3.tar.gz">cmake-3.10.3.tar.gz</a></td><td align="right">2018-03-16 09:38 </td><td align="right">7.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.10.3.zip">cmake-3.10.3.zip</a></td><td align="right">2018-03-16 09:38 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.11/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.11/index.html
new file mode 100644
index 000000000..869d7427a
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.11/index.html
@@ -0,0 +1,131 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /files/v3.11</title>
+ </head>
+ <body>
+<h1>Index of /files/v3.11</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/files/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-Darwin-x86_64.dmg">cmake-3.11.0-Darwin-x86_64.dmg</a></td><td align="right">2018-03-28 13:40 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-Darwin-x86_64.tar.gz">cmake-3.11.0-Darwin-x86_64.tar.gz</a></td><td align="right">2018-03-28 13:40 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.0-Linux-x86_64.sh">cmake-3.11.0-Linux-x86_64.sh</a></td><td align="right">2018-03-28 13:40 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-Linux-x86_64.tar.gz">cmake-3.11.0-Linux-x86_64.tar.gz</a></td><td align="right">2018-03-28 13:40 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.0-SHA-256.txt">cmake-3.11.0-SHA-256.txt</a></td><td align="right">2018-03-28 13:40 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.0-SHA-256.txt.asc">cmake-3.11.0-SHA-256.txt.asc</a></td><td align="right">2018-03-28 13:40 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc1-Darwin-x86_64.dmg">cmake-3.11.0-rc1-Darwin-x86_64.dmg</a></td><td align="right">2018-02-15 11:53 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc1-Darwin-x86_64.tar.gz">cmake-3.11.0-rc1-Darwin-x86_64.tar.gz</a></td><td align="right">2018-02-15 11:53 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.0-rc1-Linux-x86_64.sh">cmake-3.11.0-rc1-Linux-x86_64.sh</a></td><td align="right">2018-02-15 11:53 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc1-Linux-x86_64.tar.gz">cmake-3.11.0-rc1-Linux-x86_64.tar.gz</a></td><td align="right">2018-02-15 11:53 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.0-rc1-SHA-256.txt">cmake-3.11.0-rc1-SHA-256.txt</a></td><td align="right">2018-02-15 11:53 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.0-rc1-SHA-256.txt.asc">cmake-3.11.0-rc1-SHA-256.txt.asc</a></td><td align="right">2018-02-15 11:53 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc1-win32-x86.msi">cmake-3.11.0-rc1-win32-x86.msi</a></td><td align="right">2018-02-15 11:53 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc1-win32-x86.zip">cmake-3.11.0-rc1-win32-x86.zip</a></td><td align="right">2018-02-15 11:53 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc1-win64-x64.msi">cmake-3.11.0-rc1-win64-x64.msi</a></td><td align="right">2018-02-15 11:53 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc1-win64-x64.zip">cmake-3.11.0-rc1-win64-x64.zip</a></td><td align="right">2018-02-15 11:53 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc1.tar.Z">cmake-3.11.0-rc1.tar.Z</a></td><td align="right">2018-02-15 11:52 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc1.tar.gz">cmake-3.11.0-rc1.tar.gz</a></td><td align="right">2018-02-15 11:52 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc1.zip">cmake-3.11.0-rc1.zip</a></td><td align="right">2018-02-15 11:52 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc2-Darwin-x86_64.dmg">cmake-3.11.0-rc2-Darwin-x86_64.dmg</a></td><td align="right">2018-02-27 11:09 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc2-Darwin-x86_64.tar.gz">cmake-3.11.0-rc2-Darwin-x86_64.tar.gz</a></td><td align="right">2018-02-27 11:09 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.0-rc2-Linux-x86_64.sh">cmake-3.11.0-rc2-Linux-x86_64.sh</a></td><td align="right">2018-02-27 11:09 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc2-Linux-x86_64.tar.gz">cmake-3.11.0-rc2-Linux-x86_64.tar.gz</a></td><td align="right">2018-02-27 11:09 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.0-rc2-SHA-256.txt">cmake-3.11.0-rc2-SHA-256.txt</a></td><td align="right">2018-02-27 11:09 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.0-rc2-SHA-256.txt.asc">cmake-3.11.0-rc2-SHA-256.txt.asc</a></td><td align="right">2018-02-27 11:09 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc2-win32-x86.msi">cmake-3.11.0-rc2-win32-x86.msi</a></td><td align="right">2018-02-27 11:09 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc2-win32-x86.zip">cmake-3.11.0-rc2-win32-x86.zip</a></td><td align="right">2018-02-27 11:09 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc2-win64-x64.msi">cmake-3.11.0-rc2-win64-x64.msi</a></td><td align="right">2018-02-27 11:09 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc2-win64-x64.zip">cmake-3.11.0-rc2-win64-x64.zip</a></td><td align="right">2018-02-27 11:09 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc2.tar.Z">cmake-3.11.0-rc2.tar.Z</a></td><td align="right">2018-02-27 11:09 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc2.tar.gz">cmake-3.11.0-rc2.tar.gz</a></td><td align="right">2018-02-27 11:09 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc2.zip">cmake-3.11.0-rc2.zip</a></td><td align="right">2018-02-27 11:09 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc3-Darwin-x86_64.dmg">cmake-3.11.0-rc3-Darwin-x86_64.dmg</a></td><td align="right">2018-03-09 13:46 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc3-Darwin-x86_64.tar.gz">cmake-3.11.0-rc3-Darwin-x86_64.tar.gz</a></td><td align="right">2018-03-09 13:46 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.0-rc3-Linux-x86_64.sh">cmake-3.11.0-rc3-Linux-x86_64.sh</a></td><td align="right">2018-03-09 13:46 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc3-Linux-x86_64.tar.gz">cmake-3.11.0-rc3-Linux-x86_64.tar.gz</a></td><td align="right">2018-03-09 13:46 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.0-rc3-SHA-256.txt">cmake-3.11.0-rc3-SHA-256.txt</a></td><td align="right">2018-03-09 13:46 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.0-rc3-SHA-256.txt.asc">cmake-3.11.0-rc3-SHA-256.txt.asc</a></td><td align="right">2018-03-09 13:46 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc3-win32-x86.msi">cmake-3.11.0-rc3-win32-x86.msi</a></td><td align="right">2018-03-09 13:46 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc3-win32-x86.zip">cmake-3.11.0-rc3-win32-x86.zip</a></td><td align="right">2018-03-09 13:45 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc3-win64-x64.msi">cmake-3.11.0-rc3-win64-x64.msi</a></td><td align="right">2018-03-09 13:45 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc3-win64-x64.zip">cmake-3.11.0-rc3-win64-x64.zip</a></td><td align="right">2018-03-09 13:45 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc3.tar.Z">cmake-3.11.0-rc3.tar.Z</a></td><td align="right">2018-03-09 13:45 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc3.tar.gz">cmake-3.11.0-rc3.tar.gz</a></td><td align="right">2018-03-09 13:45 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc3.zip">cmake-3.11.0-rc3.zip</a></td><td align="right">2018-03-09 13:45 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc4-Darwin-x86_64.dmg">cmake-3.11.0-rc4-Darwin-x86_64.dmg</a></td><td align="right">2018-03-19 11:07 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc4-Darwin-x86_64.tar.gz">cmake-3.11.0-rc4-Darwin-x86_64.tar.gz</a></td><td align="right">2018-03-19 11:07 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.0-rc4-Linux-x86_64.sh">cmake-3.11.0-rc4-Linux-x86_64.sh</a></td><td align="right">2018-03-19 11:06 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc4-Linux-x86_64.tar.gz">cmake-3.11.0-rc4-Linux-x86_64.tar.gz</a></td><td align="right">2018-03-19 11:06 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.0-rc4-SHA-256.txt">cmake-3.11.0-rc4-SHA-256.txt</a></td><td align="right">2018-03-19 11:06 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.0-rc4-SHA-256.txt.asc">cmake-3.11.0-rc4-SHA-256.txt.asc</a></td><td align="right">2018-03-19 11:06 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc4-win32-x86.msi">cmake-3.11.0-rc4-win32-x86.msi</a></td><td align="right">2018-03-19 11:06 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc4-win32-x86.zip">cmake-3.11.0-rc4-win32-x86.zip</a></td><td align="right">2018-03-19 11:06 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc4-win64-x64.msi">cmake-3.11.0-rc4-win64-x64.msi</a></td><td align="right">2018-03-19 11:06 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc4-win64-x64.zip">cmake-3.11.0-rc4-win64-x64.zip</a></td><td align="right">2018-03-19 11:06 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc4.tar.Z">cmake-3.11.0-rc4.tar.Z</a></td><td align="right">2018-03-19 11:06 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc4.tar.gz">cmake-3.11.0-rc4.tar.gz</a></td><td align="right">2018-03-19 11:06 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-rc4.zip">cmake-3.11.0-rc4.zip</a></td><td align="right">2018-03-19 11:06 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-win32-x86.msi">cmake-3.11.0-win32-x86.msi</a></td><td align="right">2018-03-28 13:40 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-win32-x86.zip">cmake-3.11.0-win32-x86.zip</a></td><td align="right">2018-03-28 13:40 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-win64-x64.msi">cmake-3.11.0-win64-x64.msi</a></td><td align="right">2018-03-28 13:40 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0-win64-x64.zip">cmake-3.11.0-win64-x64.zip</a></td><td align="right">2018-03-28 13:40 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0.tar.Z">cmake-3.11.0.tar.Z</a></td><td align="right">2018-03-28 13:40 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0.tar.gz">cmake-3.11.0.tar.gz</a></td><td align="right">2018-03-28 13:40 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.0.zip">cmake-3.11.0.zip</a></td><td align="right">2018-03-28 13:40 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.1-Darwin-x86_64.dmg">cmake-3.11.1-Darwin-x86_64.dmg</a></td><td align="right">2018-04-17 11:33 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.1-Darwin-x86_64.tar.gz">cmake-3.11.1-Darwin-x86_64.tar.gz</a></td><td align="right">2018-04-17 11:32 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.1-Linux-x86_64.sh">cmake-3.11.1-Linux-x86_64.sh</a></td><td align="right">2018-04-17 11:32 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.1-Linux-x86_64.tar.gz">cmake-3.11.1-Linux-x86_64.tar.gz</a></td><td align="right">2018-04-17 11:32 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.1-SHA-256.txt">cmake-3.11.1-SHA-256.txt</a></td><td align="right">2018-04-17 11:32 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.1-SHA-256.txt.asc">cmake-3.11.1-SHA-256.txt.asc</a></td><td align="right">2018-04-17 11:32 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.1-win32-x86.msi">cmake-3.11.1-win32-x86.msi</a></td><td align="right">2018-04-17 11:32 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.1-win32-x86.zip">cmake-3.11.1-win32-x86.zip</a></td><td align="right">2018-04-17 11:32 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.1-win64-x64.msi">cmake-3.11.1-win64-x64.msi</a></td><td align="right">2018-04-17 11:32 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.1-win64-x64.zip">cmake-3.11.1-win64-x64.zip</a></td><td align="right">2018-04-17 11:32 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.1.tar.Z">cmake-3.11.1.tar.Z</a></td><td align="right">2018-04-17 11:32 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.1.tar.gz">cmake-3.11.1.tar.gz</a></td><td align="right">2018-04-17 11:32 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.1.zip">cmake-3.11.1.zip</a></td><td align="right">2018-04-17 11:32 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.2-Darwin-x86_64.dmg">cmake-3.11.2-Darwin-x86_64.dmg</a></td><td align="right">2018-05-17 12:45 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.2-Darwin-x86_64.tar.gz">cmake-3.11.2-Darwin-x86_64.tar.gz</a></td><td align="right">2018-05-17 12:45 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.2-Linux-x86_64.sh">cmake-3.11.2-Linux-x86_64.sh</a></td><td align="right">2018-05-17 12:45 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.2-Linux-x86_64.tar.gz">cmake-3.11.2-Linux-x86_64.tar.gz</a></td><td align="right">2018-05-17 12:45 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.2-SHA-256.txt">cmake-3.11.2-SHA-256.txt</a></td><td align="right">2018-05-17 12:45 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.2-SHA-256.txt.asc">cmake-3.11.2-SHA-256.txt.asc</a></td><td align="right">2018-05-17 12:45 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.2-win32-x86.msi">cmake-3.11.2-win32-x86.msi</a></td><td align="right">2018-05-17 12:45 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.2-win32-x86.zip">cmake-3.11.2-win32-x86.zip</a></td><td align="right">2018-05-17 12:45 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.2-win64-x64.msi">cmake-3.11.2-win64-x64.msi</a></td><td align="right">2018-05-17 12:45 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.2-win64-x64.zip">cmake-3.11.2-win64-x64.zip</a></td><td align="right">2018-05-17 12:44 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.2.tar.Z">cmake-3.11.2.tar.Z</a></td><td align="right">2018-05-17 12:44 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.2.tar.gz">cmake-3.11.2.tar.gz</a></td><td align="right">2018-05-17 12:44 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.2.zip">cmake-3.11.2.zip</a></td><td align="right">2018-05-17 12:44 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.3-Darwin-x86_64.dmg">cmake-3.11.3-Darwin-x86_64.dmg</a></td><td align="right">2018-05-31 15:53 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.3-Darwin-x86_64.tar.gz">cmake-3.11.3-Darwin-x86_64.tar.gz</a></td><td align="right">2018-05-31 15:53 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.3-Linux-x86_64.sh">cmake-3.11.3-Linux-x86_64.sh</a></td><td align="right">2018-05-31 15:53 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.3-Linux-x86_64.tar.gz">cmake-3.11.3-Linux-x86_64.tar.gz</a></td><td align="right">2018-05-31 15:52 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.3-SHA-256.txt">cmake-3.11.3-SHA-256.txt</a></td><td align="right">2018-05-31 15:52 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.3-SHA-256.txt.asc">cmake-3.11.3-SHA-256.txt.asc</a></td><td align="right">2018-05-31 15:52 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.3-win32-x86.msi">cmake-3.11.3-win32-x86.msi</a></td><td align="right">2018-05-31 15:52 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.3-win32-x86.zip">cmake-3.11.3-win32-x86.zip</a></td><td align="right">2018-05-31 15:52 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.3-win64-x64.msi">cmake-3.11.3-win64-x64.msi</a></td><td align="right">2018-05-31 15:52 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.3-win64-x64.zip">cmake-3.11.3-win64-x64.zip</a></td><td align="right">2018-05-31 15:52 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.3.tar.Z">cmake-3.11.3.tar.Z</a></td><td align="right">2018-05-31 15:52 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.3.tar.gz">cmake-3.11.3.tar.gz</a></td><td align="right">2018-05-31 15:52 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.3.zip">cmake-3.11.3.zip</a></td><td align="right">2018-05-31 15:52 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.4-Darwin-x86_64.dmg">cmake-3.11.4-Darwin-x86_64.dmg</a></td><td align="right">2018-06-14 13:50 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.4-Darwin-x86_64.tar.gz">cmake-3.11.4-Darwin-x86_64.tar.gz</a></td><td align="right">2018-06-14 13:50 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.4-Linux-x86_64.sh">cmake-3.11.4-Linux-x86_64.sh</a></td><td align="right">2018-06-14 13:50 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.4-Linux-x86_64.tar.gz">cmake-3.11.4-Linux-x86_64.tar.gz</a></td><td align="right">2018-06-14 13:50 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.4-SHA-256.txt">cmake-3.11.4-SHA-256.txt</a></td><td align="right">2018-06-14 13:50 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.11.4-SHA-256.txt.asc">cmake-3.11.4-SHA-256.txt.asc</a></td><td align="right">2018-06-14 13:50 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.4-win32-x86.msi">cmake-3.11.4-win32-x86.msi</a></td><td align="right">2018-06-14 13:50 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.4-win32-x86.zip">cmake-3.11.4-win32-x86.zip</a></td><td align="right">2018-06-14 13:50 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.11.4-win64-x64.msi">cmake-3.11.4-win64-x64.msi</a></td><td align="right">2018-06-14 13:50 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.4-win64-x64.zip">cmake-3.11.4-win64-x64.zip</a></td><td align="right">2018-06-14 13:50 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.4.tar.Z">cmake-3.11.4.tar.Z</a></td><td align="right">2018-06-14 13:50 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.4.tar.gz">cmake-3.11.4.tar.gz</a></td><td align="right">2018-06-14 13:50 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.11.4.zip">cmake-3.11.4.zip</a></td><td align="right">2018-06-14 13:50 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.12/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.12/index.html
new file mode 100644
index 000000000..1977e7e07
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.12/index.html
@@ -0,0 +1,118 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /files/v3.12</title>
+ </head>
+ <body>
+<h1>Index of /files/v3.12</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/files/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-Darwin-x86_64.dmg">cmake-3.12.0-Darwin-x86_64.dmg</a></td><td align="right">2018-07-17 09:58 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-Darwin-x86_64.tar.gz">cmake-3.12.0-Darwin-x86_64.tar.gz</a></td><td align="right">2018-07-17 09:58 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.0-Linux-x86_64.sh">cmake-3.12.0-Linux-x86_64.sh</a></td><td align="right">2018-07-17 09:58 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-Linux-x86_64.tar.gz">cmake-3.12.0-Linux-x86_64.tar.gz</a></td><td align="right">2018-07-17 09:58 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.0-SHA-256.txt">cmake-3.12.0-SHA-256.txt</a></td><td align="right">2018-07-17 09:58 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.0-SHA-256.txt.asc">cmake-3.12.0-SHA-256.txt.asc</a></td><td align="right">2018-07-17 09:58 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc1-Darwin-x86_64.dmg">cmake-3.12.0-rc1-Darwin-x86_64.dmg</a></td><td align="right">2018-06-14 15:01 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc1-Darwin-x86_64.tar.gz">cmake-3.12.0-rc1-Darwin-x86_64.tar.gz</a></td><td align="right">2018-06-14 15:01 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.0-rc1-Linux-x86_64.sh">cmake-3.12.0-rc1-Linux-x86_64.sh</a></td><td align="right">2018-06-14 15:01 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc1-Linux-x86_64.tar.gz">cmake-3.12.0-rc1-Linux-x86_64.tar.gz</a></td><td align="right">2018-06-14 15:01 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.0-rc1-SHA-256.txt">cmake-3.12.0-rc1-SHA-256.txt</a></td><td align="right">2018-06-14 15:01 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.0-rc1-SHA-256.txt.asc">cmake-3.12.0-rc1-SHA-256.txt.asc</a></td><td align="right">2018-06-14 15:01 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc1-win32-x86.msi">cmake-3.12.0-rc1-win32-x86.msi</a></td><td align="right">2018-06-14 15:01 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc1-win32-x86.zip">cmake-3.12.0-rc1-win32-x86.zip</a></td><td align="right">2018-06-14 15:01 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc1-win64-x64.msi">cmake-3.12.0-rc1-win64-x64.msi</a></td><td align="right">2018-06-14 15:01 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc1-win64-x64.zip">cmake-3.12.0-rc1-win64-x64.zip</a></td><td align="right">2018-06-14 15:01 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc1.tar.Z">cmake-3.12.0-rc1.tar.Z</a></td><td align="right">2018-06-14 15:01 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc1.tar.gz">cmake-3.12.0-rc1.tar.gz</a></td><td align="right">2018-06-14 15:01 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc1.zip">cmake-3.12.0-rc1.zip</a></td><td align="right">2018-06-14 15:01 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc2-Darwin-x86_64.dmg">cmake-3.12.0-rc2-Darwin-x86_64.dmg</a></td><td align="right">2018-06-29 13:57 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc2-Darwin-x86_64.tar.gz">cmake-3.12.0-rc2-Darwin-x86_64.tar.gz</a></td><td align="right">2018-06-29 13:57 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.0-rc2-Linux-x86_64.sh">cmake-3.12.0-rc2-Linux-x86_64.sh</a></td><td align="right">2018-06-29 13:57 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc2-Linux-x86_64.tar.gz">cmake-3.12.0-rc2-Linux-x86_64.tar.gz</a></td><td align="right">2018-06-29 13:57 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.0-rc2-SHA-256.txt">cmake-3.12.0-rc2-SHA-256.txt</a></td><td align="right">2018-06-29 13:57 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.0-rc2-SHA-256.txt.asc">cmake-3.12.0-rc2-SHA-256.txt.asc</a></td><td align="right">2018-06-29 13:57 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc2-win32-x86.msi">cmake-3.12.0-rc2-win32-x86.msi</a></td><td align="right">2018-06-29 13:56 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc2-win32-x86.zip">cmake-3.12.0-rc2-win32-x86.zip</a></td><td align="right">2018-06-29 13:56 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc2-win64-x64.msi">cmake-3.12.0-rc2-win64-x64.msi</a></td><td align="right">2018-06-29 13:56 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc2-win64-x64.zip">cmake-3.12.0-rc2-win64-x64.zip</a></td><td align="right">2018-06-29 13:56 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc2.tar.Z">cmake-3.12.0-rc2.tar.Z</a></td><td align="right">2018-06-29 13:56 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc2.tar.gz">cmake-3.12.0-rc2.tar.gz</a></td><td align="right">2018-06-29 13:56 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc2.zip">cmake-3.12.0-rc2.zip</a></td><td align="right">2018-06-29 13:56 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc3-Darwin-x86_64.dmg">cmake-3.12.0-rc3-Darwin-x86_64.dmg</a></td><td align="right">2018-07-09 11:38 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc3-Darwin-x86_64.tar.gz">cmake-3.12.0-rc3-Darwin-x86_64.tar.gz</a></td><td align="right">2018-07-09 11:38 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.0-rc3-Linux-x86_64.sh">cmake-3.12.0-rc3-Linux-x86_64.sh</a></td><td align="right">2018-07-09 11:38 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc3-Linux-x86_64.tar.gz">cmake-3.12.0-rc3-Linux-x86_64.tar.gz</a></td><td align="right">2018-07-09 11:38 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.0-rc3-SHA-256.txt">cmake-3.12.0-rc3-SHA-256.txt</a></td><td align="right">2018-07-09 11:38 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.0-rc3-SHA-256.txt.asc">cmake-3.12.0-rc3-SHA-256.txt.asc</a></td><td align="right">2018-07-09 11:38 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc3-win32-x86.msi">cmake-3.12.0-rc3-win32-x86.msi</a></td><td align="right">2018-07-09 11:38 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc3-win32-x86.zip">cmake-3.12.0-rc3-win32-x86.zip</a></td><td align="right">2018-07-09 11:38 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc3-win64-x64.msi">cmake-3.12.0-rc3-win64-x64.msi</a></td><td align="right">2018-07-09 11:37 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc3-win64-x64.zip">cmake-3.12.0-rc3-win64-x64.zip</a></td><td align="right">2018-07-09 11:37 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc3.tar.Z">cmake-3.12.0-rc3.tar.Z</a></td><td align="right">2018-07-09 11:37 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc3.tar.gz">cmake-3.12.0-rc3.tar.gz</a></td><td align="right">2018-07-09 11:37 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-rc3.zip">cmake-3.12.0-rc3.zip</a></td><td align="right">2018-07-09 11:37 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-win32-x86.msi">cmake-3.12.0-win32-x86.msi</a></td><td align="right">2018-07-17 09:58 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-win32-x86.zip">cmake-3.12.0-win32-x86.zip</a></td><td align="right">2018-07-17 09:58 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-win64-x64.msi">cmake-3.12.0-win64-x64.msi</a></td><td align="right">2018-07-17 09:58 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0-win64-x64.zip">cmake-3.12.0-win64-x64.zip</a></td><td align="right">2018-07-17 09:58 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0.tar.Z">cmake-3.12.0.tar.Z</a></td><td align="right">2018-07-17 09:58 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0.tar.gz">cmake-3.12.0.tar.gz</a></td><td align="right">2018-07-17 09:58 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.0.zip">cmake-3.12.0.zip</a></td><td align="right">2018-07-17 09:57 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.1-Darwin-x86_64.dmg">cmake-3.12.1-Darwin-x86_64.dmg</a></td><td align="right">2018-08-09 11:21 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.1-Darwin-x86_64.tar.gz">cmake-3.12.1-Darwin-x86_64.tar.gz</a></td><td align="right">2018-08-09 11:21 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.1-Linux-x86_64.sh">cmake-3.12.1-Linux-x86_64.sh</a></td><td align="right">2018-08-09 11:21 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.1-Linux-x86_64.tar.gz">cmake-3.12.1-Linux-x86_64.tar.gz</a></td><td align="right">2018-08-09 11:21 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.1-SHA-256.txt">cmake-3.12.1-SHA-256.txt</a></td><td align="right">2018-08-09 11:20 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.1-SHA-256.txt.asc">cmake-3.12.1-SHA-256.txt.asc</a></td><td align="right">2018-08-09 11:20 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.1-win32-x86.msi">cmake-3.12.1-win32-x86.msi</a></td><td align="right">2018-08-09 11:20 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.1-win32-x86.zip">cmake-3.12.1-win32-x86.zip</a></td><td align="right">2018-08-09 11:20 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.1-win64-x64.msi">cmake-3.12.1-win64-x64.msi</a></td><td align="right">2018-08-09 11:20 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.1-win64-x64.zip">cmake-3.12.1-win64-x64.zip</a></td><td align="right">2018-08-09 11:20 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.1.tar.Z">cmake-3.12.1.tar.Z</a></td><td align="right">2018-08-09 11:20 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.1.tar.gz">cmake-3.12.1.tar.gz</a></td><td align="right">2018-08-09 11:20 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.1.zip">cmake-3.12.1.zip</a></td><td align="right">2018-08-09 11:20 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.2-Darwin-x86_64.dmg">cmake-3.12.2-Darwin-x86_64.dmg</a></td><td align="right">2018-09-07 12:51 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.2-Darwin-x86_64.tar.gz">cmake-3.12.2-Darwin-x86_64.tar.gz</a></td><td align="right">2018-09-07 12:51 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.2-Linux-x86_64.sh">cmake-3.12.2-Linux-x86_64.sh</a></td><td align="right">2018-09-07 12:51 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.2-Linux-x86_64.tar.gz">cmake-3.12.2-Linux-x86_64.tar.gz</a></td><td align="right">2018-09-07 12:51 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.2-SHA-256.txt">cmake-3.12.2-SHA-256.txt</a></td><td align="right">2018-09-07 12:51 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.2-SHA-256.txt.asc">cmake-3.12.2-SHA-256.txt.asc</a></td><td align="right">2018-09-07 12:51 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.2-win32-x86.msi">cmake-3.12.2-win32-x86.msi</a></td><td align="right">2018-09-07 12:51 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.2-win32-x86.zip">cmake-3.12.2-win32-x86.zip</a></td><td align="right">2018-09-07 12:51 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.2-win64-x64.msi">cmake-3.12.2-win64-x64.msi</a></td><td align="right">2018-09-07 12:51 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.2-win64-x64.zip">cmake-3.12.2-win64-x64.zip</a></td><td align="right">2018-09-07 12:51 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.2.tar.Z">cmake-3.12.2.tar.Z</a></td><td align="right">2018-09-07 12:51 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.2.tar.gz">cmake-3.12.2.tar.gz</a></td><td align="right">2018-09-07 12:51 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.2.zip">cmake-3.12.2.zip</a></td><td align="right">2018-09-07 12:51 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.3-Darwin-x86_64.dmg">cmake-3.12.3-Darwin-x86_64.dmg</a></td><td align="right">2018-10-03 10:46 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.3-Darwin-x86_64.tar.gz">cmake-3.12.3-Darwin-x86_64.tar.gz</a></td><td align="right">2018-10-03 10:46 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.3-Linux-x86_64.sh">cmake-3.12.3-Linux-x86_64.sh</a></td><td align="right">2018-10-03 10:45 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.3-Linux-x86_64.tar.gz">cmake-3.12.3-Linux-x86_64.tar.gz</a></td><td align="right">2018-10-03 10:45 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.3-SHA-256.txt">cmake-3.12.3-SHA-256.txt</a></td><td align="right">2018-10-03 10:45 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.3-SHA-256.txt.asc">cmake-3.12.3-SHA-256.txt.asc</a></td><td align="right">2018-10-03 10:45 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.3-win32-x86.msi">cmake-3.12.3-win32-x86.msi</a></td><td align="right">2018-10-03 10:45 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.3-win32-x86.zip">cmake-3.12.3-win32-x86.zip</a></td><td align="right">2018-10-03 10:45 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.3-win64-x64.msi">cmake-3.12.3-win64-x64.msi</a></td><td align="right">2018-10-03 10:45 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.3-win64-x64.zip">cmake-3.12.3-win64-x64.zip</a></td><td align="right">2018-10-03 10:45 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.3.tar.Z">cmake-3.12.3.tar.Z</a></td><td align="right">2018-10-03 10:45 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.3.tar.gz">cmake-3.12.3.tar.gz</a></td><td align="right">2018-10-03 10:45 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.3.zip">cmake-3.12.3.zip</a></td><td align="right">2018-10-03 10:45 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.4-Darwin-x86_64.dmg">cmake-3.12.4-Darwin-x86_64.dmg</a></td><td align="right">2018-11-02 13:51 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.4-Darwin-x86_64.tar.gz">cmake-3.12.4-Darwin-x86_64.tar.gz</a></td><td align="right">2018-11-02 13:51 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.4-Linux-x86_64.sh">cmake-3.12.4-Linux-x86_64.sh</a></td><td align="right">2018-11-02 13:51 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.4-Linux-x86_64.tar.gz">cmake-3.12.4-Linux-x86_64.tar.gz</a></td><td align="right">2018-11-02 13:51 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.4-SHA-256.txt">cmake-3.12.4-SHA-256.txt</a></td><td align="right">2018-11-02 13:51 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.12.4-SHA-256.txt.asc">cmake-3.12.4-SHA-256.txt.asc</a></td><td align="right">2018-11-02 13:51 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.4-win32-x86.msi">cmake-3.12.4-win32-x86.msi</a></td><td align="right">2018-11-02 13:51 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.4-win32-x86.zip">cmake-3.12.4-win32-x86.zip</a></td><td align="right">2018-11-02 13:51 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.12.4-win64-x64.msi">cmake-3.12.4-win64-x64.msi</a></td><td align="right">2018-11-02 13:51 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.4-win64-x64.zip">cmake-3.12.4-win64-x64.zip</a></td><td align="right">2018-11-02 13:51 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.4.tar.Z">cmake-3.12.4.tar.Z</a></td><td align="right">2018-11-02 13:51 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.4.tar.gz">cmake-3.12.4.tar.gz</a></td><td align="right">2018-11-02 13:51 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.12.4.zip">cmake-3.12.4.zip</a></td><td align="right">2018-11-02 13:51 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.13/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.13/index.html
new file mode 100644
index 000000000..b50a791b8
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.13/index.html
@@ -0,0 +1,131 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /files/v3.13</title>
+ </head>
+ <body>
+<h1>Index of /files/v3.13</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/files/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-Darwin-x86_64.dmg">cmake-3.13.0-Darwin-x86_64.dmg</a></td><td align="right">2018-11-20 14:05 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-Darwin-x86_64.tar.gz">cmake-3.13.0-Darwin-x86_64.tar.gz</a></td><td align="right">2018-11-20 14:05 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.0-Linux-x86_64.sh">cmake-3.13.0-Linux-x86_64.sh</a></td><td align="right">2018-11-20 14:05 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-Linux-x86_64.tar.gz">cmake-3.13.0-Linux-x86_64.tar.gz</a></td><td align="right">2018-11-20 14:05 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.0-SHA-256.txt">cmake-3.13.0-SHA-256.txt</a></td><td align="right">2018-11-20 14:05 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.0-SHA-256.txt.asc">cmake-3.13.0-SHA-256.txt.asc</a></td><td align="right">2018-11-20 14:05 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc1-Darwin-x86_64.dmg">cmake-3.13.0-rc1-Darwin-x86_64.dmg</a></td><td align="right">2018-10-09 11:32 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc1-Darwin-x86_64.tar.gz">cmake-3.13.0-rc1-Darwin-x86_64.tar.gz</a></td><td align="right">2018-10-09 11:32 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.0-rc1-Linux-x86_64.sh">cmake-3.13.0-rc1-Linux-x86_64.sh</a></td><td align="right">2018-10-09 11:32 </td><td align="right"> 34M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc1-Linux-x86_64.tar.gz">cmake-3.13.0-rc1-Linux-x86_64.tar.gz</a></td><td align="right">2018-10-09 11:32 </td><td align="right"> 34M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.0-rc1-SHA-256.txt">cmake-3.13.0-rc1-SHA-256.txt</a></td><td align="right">2018-10-09 11:32 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.0-rc1-SHA-256.txt.asc">cmake-3.13.0-rc1-SHA-256.txt.asc</a></td><td align="right">2018-10-09 11:32 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc1-win32-x86.msi">cmake-3.13.0-rc1-win32-x86.msi</a></td><td align="right">2018-10-09 11:32 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc1-win32-x86.zip">cmake-3.13.0-rc1-win32-x86.zip</a></td><td align="right">2018-10-09 11:32 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc1-win64-x64.msi">cmake-3.13.0-rc1-win64-x64.msi</a></td><td align="right">2018-10-09 11:32 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc1-win64-x64.zip">cmake-3.13.0-rc1-win64-x64.zip</a></td><td align="right">2018-10-09 11:32 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc1.tar.Z">cmake-3.13.0-rc1.tar.Z</a></td><td align="right">2018-10-09 11:32 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc1.tar.gz">cmake-3.13.0-rc1.tar.gz</a></td><td align="right">2018-10-09 11:32 </td><td align="right">8.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc1.zip">cmake-3.13.0-rc1.zip</a></td><td align="right">2018-10-09 11:32 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc2-Darwin-x86_64.dmg">cmake-3.13.0-rc2-Darwin-x86_64.dmg</a></td><td align="right">2018-10-25 10:28 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc2-Darwin-x86_64.tar.gz">cmake-3.13.0-rc2-Darwin-x86_64.tar.gz</a></td><td align="right">2018-10-25 10:28 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.0-rc2-Linux-x86_64.sh">cmake-3.13.0-rc2-Linux-x86_64.sh</a></td><td align="right">2018-10-25 10:27 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc2-Linux-x86_64.tar.gz">cmake-3.13.0-rc2-Linux-x86_64.tar.gz</a></td><td align="right">2018-10-25 10:27 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.0-rc2-SHA-256.txt">cmake-3.13.0-rc2-SHA-256.txt</a></td><td align="right">2018-10-25 10:27 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.0-rc2-SHA-256.txt.asc">cmake-3.13.0-rc2-SHA-256.txt.asc</a></td><td align="right">2018-10-25 10:27 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc2-win32-x86.msi">cmake-3.13.0-rc2-win32-x86.msi</a></td><td align="right">2018-10-25 10:27 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc2-win32-x86.zip">cmake-3.13.0-rc2-win32-x86.zip</a></td><td align="right">2018-10-25 10:27 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc2-win64-x64.msi">cmake-3.13.0-rc2-win64-x64.msi</a></td><td align="right">2018-10-25 10:27 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc2-win64-x64.zip">cmake-3.13.0-rc2-win64-x64.zip</a></td><td align="right">2018-10-25 10:27 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc2.tar.Z">cmake-3.13.0-rc2.tar.Z</a></td><td align="right">2018-10-25 10:27 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc2.tar.gz">cmake-3.13.0-rc2.tar.gz</a></td><td align="right">2018-10-25 10:27 </td><td align="right">8.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc2.zip">cmake-3.13.0-rc2.zip</a></td><td align="right">2018-10-25 10:27 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc3-Darwin-x86_64.dmg">cmake-3.13.0-rc3-Darwin-x86_64.dmg</a></td><td align="right">2018-11-07 12:11 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc3-Darwin-x86_64.tar.gz">cmake-3.13.0-rc3-Darwin-x86_64.tar.gz</a></td><td align="right">2018-11-07 12:11 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.0-rc3-Linux-x86_64.sh">cmake-3.13.0-rc3-Linux-x86_64.sh</a></td><td align="right">2018-11-07 12:11 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc3-Linux-x86_64.tar.gz">cmake-3.13.0-rc3-Linux-x86_64.tar.gz</a></td><td align="right">2018-11-07 12:11 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.0-rc3-SHA-256.txt">cmake-3.13.0-rc3-SHA-256.txt</a></td><td align="right">2018-11-07 12:11 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.0-rc3-SHA-256.txt.asc">cmake-3.13.0-rc3-SHA-256.txt.asc</a></td><td align="right">2018-11-07 12:11 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc3-win32-x86.msi">cmake-3.13.0-rc3-win32-x86.msi</a></td><td align="right">2018-11-07 12:11 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc3-win32-x86.zip">cmake-3.13.0-rc3-win32-x86.zip</a></td><td align="right">2018-11-07 12:11 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc3-win64-x64.msi">cmake-3.13.0-rc3-win64-x64.msi</a></td><td align="right">2018-11-07 12:11 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc3-win64-x64.zip">cmake-3.13.0-rc3-win64-x64.zip</a></td><td align="right">2018-11-07 12:11 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc3.tar.Z">cmake-3.13.0-rc3.tar.Z</a></td><td align="right">2018-11-07 12:11 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc3.tar.gz">cmake-3.13.0-rc3.tar.gz</a></td><td align="right">2018-11-07 12:11 </td><td align="right">8.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-rc3.zip">cmake-3.13.0-rc3.zip</a></td><td align="right">2018-11-07 12:11 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-win32-x86.msi">cmake-3.13.0-win32-x86.msi</a></td><td align="right">2018-11-20 14:05 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-win32-x86.zip">cmake-3.13.0-win32-x86.zip</a></td><td align="right">2018-11-20 14:05 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-win64-x64.msi">cmake-3.13.0-win64-x64.msi</a></td><td align="right">2018-11-20 14:05 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0-win64-x64.zip">cmake-3.13.0-win64-x64.zip</a></td><td align="right">2018-11-20 14:05 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0.tar.Z">cmake-3.13.0.tar.Z</a></td><td align="right">2018-11-20 14:04 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0.tar.gz">cmake-3.13.0.tar.gz</a></td><td align="right">2018-11-20 14:04 </td><td align="right">8.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.0.zip">cmake-3.13.0.zip</a></td><td align="right">2018-11-20 14:04 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.1-Darwin-x86_64.dmg">cmake-3.13.1-Darwin-x86_64.dmg</a></td><td align="right">2018-11-28 08:50 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.1-Darwin-x86_64.tar.gz">cmake-3.13.1-Darwin-x86_64.tar.gz</a></td><td align="right">2018-11-28 08:50 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.1-Linux-x86_64.sh">cmake-3.13.1-Linux-x86_64.sh</a></td><td align="right">2018-11-28 08:50 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.1-Linux-x86_64.tar.gz">cmake-3.13.1-Linux-x86_64.tar.gz</a></td><td align="right">2018-11-28 08:50 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.1-SHA-256.txt">cmake-3.13.1-SHA-256.txt</a></td><td align="right">2018-11-28 08:50 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.1-SHA-256.txt.asc">cmake-3.13.1-SHA-256.txt.asc</a></td><td align="right">2018-11-28 08:50 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.1-win32-x86.msi">cmake-3.13.1-win32-x86.msi</a></td><td align="right">2018-11-28 08:50 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.1-win32-x86.zip">cmake-3.13.1-win32-x86.zip</a></td><td align="right">2018-11-28 08:50 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.1-win64-x64.msi">cmake-3.13.1-win64-x64.msi</a></td><td align="right">2018-11-28 08:50 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.1-win64-x64.zip">cmake-3.13.1-win64-x64.zip</a></td><td align="right">2018-11-28 08:50 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.1.tar.Z">cmake-3.13.1.tar.Z</a></td><td align="right">2018-11-28 08:50 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.1.tar.gz">cmake-3.13.1.tar.gz</a></td><td align="right">2018-11-28 08:50 </td><td align="right">8.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.1.zip">cmake-3.13.1.zip</a></td><td align="right">2018-11-28 08:50 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.2-Darwin-x86_64.dmg">cmake-3.13.2-Darwin-x86_64.dmg</a></td><td align="right">2018-12-13 08:41 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.2-Darwin-x86_64.tar.gz">cmake-3.13.2-Darwin-x86_64.tar.gz</a></td><td align="right">2018-12-13 08:41 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.2-Linux-x86_64.sh">cmake-3.13.2-Linux-x86_64.sh</a></td><td align="right">2018-12-13 08:41 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.2-Linux-x86_64.tar.gz">cmake-3.13.2-Linux-x86_64.tar.gz</a></td><td align="right">2018-12-13 08:41 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.2-SHA-256.txt">cmake-3.13.2-SHA-256.txt</a></td><td align="right">2018-12-13 08:41 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.2-SHA-256.txt.asc">cmake-3.13.2-SHA-256.txt.asc</a></td><td align="right">2018-12-13 08:41 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.2-win32-x86.msi">cmake-3.13.2-win32-x86.msi</a></td><td align="right">2018-12-13 08:41 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.2-win32-x86.zip">cmake-3.13.2-win32-x86.zip</a></td><td align="right">2018-12-13 08:41 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.2-win64-x64.msi">cmake-3.13.2-win64-x64.msi</a></td><td align="right">2018-12-13 08:41 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.2-win64-x64.zip">cmake-3.13.2-win64-x64.zip</a></td><td align="right">2018-12-13 08:41 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.2.tar.Z">cmake-3.13.2.tar.Z</a></td><td align="right">2018-12-13 08:41 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.2.tar.gz">cmake-3.13.2.tar.gz</a></td><td align="right">2018-12-13 08:41 </td><td align="right">8.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.2.zip">cmake-3.13.2.zip</a></td><td align="right">2018-12-13 08:41 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.3-Darwin-x86_64.dmg">cmake-3.13.3-Darwin-x86_64.dmg</a></td><td align="right">2019-01-14 09:26 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.3-Darwin-x86_64.tar.gz">cmake-3.13.3-Darwin-x86_64.tar.gz</a></td><td align="right">2019-01-14 09:26 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.3-Linux-x86_64.sh">cmake-3.13.3-Linux-x86_64.sh</a></td><td align="right">2019-01-14 09:25 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.3-Linux-x86_64.tar.gz">cmake-3.13.3-Linux-x86_64.tar.gz</a></td><td align="right">2019-01-14 09:25 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.3-SHA-256.txt">cmake-3.13.3-SHA-256.txt</a></td><td align="right">2019-01-14 09:25 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.3-SHA-256.txt.asc">cmake-3.13.3-SHA-256.txt.asc</a></td><td align="right">2019-01-14 09:25 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.3-win32-x86.msi">cmake-3.13.3-win32-x86.msi</a></td><td align="right">2019-01-14 09:25 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.3-win32-x86.zip">cmake-3.13.3-win32-x86.zip</a></td><td align="right">2019-01-14 09:25 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.3-win64-x64.msi">cmake-3.13.3-win64-x64.msi</a></td><td align="right">2019-01-14 09:25 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.3-win64-x64.zip">cmake-3.13.3-win64-x64.zip</a></td><td align="right">2019-01-14 09:25 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.3.tar.Z">cmake-3.13.3.tar.Z</a></td><td align="right">2019-01-14 09:25 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.3.tar.gz">cmake-3.13.3.tar.gz</a></td><td align="right">2019-01-14 09:25 </td><td align="right">8.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.3.zip">cmake-3.13.3.zip</a></td><td align="right">2019-01-14 09:25 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.4-Darwin-x86_64.dmg">cmake-3.13.4-Darwin-x86_64.dmg</a></td><td align="right">2019-02-01 13:20 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.4-Darwin-x86_64.tar.gz">cmake-3.13.4-Darwin-x86_64.tar.gz</a></td><td align="right">2019-02-01 13:20 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.4-Linux-x86_64.sh">cmake-3.13.4-Linux-x86_64.sh</a></td><td align="right">2019-02-01 13:20 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.4-Linux-x86_64.tar.gz">cmake-3.13.4-Linux-x86_64.tar.gz</a></td><td align="right">2019-02-01 13:20 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.4-SHA-256.txt">cmake-3.13.4-SHA-256.txt</a></td><td align="right">2019-02-01 13:20 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.4-SHA-256.txt.asc">cmake-3.13.4-SHA-256.txt.asc</a></td><td align="right">2019-02-01 13:20 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.4-win32-x86.msi">cmake-3.13.4-win32-x86.msi</a></td><td align="right">2019-02-01 13:20 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.4-win32-x86.zip">cmake-3.13.4-win32-x86.zip</a></td><td align="right">2019-02-01 13:20 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.4-win64-x64.msi">cmake-3.13.4-win64-x64.msi</a></td><td align="right">2019-02-01 13:20 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.4-win64-x64.zip">cmake-3.13.4-win64-x64.zip</a></td><td align="right">2019-02-01 13:20 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.4.tar.Z">cmake-3.13.4.tar.Z</a></td><td align="right">2019-02-01 13:20 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.4.tar.gz">cmake-3.13.4.tar.gz</a></td><td align="right">2019-02-01 13:20 </td><td align="right">8.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.4.zip">cmake-3.13.4.zip</a></td><td align="right">2019-02-01 13:20 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.5-Darwin-x86_64.dmg">cmake-3.13.5-Darwin-x86_64.dmg</a></td><td align="right">2019-05-14 12:44 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.5-Darwin-x86_64.tar.gz">cmake-3.13.5-Darwin-x86_64.tar.gz</a></td><td align="right">2019-05-14 12:44 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.5-Linux-x86_64.sh">cmake-3.13.5-Linux-x86_64.sh</a></td><td align="right">2019-05-14 12:44 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.5-Linux-x86_64.tar.gz">cmake-3.13.5-Linux-x86_64.tar.gz</a></td><td align="right">2019-05-14 12:44 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.5-SHA-256.txt">cmake-3.13.5-SHA-256.txt</a></td><td align="right">2019-05-14 12:43 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.13.5-SHA-256.txt.asc">cmake-3.13.5-SHA-256.txt.asc</a></td><td align="right">2019-05-14 12:43 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.5-win32-x86.msi">cmake-3.13.5-win32-x86.msi</a></td><td align="right">2019-05-14 12:43 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.5-win32-x86.zip">cmake-3.13.5-win32-x86.zip</a></td><td align="right">2019-05-14 12:43 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.13.5-win64-x64.msi">cmake-3.13.5-win64-x64.msi</a></td><td align="right">2019-05-14 12:43 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.5-win64-x64.zip">cmake-3.13.5-win64-x64.zip</a></td><td align="right">2019-05-14 12:43 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.5.tar.Z">cmake-3.13.5.tar.Z</a></td><td align="right">2019-05-14 12:43 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.5.tar.gz">cmake-3.13.5.tar.gz</a></td><td align="right">2019-05-14 12:43 </td><td align="right">8.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.13.5.zip">cmake-3.13.5.zip</a></td><td align="right">2019-05-14 12:43 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.14/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.14/index.html
new file mode 100644
index 000000000..bec9c14d4
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.14/index.html
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /files/v3.14</title>
+ </head>
+ <body>
+<h1>Index of /files/v3.14</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/files/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-Darwin-x86_64.dmg">cmake-3.14.0-Darwin-x86_64.dmg</a></td><td align="right">2019-03-14 11:37 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-Darwin-x86_64.tar.gz">cmake-3.14.0-Darwin-x86_64.tar.gz</a></td><td align="right">2019-03-14 11:37 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.0-Linux-x86_64.sh">cmake-3.14.0-Linux-x86_64.sh</a></td><td align="right">2019-03-14 11:37 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-Linux-x86_64.tar.gz">cmake-3.14.0-Linux-x86_64.tar.gz</a></td><td align="right">2019-03-14 11:37 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.0-SHA-256.txt">cmake-3.14.0-SHA-256.txt</a></td><td align="right">2019-03-22 11:03 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.0-SHA-256.txt.asc">cmake-3.14.0-SHA-256.txt.asc</a></td><td align="right">2019-03-22 11:03 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc1-Darwin-x86_64.dmg">cmake-3.14.0-rc1-Darwin-x86_64.dmg</a></td><td align="right">2019-02-07 10:36 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc1-Darwin-x86_64.tar.gz">cmake-3.14.0-rc1-Darwin-x86_64.tar.gz</a></td><td align="right">2019-02-07 10:36 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.0-rc1-Linux-x86_64.sh">cmake-3.14.0-rc1-Linux-x86_64.sh</a></td><td align="right">2019-02-07 10:36 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc1-Linux-x86_64.tar.gz">cmake-3.14.0-rc1-Linux-x86_64.tar.gz</a></td><td align="right">2019-02-07 10:36 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.0-rc1-SHA-256.txt">cmake-3.14.0-rc1-SHA-256.txt</a></td><td align="right">2019-02-07 10:36 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.0-rc1-SHA-256.txt.asc">cmake-3.14.0-rc1-SHA-256.txt.asc</a></td><td align="right">2019-02-07 10:36 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc1-win32-x86.msi">cmake-3.14.0-rc1-win32-x86.msi</a></td><td align="right">2019-02-07 10:36 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc1-win32-x86.zip">cmake-3.14.0-rc1-win32-x86.zip</a></td><td align="right">2019-02-07 10:36 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc1-win64-x64.msi">cmake-3.14.0-rc1-win64-x64.msi</a></td><td align="right">2019-02-07 10:36 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc1-win64-x64.zip">cmake-3.14.0-rc1-win64-x64.zip</a></td><td align="right">2019-02-07 10:36 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc1.tar.Z">cmake-3.14.0-rc1.tar.Z</a></td><td align="right">2019-02-07 10:36 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc1.tar.gz">cmake-3.14.0-rc1.tar.gz</a></td><td align="right">2019-02-07 10:35 </td><td align="right">8.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc1.zip">cmake-3.14.0-rc1.zip</a></td><td align="right">2019-02-07 10:35 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc2-Darwin-x86_64.dmg">cmake-3.14.0-rc2-Darwin-x86_64.dmg</a></td><td align="right">2019-02-15 10:04 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc2-Darwin-x86_64.tar.gz">cmake-3.14.0-rc2-Darwin-x86_64.tar.gz</a></td><td align="right">2019-02-15 10:04 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.0-rc2-Linux-x86_64.sh">cmake-3.14.0-rc2-Linux-x86_64.sh</a></td><td align="right">2019-02-15 10:04 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc2-Linux-x86_64.tar.gz">cmake-3.14.0-rc2-Linux-x86_64.tar.gz</a></td><td align="right">2019-02-15 10:04 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.0-rc2-SHA-256.txt">cmake-3.14.0-rc2-SHA-256.txt</a></td><td align="right">2019-02-15 10:04 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.0-rc2-SHA-256.txt.asc">cmake-3.14.0-rc2-SHA-256.txt.asc</a></td><td align="right">2019-02-15 10:04 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc2-win32-x86.msi">cmake-3.14.0-rc2-win32-x86.msi</a></td><td align="right">2019-02-15 10:04 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc2-win32-x86.zip">cmake-3.14.0-rc2-win32-x86.zip</a></td><td align="right">2019-02-15 10:04 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc2-win64-x64.msi">cmake-3.14.0-rc2-win64-x64.msi</a></td><td align="right">2019-02-15 10:03 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc2-win64-x64.zip">cmake-3.14.0-rc2-win64-x64.zip</a></td><td align="right">2019-02-15 10:03 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc2.tar.Z">cmake-3.14.0-rc2.tar.Z</a></td><td align="right">2019-02-15 10:03 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc2.tar.gz">cmake-3.14.0-rc2.tar.gz</a></td><td align="right">2019-02-15 10:03 </td><td align="right">8.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc2.zip">cmake-3.14.0-rc2.zip</a></td><td align="right">2019-02-15 10:03 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc3-Darwin-x86_64.dmg">cmake-3.14.0-rc3-Darwin-x86_64.dmg</a></td><td align="right">2019-03-01 11:20 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc3-Darwin-x86_64.tar.gz">cmake-3.14.0-rc3-Darwin-x86_64.tar.gz</a></td><td align="right">2019-03-01 11:20 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.0-rc3-Linux-x86_64.sh">cmake-3.14.0-rc3-Linux-x86_64.sh</a></td><td align="right">2019-03-01 11:20 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc3-Linux-x86_64.tar.gz">cmake-3.14.0-rc3-Linux-x86_64.tar.gz</a></td><td align="right">2019-03-01 11:20 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.0-rc3-SHA-256.txt">cmake-3.14.0-rc3-SHA-256.txt</a></td><td align="right">2019-03-01 11:20 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.0-rc3-SHA-256.txt.asc">cmake-3.14.0-rc3-SHA-256.txt.asc</a></td><td align="right">2019-03-01 11:20 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc3-win32-x86.msi">cmake-3.14.0-rc3-win32-x86.msi</a></td><td align="right">2019-03-01 11:20 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc3-win32-x86.zip">cmake-3.14.0-rc3-win32-x86.zip</a></td><td align="right">2019-03-01 11:20 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc3-win64-x64.msi">cmake-3.14.0-rc3-win64-x64.msi</a></td><td align="right">2019-03-01 11:20 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc3-win64-x64.zip">cmake-3.14.0-rc3-win64-x64.zip</a></td><td align="right">2019-03-01 11:20 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc3.tar.Z">cmake-3.14.0-rc3.tar.Z</a></td><td align="right">2019-03-01 11:20 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc3.tar.gz">cmake-3.14.0-rc3.tar.gz</a></td><td align="right">2019-03-01 11:19 </td><td align="right">8.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc3.zip">cmake-3.14.0-rc3.zip</a></td><td align="right">2019-03-01 11:19 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc4-Darwin-x86_64.dmg">cmake-3.14.0-rc4-Darwin-x86_64.dmg</a></td><td align="right">2019-03-08 11:09 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc4-Darwin-x86_64.tar.gz">cmake-3.14.0-rc4-Darwin-x86_64.tar.gz</a></td><td align="right">2019-03-08 11:09 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.0-rc4-Linux-x86_64.sh">cmake-3.14.0-rc4-Linux-x86_64.sh</a></td><td align="right">2019-03-08 11:09 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc4-Linux-x86_64.tar.gz">cmake-3.14.0-rc4-Linux-x86_64.tar.gz</a></td><td align="right">2019-03-08 11:09 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.0-rc4-SHA-256.txt">cmake-3.14.0-rc4-SHA-256.txt</a></td><td align="right">2019-03-08 11:09 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.0-rc4-SHA-256.txt.asc">cmake-3.14.0-rc4-SHA-256.txt.asc</a></td><td align="right">2019-03-08 11:09 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc4-win32-x86.msi">cmake-3.14.0-rc4-win32-x86.msi</a></td><td align="right">2019-03-08 11:08 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc4-win32-x86.zip">cmake-3.14.0-rc4-win32-x86.zip</a></td><td align="right">2019-03-08 11:08 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc4-win64-x64.msi">cmake-3.14.0-rc4-win64-x64.msi</a></td><td align="right">2019-03-08 11:08 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc4-win64-x64.zip">cmake-3.14.0-rc4-win64-x64.zip</a></td><td align="right">2019-03-08 11:08 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc4.tar.Z">cmake-3.14.0-rc4.tar.Z</a></td><td align="right">2019-03-08 11:08 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc4.tar.gz">cmake-3.14.0-rc4.tar.gz</a></td><td align="right">2019-03-08 11:08 </td><td align="right">8.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-rc4.zip">cmake-3.14.0-rc4.zip</a></td><td align="right">2019-03-08 11:08 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-win32-x86.msi">cmake-3.14.0-win32-x86.msi</a></td><td align="right">2019-03-14 11:36 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-win32-x86.zip">cmake-3.14.0-win32-x86.zip</a></td><td align="right">2019-03-14 11:36 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-win64-x64.msi">cmake-3.14.0-win64-x64.msi</a></td><td align="right">2019-03-22 11:03 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0-win64-x64.zip">cmake-3.14.0-win64-x64.zip</a></td><td align="right">2019-03-22 11:03 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0.tar.Z">cmake-3.14.0.tar.Z</a></td><td align="right">2019-03-14 11:36 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0.tar.gz">cmake-3.14.0.tar.gz</a></td><td align="right">2019-03-14 11:36 </td><td align="right">8.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.0.zip">cmake-3.14.0.zip</a></td><td align="right">2019-03-14 11:36 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.1-Darwin-x86_64.dmg">cmake-3.14.1-Darwin-x86_64.dmg</a></td><td align="right">2019-03-29 12:20 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.1-Darwin-x86_64.tar.gz">cmake-3.14.1-Darwin-x86_64.tar.gz</a></td><td align="right">2019-03-29 12:20 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.1-Linux-x86_64.sh">cmake-3.14.1-Linux-x86_64.sh</a></td><td align="right">2019-03-29 12:20 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.1-Linux-x86_64.tar.gz">cmake-3.14.1-Linux-x86_64.tar.gz</a></td><td align="right">2019-03-29 12:19 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.1-SHA-256.txt">cmake-3.14.1-SHA-256.txt</a></td><td align="right">2019-03-29 12:19 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.1-SHA-256.txt.asc">cmake-3.14.1-SHA-256.txt.asc</a></td><td align="right">2019-03-29 12:19 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.1-win32-x86.msi">cmake-3.14.1-win32-x86.msi</a></td><td align="right">2019-03-29 12:19 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.1-win32-x86.zip">cmake-3.14.1-win32-x86.zip</a></td><td align="right">2019-03-29 12:19 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.1-win64-x64.msi">cmake-3.14.1-win64-x64.msi</a></td><td align="right">2019-03-29 12:19 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.1-win64-x64.zip">cmake-3.14.1-win64-x64.zip</a></td><td align="right">2019-03-29 12:19 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.1.tar.Z">cmake-3.14.1.tar.Z</a></td><td align="right">2019-03-29 12:19 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.1.tar.gz">cmake-3.14.1.tar.gz</a></td><td align="right">2019-03-29 12:19 </td><td align="right">8.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.1.zip">cmake-3.14.1.zip</a></td><td align="right">2019-03-29 12:19 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.2-Darwin-x86_64.dmg">cmake-3.14.2-Darwin-x86_64.dmg</a></td><td align="right">2019-04-12 10:19 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.2-Darwin-x86_64.tar.gz">cmake-3.14.2-Darwin-x86_64.tar.gz</a></td><td align="right">2019-04-12 10:19 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.2-Linux-x86_64.sh">cmake-3.14.2-Linux-x86_64.sh</a></td><td align="right">2019-04-12 10:19 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.2-Linux-x86_64.tar.gz">cmake-3.14.2-Linux-x86_64.tar.gz</a></td><td align="right">2019-04-12 10:19 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.2-SHA-256.txt">cmake-3.14.2-SHA-256.txt</a></td><td align="right">2019-04-12 10:19 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.2-SHA-256.txt.asc">cmake-3.14.2-SHA-256.txt.asc</a></td><td align="right">2019-04-12 10:19 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.2-win32-x86.msi">cmake-3.14.2-win32-x86.msi</a></td><td align="right">2019-04-12 10:19 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.2-win32-x86.zip">cmake-3.14.2-win32-x86.zip</a></td><td align="right">2019-04-12 10:19 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.2-win64-x64.msi">cmake-3.14.2-win64-x64.msi</a></td><td align="right">2019-04-12 10:19 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.2-win64-x64.zip">cmake-3.14.2-win64-x64.zip</a></td><td align="right">2019-04-12 10:19 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.2.tar.Z">cmake-3.14.2.tar.Z</a></td><td align="right">2019-04-12 10:19 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.2.tar.gz">cmake-3.14.2.tar.gz</a></td><td align="right">2019-04-12 10:19 </td><td align="right">8.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.2.zip">cmake-3.14.2.zip</a></td><td align="right">2019-04-12 10:19 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.3-Darwin-x86_64.dmg">cmake-3.14.3-Darwin-x86_64.dmg</a></td><td align="right">2019-04-22 10:40 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.3-Darwin-x86_64.tar.gz">cmake-3.14.3-Darwin-x86_64.tar.gz</a></td><td align="right">2019-04-22 10:39 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.3-Linux-x86_64.sh">cmake-3.14.3-Linux-x86_64.sh</a></td><td align="right">2019-04-22 10:39 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.3-Linux-x86_64.tar.gz">cmake-3.14.3-Linux-x86_64.tar.gz</a></td><td align="right">2019-04-22 10:39 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.3-SHA-256.txt">cmake-3.14.3-SHA-256.txt</a></td><td align="right">2019-04-22 10:39 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.3-SHA-256.txt.asc">cmake-3.14.3-SHA-256.txt.asc</a></td><td align="right">2019-04-22 10:39 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.3-win32-x86.msi">cmake-3.14.3-win32-x86.msi</a></td><td align="right">2019-04-22 10:39 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.3-win32-x86.zip">cmake-3.14.3-win32-x86.zip</a></td><td align="right">2019-04-22 10:39 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.3-win64-x64.msi">cmake-3.14.3-win64-x64.msi</a></td><td align="right">2019-04-22 10:39 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.3-win64-x64.zip">cmake-3.14.3-win64-x64.zip</a></td><td align="right">2019-04-22 10:39 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.3.tar.Z">cmake-3.14.3.tar.Z</a></td><td align="right">2019-04-22 10:39 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.3.tar.gz">cmake-3.14.3.tar.gz</a></td><td align="right">2019-04-22 10:39 </td><td align="right">8.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.3.zip">cmake-3.14.3.zip</a></td><td align="right">2019-04-22 10:39 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.4-Darwin-x86_64.dmg">cmake-3.14.4-Darwin-x86_64.dmg</a></td><td align="right">2019-05-14 14:00 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.4-Darwin-x86_64.tar.gz">cmake-3.14.4-Darwin-x86_64.tar.gz</a></td><td align="right">2019-05-14 14:00 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.4-Linux-x86_64.sh">cmake-3.14.4-Linux-x86_64.sh</a></td><td align="right">2019-05-14 14:00 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.4-Linux-x86_64.tar.gz">cmake-3.14.4-Linux-x86_64.tar.gz</a></td><td align="right">2019-05-14 13:59 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.4-SHA-256.txt">cmake-3.14.4-SHA-256.txt</a></td><td align="right">2019-05-14 13:59 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.4-SHA-256.txt.asc">cmake-3.14.4-SHA-256.txt.asc</a></td><td align="right">2019-05-14 13:59 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.4-win32-x86.msi">cmake-3.14.4-win32-x86.msi</a></td><td align="right">2019-05-14 13:59 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.4-win32-x86.zip">cmake-3.14.4-win32-x86.zip</a></td><td align="right">2019-05-14 13:59 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.4-win64-x64.msi">cmake-3.14.4-win64-x64.msi</a></td><td align="right">2019-05-14 13:59 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.4-win64-x64.zip">cmake-3.14.4-win64-x64.zip</a></td><td align="right">2019-05-14 13:59 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.4.tar.Z">cmake-3.14.4.tar.Z</a></td><td align="right">2019-05-14 13:59 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.4.tar.gz">cmake-3.14.4.tar.gz</a></td><td align="right">2019-05-14 13:59 </td><td align="right">8.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.4.zip">cmake-3.14.4.zip</a></td><td align="right">2019-05-14 13:59 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.5-Darwin-x86_64.dmg">cmake-3.14.5-Darwin-x86_64.dmg</a></td><td align="right">2019-05-31 12:39 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.5-Darwin-x86_64.tar.gz">cmake-3.14.5-Darwin-x86_64.tar.gz</a></td><td align="right">2019-05-31 12:39 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.5-Linux-x86_64.sh">cmake-3.14.5-Linux-x86_64.sh</a></td><td align="right">2019-05-31 12:39 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.5-Linux-x86_64.tar.gz">cmake-3.14.5-Linux-x86_64.tar.gz</a></td><td align="right">2019-05-31 12:39 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.5-SHA-256.txt">cmake-3.14.5-SHA-256.txt</a></td><td align="right">2019-05-31 12:39 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.5-SHA-256.txt.asc">cmake-3.14.5-SHA-256.txt.asc</a></td><td align="right">2019-05-31 12:39 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.5-win32-x86.msi">cmake-3.14.5-win32-x86.msi</a></td><td align="right">2019-05-31 12:39 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.5-win32-x86.zip">cmake-3.14.5-win32-x86.zip</a></td><td align="right">2019-05-31 12:39 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.5-win64-x64.msi">cmake-3.14.5-win64-x64.msi</a></td><td align="right">2019-05-31 12:39 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.5-win64-x64.zip">cmake-3.14.5-win64-x64.zip</a></td><td align="right">2019-05-31 12:39 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.5.tar.Z">cmake-3.14.5.tar.Z</a></td><td align="right">2019-05-31 12:39 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.5.tar.gz">cmake-3.14.5.tar.gz</a></td><td align="right">2019-05-31 12:39 </td><td align="right">8.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.5.zip">cmake-3.14.5.zip</a></td><td align="right">2019-05-31 12:40 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.6-Darwin-x86_64.dmg">cmake-3.14.6-Darwin-x86_64.dmg</a></td><td align="right">2019-07-16 09:33 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.6-Darwin-x86_64.tar.gz">cmake-3.14.6-Darwin-x86_64.tar.gz</a></td><td align="right">2019-07-16 09:33 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.6-Linux-x86_64.sh">cmake-3.14.6-Linux-x86_64.sh</a></td><td align="right">2019-07-16 09:33 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.6-Linux-x86_64.tar.gz">cmake-3.14.6-Linux-x86_64.tar.gz</a></td><td align="right">2019-07-16 09:33 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.6-SHA-256.txt">cmake-3.14.6-SHA-256.txt</a></td><td align="right">2019-07-16 09:33 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.6-SHA-256.txt.asc">cmake-3.14.6-SHA-256.txt.asc</a></td><td align="right">2019-07-16 09:33 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.6-win32-x86.msi">cmake-3.14.6-win32-x86.msi</a></td><td align="right">2019-07-16 09:34 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.6-win32-x86.zip">cmake-3.14.6-win32-x86.zip</a></td><td align="right">2019-07-16 09:34 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.6-win64-x64.msi">cmake-3.14.6-win64-x64.msi</a></td><td align="right">2019-07-16 09:34 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.6-win64-x64.zip">cmake-3.14.6-win64-x64.zip</a></td><td align="right">2019-07-16 09:34 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.6.tar.Z">cmake-3.14.6.tar.Z</a></td><td align="right">2019-07-16 09:34 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.6.tar.gz">cmake-3.14.6.tar.gz</a></td><td align="right">2019-07-16 09:34 </td><td align="right">8.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.6.zip">cmake-3.14.6.zip</a></td><td align="right">2019-07-16 09:34 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.7-Darwin-x86_64.dmg">cmake-3.14.7-Darwin-x86_64.dmg</a></td><td align="right">2019-10-02 10:48 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.7-Darwin-x86_64.tar.gz">cmake-3.14.7-Darwin-x86_64.tar.gz</a></td><td align="right">2019-10-02 10:48 </td><td align="right"> 32M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.7-Linux-x86_64.sh">cmake-3.14.7-Linux-x86_64.sh</a></td><td align="right">2019-10-02 10:48 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.7-Linux-x86_64.tar.gz">cmake-3.14.7-Linux-x86_64.tar.gz</a></td><td align="right">2019-10-02 10:48 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.7-SHA-256.txt">cmake-3.14.7-SHA-256.txt</a></td><td align="right">2019-10-02 10:48 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.14.7-SHA-256.txt.asc">cmake-3.14.7-SHA-256.txt.asc</a></td><td align="right">2019-10-02 10:48 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.7-win32-x86.msi">cmake-3.14.7-win32-x86.msi</a></td><td align="right">2019-10-02 10:48 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.7-win32-x86.zip">cmake-3.14.7-win32-x86.zip</a></td><td align="right">2019-10-02 10:48 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.14.7-win64-x64.msi">cmake-3.14.7-win64-x64.msi</a></td><td align="right">2019-10-02 10:48 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.7-win64-x64.zip">cmake-3.14.7-win64-x64.zip</a></td><td align="right">2019-10-02 10:48 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.7.tar.Z">cmake-3.14.7.tar.Z</a></td><td align="right">2019-10-02 10:48 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.7.tar.gz">cmake-3.14.7.tar.gz</a></td><td align="right">2019-10-02 10:48 </td><td align="right">8.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.14.7.zip">cmake-3.14.7.zip</a></td><td align="right">2019-10-02 10:48 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.15/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.15/index.html
new file mode 100644
index 000000000..92726767d
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.15/index.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /files/v3.15</title>
+ </head>
+ <body>
+<h1>Index of /files/v3.15</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/files/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-Darwin-x86_64.dmg">cmake-3.15.0-Darwin-x86_64.dmg</a></td><td align="right">2019-07-17 10:38 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-Darwin-x86_64.tar.gz">cmake-3.15.0-Darwin-x86_64.tar.gz</a></td><td align="right">2019-07-17 10:38 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.0-Linux-x86_64.sh">cmake-3.15.0-Linux-x86_64.sh</a></td><td align="right">2019-07-17 10:38 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-Linux-x86_64.tar.gz">cmake-3.15.0-Linux-x86_64.tar.gz</a></td><td align="right">2019-07-17 10:38 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.0-SHA-256.txt">cmake-3.15.0-SHA-256.txt</a></td><td align="right">2019-07-17 10:38 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.0-SHA-256.txt.asc">cmake-3.15.0-SHA-256.txt.asc</a></td><td align="right">2019-07-17 10:38 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc1-Darwin-x86_64.dmg">cmake-3.15.0-rc1-Darwin-x86_64.dmg</a></td><td align="right">2019-06-04 14:22 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc1-Darwin-x86_64.tar.gz">cmake-3.15.0-rc1-Darwin-x86_64.tar.gz</a></td><td align="right">2019-06-04 14:22 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.0-rc1-Linux-x86_64.sh">cmake-3.15.0-rc1-Linux-x86_64.sh</a></td><td align="right">2019-06-04 14:22 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc1-Linux-x86_64.tar.gz">cmake-3.15.0-rc1-Linux-x86_64.tar.gz</a></td><td align="right">2019-06-04 14:22 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.0-rc1-SHA-256.txt">cmake-3.15.0-rc1-SHA-256.txt</a></td><td align="right">2019-06-04 14:22 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.0-rc1-SHA-256.txt.asc">cmake-3.15.0-rc1-SHA-256.txt.asc</a></td><td align="right">2019-06-04 14:22 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc1-win32-x86.msi">cmake-3.15.0-rc1-win32-x86.msi</a></td><td align="right">2019-06-04 14:23 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc1-win32-x86.zip">cmake-3.15.0-rc1-win32-x86.zip</a></td><td align="right">2019-06-04 14:23 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc1-win64-x64.msi">cmake-3.15.0-rc1-win64-x64.msi</a></td><td align="right">2019-06-04 14:23 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc1-win64-x64.zip">cmake-3.15.0-rc1-win64-x64.zip</a></td><td align="right">2019-06-04 14:23 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc1.tar.Z">cmake-3.15.0-rc1.tar.Z</a></td><td align="right">2019-06-04 14:23 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc1.tar.gz">cmake-3.15.0-rc1.tar.gz</a></td><td align="right">2019-06-04 14:22 </td><td align="right">8.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc1.zip">cmake-3.15.0-rc1.zip</a></td><td align="right">2019-06-04 14:23 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc2-Darwin-x86_64.dmg">cmake-3.15.0-rc2-Darwin-x86_64.dmg</a></td><td align="right">2019-06-19 10:04 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc2-Darwin-x86_64.tar.gz">cmake-3.15.0-rc2-Darwin-x86_64.tar.gz</a></td><td align="right">2019-06-19 10:04 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.0-rc2-Linux-x86_64.sh">cmake-3.15.0-rc2-Linux-x86_64.sh</a></td><td align="right">2019-06-19 10:04 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc2-Linux-x86_64.tar.gz">cmake-3.15.0-rc2-Linux-x86_64.tar.gz</a></td><td align="right">2019-06-19 10:04 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.0-rc2-SHA-256.txt">cmake-3.15.0-rc2-SHA-256.txt</a></td><td align="right">2019-06-19 10:04 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.0-rc2-SHA-256.txt.asc">cmake-3.15.0-rc2-SHA-256.txt.asc</a></td><td align="right">2019-06-19 10:04 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc2-win32-x86.msi">cmake-3.15.0-rc2-win32-x86.msi</a></td><td align="right">2019-06-19 10:04 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc2-win32-x86.zip">cmake-3.15.0-rc2-win32-x86.zip</a></td><td align="right">2019-06-19 10:04 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc2-win64-x64.msi">cmake-3.15.0-rc2-win64-x64.msi</a></td><td align="right">2019-06-19 10:04 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc2-win64-x64.zip">cmake-3.15.0-rc2-win64-x64.zip</a></td><td align="right">2019-06-19 10:04 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc2.tar.Z">cmake-3.15.0-rc2.tar.Z</a></td><td align="right">2019-06-19 10:04 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc2.tar.gz">cmake-3.15.0-rc2.tar.gz</a></td><td align="right">2019-06-19 10:04 </td><td align="right">8.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc2.zip">cmake-3.15.0-rc2.zip</a></td><td align="right">2019-06-19 10:04 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc3-Darwin-x86_64.dmg">cmake-3.15.0-rc3-Darwin-x86_64.dmg</a></td><td align="right">2019-06-27 11:33 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc3-Darwin-x86_64.tar.gz">cmake-3.15.0-rc3-Darwin-x86_64.tar.gz</a></td><td align="right">2019-06-27 11:33 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.0-rc3-Linux-x86_64.sh">cmake-3.15.0-rc3-Linux-x86_64.sh</a></td><td align="right">2019-06-27 11:33 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc3-Linux-x86_64.tar.gz">cmake-3.15.0-rc3-Linux-x86_64.tar.gz</a></td><td align="right">2019-06-27 11:33 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.0-rc3-SHA-256.txt">cmake-3.15.0-rc3-SHA-256.txt</a></td><td align="right">2019-06-27 11:33 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.0-rc3-SHA-256.txt.asc">cmake-3.15.0-rc3-SHA-256.txt.asc</a></td><td align="right">2019-06-27 11:33 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc3-win32-x86.msi">cmake-3.15.0-rc3-win32-x86.msi</a></td><td align="right">2019-06-27 11:33 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc3-win32-x86.zip">cmake-3.15.0-rc3-win32-x86.zip</a></td><td align="right">2019-06-27 11:33 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc3-win64-x64.msi">cmake-3.15.0-rc3-win64-x64.msi</a></td><td align="right">2019-06-27 11:33 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc3-win64-x64.zip">cmake-3.15.0-rc3-win64-x64.zip</a></td><td align="right">2019-06-27 11:33 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc3.tar.Z">cmake-3.15.0-rc3.tar.Z</a></td><td align="right">2019-06-27 11:33 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc3.tar.gz">cmake-3.15.0-rc3.tar.gz</a></td><td align="right">2019-06-27 11:33 </td><td align="right">8.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc3.zip">cmake-3.15.0-rc3.zip</a></td><td align="right">2019-06-27 11:33 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc4-Darwin-x86_64.dmg">cmake-3.15.0-rc4-Darwin-x86_64.dmg</a></td><td align="right">2019-07-10 15:06 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc4-Darwin-x86_64.tar.gz">cmake-3.15.0-rc4-Darwin-x86_64.tar.gz</a></td><td align="right">2019-07-10 15:07 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.0-rc4-Linux-x86_64.sh">cmake-3.15.0-rc4-Linux-x86_64.sh</a></td><td align="right">2019-07-10 15:07 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc4-Linux-x86_64.tar.gz">cmake-3.15.0-rc4-Linux-x86_64.tar.gz</a></td><td align="right">2019-07-10 15:07 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.0-rc4-SHA-256.txt">cmake-3.15.0-rc4-SHA-256.txt</a></td><td align="right">2019-07-10 15:07 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.0-rc4-SHA-256.txt.asc">cmake-3.15.0-rc4-SHA-256.txt.asc</a></td><td align="right">2019-07-10 15:07 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc4-win32-x86.msi">cmake-3.15.0-rc4-win32-x86.msi</a></td><td align="right">2019-07-10 15:07 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc4-win32-x86.zip">cmake-3.15.0-rc4-win32-x86.zip</a></td><td align="right">2019-07-10 15:07 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc4-win64-x64.msi">cmake-3.15.0-rc4-win64-x64.msi</a></td><td align="right">2019-07-10 15:07 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc4-win64-x64.zip">cmake-3.15.0-rc4-win64-x64.zip</a></td><td align="right">2019-07-10 15:07 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc4.tar.Z">cmake-3.15.0-rc4.tar.Z</a></td><td align="right">2019-07-10 15:07 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc4.tar.gz">cmake-3.15.0-rc4.tar.gz</a></td><td align="right">2019-07-10 15:07 </td><td align="right">8.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-rc4.zip">cmake-3.15.0-rc4.zip</a></td><td align="right">2019-07-10 15:07 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-win32-x86.msi">cmake-3.15.0-win32-x86.msi</a></td><td align="right">2019-07-17 10:38 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-win32-x86.zip">cmake-3.15.0-win32-x86.zip</a></td><td align="right">2019-07-17 10:38 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-win64-x64.msi">cmake-3.15.0-win64-x64.msi</a></td><td align="right">2019-07-17 10:38 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0-win64-x64.zip">cmake-3.15.0-win64-x64.zip</a></td><td align="right">2019-07-17 10:38 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0.tar.Z">cmake-3.15.0.tar.Z</a></td><td align="right">2019-07-17 10:38 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0.tar.gz">cmake-3.15.0.tar.gz</a></td><td align="right">2019-07-17 10:38 </td><td align="right">8.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.0.zip">cmake-3.15.0.zip</a></td><td align="right">2019-07-17 10:38 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.1-Darwin-x86_64.dmg">cmake-3.15.1-Darwin-x86_64.dmg</a></td><td align="right">2019-07-26 10:14 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.1-Darwin-x86_64.tar.gz">cmake-3.15.1-Darwin-x86_64.tar.gz</a></td><td align="right">2019-07-26 10:14 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.1-Linux-x86_64.sh">cmake-3.15.1-Linux-x86_64.sh</a></td><td align="right">2019-07-26 10:14 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.1-Linux-x86_64.tar.gz">cmake-3.15.1-Linux-x86_64.tar.gz</a></td><td align="right">2019-07-26 10:14 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.1-SHA-256.txt">cmake-3.15.1-SHA-256.txt</a></td><td align="right">2019-07-26 10:14 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.1-SHA-256.txt.asc">cmake-3.15.1-SHA-256.txt.asc</a></td><td align="right">2019-07-26 10:14 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.1-win32-x86.msi">cmake-3.15.1-win32-x86.msi</a></td><td align="right">2019-07-26 10:14 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.1-win32-x86.zip">cmake-3.15.1-win32-x86.zip</a></td><td align="right">2019-07-26 10:14 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.1-win64-x64.msi">cmake-3.15.1-win64-x64.msi</a></td><td align="right">2019-07-26 10:14 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.1-win64-x64.zip">cmake-3.15.1-win64-x64.zip</a></td><td align="right">2019-07-26 10:14 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.1.tar.Z">cmake-3.15.1.tar.Z</a></td><td align="right">2019-07-26 10:14 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.1.tar.gz">cmake-3.15.1.tar.gz</a></td><td align="right">2019-07-26 10:14 </td><td align="right">8.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.1.zip">cmake-3.15.1.zip</a></td><td align="right">2019-07-26 10:15 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.2-Darwin-x86_64.dmg">cmake-3.15.2-Darwin-x86_64.dmg</a></td><td align="right">2019-08-07 15:05 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.2-Darwin-x86_64.tar.gz">cmake-3.15.2-Darwin-x86_64.tar.gz</a></td><td align="right">2019-08-07 15:05 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.2-Linux-x86_64.sh">cmake-3.15.2-Linux-x86_64.sh</a></td><td align="right">2019-08-07 15:05 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.2-Linux-x86_64.tar.gz">cmake-3.15.2-Linux-x86_64.tar.gz</a></td><td align="right">2019-08-07 15:05 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.2-SHA-256.txt">cmake-3.15.2-SHA-256.txt</a></td><td align="right">2019-08-07 15:05 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.2-SHA-256.txt.asc">cmake-3.15.2-SHA-256.txt.asc</a></td><td align="right">2019-08-07 15:05 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.2-win32-x86.msi">cmake-3.15.2-win32-x86.msi</a></td><td align="right">2019-08-07 15:05 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.2-win32-x86.zip">cmake-3.15.2-win32-x86.zip</a></td><td align="right">2019-08-07 15:05 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.2-win64-x64.msi">cmake-3.15.2-win64-x64.msi</a></td><td align="right">2019-08-07 15:05 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.2-win64-x64.zip">cmake-3.15.2-win64-x64.zip</a></td><td align="right">2019-08-07 15:05 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.2.tar.Z">cmake-3.15.2.tar.Z</a></td><td align="right">2019-08-07 15:05 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.2.tar.gz">cmake-3.15.2.tar.gz</a></td><td align="right">2019-08-07 15:05 </td><td align="right">8.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.2.zip">cmake-3.15.2.zip</a></td><td align="right">2019-08-07 15:05 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.3-Darwin-x86_64.dmg">cmake-3.15.3-Darwin-x86_64.dmg</a></td><td align="right">2019-09-04 11:13 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.3-Darwin-x86_64.tar.gz">cmake-3.15.3-Darwin-x86_64.tar.gz</a></td><td align="right">2019-09-04 11:13 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.3-Linux-x86_64.sh">cmake-3.15.3-Linux-x86_64.sh</a></td><td align="right">2019-09-04 11:13 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.3-Linux-x86_64.tar.gz">cmake-3.15.3-Linux-x86_64.tar.gz</a></td><td align="right">2019-09-04 11:13 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.3-SHA-256.txt">cmake-3.15.3-SHA-256.txt</a></td><td align="right">2019-09-04 11:13 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.3-SHA-256.txt.asc">cmake-3.15.3-SHA-256.txt.asc</a></td><td align="right">2019-09-04 11:13 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.3-win32-x86.msi">cmake-3.15.3-win32-x86.msi</a></td><td align="right">2019-09-04 11:13 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.3-win32-x86.zip">cmake-3.15.3-win32-x86.zip</a></td><td align="right">2019-09-04 11:13 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.3-win64-x64.msi">cmake-3.15.3-win64-x64.msi</a></td><td align="right">2019-09-04 11:13 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.3-win64-x64.zip">cmake-3.15.3-win64-x64.zip</a></td><td align="right">2019-09-04 11:13 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.3.tar.Z">cmake-3.15.3.tar.Z</a></td><td align="right">2019-09-04 11:13 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.3.tar.gz">cmake-3.15.3.tar.gz</a></td><td align="right">2019-09-04 11:13 </td><td align="right">8.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.3.zip">cmake-3.15.3.zip</a></td><td align="right">2019-09-04 11:13 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.4-Darwin-x86_64.dmg">cmake-3.15.4-Darwin-x86_64.dmg</a></td><td align="right">2019-10-02 10:45 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.4-Darwin-x86_64.tar.gz">cmake-3.15.4-Darwin-x86_64.tar.gz</a></td><td align="right">2019-10-02 10:45 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.4-Linux-x86_64.sh">cmake-3.15.4-Linux-x86_64.sh</a></td><td align="right">2019-10-02 10:45 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.4-Linux-x86_64.tar.gz">cmake-3.15.4-Linux-x86_64.tar.gz</a></td><td align="right">2019-10-02 10:45 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.4-SHA-256.txt">cmake-3.15.4-SHA-256.txt</a></td><td align="right">2019-10-02 10:45 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.4-SHA-256.txt.asc">cmake-3.15.4-SHA-256.txt.asc</a></td><td align="right">2019-10-02 10:45 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.4-win32-x86.msi">cmake-3.15.4-win32-x86.msi</a></td><td align="right">2019-10-02 10:45 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.4-win32-x86.zip">cmake-3.15.4-win32-x86.zip</a></td><td align="right">2019-10-02 10:45 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.4-win64-x64.msi">cmake-3.15.4-win64-x64.msi</a></td><td align="right">2019-10-02 10:45 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.4-win64-x64.zip">cmake-3.15.4-win64-x64.zip</a></td><td align="right">2019-10-02 10:45 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.4.tar.Z">cmake-3.15.4.tar.Z</a></td><td align="right">2019-10-02 10:45 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.4.tar.gz">cmake-3.15.4.tar.gz</a></td><td align="right">2019-10-02 10:45 </td><td align="right">8.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.4.zip">cmake-3.15.4.zip</a></td><td align="right">2019-10-02 10:45 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.5-Darwin-x86_64.dmg">cmake-3.15.5-Darwin-x86_64.dmg</a></td><td align="right">2019-10-30 10:49 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.5-Darwin-x86_64.tar.gz">cmake-3.15.5-Darwin-x86_64.tar.gz</a></td><td align="right">2019-10-30 10:49 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.5-Linux-x86_64.sh">cmake-3.15.5-Linux-x86_64.sh</a></td><td align="right">2019-10-30 10:49 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.5-Linux-x86_64.tar.gz">cmake-3.15.5-Linux-x86_64.tar.gz</a></td><td align="right">2019-10-30 10:49 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.5-SHA-256.txt">cmake-3.15.5-SHA-256.txt</a></td><td align="right">2019-10-30 10:49 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.5-SHA-256.txt.asc">cmake-3.15.5-SHA-256.txt.asc</a></td><td align="right">2019-10-30 10:49 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.5-win32-x86.msi">cmake-3.15.5-win32-x86.msi</a></td><td align="right">2019-10-30 10:49 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.5-win32-x86.zip">cmake-3.15.5-win32-x86.zip</a></td><td align="right">2019-10-30 10:49 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.5-win64-x64.msi">cmake-3.15.5-win64-x64.msi</a></td><td align="right">2019-10-30 10:49 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.5-win64-x64.zip">cmake-3.15.5-win64-x64.zip</a></td><td align="right">2019-10-30 10:49 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.5.tar.Z">cmake-3.15.5.tar.Z</a></td><td align="right">2019-10-30 10:49 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.5.tar.gz">cmake-3.15.5.tar.gz</a></td><td align="right">2019-10-30 10:49 </td><td align="right">8.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.5.zip">cmake-3.15.5.zip</a></td><td align="right">2019-10-30 10:49 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.6-Darwin-x86_64.dmg">cmake-3.15.6-Darwin-x86_64.dmg</a></td><td align="right">2019-12-16 11:30 </td><td align="right"> 34M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.6-Darwin-x86_64.tar.gz">cmake-3.15.6-Darwin-x86_64.tar.gz</a></td><td align="right">2019-12-16 11:30 </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.6-Linux-x86_64.sh">cmake-3.15.6-Linux-x86_64.sh</a></td><td align="right">2019-12-16 11:30 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.6-Linux-x86_64.tar.gz">cmake-3.15.6-Linux-x86_64.tar.gz</a></td><td align="right">2019-12-16 11:30 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.6-SHA-256.txt">cmake-3.15.6-SHA-256.txt</a></td><td align="right">2019-12-16 11:30 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.15.6-SHA-256.txt.asc">cmake-3.15.6-SHA-256.txt.asc</a></td><td align="right">2019-12-16 11:30 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.6-win32-x86.msi">cmake-3.15.6-win32-x86.msi</a></td><td align="right">2019-12-16 11:30 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.6-win32-x86.zip">cmake-3.15.6-win32-x86.zip</a></td><td align="right">2019-12-16 11:30 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.15.6-win64-x64.msi">cmake-3.15.6-win64-x64.msi</a></td><td align="right">2019-12-16 11:30 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.6-win64-x64.zip">cmake-3.15.6-win64-x64.zip</a></td><td align="right">2019-12-16 11:30 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.6.tar.Z">cmake-3.15.6.tar.Z</a></td><td align="right">2019-12-16 11:30 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.6.tar.gz">cmake-3.15.6.tar.gz</a></td><td align="right">2019-12-16 11:30 </td><td align="right">8.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.15.6.zip">cmake-3.15.6.zip</a></td><td align="right">2019-12-16 11:30 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.16/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.16/index.html
new file mode 100644
index 000000000..74f9b4027
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.16/index.html
@@ -0,0 +1,86 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /files/v3.16</title>
+ </head>
+ <body>
+<h1>Index of /files/v3.16</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/files/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-Darwin-x86_64.dmg">cmake-3.16.0-Darwin-x86_64.dmg</a></td><td align="right">2019-11-26 10:27 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-Darwin-x86_64.tar.gz">cmake-3.16.0-Darwin-x86_64.tar.gz</a></td><td align="right">2019-11-26 10:27 </td><td align="right"> 34M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.16.0-Linux-x86_64.sh">cmake-3.16.0-Linux-x86_64.sh</a></td><td align="right">2019-11-26 10:27 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-Linux-x86_64.tar.gz">cmake-3.16.0-Linux-x86_64.tar.gz</a></td><td align="right">2019-11-26 10:27 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.16.0-SHA-256.txt">cmake-3.16.0-SHA-256.txt</a></td><td align="right">2019-11-26 10:27 </td><td align="right">932 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.16.0-SHA-256.txt.asc">cmake-3.16.0-SHA-256.txt.asc</a></td><td align="right">2019-11-26 10:27 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc1-Darwin-x86_64.dmg">cmake-3.16.0-rc1-Darwin-x86_64.dmg</a></td><td align="right">2019-10-10 14:18 </td><td align="right"> 34M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc1-Darwin-x86_64.tar.gz">cmake-3.16.0-rc1-Darwin-x86_64.tar.gz</a></td><td align="right">2019-10-10 14:18 </td><td align="right"> 34M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.16.0-rc1-Linux-x86_64.sh">cmake-3.16.0-rc1-Linux-x86_64.sh</a></td><td align="right">2019-10-10 14:18 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc1-Linux-x86_64.tar.gz">cmake-3.16.0-rc1-Linux-x86_64.tar.gz</a></td><td align="right">2019-10-10 14:18 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.16.0-rc1-SHA-256.txt">cmake-3.16.0-rc1-SHA-256.txt</a></td><td align="right">2019-10-10 14:18 </td><td align="right">972 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.16.0-rc1-SHA-256.txt.asc">cmake-3.16.0-rc1-SHA-256.txt.asc</a></td><td align="right">2019-10-10 14:18 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc1-win32-x86.msi">cmake-3.16.0-rc1-win32-x86.msi</a></td><td align="right">2019-10-10 14:18 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc1-win32-x86.zip">cmake-3.16.0-rc1-win32-x86.zip</a></td><td align="right">2019-10-10 14:18 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc1-win64-x64.msi">cmake-3.16.0-rc1-win64-x64.msi</a></td><td align="right">2019-10-10 14:18 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc1-win64-x64.zip">cmake-3.16.0-rc1-win64-x64.zip</a></td><td align="right">2019-10-10 14:18 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc1.tar.gz">cmake-3.16.0-rc1.tar.gz</a></td><td align="right">2019-10-10 14:18 </td><td align="right">8.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc1.zip">cmake-3.16.0-rc1.zip</a></td><td align="right">2019-10-10 14:18 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc2-Darwin-x86_64.dmg">cmake-3.16.0-rc2-Darwin-x86_64.dmg</a></td><td align="right">2019-10-18 10:47 </td><td align="right"> 34M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc2-Darwin-x86_64.tar.gz">cmake-3.16.0-rc2-Darwin-x86_64.tar.gz</a></td><td align="right">2019-10-18 10:47 </td><td align="right"> 34M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.16.0-rc2-Linux-x86_64.sh">cmake-3.16.0-rc2-Linux-x86_64.sh</a></td><td align="right">2019-10-18 10:47 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc2-Linux-x86_64.tar.gz">cmake-3.16.0-rc2-Linux-x86_64.tar.gz</a></td><td align="right">2019-10-18 10:47 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.16.0-rc2-SHA-256.txt">cmake-3.16.0-rc2-SHA-256.txt</a></td><td align="right">2019-10-18 10:47 </td><td align="right">972 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.16.0-rc2-SHA-256.txt.asc">cmake-3.16.0-rc2-SHA-256.txt.asc</a></td><td align="right">2019-10-18 10:47 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc2-win32-x86.msi">cmake-3.16.0-rc2-win32-x86.msi</a></td><td align="right">2019-10-18 10:47 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc2-win32-x86.zip">cmake-3.16.0-rc2-win32-x86.zip</a></td><td align="right">2019-10-18 10:47 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc2-win64-x64.msi">cmake-3.16.0-rc2-win64-x64.msi</a></td><td align="right">2019-10-18 10:47 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc2-win64-x64.zip">cmake-3.16.0-rc2-win64-x64.zip</a></td><td align="right">2019-10-18 10:47 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc2.tar.gz">cmake-3.16.0-rc2.tar.gz</a></td><td align="right">2019-10-18 10:47 </td><td align="right">8.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc2.zip">cmake-3.16.0-rc2.zip</a></td><td align="right">2019-10-18 10:47 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc3-Darwin-x86_64.dmg">cmake-3.16.0-rc3-Darwin-x86_64.dmg</a></td><td align="right">2019-10-31 12:09 </td><td align="right"> 34M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc3-Darwin-x86_64.tar.gz">cmake-3.16.0-rc3-Darwin-x86_64.tar.gz</a></td><td align="right">2019-10-31 12:09 </td><td align="right"> 34M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.16.0-rc3-Linux-x86_64.sh">cmake-3.16.0-rc3-Linux-x86_64.sh</a></td><td align="right">2019-10-31 12:09 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc3-Linux-x86_64.tar.gz">cmake-3.16.0-rc3-Linux-x86_64.tar.gz</a></td><td align="right">2019-10-31 12:10 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.16.0-rc3-SHA-256.txt">cmake-3.16.0-rc3-SHA-256.txt</a></td><td align="right">2019-10-31 12:10 </td><td align="right">972 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.16.0-rc3-SHA-256.txt.asc">cmake-3.16.0-rc3-SHA-256.txt.asc</a></td><td align="right">2019-10-31 12:10 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc3-win32-x86.msi">cmake-3.16.0-rc3-win32-x86.msi</a></td><td align="right">2019-10-31 12:10 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc3-win32-x86.zip">cmake-3.16.0-rc3-win32-x86.zip</a></td><td align="right">2019-10-31 12:10 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc3-win64-x64.msi">cmake-3.16.0-rc3-win64-x64.msi</a></td><td align="right">2019-10-31 12:10 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc3-win64-x64.zip">cmake-3.16.0-rc3-win64-x64.zip</a></td><td align="right">2019-10-31 12:10 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc3.tar.gz">cmake-3.16.0-rc3.tar.gz</a></td><td align="right">2019-10-31 12:10 </td><td align="right">8.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc3.zip">cmake-3.16.0-rc3.zip</a></td><td align="right">2019-10-31 12:10 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc4-Darwin-x86_64.dmg">cmake-3.16.0-rc4-Darwin-x86_64.dmg</a></td><td align="right">2019-11-18 17:01 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc4-Darwin-x86_64.tar.gz">cmake-3.16.0-rc4-Darwin-x86_64.tar.gz</a></td><td align="right">2019-11-18 17:01 </td><td align="right"> 34M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.16.0-rc4-Linux-x86_64.sh">cmake-3.16.0-rc4-Linux-x86_64.sh</a></td><td align="right">2019-11-18 17:01 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc4-Linux-x86_64.tar.gz">cmake-3.16.0-rc4-Linux-x86_64.tar.gz</a></td><td align="right">2019-11-18 17:01 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.16.0-rc4-SHA-256.txt">cmake-3.16.0-rc4-SHA-256.txt</a></td><td align="right">2019-11-18 17:01 </td><td align="right">972 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.16.0-rc4-SHA-256.txt.asc">cmake-3.16.0-rc4-SHA-256.txt.asc</a></td><td align="right">2019-11-18 17:01 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc4-win32-x86.msi">cmake-3.16.0-rc4-win32-x86.msi</a></td><td align="right">2019-11-18 17:01 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc4-win32-x86.zip">cmake-3.16.0-rc4-win32-x86.zip</a></td><td align="right">2019-11-18 17:01 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc4-win64-x64.msi">cmake-3.16.0-rc4-win64-x64.msi</a></td><td align="right">2019-11-18 17:01 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc4-win64-x64.zip">cmake-3.16.0-rc4-win64-x64.zip</a></td><td align="right">2019-11-18 17:01 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc4.tar.gz">cmake-3.16.0-rc4.tar.gz</a></td><td align="right">2019-11-18 17:01 </td><td align="right">8.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-rc4.zip">cmake-3.16.0-rc4.zip</a></td><td align="right">2019-11-18 17:01 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-win32-x86.msi">cmake-3.16.0-win32-x86.msi</a></td><td align="right">2019-11-26 10:27 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-win32-x86.zip">cmake-3.16.0-win32-x86.zip</a></td><td align="right">2019-11-26 10:27 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-win64-x64.msi">cmake-3.16.0-win64-x64.msi</a></td><td align="right">2019-11-26 10:27 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0-win64-x64.zip">cmake-3.16.0-win64-x64.zip</a></td><td align="right">2019-11-26 10:27 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0.tar.gz">cmake-3.16.0.tar.gz</a></td><td align="right">2019-11-26 10:27 </td><td align="right">8.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.0.zip">cmake-3.16.0.zip</a></td><td align="right">2019-11-26 10:27 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.16.1-Darwin-x86_64.dmg">cmake-3.16.1-Darwin-x86_64.dmg</a></td><td align="right">2019-12-10 10:42 </td><td align="right"> 35M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.1-Darwin-x86_64.tar.gz">cmake-3.16.1-Darwin-x86_64.tar.gz</a></td><td align="right">2019-12-10 10:42 </td><td align="right"> 34M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.16.1-Linux-x86_64.sh">cmake-3.16.1-Linux-x86_64.sh</a></td><td align="right">2019-12-10 10:42 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.1-Linux-x86_64.tar.gz">cmake-3.16.1-Linux-x86_64.tar.gz</a></td><td align="right">2019-12-10 10:42 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.16.1-SHA-256.txt">cmake-3.16.1-SHA-256.txt</a></td><td align="right">2019-12-10 10:42 </td><td align="right">932 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.16.1-SHA-256.txt.asc">cmake-3.16.1-SHA-256.txt.asc</a></td><td align="right">2019-12-10 10:42 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.16.1-win32-x86.msi">cmake-3.16.1-win32-x86.msi</a></td><td align="right">2019-12-10 10:42 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.1-win32-x86.zip">cmake-3.16.1-win32-x86.zip</a></td><td align="right">2019-12-10 10:42 </td><td align="right"> 28M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.16.1-win64-x64.msi">cmake-3.16.1-win64-x64.msi</a></td><td align="right">2019-12-10 10:42 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.1-win64-x64.zip">cmake-3.16.1-win64-x64.zip</a></td><td align="right">2019-12-10 10:42 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.1.tar.gz">cmake-3.16.1.tar.gz</a></td><td align="right">2019-12-10 10:42 </td><td align="right">8.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.16.1.zip">cmake-3.16.1.zip</a></td><td align="right">2019-12-10 10:42 </td><td align="right"> 14M</td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.2/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.2/index.html
new file mode 100644
index 000000000..a8c6c7f26
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.2/index.html
@@ -0,0 +1,132 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /files/v3.2</title>
+ </head>
+ <body>
+<h1>Index of /files/v3.2</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/files/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-1-src.tar.bz2">cmake-3.2.0-1-src.tar.bz2</a></td><td align="right">2015-03-10 09:02 </td><td align="right">4.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-1.tar.bz2">cmake-3.2.0-1.tar.bz2</a></td><td align="right">2015-03-10 09:02 </td><td align="right">9.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-Darwin-universal.dmg">cmake-3.2.0-Darwin-universal.dmg</a></td><td align="right">2015-03-10 09:02 </td><td align="right"> 47M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-Darwin-universal.tar.Z">cmake-3.2.0-Darwin-universal.tar.Z</a></td><td align="right">2015-03-10 09:02 </td><td align="right"> 66M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-Darwin-universal.tar.gz">cmake-3.2.0-Darwin-universal.tar.gz</a></td><td align="right">2015-03-10 09:01 </td><td align="right"> 46M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-Darwin-x86_64.dmg">cmake-3.2.0-Darwin-x86_64.dmg</a></td><td align="right">2015-03-10 09:01 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-Darwin-x86_64.tar.Z">cmake-3.2.0-Darwin-x86_64.tar.Z</a></td><td align="right">2015-03-10 09:01 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-Darwin-x86_64.tar.gz">cmake-3.2.0-Darwin-x86_64.tar.gz</a></td><td align="right">2015-03-10 09:01 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.0-Linux-i386.sh">cmake-3.2.0-Linux-i386.sh</a></td><td align="right">2015-03-10 09:01 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-Linux-i386.tar.Z">cmake-3.2.0-Linux-i386.tar.Z</a></td><td align="right">2015-03-10 09:01 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-Linux-i386.tar.gz">cmake-3.2.0-Linux-i386.tar.gz</a></td><td align="right">2015-03-10 09:01 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.0-Linux-x86_64.sh">cmake-3.2.0-Linux-x86_64.sh</a></td><td align="right">2015-03-10 09:01 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-Linux-x86_64.tar.Z">cmake-3.2.0-Linux-x86_64.tar.Z</a></td><td align="right">2015-03-10 09:01 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-Linux-x86_64.tar.gz">cmake-3.2.0-Linux-x86_64.tar.gz</a></td><td align="right">2015-03-10 09:01 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.0-SHA-256.txt">cmake-3.2.0-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.6K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.0-SHA-256.txt.asc">cmake-3.2.0-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc1-Darwin-universal.dmg">cmake-3.2.0-rc1-Darwin-universal.dmg</a></td><td align="right">2015-02-13 15:03 </td><td align="right"> 47M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc1-Darwin-universal.tar.Z">cmake-3.2.0-rc1-Darwin-universal.tar.Z</a></td><td align="right">2015-02-13 15:03 </td><td align="right"> 66M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc1-Darwin-universal.tar.gz">cmake-3.2.0-rc1-Darwin-universal.tar.gz</a></td><td align="right">2015-02-13 15:03 </td><td align="right"> 46M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc1-Darwin-x86_64.dmg">cmake-3.2.0-rc1-Darwin-x86_64.dmg</a></td><td align="right">2015-02-13 15:03 </td><td align="right"> 30M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc1-Darwin-x86_64.tar.Z">cmake-3.2.0-rc1-Darwin-x86_64.tar.Z</a></td><td align="right">2015-02-13 15:03 </td><td align="right"> 42M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc1-Darwin-x86_64.tar.gz">cmake-3.2.0-rc1-Darwin-x86_64.tar.gz</a></td><td align="right">2015-02-13 15:03 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.0-rc1-Linux-i386.sh">cmake-3.2.0-rc1-Linux-i386.sh</a></td><td align="right">2015-02-13 15:03 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc1-Linux-i386.tar.Z">cmake-3.2.0-rc1-Linux-i386.tar.Z</a></td><td align="right">2015-02-13 15:03 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc1-Linux-i386.tar.gz">cmake-3.2.0-rc1-Linux-i386.tar.gz</a></td><td align="right">2015-02-13 15:03 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.0-rc1-Linux-x86_64.sh">cmake-3.2.0-rc1-Linux-x86_64.sh</a></td><td align="right">2015-02-13 15:03 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc1-Linux-x86_64.tar.Z">cmake-3.2.0-rc1-Linux-x86_64.tar.Z</a></td><td align="right">2015-02-13 15:03 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc1-Linux-x86_64.tar.gz">cmake-3.2.0-rc1-Linux-x86_64.tar.gz</a></td><td align="right">2015-02-13 15:02 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.0-rc1-SHA-256.txt">cmake-3.2.0-rc1-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.6K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.0-rc1-SHA-256.txt.asc">cmake-3.2.0-rc1-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc1-win32-x86.exe">cmake-3.2.0-rc1-win32-x86.exe</a></td><td align="right">2015-02-13 15:02 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc1-win32-x86.zip">cmake-3.2.0-rc1-win32-x86.zip</a></td><td align="right">2015-02-13 15:02 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc1.tar.Z">cmake-3.2.0-rc1.tar.Z</a></td><td align="right">2015-02-13 15:02 </td><td align="right">9.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc1.tar.gz">cmake-3.2.0-rc1.tar.gz</a></td><td align="right">2015-02-13 15:02 </td><td align="right">6.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc1.zip">cmake-3.2.0-rc1.zip</a></td><td align="right">2015-02-13 15:02 </td><td align="right">9.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc2-Darwin-universal.dmg">cmake-3.2.0-rc2-Darwin-universal.dmg</a></td><td align="right">2015-02-24 08:51 </td><td align="right"> 47M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc2-Darwin-universal.tar.Z">cmake-3.2.0-rc2-Darwin-universal.tar.Z</a></td><td align="right">2015-02-24 08:51 </td><td align="right"> 66M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc2-Darwin-universal.tar.gz">cmake-3.2.0-rc2-Darwin-universal.tar.gz</a></td><td align="right">2015-02-24 08:51 </td><td align="right"> 46M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc2-Darwin-x86_64.dmg">cmake-3.2.0-rc2-Darwin-x86_64.dmg</a></td><td align="right">2015-02-24 08:51 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc2-Darwin-x86_64.tar.Z">cmake-3.2.0-rc2-Darwin-x86_64.tar.Z</a></td><td align="right">2015-02-24 08:51 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc2-Darwin-x86_64.tar.gz">cmake-3.2.0-rc2-Darwin-x86_64.tar.gz</a></td><td align="right">2015-02-24 08:51 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.0-rc2-Linux-i386.sh">cmake-3.2.0-rc2-Linux-i386.sh</a></td><td align="right">2015-02-24 08:50 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc2-Linux-i386.tar.Z">cmake-3.2.0-rc2-Linux-i386.tar.Z</a></td><td align="right">2015-02-24 08:50 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc2-Linux-i386.tar.gz">cmake-3.2.0-rc2-Linux-i386.tar.gz</a></td><td align="right">2015-02-24 08:50 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.0-rc2-Linux-x86_64.sh">cmake-3.2.0-rc2-Linux-x86_64.sh</a></td><td align="right">2015-02-24 08:50 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc2-Linux-x86_64.tar.Z">cmake-3.2.0-rc2-Linux-x86_64.tar.Z</a></td><td align="right">2015-02-24 08:50 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc2-Linux-x86_64.tar.gz">cmake-3.2.0-rc2-Linux-x86_64.tar.gz</a></td><td align="right">2015-02-24 08:50 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.0-rc2-SHA-256.txt">cmake-3.2.0-rc2-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.6K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.0-rc2-SHA-256.txt.asc">cmake-3.2.0-rc2-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc2-win32-x86.exe">cmake-3.2.0-rc2-win32-x86.exe</a></td><td align="right">2015-02-24 08:50 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc2-win32-x86.zip">cmake-3.2.0-rc2-win32-x86.zip</a></td><td align="right">2015-02-24 08:50 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc2.tar.Z">cmake-3.2.0-rc2.tar.Z</a></td><td align="right">2015-02-24 08:50 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc2.tar.gz">cmake-3.2.0-rc2.tar.gz</a></td><td align="right">2015-02-24 08:50 </td><td align="right">6.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-rc2.zip">cmake-3.2.0-rc2.zip</a></td><td align="right">2015-02-24 08:50 </td><td align="right">9.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-win32-x86.exe">cmake-3.2.0-win32-x86.exe</a></td><td align="right">2015-03-10 09:01 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0-win32-x86.zip">cmake-3.2.0-win32-x86.zip</a></td><td align="right">2015-03-10 09:01 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0.tar.Z">cmake-3.2.0.tar.Z</a></td><td align="right">2015-03-10 09:01 </td><td align="right">9.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0.tar.gz">cmake-3.2.0.tar.gz</a></td><td align="right">2015-03-10 09:01 </td><td align="right">6.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.0.zip">cmake-3.2.0.zip</a></td><td align="right">2015-03-10 09:01 </td><td align="right">9.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.2.1-1-src.tar.bz2">cmake-3.2.1-1-src.tar.bz2</a></td><td align="right">2015-03-11 09:10 </td><td align="right">4.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.2.1-1.tar.bz2">cmake-3.2.1-1.tar.bz2</a></td><td align="right">2015-03-11 09:10 </td><td align="right">9.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.2.1-Darwin-universal.dmg">cmake-3.2.1-Darwin-universal.dmg</a></td><td align="right">2015-03-11 09:10 </td><td align="right"> 47M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.1-Darwin-universal.tar.Z">cmake-3.2.1-Darwin-universal.tar.Z</a></td><td align="right">2015-03-11 09:10 </td><td align="right"> 66M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.1-Darwin-universal.tar.gz">cmake-3.2.1-Darwin-universal.tar.gz</a></td><td align="right">2015-03-11 09:10 </td><td align="right"> 46M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.2.1-Darwin-x86_64.dmg">cmake-3.2.1-Darwin-x86_64.dmg</a></td><td align="right">2015-03-11 09:10 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.1-Darwin-x86_64.tar.Z">cmake-3.2.1-Darwin-x86_64.tar.Z</a></td><td align="right">2015-03-11 09:10 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.1-Darwin-x86_64.tar.gz">cmake-3.2.1-Darwin-x86_64.tar.gz</a></td><td align="right">2015-03-11 09:10 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.1-Linux-i386.sh">cmake-3.2.1-Linux-i386.sh</a></td><td align="right">2015-03-11 09:10 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.1-Linux-i386.tar.Z">cmake-3.2.1-Linux-i386.tar.Z</a></td><td align="right">2015-03-11 09:09 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.1-Linux-i386.tar.gz">cmake-3.2.1-Linux-i386.tar.gz</a></td><td align="right">2015-03-11 09:09 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.1-Linux-x86_64.sh">cmake-3.2.1-Linux-x86_64.sh</a></td><td align="right">2015-03-11 09:09 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.1-Linux-x86_64.tar.Z">cmake-3.2.1-Linux-x86_64.tar.Z</a></td><td align="right">2015-03-11 09:09 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.1-Linux-x86_64.tar.gz">cmake-3.2.1-Linux-x86_64.tar.gz</a></td><td align="right">2015-03-11 09:09 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.1-SHA-256.txt">cmake-3.2.1-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.6K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.1-SHA-256.txt.asc">cmake-3.2.1-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.2.1-win32-x86.exe">cmake-3.2.1-win32-x86.exe</a></td><td align="right">2015-03-11 09:09 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.1-win32-x86.zip">cmake-3.2.1-win32-x86.zip</a></td><td align="right">2015-03-11 09:09 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.1.tar.Z">cmake-3.2.1.tar.Z</a></td><td align="right">2015-03-11 09:09 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.1.tar.gz">cmake-3.2.1.tar.gz</a></td><td align="right">2015-03-11 09:09 </td><td align="right">6.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.1.zip">cmake-3.2.1.zip</a></td><td align="right">2015-03-11 09:09 </td><td align="right">9.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.2.2-Darwin-universal.dmg">cmake-3.2.2-Darwin-universal.dmg</a></td><td align="right">2015-04-14 13:45 </td><td align="right"> 47M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.2-Darwin-universal.tar.Z">cmake-3.2.2-Darwin-universal.tar.Z</a></td><td align="right">2015-04-14 13:45 </td><td align="right"> 66M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.2-Darwin-universal.tar.gz">cmake-3.2.2-Darwin-universal.tar.gz</a></td><td align="right">2015-04-14 13:45 </td><td align="right"> 46M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.2.2-Darwin-x86_64.dmg">cmake-3.2.2-Darwin-x86_64.dmg</a></td><td align="right">2015-04-14 13:45 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.2-Darwin-x86_64.tar.Z">cmake-3.2.2-Darwin-x86_64.tar.Z</a></td><td align="right">2015-04-14 13:45 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.2-Darwin-x86_64.tar.gz">cmake-3.2.2-Darwin-x86_64.tar.gz</a></td><td align="right">2015-04-14 13:45 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.2-Linux-i386.sh">cmake-3.2.2-Linux-i386.sh</a></td><td align="right">2015-04-14 13:44 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.2-Linux-i386.tar.Z">cmake-3.2.2-Linux-i386.tar.Z</a></td><td align="right">2015-04-14 13:44 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.2-Linux-i386.tar.gz">cmake-3.2.2-Linux-i386.tar.gz</a></td><td align="right">2015-04-14 13:44 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.2-Linux-x86_64.sh">cmake-3.2.2-Linux-x86_64.sh</a></td><td align="right">2015-04-14 13:44 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.2-Linux-x86_64.tar.Z">cmake-3.2.2-Linux-x86_64.tar.Z</a></td><td align="right">2015-04-14 13:44 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.2-Linux-x86_64.tar.gz">cmake-3.2.2-Linux-x86_64.tar.gz</a></td><td align="right">2015-04-14 13:44 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.2-SHA-256.txt">cmake-3.2.2-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.6K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.2-SHA-256.txt.asc">cmake-3.2.2-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.2.2-win32-x86.exe">cmake-3.2.2-win32-x86.exe</a></td><td align="right">2015-04-14 13:44 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.2-win32-x86.zip">cmake-3.2.2-win32-x86.zip</a></td><td align="right">2015-04-14 13:44 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.2.tar.Z">cmake-3.2.2.tar.Z</a></td><td align="right">2015-04-14 13:44 </td><td align="right">9.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.2.tar.gz">cmake-3.2.2.tar.gz</a></td><td align="right">2015-04-14 13:44 </td><td align="right">6.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.2.zip">cmake-3.2.2.zip</a></td><td align="right">2015-04-14 13:44 </td><td align="right">9.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.2.3-Darwin-universal.dmg">cmake-3.2.3-Darwin-universal.dmg</a></td><td align="right">2015-06-01 17:04 </td><td align="right"> 47M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.3-Darwin-universal.tar.Z">cmake-3.2.3-Darwin-universal.tar.Z</a></td><td align="right">2015-06-01 17:04 </td><td align="right"> 66M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.3-Darwin-universal.tar.gz">cmake-3.2.3-Darwin-universal.tar.gz</a></td><td align="right">2015-06-01 17:04 </td><td align="right"> 46M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.2.3-Darwin-x86_64.dmg">cmake-3.2.3-Darwin-x86_64.dmg</a></td><td align="right">2015-06-01 17:04 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.3-Darwin-x86_64.tar.Z">cmake-3.2.3-Darwin-x86_64.tar.Z</a></td><td align="right">2015-06-01 17:04 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.3-Darwin-x86_64.tar.gz">cmake-3.2.3-Darwin-x86_64.tar.gz</a></td><td align="right">2015-06-01 17:04 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.3-Linux-i386.sh">cmake-3.2.3-Linux-i386.sh</a></td><td align="right">2015-06-01 17:04 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.3-Linux-i386.tar.Z">cmake-3.2.3-Linux-i386.tar.Z</a></td><td align="right">2015-06-01 17:03 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.3-Linux-i386.tar.gz">cmake-3.2.3-Linux-i386.tar.gz</a></td><td align="right">2015-06-01 17:03 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.3-Linux-x86_64.sh">cmake-3.2.3-Linux-x86_64.sh</a></td><td align="right">2015-06-01 17:03 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.3-Linux-x86_64.tar.Z">cmake-3.2.3-Linux-x86_64.tar.Z</a></td><td align="right">2015-06-01 17:03 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.3-Linux-x86_64.tar.gz">cmake-3.2.3-Linux-x86_64.tar.gz</a></td><td align="right">2015-06-01 17:03 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.3-SHA-256.txt">cmake-3.2.3-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.6K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.2.3-SHA-256.txt.asc">cmake-3.2.3-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.2.3-win32-x86.exe">cmake-3.2.3-win32-x86.exe</a></td><td align="right">2015-06-01 17:03 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.3-win32-x86.zip">cmake-3.2.3-win32-x86.zip</a></td><td align="right">2015-06-01 17:03 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.3.tar.Z">cmake-3.2.3.tar.Z</a></td><td align="right">2015-06-01 17:03 </td><td align="right">9.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.3.tar.gz">cmake-3.2.3.tar.gz</a></td><td align="right">2015-06-01 17:03 </td><td align="right">6.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.2.3.zip">cmake-3.2.3.zip</a></td><td align="right">2015-06-01 17:03 </td><td align="right">9.7M</td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.3/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.3/index.html
new file mode 100644
index 000000000..d05373651
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.3/index.html
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /files/v3.3</title>
+ </head>
+ <body>
+<h1>Index of /files/v3.3</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/files/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-1-src.tar.bz2">cmake-3.3.0-1-src.tar.bz2</a></td><td align="right">2015-07-23 16:39 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-1.tar.bz2">cmake-3.3.0-1.tar.bz2</a></td><td align="right">2015-07-23 16:39 </td><td align="right">9.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-Darwin-universal.dmg">cmake-3.3.0-Darwin-universal.dmg</a></td><td align="right">2015-07-23 16:39 </td><td align="right"> 48M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-Darwin-universal.tar.Z">cmake-3.3.0-Darwin-universal.tar.Z</a></td><td align="right">2015-07-23 16:39 </td><td align="right"> 68M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-Darwin-universal.tar.gz">cmake-3.3.0-Darwin-universal.tar.gz</a></td><td align="right">2015-07-23 16:39 </td><td align="right"> 47M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-Darwin-x86_64.dmg">cmake-3.3.0-Darwin-x86_64.dmg</a></td><td align="right">2015-07-23 16:39 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-Darwin-x86_64.tar.Z">cmake-3.3.0-Darwin-x86_64.tar.Z</a></td><td align="right">2015-07-23 16:39 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-Darwin-x86_64.tar.gz">cmake-3.3.0-Darwin-x86_64.tar.gz</a></td><td align="right">2015-07-23 16:38 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-Linux-i386.sh">cmake-3.3.0-Linux-i386.sh</a></td><td align="right">2015-07-23 16:38 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-Linux-i386.tar.Z">cmake-3.3.0-Linux-i386.tar.Z</a></td><td align="right">2015-07-23 16:38 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-Linux-i386.tar.gz">cmake-3.3.0-Linux-i386.tar.gz</a></td><td align="right">2015-07-23 16:38 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-Linux-x86_64.sh">cmake-3.3.0-Linux-x86_64.sh</a></td><td align="right">2015-07-23 16:38 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-Linux-x86_64.tar.Z">cmake-3.3.0-Linux-x86_64.tar.Z</a></td><td align="right">2015-07-23 16:38 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-Linux-x86_64.tar.gz">cmake-3.3.0-Linux-x86_64.tar.gz</a></td><td align="right">2015-07-23 16:38 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-SHA-256.txt">cmake-3.3.0-SHA-256.txt</a></td><td align="right">2015-08-13 14:42 </td><td align="right">1.6K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-SHA-256.txt.asc">cmake-3.3.0-SHA-256.txt.asc</a></td><td align="right">2015-08-13 14:42 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc1-1-src.tar.bz2">cmake-3.3.0-rc1-1-src.tar.bz2</a></td><td align="right">2015-06-05 09:01 </td><td align="right">9.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-rc1-1.patch">cmake-3.3.0-rc1-1.patch</a></td><td align="right">2015-06-05 09:01 </td><td align="right"> 0 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-rc1-1.sh">cmake-3.3.0-rc1-1.sh</a></td><td align="right">2015-06-05 09:01 </td><td align="right">1.5K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc1-1.tar.bz2">cmake-3.3.0-rc1-1.tar.bz2</a></td><td align="right">2015-06-05 09:01 </td><td align="right">9.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc1-Darwin-universal.dmg">cmake-3.3.0-rc1-Darwin-universal.dmg</a></td><td align="right">2015-06-05 09:01 </td><td align="right"> 48M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc1-Darwin-universal.tar.Z">cmake-3.3.0-rc1-Darwin-universal.tar.Z</a></td><td align="right">2015-06-05 09:01 </td><td align="right"> 68M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc1-Darwin-universal.tar.gz">cmake-3.3.0-rc1-Darwin-universal.tar.gz</a></td><td align="right">2015-06-05 09:01 </td><td align="right"> 47M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc1-Darwin-x86_64.dmg">cmake-3.3.0-rc1-Darwin-x86_64.dmg</a></td><td align="right">2015-06-05 09:01 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc1-Darwin-x86_64.tar.Z">cmake-3.3.0-rc1-Darwin-x86_64.tar.Z</a></td><td align="right">2015-06-05 09:01 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc1-Darwin-x86_64.tar.gz">cmake-3.3.0-rc1-Darwin-x86_64.tar.gz</a></td><td align="right">2015-06-05 09:01 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-rc1-Linux-i386.sh">cmake-3.3.0-rc1-Linux-i386.sh</a></td><td align="right">2015-06-05 09:00 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc1-Linux-i386.tar.Z">cmake-3.3.0-rc1-Linux-i386.tar.Z</a></td><td align="right">2015-06-05 09:00 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc1-Linux-i386.tar.gz">cmake-3.3.0-rc1-Linux-i386.tar.gz</a></td><td align="right">2015-06-05 09:00 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-rc1-Linux-x86_64.sh">cmake-3.3.0-rc1-Linux-x86_64.sh</a></td><td align="right">2015-06-05 09:00 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc1-Linux-x86_64.tar.Z">cmake-3.3.0-rc1-Linux-x86_64.tar.Z</a></td><td align="right">2015-06-05 09:00 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc1-Linux-x86_64.tar.gz">cmake-3.3.0-rc1-Linux-x86_64.tar.gz</a></td><td align="right">2015-06-05 09:00 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-rc1-SHA-256.txt">cmake-3.3.0-rc1-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.6K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-rc1-SHA-256.txt.asc">cmake-3.3.0-rc1-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc1-win32-x86.exe">cmake-3.3.0-rc1-win32-x86.exe</a></td><td align="right">2015-06-05 09:00 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc1-win32-x86.zip">cmake-3.3.0-rc1-win32-x86.zip</a></td><td align="right">2015-06-05 09:00 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc1.tar.Z">cmake-3.3.0-rc1.tar.Z</a></td><td align="right">2015-06-05 09:00 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc1.tar.gz">cmake-3.3.0-rc1.tar.gz</a></td><td align="right">2015-06-05 09:00 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc1.zip">cmake-3.3.0-rc1.zip</a></td><td align="right">2015-06-05 09:00 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc2-1-src.tar.bz2">cmake-3.3.0-rc2-1-src.tar.bz2</a></td><td align="right">2015-06-10 15:27 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc2-1.tar.bz2">cmake-3.3.0-rc2-1.tar.bz2</a></td><td align="right">2015-06-10 15:27 </td><td align="right">9.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc2-Darwin-universal.dmg">cmake-3.3.0-rc2-Darwin-universal.dmg</a></td><td align="right">2015-06-10 15:27 </td><td align="right"> 48M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc2-Darwin-universal.tar.Z">cmake-3.3.0-rc2-Darwin-universal.tar.Z</a></td><td align="right">2015-06-10 15:27 </td><td align="right"> 68M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc2-Darwin-universal.tar.gz">cmake-3.3.0-rc2-Darwin-universal.tar.gz</a></td><td align="right">2015-06-10 15:27 </td><td align="right"> 47M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc2-Darwin-x86_64.dmg">cmake-3.3.0-rc2-Darwin-x86_64.dmg</a></td><td align="right">2015-06-10 15:27 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc2-Darwin-x86_64.tar.Z">cmake-3.3.0-rc2-Darwin-x86_64.tar.Z</a></td><td align="right">2015-06-10 15:27 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc2-Darwin-x86_64.tar.gz">cmake-3.3.0-rc2-Darwin-x86_64.tar.gz</a></td><td align="right">2015-06-10 15:27 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-rc2-Linux-i386.sh">cmake-3.3.0-rc2-Linux-i386.sh</a></td><td align="right">2015-06-10 15:27 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc2-Linux-i386.tar.Z">cmake-3.3.0-rc2-Linux-i386.tar.Z</a></td><td align="right">2015-06-10 15:27 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc2-Linux-i386.tar.gz">cmake-3.3.0-rc2-Linux-i386.tar.gz</a></td><td align="right">2015-06-10 15:27 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-rc2-Linux-x86_64.sh">cmake-3.3.0-rc2-Linux-x86_64.sh</a></td><td align="right">2015-06-10 15:27 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc2-Linux-x86_64.tar.Z">cmake-3.3.0-rc2-Linux-x86_64.tar.Z</a></td><td align="right">2015-06-10 15:27 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc2-Linux-x86_64.tar.gz">cmake-3.3.0-rc2-Linux-x86_64.tar.gz</a></td><td align="right">2015-06-10 15:27 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-rc2-SHA-256.txt">cmake-3.3.0-rc2-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.6K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-rc2-SHA-256.txt.asc">cmake-3.3.0-rc2-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc2-win32-x86.exe">cmake-3.3.0-rc2-win32-x86.exe</a></td><td align="right">2015-06-10 15:27 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc2-win32-x86.zip">cmake-3.3.0-rc2-win32-x86.zip</a></td><td align="right">2015-06-10 15:27 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc2.tar.Z">cmake-3.3.0-rc2.tar.Z</a></td><td align="right">2015-06-10 15:27 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc2.tar.gz">cmake-3.3.0-rc2.tar.gz</a></td><td align="right">2015-06-10 15:27 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc2.zip">cmake-3.3.0-rc2.zip</a></td><td align="right">2015-06-10 15:27 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc3-1-src.tar.bz2">cmake-3.3.0-rc3-1-src.tar.bz2</a></td><td align="right">2015-06-26 13:34 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc3-1.tar.bz2">cmake-3.3.0-rc3-1.tar.bz2</a></td><td align="right">2015-06-26 13:34 </td><td align="right">9.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc3-Darwin-universal.dmg">cmake-3.3.0-rc3-Darwin-universal.dmg</a></td><td align="right">2015-06-26 13:34 </td><td align="right"> 48M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc3-Darwin-universal.tar.Z">cmake-3.3.0-rc3-Darwin-universal.tar.Z</a></td><td align="right">2015-06-26 13:34 </td><td align="right"> 68M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc3-Darwin-universal.tar.gz">cmake-3.3.0-rc3-Darwin-universal.tar.gz</a></td><td align="right">2015-06-26 13:34 </td><td align="right"> 47M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc3-Darwin-x86_64.dmg">cmake-3.3.0-rc3-Darwin-x86_64.dmg</a></td><td align="right">2015-06-26 13:34 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc3-Darwin-x86_64.tar.Z">cmake-3.3.0-rc3-Darwin-x86_64.tar.Z</a></td><td align="right">2015-06-26 13:34 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc3-Darwin-x86_64.tar.gz">cmake-3.3.0-rc3-Darwin-x86_64.tar.gz</a></td><td align="right">2015-06-26 13:34 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-rc3-Linux-i386.sh">cmake-3.3.0-rc3-Linux-i386.sh</a></td><td align="right">2015-06-26 13:34 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc3-Linux-i386.tar.Z">cmake-3.3.0-rc3-Linux-i386.tar.Z</a></td><td align="right">2015-06-26 13:34 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc3-Linux-i386.tar.gz">cmake-3.3.0-rc3-Linux-i386.tar.gz</a></td><td align="right">2015-06-26 13:34 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-rc3-Linux-x86_64.sh">cmake-3.3.0-rc3-Linux-x86_64.sh</a></td><td align="right">2015-06-26 13:34 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc3-Linux-x86_64.tar.Z">cmake-3.3.0-rc3-Linux-x86_64.tar.Z</a></td><td align="right">2015-06-26 13:34 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc3-Linux-x86_64.tar.gz">cmake-3.3.0-rc3-Linux-x86_64.tar.gz</a></td><td align="right">2015-06-26 13:34 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-rc3-SHA-256.txt">cmake-3.3.0-rc3-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.6K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-rc3-SHA-256.txt.asc">cmake-3.3.0-rc3-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc3-win32-x86.exe">cmake-3.3.0-rc3-win32-x86.exe</a></td><td align="right">2015-06-26 13:34 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc3-win32-x86.zip">cmake-3.3.0-rc3-win32-x86.zip</a></td><td align="right">2015-06-26 13:34 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc3.tar.Z">cmake-3.3.0-rc3.tar.Z</a></td><td align="right">2015-06-26 13:34 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc3.tar.gz">cmake-3.3.0-rc3.tar.gz</a></td><td align="right">2015-06-26 13:34 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc3.zip">cmake-3.3.0-rc3.zip</a></td><td align="right">2015-06-26 13:34 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc4-1-src.tar.bz2">cmake-3.3.0-rc4-1-src.tar.bz2</a></td><td align="right">2015-07-13 15:56 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc4-1.tar.bz2">cmake-3.3.0-rc4-1.tar.bz2</a></td><td align="right">2015-07-13 15:56 </td><td align="right">9.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc4-Darwin-universal.dmg">cmake-3.3.0-rc4-Darwin-universal.dmg</a></td><td align="right">2015-07-13 15:56 </td><td align="right"> 48M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc4-Darwin-universal.tar.Z">cmake-3.3.0-rc4-Darwin-universal.tar.Z</a></td><td align="right">2015-07-13 15:56 </td><td align="right"> 68M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc4-Darwin-universal.tar.gz">cmake-3.3.0-rc4-Darwin-universal.tar.gz</a></td><td align="right">2015-07-13 15:55 </td><td align="right"> 47M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc4-Darwin-x86_64.dmg">cmake-3.3.0-rc4-Darwin-x86_64.dmg</a></td><td align="right">2015-07-13 15:55 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc4-Darwin-x86_64.tar.Z">cmake-3.3.0-rc4-Darwin-x86_64.tar.Z</a></td><td align="right">2015-07-13 15:55 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc4-Darwin-x86_64.tar.gz">cmake-3.3.0-rc4-Darwin-x86_64.tar.gz</a></td><td align="right">2015-07-13 15:55 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-rc4-Linux-i386.sh">cmake-3.3.0-rc4-Linux-i386.sh</a></td><td align="right">2015-07-13 15:55 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc4-Linux-i386.tar.Z">cmake-3.3.0-rc4-Linux-i386.tar.Z</a></td><td align="right">2015-07-13 15:55 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc4-Linux-i386.tar.gz">cmake-3.3.0-rc4-Linux-i386.tar.gz</a></td><td align="right">2015-07-13 15:55 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-rc4-Linux-x86_64.sh">cmake-3.3.0-rc4-Linux-x86_64.sh</a></td><td align="right">2015-07-13 15:55 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc4-Linux-x86_64.tar.Z">cmake-3.3.0-rc4-Linux-x86_64.tar.Z</a></td><td align="right">2015-07-13 15:55 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc4-Linux-x86_64.tar.gz">cmake-3.3.0-rc4-Linux-x86_64.tar.gz</a></td><td align="right">2015-07-13 15:55 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-rc4-SHA-256.txt">cmake-3.3.0-rc4-SHA-256.txt</a></td><td align="right">2016-04-13 12:48 </td><td align="right">1.6K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.0-rc4-SHA-256.txt.asc">cmake-3.3.0-rc4-SHA-256.txt.asc</a></td><td align="right">2016-04-13 12:48 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc4-win32-x86.exe">cmake-3.3.0-rc4-win32-x86.exe</a></td><td align="right">2015-07-13 15:55 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc4-win32-x86.zip">cmake-3.3.0-rc4-win32-x86.zip</a></td><td align="right">2015-07-13 15:55 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc4.tar.Z">cmake-3.3.0-rc4.tar.Z</a></td><td align="right">2015-07-13 15:55 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc4.tar.gz">cmake-3.3.0-rc4.tar.gz</a></td><td align="right">2015-07-13 15:55 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-rc4.zip">cmake-3.3.0-rc4.zip</a></td><td align="right">2015-07-13 15:55 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-win32-x86.exe">cmake-3.3.0-win32-x86.exe</a></td><td align="right">2015-07-23 16:38 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0-win32-x86.zip">cmake-3.3.0-win32-x86.zip</a></td><td align="right">2015-07-23 16:38 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0.tar.Z">cmake-3.3.0.tar.Z</a></td><td align="right">2015-07-23 16:38 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0.tar.gz">cmake-3.3.0.tar.gz</a></td><td align="right">2015-07-23 16:38 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.0.zip">cmake-3.3.0.zip</a></td><td align="right">2015-07-23 16:38 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.1-1-src.tar.bz2">cmake-3.3.1-1-src.tar.bz2</a></td><td align="right">2015-08-13 15:55 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.1-1.tar.bz2">cmake-3.3.1-1.tar.bz2</a></td><td align="right">2015-08-13 15:55 </td><td align="right">9.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.1-Darwin-universal.dmg">cmake-3.3.1-Darwin-universal.dmg</a></td><td align="right">2015-08-13 15:55 </td><td align="right"> 48M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.1-Darwin-universal.tar.Z">cmake-3.3.1-Darwin-universal.tar.Z</a></td><td align="right">2015-08-13 15:55 </td><td align="right"> 68M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.1-Darwin-universal.tar.gz">cmake-3.3.1-Darwin-universal.tar.gz</a></td><td align="right">2015-08-13 15:55 </td><td align="right"> 47M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.1-Darwin-x86_64.dmg">cmake-3.3.1-Darwin-x86_64.dmg</a></td><td align="right">2015-08-13 15:55 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.1-Darwin-x86_64.tar.Z">cmake-3.3.1-Darwin-x86_64.tar.Z</a></td><td align="right">2015-08-13 15:55 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.1-Darwin-x86_64.tar.gz">cmake-3.3.1-Darwin-x86_64.tar.gz</a></td><td align="right">2015-08-13 15:55 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.1-Linux-i386.sh">cmake-3.3.1-Linux-i386.sh</a></td><td align="right">2015-08-13 15:55 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.1-Linux-i386.tar.Z">cmake-3.3.1-Linux-i386.tar.Z</a></td><td align="right">2015-08-13 15:55 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.1-Linux-i386.tar.gz">cmake-3.3.1-Linux-i386.tar.gz</a></td><td align="right">2015-08-13 15:55 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.1-Linux-x86_64.sh">cmake-3.3.1-Linux-x86_64.sh</a></td><td align="right">2015-08-13 15:55 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.1-Linux-x86_64.tar.Z">cmake-3.3.1-Linux-x86_64.tar.Z</a></td><td align="right">2015-08-13 15:55 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.1-Linux-x86_64.tar.gz">cmake-3.3.1-Linux-x86_64.tar.gz</a></td><td align="right">2015-08-13 15:55 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.1-SHA-256.txt">cmake-3.3.1-SHA-256.txt</a></td><td align="right">2015-08-13 15:55 </td><td align="right">1.3K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.1-SHA-256.txt.asc">cmake-3.3.1-SHA-256.txt.asc</a></td><td align="right">2015-08-13 15:55 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.3.1-win32-x86.exe">cmake-3.3.1-win32-x86.exe</a></td><td align="right">2015-08-13 15:55 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.1-win32-x86.zip">cmake-3.3.1-win32-x86.zip</a></td><td align="right">2015-08-13 15:55 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.1.tar.Z">cmake-3.3.1.tar.Z</a></td><td align="right">2015-08-13 15:54 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.1.tar.gz">cmake-3.3.1.tar.gz</a></td><td align="right">2015-08-13 15:54 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.1.zip">cmake-3.3.1.zip</a></td><td align="right">2015-08-13 15:54 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.2-1-src.tar.bz2">cmake-3.3.2-1-src.tar.bz2</a></td><td align="right">2015-09-17 14:36 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.2-1.tar.bz2">cmake-3.3.2-1.tar.bz2</a></td><td align="right">2015-09-17 14:36 </td><td align="right">9.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.2-Darwin-universal.dmg">cmake-3.3.2-Darwin-universal.dmg</a></td><td align="right">2015-09-17 14:36 </td><td align="right"> 48M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.2-Darwin-universal.tar.Z">cmake-3.3.2-Darwin-universal.tar.Z</a></td><td align="right">2015-09-17 14:36 </td><td align="right"> 68M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.2-Darwin-universal.tar.gz">cmake-3.3.2-Darwin-universal.tar.gz</a></td><td align="right">2015-09-17 14:36 </td><td align="right"> 47M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.3.2-Darwin-x86_64.dmg">cmake-3.3.2-Darwin-x86_64.dmg</a></td><td align="right">2015-09-17 14:35 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.2-Darwin-x86_64.tar.Z">cmake-3.3.2-Darwin-x86_64.tar.Z</a></td><td align="right">2015-09-17 14:35 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.2-Darwin-x86_64.tar.gz">cmake-3.3.2-Darwin-x86_64.tar.gz</a></td><td align="right">2015-09-17 14:35 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.2-Linux-i386.sh">cmake-3.3.2-Linux-i386.sh</a></td><td align="right">2015-09-17 14:35 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.2-Linux-i386.tar.Z">cmake-3.3.2-Linux-i386.tar.Z</a></td><td align="right">2015-09-17 14:35 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.2-Linux-i386.tar.gz">cmake-3.3.2-Linux-i386.tar.gz</a></td><td align="right">2015-09-17 14:35 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.2-Linux-x86_64.sh">cmake-3.3.2-Linux-x86_64.sh</a></td><td align="right">2015-09-17 14:35 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.2-Linux-x86_64.tar.Z">cmake-3.3.2-Linux-x86_64.tar.Z</a></td><td align="right">2015-09-17 14:35 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.2-Linux-x86_64.tar.gz">cmake-3.3.2-Linux-x86_64.tar.gz</a></td><td align="right">2015-09-17 14:35 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.2-SHA-256.txt">cmake-3.3.2-SHA-256.txt</a></td><td align="right">2015-09-17 14:35 </td><td align="right">1.6K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.3.2-SHA-256.txt.asc">cmake-3.3.2-SHA-256.txt.asc</a></td><td align="right">2015-09-17 14:35 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.3.2-win32-x86.exe">cmake-3.3.2-win32-x86.exe</a></td><td align="right">2015-09-17 14:35 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.2-win32-x86.zip">cmake-3.3.2-win32-x86.zip</a></td><td align="right">2015-09-17 14:35 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.2.tar.Z">cmake-3.3.2.tar.Z</a></td><td align="right">2015-09-17 14:35 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.2.tar.gz">cmake-3.3.2.tar.gz</a></td><td align="right">2015-09-17 14:35 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.3.2.zip">cmake-3.3.2.zip</a></td><td align="right">2015-09-17 14:35 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.4/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.4/index.html
new file mode 100644
index 000000000..e7b56da75
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.4/index.html
@@ -0,0 +1,127 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /files/v3.4</title>
+ </head>
+ <body>
+<h1>Index of /files/v3.4</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/files/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-Darwin-x86_64.dmg">cmake-3.4.0-Darwin-x86_64.dmg</a></td><td align="right">2015-11-12 13:42 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-Darwin-x86_64.tar.Z">cmake-3.4.0-Darwin-x86_64.tar.Z</a></td><td align="right">2015-11-12 13:42 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-Darwin-x86_64.tar.gz">cmake-3.4.0-Darwin-x86_64.tar.gz</a></td><td align="right">2015-11-12 13:42 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.0-Linux-i386.sh">cmake-3.4.0-Linux-i386.sh</a></td><td align="right">2015-11-12 13:42 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-Linux-i386.tar.Z">cmake-3.4.0-Linux-i386.tar.Z</a></td><td align="right">2015-11-12 13:42 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-Linux-i386.tar.gz">cmake-3.4.0-Linux-i386.tar.gz</a></td><td align="right">2015-11-12 13:42 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.0-Linux-x86_64.sh">cmake-3.4.0-Linux-x86_64.sh</a></td><td align="right">2015-11-12 13:42 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-Linux-x86_64.tar.Z">cmake-3.4.0-Linux-x86_64.tar.Z</a></td><td align="right">2015-11-12 13:42 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-Linux-x86_64.tar.gz">cmake-3.4.0-Linux-x86_64.tar.gz</a></td><td align="right">2015-11-12 13:42 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.0-SHA-256.txt">cmake-3.4.0-SHA-256.txt</a></td><td align="right">2015-11-12 13:42 </td><td align="right">1.3K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.0-SHA-256.txt.asc">cmake-3.4.0-SHA-256.txt.asc</a></td><td align="right">2015-11-12 13:42 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc1-Darwin-x86_64.dmg">cmake-3.4.0-rc1-Darwin-x86_64.dmg</a></td><td align="right">2015-10-06 11:02 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc1-Darwin-x86_64.tar.Z">cmake-3.4.0-rc1-Darwin-x86_64.tar.Z</a></td><td align="right">2015-10-06 11:02 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc1-Darwin-x86_64.tar.gz">cmake-3.4.0-rc1-Darwin-x86_64.tar.gz</a></td><td align="right">2015-10-06 11:02 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.0-rc1-Linux-i386.sh">cmake-3.4.0-rc1-Linux-i386.sh</a></td><td align="right">2015-10-06 11:02 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc1-Linux-i386.tar.Z">cmake-3.4.0-rc1-Linux-i386.tar.Z</a></td><td align="right">2015-10-06 11:02 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc1-Linux-i386.tar.gz">cmake-3.4.0-rc1-Linux-i386.tar.gz</a></td><td align="right">2015-10-06 11:01 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.0-rc1-Linux-x86_64.sh">cmake-3.4.0-rc1-Linux-x86_64.sh</a></td><td align="right">2015-10-06 11:01 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc1-Linux-x86_64.tar.Z">cmake-3.4.0-rc1-Linux-x86_64.tar.Z</a></td><td align="right">2015-10-06 11:01 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc1-Linux-x86_64.tar.gz">cmake-3.4.0-rc1-Linux-x86_64.tar.gz</a></td><td align="right">2015-10-06 11:01 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.0-rc1-SHA-256.txt">cmake-3.4.0-rc1-SHA-256.txt</a></td><td align="right">2015-10-06 11:01 </td><td align="right">1.3K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.0-rc1-SHA-256.txt.asc">cmake-3.4.0-rc1-SHA-256.txt.asc</a></td><td align="right">2015-10-06 11:01 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc1-win32-x86.exe">cmake-3.4.0-rc1-win32-x86.exe</a></td><td align="right">2015-10-06 11:01 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc1-win32-x86.zip">cmake-3.4.0-rc1-win32-x86.zip</a></td><td align="right">2015-10-06 11:01 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc1.tar.Z">cmake-3.4.0-rc1.tar.Z</a></td><td align="right">2015-10-06 11:01 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc1.tar.gz">cmake-3.4.0-rc1.tar.gz</a></td><td align="right">2015-10-06 11:01 </td><td align="right">6.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc1.zip">cmake-3.4.0-rc1.zip</a></td><td align="right">2015-10-06 11:01 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc2-Darwin-x86_64.dmg">cmake-3.4.0-rc2-Darwin-x86_64.dmg</a></td><td align="right">2015-10-21 16:27 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc2-Darwin-x86_64.tar.Z">cmake-3.4.0-rc2-Darwin-x86_64.tar.Z</a></td><td align="right">2015-10-21 16:27 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc2-Darwin-x86_64.tar.gz">cmake-3.4.0-rc2-Darwin-x86_64.tar.gz</a></td><td align="right">2015-10-21 16:27 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.0-rc2-Linux-i386.sh">cmake-3.4.0-rc2-Linux-i386.sh</a></td><td align="right">2015-10-21 16:27 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc2-Linux-i386.tar.Z">cmake-3.4.0-rc2-Linux-i386.tar.Z</a></td><td align="right">2015-10-21 16:27 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc2-Linux-i386.tar.gz">cmake-3.4.0-rc2-Linux-i386.tar.gz</a></td><td align="right">2015-10-21 16:27 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.0-rc2-Linux-x86_64.sh">cmake-3.4.0-rc2-Linux-x86_64.sh</a></td><td align="right">2015-10-21 16:27 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc2-Linux-x86_64.tar.Z">cmake-3.4.0-rc2-Linux-x86_64.tar.Z</a></td><td align="right">2015-10-21 16:27 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc2-Linux-x86_64.tar.gz">cmake-3.4.0-rc2-Linux-x86_64.tar.gz</a></td><td align="right">2015-10-21 16:27 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.0-rc2-SHA-256.txt">cmake-3.4.0-rc2-SHA-256.txt</a></td><td align="right">2015-10-21 16:26 </td><td align="right">1.3K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.0-rc2-SHA-256.txt.asc">cmake-3.4.0-rc2-SHA-256.txt.asc</a></td><td align="right">2015-10-21 16:26 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc2-win32-x86.exe">cmake-3.4.0-rc2-win32-x86.exe</a></td><td align="right">2015-10-21 16:26 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc2-win32-x86.zip">cmake-3.4.0-rc2-win32-x86.zip</a></td><td align="right">2015-10-21 16:26 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc2.tar.Z">cmake-3.4.0-rc2.tar.Z</a></td><td align="right">2015-10-21 16:26 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc2.tar.gz">cmake-3.4.0-rc2.tar.gz</a></td><td align="right">2015-10-21 16:26 </td><td align="right">6.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc2.zip">cmake-3.4.0-rc2.zip</a></td><td align="right">2015-10-21 16:26 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc3-Darwin-x86_64.dmg">cmake-3.4.0-rc3-Darwin-x86_64.dmg</a></td><td align="right">2015-11-03 11:09 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc3-Darwin-x86_64.tar.Z">cmake-3.4.0-rc3-Darwin-x86_64.tar.Z</a></td><td align="right">2015-11-03 11:09 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc3-Darwin-x86_64.tar.gz">cmake-3.4.0-rc3-Darwin-x86_64.tar.gz</a></td><td align="right">2015-11-03 11:09 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.0-rc3-Linux-i386.sh">cmake-3.4.0-rc3-Linux-i386.sh</a></td><td align="right">2015-11-03 11:09 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc3-Linux-i386.tar.Z">cmake-3.4.0-rc3-Linux-i386.tar.Z</a></td><td align="right">2015-11-03 11:09 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc3-Linux-i386.tar.gz">cmake-3.4.0-rc3-Linux-i386.tar.gz</a></td><td align="right">2015-11-03 11:09 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.0-rc3-Linux-x86_64.sh">cmake-3.4.0-rc3-Linux-x86_64.sh</a></td><td align="right">2015-11-03 11:09 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc3-Linux-x86_64.tar.Z">cmake-3.4.0-rc3-Linux-x86_64.tar.Z</a></td><td align="right">2015-11-03 11:09 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc3-Linux-x86_64.tar.gz">cmake-3.4.0-rc3-Linux-x86_64.tar.gz</a></td><td align="right">2015-11-03 11:09 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.0-rc3-SHA-256.txt">cmake-3.4.0-rc3-SHA-256.txt</a></td><td align="right">2015-11-03 11:09 </td><td align="right">1.3K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.0-rc3-SHA-256.txt.asc">cmake-3.4.0-rc3-SHA-256.txt.asc</a></td><td align="right">2015-11-03 11:09 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc3-win32-x86.exe">cmake-3.4.0-rc3-win32-x86.exe</a></td><td align="right">2015-11-03 11:09 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc3-win32-x86.zip">cmake-3.4.0-rc3-win32-x86.zip</a></td><td align="right">2015-11-03 11:09 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc3.tar.Z">cmake-3.4.0-rc3.tar.Z</a></td><td align="right">2015-11-03 11:09 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc3.tar.gz">cmake-3.4.0-rc3.tar.gz</a></td><td align="right">2015-11-03 11:08 </td><td align="right">6.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-rc3.zip">cmake-3.4.0-rc3.zip</a></td><td align="right">2015-11-03 11:08 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-win32-x86.exe">cmake-3.4.0-win32-x86.exe</a></td><td align="right">2015-11-12 13:42 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0-win32-x86.zip">cmake-3.4.0-win32-x86.zip</a></td><td align="right">2015-11-12 13:42 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0.tar.Z">cmake-3.4.0.tar.Z</a></td><td align="right">2015-11-12 13:42 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0.tar.gz">cmake-3.4.0.tar.gz</a></td><td align="right">2015-11-12 13:42 </td><td align="right">6.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.0.zip">cmake-3.4.0.zip</a></td><td align="right">2015-11-12 13:42 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.4.1-Darwin-x86_64.dmg">cmake-3.4.1-Darwin-x86_64.dmg</a></td><td align="right">2015-12-02 14:42 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.1-Darwin-x86_64.tar.Z">cmake-3.4.1-Darwin-x86_64.tar.Z</a></td><td align="right">2015-12-02 14:42 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.1-Darwin-x86_64.tar.gz">cmake-3.4.1-Darwin-x86_64.tar.gz</a></td><td align="right">2015-12-02 14:42 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.1-Linux-i386.sh">cmake-3.4.1-Linux-i386.sh</a></td><td align="right">2015-12-02 14:42 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.1-Linux-i386.tar.Z">cmake-3.4.1-Linux-i386.tar.Z</a></td><td align="right">2015-12-02 14:42 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.1-Linux-i386.tar.gz">cmake-3.4.1-Linux-i386.tar.gz</a></td><td align="right">2015-12-02 14:42 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.1-Linux-x86_64.sh">cmake-3.4.1-Linux-x86_64.sh</a></td><td align="right">2015-12-02 14:42 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.1-Linux-x86_64.tar.Z">cmake-3.4.1-Linux-x86_64.tar.Z</a></td><td align="right">2015-12-02 14:42 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.1-Linux-x86_64.tar.gz">cmake-3.4.1-Linux-x86_64.tar.gz</a></td><td align="right">2015-12-02 14:42 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.1-SHA-256.txt">cmake-3.4.1-SHA-256.txt</a></td><td align="right">2015-12-02 14:42 </td><td align="right">1.3K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.1-SHA-256.txt.asc">cmake-3.4.1-SHA-256.txt.asc</a></td><td align="right">2015-12-02 14:42 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.4.1-win32-x86.exe">cmake-3.4.1-win32-x86.exe</a></td><td align="right">2015-12-02 14:42 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.1-win32-x86.zip">cmake-3.4.1-win32-x86.zip</a></td><td align="right">2015-12-02 14:42 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.1.tar.Z">cmake-3.4.1.tar.Z</a></td><td align="right">2015-12-02 14:42 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.1.tar.gz">cmake-3.4.1.tar.gz</a></td><td align="right">2015-12-02 14:42 </td><td align="right">6.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.1.zip">cmake-3.4.1.zip</a></td><td align="right">2015-12-02 14:41 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.4.2-Darwin-x86_64.dmg">cmake-3.4.2-Darwin-x86_64.dmg</a></td><td align="right">2016-01-19 14:58 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.2-Darwin-x86_64.tar.Z">cmake-3.4.2-Darwin-x86_64.tar.Z</a></td><td align="right">2016-01-19 14:58 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.2-Darwin-x86_64.tar.gz">cmake-3.4.2-Darwin-x86_64.tar.gz</a></td><td align="right">2016-01-19 14:58 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.2-Linux-i386.sh">cmake-3.4.2-Linux-i386.sh</a></td><td align="right">2016-01-19 14:58 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.2-Linux-i386.tar.Z">cmake-3.4.2-Linux-i386.tar.Z</a></td><td align="right">2016-01-19 14:58 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.2-Linux-i386.tar.gz">cmake-3.4.2-Linux-i386.tar.gz</a></td><td align="right">2016-01-19 14:58 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.2-Linux-x86_64.sh">cmake-3.4.2-Linux-x86_64.sh</a></td><td align="right">2016-01-19 14:58 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.2-Linux-x86_64.tar.Z">cmake-3.4.2-Linux-x86_64.tar.Z</a></td><td align="right">2016-01-19 14:58 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.2-Linux-x86_64.tar.gz">cmake-3.4.2-Linux-x86_64.tar.gz</a></td><td align="right">2016-01-19 14:58 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.2-SHA-256.txt">cmake-3.4.2-SHA-256.txt</a></td><td align="right">2016-01-19 14:58 </td><td align="right">1.3K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.2-SHA-256.txt.asc">cmake-3.4.2-SHA-256.txt.asc</a></td><td align="right">2016-01-19 14:58 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.4.2-win32-x86.exe">cmake-3.4.2-win32-x86.exe</a></td><td align="right">2016-01-19 14:58 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.2-win32-x86.zip">cmake-3.4.2-win32-x86.zip</a></td><td align="right">2016-01-19 14:58 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.2.tar.Z">cmake-3.4.2.tar.Z</a></td><td align="right">2016-01-19 14:58 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.2.tar.gz">cmake-3.4.2.tar.gz</a></td><td align="right">2016-01-19 14:58 </td><td align="right">6.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.2.zip">cmake-3.4.2.zip</a></td><td align="right">2016-01-19 14:58 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.4.3-Darwin-x86_64.dmg">cmake-3.4.3-Darwin-x86_64.dmg</a></td><td align="right">2016-01-25 14:29 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.3-Darwin-x86_64.tar.Z">cmake-3.4.3-Darwin-x86_64.tar.Z</a></td><td align="right">2016-01-25 14:29 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.3-Darwin-x86_64.tar.gz">cmake-3.4.3-Darwin-x86_64.tar.gz</a></td><td align="right">2016-01-25 14:29 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.3-Linux-i386.sh">cmake-3.4.3-Linux-i386.sh</a></td><td align="right">2016-01-25 14:29 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.3-Linux-i386.tar.Z">cmake-3.4.3-Linux-i386.tar.Z</a></td><td align="right">2016-01-25 14:29 </td><td align="right"> 37M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.3-Linux-i386.tar.gz">cmake-3.4.3-Linux-i386.tar.gz</a></td><td align="right">2016-01-25 14:29 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.3-Linux-x86_64.sh">cmake-3.4.3-Linux-x86_64.sh</a></td><td align="right">2016-01-25 14:29 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.3-Linux-x86_64.tar.Z">cmake-3.4.3-Linux-x86_64.tar.Z</a></td><td align="right">2016-01-25 14:29 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.3-Linux-x86_64.tar.gz">cmake-3.4.3-Linux-x86_64.tar.gz</a></td><td align="right">2016-01-25 14:29 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.3-SHA-256.txt">cmake-3.4.3-SHA-256.txt</a></td><td align="right">2016-01-25 14:29 </td><td align="right">1.3K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.4.3-SHA-256.txt.asc">cmake-3.4.3-SHA-256.txt.asc</a></td><td align="right">2016-01-25 14:29 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/binary.gif" alt="[ ]"></td><td><a href="cmake-3.4.3-win32-x86.exe">cmake-3.4.3-win32-x86.exe</a></td><td align="right">2016-01-25 14:29 </td><td align="right"> 13M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.3-win32-x86.zip">cmake-3.4.3-win32-x86.zip</a></td><td align="right">2016-01-25 14:29 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.3.tar.Z">cmake-3.4.3.tar.Z</a></td><td align="right">2016-01-25 14:29 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.3.tar.gz">cmake-3.4.3.tar.gz</a></td><td align="right">2016-01-25 14:29 </td><td align="right">6.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.4.3.zip">cmake-3.4.3.zip</a></td><td align="right">2016-01-25 14:29 </td><td align="right"> 10M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="cygwin/">cygwin/</a></td><td align="right">2016-01-25 14:34 </td><td align="right"> - </td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.5/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.5/index.html
new file mode 100644
index 000000000..03d4f7c15
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.5/index.html
@@ -0,0 +1,111 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /files/v3.5</title>
+ </head>
+ <body>
+<h1>Index of /files/v3.5</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/files/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-Darwin-x86_64.dmg">cmake-3.5.0-Darwin-x86_64.dmg</a></td><td align="right">2016-03-08 11:17 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-Darwin-x86_64.tar.Z">cmake-3.5.0-Darwin-x86_64.tar.Z</a></td><td align="right">2016-03-08 11:17 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-Darwin-x86_64.tar.gz">cmake-3.5.0-Darwin-x86_64.tar.gz</a></td><td align="right">2016-03-08 11:17 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.0-Linux-i386.sh">cmake-3.5.0-Linux-i386.sh</a></td><td align="right">2016-03-08 11:17 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-Linux-i386.tar.Z">cmake-3.5.0-Linux-i386.tar.Z</a></td><td align="right">2016-03-08 11:17 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-Linux-i386.tar.gz">cmake-3.5.0-Linux-i386.tar.gz</a></td><td align="right">2016-03-08 11:17 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.0-Linux-x86_64.sh">cmake-3.5.0-Linux-x86_64.sh</a></td><td align="right">2016-03-08 11:17 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-Linux-x86_64.tar.Z">cmake-3.5.0-Linux-x86_64.tar.Z</a></td><td align="right">2016-03-08 11:17 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-Linux-x86_64.tar.gz">cmake-3.5.0-Linux-x86_64.tar.gz</a></td><td align="right">2016-03-08 11:17 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.0-SHA-256.txt">cmake-3.5.0-SHA-256.txt</a></td><td align="right">2016-03-08 11:17 </td><td align="right">1.3K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.0-SHA-256.txt.asc">cmake-3.5.0-SHA-256.txt.asc</a></td><td align="right">2016-03-08 11:16 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc1-Darwin-x86_64.dmg">cmake-3.5.0-rc1-Darwin-x86_64.dmg</a></td><td align="right">2016-02-02 15:51 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc1-Darwin-x86_64.tar.Z">cmake-3.5.0-rc1-Darwin-x86_64.tar.Z</a></td><td align="right">2016-02-02 15:51 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc1-Darwin-x86_64.tar.gz">cmake-3.5.0-rc1-Darwin-x86_64.tar.gz</a></td><td align="right">2016-02-02 15:51 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.0-rc1-Linux-i386.sh">cmake-3.5.0-rc1-Linux-i386.sh</a></td><td align="right">2016-02-02 15:51 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc1-Linux-i386.tar.Z">cmake-3.5.0-rc1-Linux-i386.tar.Z</a></td><td align="right">2016-02-02 15:51 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc1-Linux-i386.tar.gz">cmake-3.5.0-rc1-Linux-i386.tar.gz</a></td><td align="right">2016-02-02 15:51 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.0-rc1-Linux-x86_64.sh">cmake-3.5.0-rc1-Linux-x86_64.sh</a></td><td align="right">2016-02-02 15:51 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc1-Linux-x86_64.tar.Z">cmake-3.5.0-rc1-Linux-x86_64.tar.Z</a></td><td align="right">2016-02-02 15:51 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc1-Linux-x86_64.tar.gz">cmake-3.5.0-rc1-Linux-x86_64.tar.gz</a></td><td align="right">2016-02-02 15:51 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.0-rc1-SHA-256.txt">cmake-3.5.0-rc1-SHA-256.txt</a></td><td align="right">2016-02-03 13:29 </td><td align="right">1.3K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.0-rc1-SHA-256.txt.asc">cmake-3.5.0-rc1-SHA-256.txt.asc</a></td><td align="right">2016-02-03 13:29 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc1-win32-x86.msi">cmake-3.5.0-rc1-win32-x86.msi</a></td><td align="right">2016-02-03 13:29 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc1-win32-x86.zip">cmake-3.5.0-rc1-win32-x86.zip</a></td><td align="right">2016-02-03 13:29 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc1.tar.Z">cmake-3.5.0-rc1.tar.Z</a></td><td align="right">2016-02-02 15:51 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc1.tar.gz">cmake-3.5.0-rc1.tar.gz</a></td><td align="right">2016-02-02 15:51 </td><td align="right">6.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc1.zip">cmake-3.5.0-rc1.zip</a></td><td align="right">2016-02-02 15:51 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc2-Darwin-x86_64.dmg">cmake-3.5.0-rc2-Darwin-x86_64.dmg</a></td><td align="right">2016-02-10 15:03 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc2-Darwin-x86_64.tar.Z">cmake-3.5.0-rc2-Darwin-x86_64.tar.Z</a></td><td align="right">2016-02-10 15:03 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc2-Darwin-x86_64.tar.gz">cmake-3.5.0-rc2-Darwin-x86_64.tar.gz</a></td><td align="right">2016-02-10 15:03 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.0-rc2-Linux-i386.sh">cmake-3.5.0-rc2-Linux-i386.sh</a></td><td align="right">2016-02-10 15:03 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc2-Linux-i386.tar.Z">cmake-3.5.0-rc2-Linux-i386.tar.Z</a></td><td align="right">2016-02-10 15:03 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc2-Linux-i386.tar.gz">cmake-3.5.0-rc2-Linux-i386.tar.gz</a></td><td align="right">2016-02-10 15:03 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.0-rc2-Linux-x86_64.sh">cmake-3.5.0-rc2-Linux-x86_64.sh</a></td><td align="right">2016-02-10 15:03 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc2-Linux-x86_64.tar.Z">cmake-3.5.0-rc2-Linux-x86_64.tar.Z</a></td><td align="right">2016-02-10 15:03 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc2-Linux-x86_64.tar.gz">cmake-3.5.0-rc2-Linux-x86_64.tar.gz</a></td><td align="right">2016-02-10 15:03 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.0-rc2-SHA-256.txt">cmake-3.5.0-rc2-SHA-256.txt</a></td><td align="right">2016-02-10 15:03 </td><td align="right">1.3K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.0-rc2-SHA-256.txt.asc">cmake-3.5.0-rc2-SHA-256.txt.asc</a></td><td align="right">2016-02-10 15:03 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc2-win32-x86.msi">cmake-3.5.0-rc2-win32-x86.msi</a></td><td align="right">2016-02-10 15:03 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc2-win32-x86.zip">cmake-3.5.0-rc2-win32-x86.zip</a></td><td align="right">2016-02-10 15:03 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc2.tar.Z">cmake-3.5.0-rc2.tar.Z</a></td><td align="right">2016-02-10 15:02 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc2.tar.gz">cmake-3.5.0-rc2.tar.gz</a></td><td align="right">2016-02-10 15:02 </td><td align="right">6.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc2.zip">cmake-3.5.0-rc2.zip</a></td><td align="right">2016-02-10 15:02 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc3-Darwin-x86_64.dmg">cmake-3.5.0-rc3-Darwin-x86_64.dmg</a></td><td align="right">2016-02-18 15:41 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc3-Darwin-x86_64.tar.Z">cmake-3.5.0-rc3-Darwin-x86_64.tar.Z</a></td><td align="right">2016-02-18 15:41 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc3-Darwin-x86_64.tar.gz">cmake-3.5.0-rc3-Darwin-x86_64.tar.gz</a></td><td align="right">2016-02-18 15:41 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.0-rc3-Linux-i386.sh">cmake-3.5.0-rc3-Linux-i386.sh</a></td><td align="right">2016-02-18 15:41 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc3-Linux-i386.tar.Z">cmake-3.5.0-rc3-Linux-i386.tar.Z</a></td><td align="right">2016-02-18 15:41 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc3-Linux-i386.tar.gz">cmake-3.5.0-rc3-Linux-i386.tar.gz</a></td><td align="right">2016-02-18 15:41 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.0-rc3-Linux-x86_64.sh">cmake-3.5.0-rc3-Linux-x86_64.sh</a></td><td align="right">2016-02-18 15:41 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc3-Linux-x86_64.tar.Z">cmake-3.5.0-rc3-Linux-x86_64.tar.Z</a></td><td align="right">2016-02-18 15:41 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc3-Linux-x86_64.tar.gz">cmake-3.5.0-rc3-Linux-x86_64.tar.gz</a></td><td align="right">2016-02-18 15:41 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.0-rc3-SHA-256.txt">cmake-3.5.0-rc3-SHA-256.txt</a></td><td align="right">2016-02-18 15:41 </td><td align="right">1.3K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.0-rc3-SHA-256.txt.asc">cmake-3.5.0-rc3-SHA-256.txt.asc</a></td><td align="right">2016-02-18 15:41 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc3-win32-x86.msi">cmake-3.5.0-rc3-win32-x86.msi</a></td><td align="right">2016-02-18 15:41 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc3-win32-x86.zip">cmake-3.5.0-rc3-win32-x86.zip</a></td><td align="right">2016-02-18 15:41 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc3.tar.Z">cmake-3.5.0-rc3.tar.Z</a></td><td align="right">2016-02-18 15:41 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc3.tar.gz">cmake-3.5.0-rc3.tar.gz</a></td><td align="right">2016-02-18 15:40 </td><td align="right">6.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-rc3.zip">cmake-3.5.0-rc3.zip</a></td><td align="right">2016-02-18 15:40 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-win32-x86.msi">cmake-3.5.0-win32-x86.msi</a></td><td align="right">2016-03-08 11:16 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0-win32-x86.zip">cmake-3.5.0-win32-x86.zip</a></td><td align="right">2016-03-08 11:16 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0.tar.Z">cmake-3.5.0.tar.Z</a></td><td align="right">2016-03-08 11:16 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0.tar.gz">cmake-3.5.0.tar.gz</a></td><td align="right">2016-03-08 11:16 </td><td align="right">6.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.0.zip">cmake-3.5.0.zip</a></td><td align="right">2016-03-08 11:16 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.5.1-Darwin-x86_64.dmg">cmake-3.5.1-Darwin-x86_64.dmg</a></td><td align="right">2016-03-24 16:00 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.1-Darwin-x86_64.tar.Z">cmake-3.5.1-Darwin-x86_64.tar.Z</a></td><td align="right">2016-03-24 16:00 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.1-Darwin-x86_64.tar.gz">cmake-3.5.1-Darwin-x86_64.tar.gz</a></td><td align="right">2016-03-24 16:00 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.1-Linux-i386.sh">cmake-3.5.1-Linux-i386.sh</a></td><td align="right">2016-03-24 16:00 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.1-Linux-i386.tar.Z">cmake-3.5.1-Linux-i386.tar.Z</a></td><td align="right">2016-03-24 16:00 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.1-Linux-i386.tar.gz">cmake-3.5.1-Linux-i386.tar.gz</a></td><td align="right">2016-03-24 16:00 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.1-Linux-x86_64.sh">cmake-3.5.1-Linux-x86_64.sh</a></td><td align="right">2016-03-24 16:00 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.1-Linux-x86_64.tar.Z">cmake-3.5.1-Linux-x86_64.tar.Z</a></td><td align="right">2016-03-24 16:00 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.1-Linux-x86_64.tar.gz">cmake-3.5.1-Linux-x86_64.tar.gz</a></td><td align="right">2016-03-24 16:00 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.1-SHA-256.txt">cmake-3.5.1-SHA-256.txt</a></td><td align="right">2016-03-24 16:00 </td><td align="right">1.3K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.1-SHA-256.txt.asc">cmake-3.5.1-SHA-256.txt.asc</a></td><td align="right">2016-03-24 16:00 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.5.1-win32-x86.msi">cmake-3.5.1-win32-x86.msi</a></td><td align="right">2016-03-24 16:00 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.1-win32-x86.zip">cmake-3.5.1-win32-x86.zip</a></td><td align="right">2016-03-24 16:00 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.1.tar.Z">cmake-3.5.1.tar.Z</a></td><td align="right">2016-03-24 16:00 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.1.tar.gz">cmake-3.5.1.tar.gz</a></td><td align="right">2016-03-24 16:00 </td><td align="right">6.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.1.zip">cmake-3.5.1.zip</a></td><td align="right">2016-03-24 16:00 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.5.2-Darwin-x86_64.dmg">cmake-3.5.2-Darwin-x86_64.dmg</a></td><td align="right">2016-04-15 13:40 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.2-Darwin-x86_64.tar.Z">cmake-3.5.2-Darwin-x86_64.tar.Z</a></td><td align="right">2016-04-15 13:40 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.2-Darwin-x86_64.tar.gz">cmake-3.5.2-Darwin-x86_64.tar.gz</a></td><td align="right">2016-04-15 13:40 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.2-Linux-i386.sh">cmake-3.5.2-Linux-i386.sh</a></td><td align="right">2016-04-15 13:40 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.2-Linux-i386.tar.Z">cmake-3.5.2-Linux-i386.tar.Z</a></td><td align="right">2016-04-15 13:40 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.2-Linux-i386.tar.gz">cmake-3.5.2-Linux-i386.tar.gz</a></td><td align="right">2016-04-15 13:40 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.2-Linux-x86_64.sh">cmake-3.5.2-Linux-x86_64.sh</a></td><td align="right">2016-04-15 13:40 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.2-Linux-x86_64.tar.Z">cmake-3.5.2-Linux-x86_64.tar.Z</a></td><td align="right">2016-04-15 13:40 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.2-Linux-x86_64.tar.gz">cmake-3.5.2-Linux-x86_64.tar.gz</a></td><td align="right">2016-04-15 13:40 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.2-SHA-256.txt">cmake-3.5.2-SHA-256.txt</a></td><td align="right">2016-04-15 13:40 </td><td align="right">1.3K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.5.2-SHA-256.txt.asc">cmake-3.5.2-SHA-256.txt.asc</a></td><td align="right">2016-04-15 13:40 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.5.2-win32-x86.msi">cmake-3.5.2-win32-x86.msi</a></td><td align="right">2016-04-15 13:40 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.2-win32-x86.zip">cmake-3.5.2-win32-x86.zip</a></td><td align="right">2016-04-15 13:40 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.2.tar.Z">cmake-3.5.2.tar.Z</a></td><td align="right">2016-04-15 13:40 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.2.tar.gz">cmake-3.5.2.tar.gz</a></td><td align="right">2016-04-15 13:40 </td><td align="right">6.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.5.2.zip">cmake-3.5.2.zip</a></td><td align="right">2016-04-15 13:40 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="cygwin/">cygwin/</a></td><td align="right">2016-04-15 13:42 </td><td align="right"> - </td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.6/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.6/index.html
new file mode 100644
index 000000000..4fca3a5fc
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.6/index.html
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /files/v3.6</title>
+ </head>
+ <body>
+<h1>Index of /files/v3.6</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/files/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-Darwin-x86_64.dmg">cmake-3.6.0-Darwin-x86_64.dmg</a></td><td align="right">2016-07-07 13:05 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-Darwin-x86_64.tar.Z">cmake-3.6.0-Darwin-x86_64.tar.Z</a></td><td align="right">2016-07-07 13:05 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-Darwin-x86_64.tar.gz">cmake-3.6.0-Darwin-x86_64.tar.gz</a></td><td align="right">2016-07-07 13:05 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-Linux-i386.sh">cmake-3.6.0-Linux-i386.sh</a></td><td align="right">2016-07-07 13:05 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-Linux-i386.tar.Z">cmake-3.6.0-Linux-i386.tar.Z</a></td><td align="right">2016-07-07 13:05 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-Linux-i386.tar.gz">cmake-3.6.0-Linux-i386.tar.gz</a></td><td align="right">2016-07-07 13:05 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-Linux-x86_64.sh">cmake-3.6.0-Linux-x86_64.sh</a></td><td align="right">2016-07-07 13:05 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-Linux-x86_64.tar.Z">cmake-3.6.0-Linux-x86_64.tar.Z</a></td><td align="right">2016-07-07 13:05 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-Linux-x86_64.tar.gz">cmake-3.6.0-Linux-x86_64.tar.gz</a></td><td align="right">2016-07-07 13:05 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-SHA-256.txt">cmake-3.6.0-SHA-256.txt</a></td><td align="right">2016-07-07 13:05 </td><td align="right">1.4K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-SHA-256.txt.asc">cmake-3.6.0-SHA-256.txt.asc</a></td><td align="right">2016-07-07 13:05 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc1-Darwin-x86_64.dmg">cmake-3.6.0-rc1-Darwin-x86_64.dmg</a></td><td align="right">2016-06-03 14:50 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc1-Darwin-x86_64.tar.Z">cmake-3.6.0-rc1-Darwin-x86_64.tar.Z</a></td><td align="right">2016-06-03 14:50 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc1-Darwin-x86_64.tar.gz">cmake-3.6.0-rc1-Darwin-x86_64.tar.gz</a></td><td align="right">2016-06-03 14:50 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-rc1-Linux-i386.sh">cmake-3.6.0-rc1-Linux-i386.sh</a></td><td align="right">2016-06-03 14:50 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc1-Linux-i386.tar.Z">cmake-3.6.0-rc1-Linux-i386.tar.Z</a></td><td align="right">2016-06-03 14:50 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc1-Linux-i386.tar.gz">cmake-3.6.0-rc1-Linux-i386.tar.gz</a></td><td align="right">2016-06-03 14:50 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-rc1-Linux-x86_64.sh">cmake-3.6.0-rc1-Linux-x86_64.sh</a></td><td align="right">2016-06-03 14:50 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc1-Linux-x86_64.tar.Z">cmake-3.6.0-rc1-Linux-x86_64.tar.Z</a></td><td align="right">2016-06-03 14:50 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc1-Linux-x86_64.tar.gz">cmake-3.6.0-rc1-Linux-x86_64.tar.gz</a></td><td align="right">2016-06-03 14:49 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-rc1-SHA-256.txt">cmake-3.6.0-rc1-SHA-256.txt</a></td><td align="right">2016-06-03 14:49 </td><td align="right">1.5K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-rc1-SHA-256.txt.asc">cmake-3.6.0-rc1-SHA-256.txt.asc</a></td><td align="right">2016-06-03 14:49 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc1-win32-x86.msi">cmake-3.6.0-rc1-win32-x86.msi</a></td><td align="right">2016-06-03 14:49 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc1-win32-x86.zip">cmake-3.6.0-rc1-win32-x86.zip</a></td><td align="right">2016-06-03 14:49 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc1-win64-x64.msi">cmake-3.6.0-rc1-win64-x64.msi</a></td><td align="right">2016-06-03 14:49 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc1-win64-x64.zip">cmake-3.6.0-rc1-win64-x64.zip</a></td><td align="right">2016-06-03 14:49 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc1.tar.Z">cmake-3.6.0-rc1.tar.Z</a></td><td align="right">2016-06-03 14:49 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc1.tar.gz">cmake-3.6.0-rc1.tar.gz</a></td><td align="right">2016-06-03 14:49 </td><td align="right">6.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc1.zip">cmake-3.6.0-rc1.zip</a></td><td align="right">2016-06-03 14:49 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc2-Darwin-x86_64.dmg">cmake-3.6.0-rc2-Darwin-x86_64.dmg</a></td><td align="right">2016-06-13 14:29 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc2-Darwin-x86_64.tar.Z">cmake-3.6.0-rc2-Darwin-x86_64.tar.Z</a></td><td align="right">2016-06-13 14:29 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc2-Darwin-x86_64.tar.gz">cmake-3.6.0-rc2-Darwin-x86_64.tar.gz</a></td><td align="right">2016-06-13 14:29 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-rc2-Linux-i386.sh">cmake-3.6.0-rc2-Linux-i386.sh</a></td><td align="right">2016-06-13 14:29 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc2-Linux-i386.tar.Z">cmake-3.6.0-rc2-Linux-i386.tar.Z</a></td><td align="right">2016-06-13 14:29 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc2-Linux-i386.tar.gz">cmake-3.6.0-rc2-Linux-i386.tar.gz</a></td><td align="right">2016-06-13 14:29 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-rc2-Linux-x86_64.sh">cmake-3.6.0-rc2-Linux-x86_64.sh</a></td><td align="right">2016-06-13 14:29 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc2-Linux-x86_64.tar.Z">cmake-3.6.0-rc2-Linux-x86_64.tar.Z</a></td><td align="right">2016-06-13 14:29 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc2-Linux-x86_64.tar.gz">cmake-3.6.0-rc2-Linux-x86_64.tar.gz</a></td><td align="right">2016-06-13 14:29 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-rc2-SHA-256.txt">cmake-3.6.0-rc2-SHA-256.txt</a></td><td align="right">2016-06-13 14:29 </td><td align="right">1.5K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-rc2-SHA-256.txt.asc">cmake-3.6.0-rc2-SHA-256.txt.asc</a></td><td align="right">2016-06-13 14:29 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc2-win32-x86.msi">cmake-3.6.0-rc2-win32-x86.msi</a></td><td align="right">2016-06-13 14:29 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc2-win32-x86.zip">cmake-3.6.0-rc2-win32-x86.zip</a></td><td align="right">2016-06-13 14:29 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc2-win64-x64.msi">cmake-3.6.0-rc2-win64-x64.msi</a></td><td align="right">2016-06-13 14:29 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc2-win64-x64.zip">cmake-3.6.0-rc2-win64-x64.zip</a></td><td align="right">2016-06-13 14:29 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc2.tar.Z">cmake-3.6.0-rc2.tar.Z</a></td><td align="right">2016-06-13 14:29 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc2.tar.gz">cmake-3.6.0-rc2.tar.gz</a></td><td align="right">2016-06-13 14:28 </td><td align="right">6.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc2.zip">cmake-3.6.0-rc2.zip</a></td><td align="right">2016-06-13 14:28 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc3-Darwin-x86_64.dmg">cmake-3.6.0-rc3-Darwin-x86_64.dmg</a></td><td align="right">2016-06-22 13:58 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc3-Darwin-x86_64.tar.Z">cmake-3.6.0-rc3-Darwin-x86_64.tar.Z</a></td><td align="right">2016-06-22 13:58 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc3-Darwin-x86_64.tar.gz">cmake-3.6.0-rc3-Darwin-x86_64.tar.gz</a></td><td align="right">2016-06-22 13:57 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-rc3-Linux-i386.sh">cmake-3.6.0-rc3-Linux-i386.sh</a></td><td align="right">2016-06-22 13:57 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc3-Linux-i386.tar.Z">cmake-3.6.0-rc3-Linux-i386.tar.Z</a></td><td align="right">2016-06-22 13:57 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc3-Linux-i386.tar.gz">cmake-3.6.0-rc3-Linux-i386.tar.gz</a></td><td align="right">2016-06-22 13:57 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-rc3-Linux-x86_64.sh">cmake-3.6.0-rc3-Linux-x86_64.sh</a></td><td align="right">2016-06-22 13:57 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc3-Linux-x86_64.tar.Z">cmake-3.6.0-rc3-Linux-x86_64.tar.Z</a></td><td align="right">2016-06-22 13:57 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc3-Linux-x86_64.tar.gz">cmake-3.6.0-rc3-Linux-x86_64.tar.gz</a></td><td align="right">2016-06-22 13:57 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-rc3-SHA-256.txt">cmake-3.6.0-rc3-SHA-256.txt</a></td><td align="right">2016-06-22 13:57 </td><td align="right">1.5K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-rc3-SHA-256.txt.asc">cmake-3.6.0-rc3-SHA-256.txt.asc</a></td><td align="right">2016-06-22 13:57 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc3-win32-x86.msi">cmake-3.6.0-rc3-win32-x86.msi</a></td><td align="right">2016-06-22 13:57 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc3-win32-x86.zip">cmake-3.6.0-rc3-win32-x86.zip</a></td><td align="right">2016-06-22 13:57 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc3-win64-x64.msi">cmake-3.6.0-rc3-win64-x64.msi</a></td><td align="right">2016-06-22 13:57 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc3-win64-x64.zip">cmake-3.6.0-rc3-win64-x64.zip</a></td><td align="right">2016-06-22 13:57 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc3.tar.Z">cmake-3.6.0-rc3.tar.Z</a></td><td align="right">2016-06-22 13:57 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc3.tar.gz">cmake-3.6.0-rc3.tar.gz</a></td><td align="right">2016-06-22 13:57 </td><td align="right">6.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc3.zip">cmake-3.6.0-rc3.zip</a></td><td align="right">2016-06-22 13:57 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc4-Darwin-x86_64.dmg">cmake-3.6.0-rc4-Darwin-x86_64.dmg</a></td><td align="right">2016-06-29 14:50 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc4-Darwin-x86_64.tar.Z">cmake-3.6.0-rc4-Darwin-x86_64.tar.Z</a></td><td align="right">2016-06-29 14:50 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc4-Darwin-x86_64.tar.gz">cmake-3.6.0-rc4-Darwin-x86_64.tar.gz</a></td><td align="right">2016-06-29 14:50 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-rc4-Linux-i386.sh">cmake-3.6.0-rc4-Linux-i386.sh</a></td><td align="right">2016-06-29 14:50 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc4-Linux-i386.tar.Z">cmake-3.6.0-rc4-Linux-i386.tar.Z</a></td><td align="right">2016-06-29 14:50 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc4-Linux-i386.tar.gz">cmake-3.6.0-rc4-Linux-i386.tar.gz</a></td><td align="right">2016-06-29 14:50 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-rc4-Linux-x86_64.sh">cmake-3.6.0-rc4-Linux-x86_64.sh</a></td><td align="right">2016-06-29 14:50 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc4-Linux-x86_64.tar.Z">cmake-3.6.0-rc4-Linux-x86_64.tar.Z</a></td><td align="right">2016-06-29 14:49 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc4-Linux-x86_64.tar.gz">cmake-3.6.0-rc4-Linux-x86_64.tar.gz</a></td><td align="right">2016-06-29 14:49 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-rc4-SHA-256.txt">cmake-3.6.0-rc4-SHA-256.txt</a></td><td align="right">2016-06-29 14:49 </td><td align="right">1.5K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.0-rc4-SHA-256.txt.asc">cmake-3.6.0-rc4-SHA-256.txt.asc</a></td><td align="right">2016-06-29 14:49 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc4-win32-x86.msi">cmake-3.6.0-rc4-win32-x86.msi</a></td><td align="right">2016-06-29 14:49 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc4-win32-x86.zip">cmake-3.6.0-rc4-win32-x86.zip</a></td><td align="right">2016-06-29 14:49 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc4-win64-x64.msi">cmake-3.6.0-rc4-win64-x64.msi</a></td><td align="right">2016-06-29 14:49 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc4-win64-x64.zip">cmake-3.6.0-rc4-win64-x64.zip</a></td><td align="right">2016-06-29 14:49 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc4.tar.Z">cmake-3.6.0-rc4.tar.Z</a></td><td align="right">2016-06-29 14:49 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc4.tar.gz">cmake-3.6.0-rc4.tar.gz</a></td><td align="right">2016-06-29 14:49 </td><td align="right">6.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-rc4.zip">cmake-3.6.0-rc4.zip</a></td><td align="right">2016-06-29 14:49 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-win32-x86.msi">cmake-3.6.0-win32-x86.msi</a></td><td align="right">2016-07-07 13:04 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-win32-x86.zip">cmake-3.6.0-win32-x86.zip</a></td><td align="right">2016-07-07 13:04 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-win64-x64.msi">cmake-3.6.0-win64-x64.msi</a></td><td align="right">2016-07-07 13:04 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0-win64-x64.zip">cmake-3.6.0-win64-x64.zip</a></td><td align="right">2016-07-07 13:04 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0.tar.Z">cmake-3.6.0.tar.Z</a></td><td align="right">2016-07-07 13:04 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0.tar.gz">cmake-3.6.0.tar.gz</a></td><td align="right">2016-07-07 13:04 </td><td align="right">6.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.0.zip">cmake-3.6.0.zip</a></td><td align="right">2016-07-07 13:04 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.1-Darwin-x86_64.dmg">cmake-3.6.1-Darwin-x86_64.dmg</a></td><td align="right">2016-07-22 10:58 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.1-Darwin-x86_64.tar.Z">cmake-3.6.1-Darwin-x86_64.tar.Z</a></td><td align="right">2016-07-22 10:58 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.1-Darwin-x86_64.tar.gz">cmake-3.6.1-Darwin-x86_64.tar.gz</a></td><td align="right">2016-07-22 10:58 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.1-Linux-i386.sh">cmake-3.6.1-Linux-i386.sh</a></td><td align="right">2016-07-22 10:58 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.1-Linux-i386.tar.Z">cmake-3.6.1-Linux-i386.tar.Z</a></td><td align="right">2016-07-22 10:58 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.1-Linux-i386.tar.gz">cmake-3.6.1-Linux-i386.tar.gz</a></td><td align="right">2016-07-22 10:58 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.1-Linux-x86_64.sh">cmake-3.6.1-Linux-x86_64.sh</a></td><td align="right">2016-07-22 10:58 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.1-Linux-x86_64.tar.Z">cmake-3.6.1-Linux-x86_64.tar.Z</a></td><td align="right">2016-07-22 10:58 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.1-Linux-x86_64.tar.gz">cmake-3.6.1-Linux-x86_64.tar.gz</a></td><td align="right">2016-07-22 10:58 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.1-SHA-256.txt">cmake-3.6.1-SHA-256.txt</a></td><td align="right">2016-07-22 10:58 </td><td align="right">1.4K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.1-SHA-256.txt.asc">cmake-3.6.1-SHA-256.txt.asc</a></td><td align="right">2016-07-22 10:58 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.1-win32-x86.msi">cmake-3.6.1-win32-x86.msi</a></td><td align="right">2016-07-22 10:58 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.1-win32-x86.zip">cmake-3.6.1-win32-x86.zip</a></td><td align="right">2016-07-22 10:58 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.1-win64-x64.msi">cmake-3.6.1-win64-x64.msi</a></td><td align="right">2016-07-22 10:58 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.1-win64-x64.zip">cmake-3.6.1-win64-x64.zip</a></td><td align="right">2016-07-22 10:57 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.1.tar.Z">cmake-3.6.1.tar.Z</a></td><td align="right">2016-07-22 10:57 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.1.tar.gz">cmake-3.6.1.tar.gz</a></td><td align="right">2016-07-22 10:57 </td><td align="right">6.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.1.zip">cmake-3.6.1.zip</a></td><td align="right">2016-07-22 10:57 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.2-Darwin-x86_64.dmg">cmake-3.6.2-Darwin-x86_64.dmg</a></td><td align="right">2016-09-07 14:29 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.2-Darwin-x86_64.tar.Z">cmake-3.6.2-Darwin-x86_64.tar.Z</a></td><td align="right">2016-09-07 14:29 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.2-Darwin-x86_64.tar.gz">cmake-3.6.2-Darwin-x86_64.tar.gz</a></td><td align="right">2016-09-07 14:29 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.2-Linux-i386.sh">cmake-3.6.2-Linux-i386.sh</a></td><td align="right">2016-09-07 14:29 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.2-Linux-i386.tar.Z">cmake-3.6.2-Linux-i386.tar.Z</a></td><td align="right">2016-09-07 14:29 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.2-Linux-i386.tar.gz">cmake-3.6.2-Linux-i386.tar.gz</a></td><td align="right">2016-09-07 14:28 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.2-Linux-x86_64.sh">cmake-3.6.2-Linux-x86_64.sh</a></td><td align="right">2016-09-07 14:28 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.2-Linux-x86_64.tar.Z">cmake-3.6.2-Linux-x86_64.tar.Z</a></td><td align="right">2016-09-07 14:28 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.2-Linux-x86_64.tar.gz">cmake-3.6.2-Linux-x86_64.tar.gz</a></td><td align="right">2016-09-07 14:28 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.2-SHA-256.txt">cmake-3.6.2-SHA-256.txt</a></td><td align="right">2016-09-07 14:28 </td><td align="right">1.4K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.2-SHA-256.txt.asc">cmake-3.6.2-SHA-256.txt.asc</a></td><td align="right">2016-09-07 14:28 </td><td align="right">819 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.2-win32-x86.msi">cmake-3.6.2-win32-x86.msi</a></td><td align="right">2016-09-07 14:28 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.2-win32-x86.zip">cmake-3.6.2-win32-x86.zip</a></td><td align="right">2016-09-07 14:28 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.2-win64-x64.msi">cmake-3.6.2-win64-x64.msi</a></td><td align="right">2016-09-07 14:28 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.2-win64-x64.zip">cmake-3.6.2-win64-x64.zip</a></td><td align="right">2016-09-07 14:28 </td><td align="right"> 19M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.2.tar.Z">cmake-3.6.2.tar.Z</a></td><td align="right">2016-09-07 14:28 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.2.tar.gz">cmake-3.6.2.tar.gz</a></td><td align="right">2016-09-07 14:28 </td><td align="right">6.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.2.zip">cmake-3.6.2.zip</a></td><td align="right">2016-09-07 14:28 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.3-Darwin-x86_64.dmg">cmake-3.6.3-Darwin-x86_64.dmg</a></td><td align="right">2016-11-03 12:13 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.3-Darwin-x86_64.tar.Z">cmake-3.6.3-Darwin-x86_64.tar.Z</a></td><td align="right">2016-11-03 12:13 </td><td align="right"> 36M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.3-Darwin-x86_64.tar.gz">cmake-3.6.3-Darwin-x86_64.tar.gz</a></td><td align="right">2016-11-03 12:13 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.3-Linux-i386.sh">cmake-3.6.3-Linux-i386.sh</a></td><td align="right">2016-11-03 12:13 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.3-Linux-i386.tar.Z">cmake-3.6.3-Linux-i386.tar.Z</a></td><td align="right">2016-11-03 12:13 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.3-Linux-i386.tar.gz">cmake-3.6.3-Linux-i386.tar.gz</a></td><td align="right">2016-11-03 12:13 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.3-Linux-x86_64.sh">cmake-3.6.3-Linux-x86_64.sh</a></td><td align="right">2016-11-03 12:13 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.3-Linux-x86_64.tar.Z">cmake-3.6.3-Linux-x86_64.tar.Z</a></td><td align="right">2016-11-03 12:13 </td><td align="right"> 38M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.3-Linux-x86_64.tar.gz">cmake-3.6.3-Linux-x86_64.tar.gz</a></td><td align="right">2016-11-03 12:13 </td><td align="right"> 27M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.3-SHA-256.txt">cmake-3.6.3-SHA-256.txt</a></td><td align="right">2016-11-03 12:13 </td><td align="right">1.4K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.6.3-SHA-256.txt.asc">cmake-3.6.3-SHA-256.txt.asc</a></td><td align="right">2016-11-03 12:13 </td><td align="right">801 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.3-win32-x86.msi">cmake-3.6.3-win32-x86.msi</a></td><td align="right">2016-11-03 12:13 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.3-win32-x86.zip">cmake-3.6.3-win32-x86.zip</a></td><td align="right">2016-11-03 12:13 </td><td align="right"> 20M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.6.3-win64-x64.msi">cmake-3.6.3-win64-x64.msi</a></td><td align="right">2016-11-03 12:12 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.3-win64-x64.zip">cmake-3.6.3-win64-x64.zip</a></td><td align="right">2016-11-03 12:12 </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.3.tar.Z">cmake-3.6.3.tar.Z</a></td><td align="right">2016-11-03 12:12 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.3.tar.gz">cmake-3.6.3.tar.gz</a></td><td align="right">2016-11-03 12:12 </td><td align="right">6.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.6.3.zip">cmake-3.6.3.zip</a></td><td align="right">2016-11-03 12:12 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="cygwin/">cygwin/</a></td><td align="right">2016-09-07 14:44 </td><td align="right"> - </td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.7/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.7/index.html
new file mode 100644
index 000000000..4812f93f9
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.7/index.html
@@ -0,0 +1,92 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /files/v3.7</title>
+ </head>
+ <body>
+<h1>Index of /files/v3.7</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/files/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-Darwin-x86_64.dmg">cmake-3.7.0-Darwin-x86_64.dmg</a></td><td align="right">2016-11-11 14:01 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-Darwin-x86_64.tar.gz">cmake-3.7.0-Darwin-x86_64.tar.gz</a></td><td align="right">2016-11-11 14:01 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.7.0-Linux-x86_64.sh">cmake-3.7.0-Linux-x86_64.sh</a></td><td align="right">2016-11-11 14:01 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-Linux-x86_64.tar.gz">cmake-3.7.0-Linux-x86_64.tar.gz</a></td><td align="right">2016-11-11 14:01 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.7.0-SHA-256.txt">cmake-3.7.0-SHA-256.txt</a></td><td align="right">2016-11-11 14:01 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.7.0-SHA-256.txt.asc">cmake-3.7.0-SHA-256.txt.asc</a></td><td align="right">2016-11-11 14:01 </td><td align="right">801 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc1-Darwin-x86_64.dmg">cmake-3.7.0-rc1-Darwin-x86_64.dmg</a></td><td align="right">2016-10-04 15:23 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc1-Darwin-x86_64.tar.gz">cmake-3.7.0-rc1-Darwin-x86_64.tar.gz</a></td><td align="right">2016-10-04 15:23 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.7.0-rc1-Linux-x86_64.sh">cmake-3.7.0-rc1-Linux-x86_64.sh</a></td><td align="right">2016-10-04 15:23 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc1-Linux-x86_64.tar.gz">cmake-3.7.0-rc1-Linux-x86_64.tar.gz</a></td><td align="right">2016-10-04 15:23 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.7.0-rc1-SHA-256.txt">cmake-3.7.0-rc1-SHA-256.txt</a></td><td align="right">2016-10-04 15:23 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.7.0-rc1-SHA-256.txt.asc">cmake-3.7.0-rc1-SHA-256.txt.asc</a></td><td align="right">2016-10-04 15:23 </td><td align="right">801 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc1-win32-x86.msi">cmake-3.7.0-rc1-win32-x86.msi</a></td><td align="right">2016-10-04 15:23 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc1-win32-x86.zip">cmake-3.7.0-rc1-win32-x86.zip</a></td><td align="right">2016-10-04 15:23 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc1-win64-x64.msi">cmake-3.7.0-rc1-win64-x64.msi</a></td><td align="right">2016-10-04 15:23 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc1-win64-x64.zip">cmake-3.7.0-rc1-win64-x64.zip</a></td><td align="right">2016-10-04 15:23 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc1.tar.Z">cmake-3.7.0-rc1.tar.Z</a></td><td align="right">2016-10-04 15:23 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc1.tar.gz">cmake-3.7.0-rc1.tar.gz</a></td><td align="right">2016-10-04 15:23 </td><td align="right">7.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc1.zip">cmake-3.7.0-rc1.zip</a></td><td align="right">2016-10-04 15:23 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc2-Darwin-x86_64.dmg">cmake-3.7.0-rc2-Darwin-x86_64.dmg</a></td><td align="right">2016-10-19 15:24 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc2-Darwin-x86_64.tar.gz">cmake-3.7.0-rc2-Darwin-x86_64.tar.gz</a></td><td align="right">2016-10-19 15:24 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.7.0-rc2-Linux-x86_64.sh">cmake-3.7.0-rc2-Linux-x86_64.sh</a></td><td align="right">2016-10-19 15:24 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc2-Linux-x86_64.tar.gz">cmake-3.7.0-rc2-Linux-x86_64.tar.gz</a></td><td align="right">2016-10-19 15:24 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.7.0-rc2-SHA-256.txt">cmake-3.7.0-rc2-SHA-256.txt</a></td><td align="right">2016-10-19 15:24 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.7.0-rc2-SHA-256.txt.asc">cmake-3.7.0-rc2-SHA-256.txt.asc</a></td><td align="right">2016-10-19 15:24 </td><td align="right">801 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc2-win32-x86.msi">cmake-3.7.0-rc2-win32-x86.msi</a></td><td align="right">2016-10-19 15:23 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc2-win32-x86.zip">cmake-3.7.0-rc2-win32-x86.zip</a></td><td align="right">2016-10-19 15:23 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc2-win64-x64.msi">cmake-3.7.0-rc2-win64-x64.msi</a></td><td align="right">2016-10-19 15:23 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc2-win64-x64.zip">cmake-3.7.0-rc2-win64-x64.zip</a></td><td align="right">2016-10-19 15:23 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc2.tar.Z">cmake-3.7.0-rc2.tar.Z</a></td><td align="right">2016-10-19 15:23 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc2.tar.gz">cmake-3.7.0-rc2.tar.gz</a></td><td align="right">2016-10-19 15:23 </td><td align="right">7.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc2.zip">cmake-3.7.0-rc2.zip</a></td><td align="right">2016-10-19 15:23 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc3-Darwin-x86_64.dmg">cmake-3.7.0-rc3-Darwin-x86_64.dmg</a></td><td align="right">2016-11-04 15:26 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc3-Darwin-x86_64.tar.gz">cmake-3.7.0-rc3-Darwin-x86_64.tar.gz</a></td><td align="right">2016-11-04 15:26 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.7.0-rc3-Linux-x86_64.sh">cmake-3.7.0-rc3-Linux-x86_64.sh</a></td><td align="right">2016-11-04 15:26 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc3-Linux-x86_64.tar.gz">cmake-3.7.0-rc3-Linux-x86_64.tar.gz</a></td><td align="right">2016-11-04 15:26 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.7.0-rc3-SHA-256.txt">cmake-3.7.0-rc3-SHA-256.txt</a></td><td align="right">2016-11-04 15:26 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.7.0-rc3-SHA-256.txt.asc">cmake-3.7.0-rc3-SHA-256.txt.asc</a></td><td align="right">2016-11-04 15:26 </td><td align="right">801 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc3-win32-x86.msi">cmake-3.7.0-rc3-win32-x86.msi</a></td><td align="right">2016-11-04 15:26 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc3-win32-x86.zip">cmake-3.7.0-rc3-win32-x86.zip</a></td><td align="right">2016-11-04 15:26 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc3-win64-x64.msi">cmake-3.7.0-rc3-win64-x64.msi</a></td><td align="right">2016-11-04 15:26 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc3-win64-x64.zip">cmake-3.7.0-rc3-win64-x64.zip</a></td><td align="right">2016-11-04 15:26 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc3.tar.Z">cmake-3.7.0-rc3.tar.Z</a></td><td align="right">2016-11-04 15:26 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc3.tar.gz">cmake-3.7.0-rc3.tar.gz</a></td><td align="right">2016-11-04 15:26 </td><td align="right">7.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-rc3.zip">cmake-3.7.0-rc3.zip</a></td><td align="right">2016-11-04 15:26 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-win32-x86.msi">cmake-3.7.0-win32-x86.msi</a></td><td align="right">2016-11-11 14:01 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-win32-x86.zip">cmake-3.7.0-win32-x86.zip</a></td><td align="right">2016-11-11 14:01 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-win64-x64.msi">cmake-3.7.0-win64-x64.msi</a></td><td align="right">2016-11-11 14:01 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0-win64-x64.zip">cmake-3.7.0-win64-x64.zip</a></td><td align="right">2016-11-11 14:00 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0.tar.Z">cmake-3.7.0.tar.Z</a></td><td align="right">2016-11-11 14:00 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0.tar.gz">cmake-3.7.0.tar.gz</a></td><td align="right">2016-11-11 14:00 </td><td align="right">7.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.0.zip">cmake-3.7.0.zip</a></td><td align="right">2016-11-11 14:00 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.7.1-Darwin-x86_64.dmg">cmake-3.7.1-Darwin-x86_64.dmg</a></td><td align="right">2016-11-30 14:25 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.1-Darwin-x86_64.tar.gz">cmake-3.7.1-Darwin-x86_64.tar.gz</a></td><td align="right">2016-11-30 14:25 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.7.1-Linux-x86_64.sh">cmake-3.7.1-Linux-x86_64.sh</a></td><td align="right">2016-11-30 14:25 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.1-Linux-x86_64.tar.gz">cmake-3.7.1-Linux-x86_64.tar.gz</a></td><td align="right">2016-11-30 14:25 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.7.1-SHA-256.txt">cmake-3.7.1-SHA-256.txt</a></td><td align="right">2016-11-30 14:25 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.7.1-SHA-256.txt.asc">cmake-3.7.1-SHA-256.txt.asc</a></td><td align="right">2016-11-30 14:25 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.7.1-win32-x86.msi">cmake-3.7.1-win32-x86.msi</a></td><td align="right">2016-11-30 14:25 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.1-win32-x86.zip">cmake-3.7.1-win32-x86.zip</a></td><td align="right">2016-11-30 14:25 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.7.1-win64-x64.msi">cmake-3.7.1-win64-x64.msi</a></td><td align="right">2016-11-30 14:24 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.1-win64-x64.zip">cmake-3.7.1-win64-x64.zip</a></td><td align="right">2016-11-30 14:24 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.1.tar.Z">cmake-3.7.1.tar.Z</a></td><td align="right">2016-11-30 14:24 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.1.tar.gz">cmake-3.7.1.tar.gz</a></td><td align="right">2016-11-30 14:24 </td><td align="right">7.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.1.zip">cmake-3.7.1.zip</a></td><td align="right">2016-11-30 14:24 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.7.2-Darwin-x86_64.dmg">cmake-3.7.2-Darwin-x86_64.dmg</a></td><td align="right">2017-01-13 14:13 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.2-Darwin-x86_64.tar.gz">cmake-3.7.2-Darwin-x86_64.tar.gz</a></td><td align="right">2017-01-13 14:13 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.7.2-Linux-x86_64.sh">cmake-3.7.2-Linux-x86_64.sh</a></td><td align="right">2017-01-13 14:13 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.2-Linux-x86_64.tar.gz">cmake-3.7.2-Linux-x86_64.tar.gz</a></td><td align="right">2017-01-13 14:13 </td><td align="right"> 29M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.7.2-SHA-256.txt">cmake-3.7.2-SHA-256.txt</a></td><td align="right">2017-01-13 14:13 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.7.2-SHA-256.txt.asc">cmake-3.7.2-SHA-256.txt.asc</a></td><td align="right">2017-01-13 14:13 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.7.2-win32-x86.msi">cmake-3.7.2-win32-x86.msi</a></td><td align="right">2017-01-13 14:13 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.2-win32-x86.zip">cmake-3.7.2-win32-x86.zip</a></td><td align="right">2017-01-13 14:12 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.7.2-win64-x64.msi">cmake-3.7.2-win64-x64.msi</a></td><td align="right">2017-01-13 14:12 </td><td align="right"> 17M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.2-win64-x64.zip">cmake-3.7.2-win64-x64.zip</a></td><td align="right">2017-01-13 14:12 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.2.tar.Z">cmake-3.7.2.tar.Z</a></td><td align="right">2017-01-13 14:12 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.2.tar.gz">cmake-3.7.2.tar.gz</a></td><td align="right">2017-01-13 14:12 </td><td align="right">7.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.7.2.zip">cmake-3.7.2.zip</a></td><td align="right">2017-01-13 14:12 </td><td align="right"> 11M</td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.8/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.8/index.html
new file mode 100644
index 000000000..5fc8caa1d
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.8/index.html
@@ -0,0 +1,105 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /files/v3.8</title>
+ </head>
+ <body>
+<h1>Index of /files/v3.8</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/files/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-Darwin-x86_64.dmg">cmake-3.8.0-Darwin-x86_64.dmg</a></td><td align="right">2017-04-10 13:39 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-Darwin-x86_64.tar.gz">cmake-3.8.0-Darwin-x86_64.tar.gz</a></td><td align="right">2017-04-10 13:39 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.0-Linux-x86_64.sh">cmake-3.8.0-Linux-x86_64.sh</a></td><td align="right">2017-04-10 13:39 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-Linux-x86_64.tar.gz">cmake-3.8.0-Linux-x86_64.tar.gz</a></td><td align="right">2017-04-10 13:39 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.0-SHA-256.txt">cmake-3.8.0-SHA-256.txt</a></td><td align="right">2017-04-10 13:39 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.0-SHA-256.txt.asc">cmake-3.8.0-SHA-256.txt.asc</a></td><td align="right">2017-04-10 13:39 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc1-Darwin-x86_64.dmg">cmake-3.8.0-rc1-Darwin-x86_64.dmg</a></td><td align="right">2017-02-07 12:54 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc1-Darwin-x86_64.tar.gz">cmake-3.8.0-rc1-Darwin-x86_64.tar.gz</a></td><td align="right">2017-02-07 12:54 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.0-rc1-Linux-x86_64.sh">cmake-3.8.0-rc1-Linux-x86_64.sh</a></td><td align="right">2017-02-07 12:54 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc1-Linux-x86_64.tar.gz">cmake-3.8.0-rc1-Linux-x86_64.tar.gz</a></td><td align="right">2017-02-07 12:54 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.0-rc1-SHA-256.txt">cmake-3.8.0-rc1-SHA-256.txt</a></td><td align="right">2017-02-07 12:54 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.0-rc1-SHA-256.txt.asc">cmake-3.8.0-rc1-SHA-256.txt.asc</a></td><td align="right">2017-02-07 12:54 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc1-win32-x86.msi">cmake-3.8.0-rc1-win32-x86.msi</a></td><td align="right">2017-02-07 12:54 </td><td align="right"> 15M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc1-win32-x86.zip">cmake-3.8.0-rc1-win32-x86.zip</a></td><td align="right">2017-02-07 12:54 </td><td align="right"> 21M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc1-win64-x64.msi">cmake-3.8.0-rc1-win64-x64.msi</a></td><td align="right">2017-02-07 12:54 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc1-win64-x64.zip">cmake-3.8.0-rc1-win64-x64.zip</a></td><td align="right">2017-02-07 12:54 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc1.tar.Z">cmake-3.8.0-rc1.tar.Z</a></td><td align="right">2017-02-07 12:54 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc1.tar.gz">cmake-3.8.0-rc1.tar.gz</a></td><td align="right">2017-02-07 12:54 </td><td align="right">7.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc1.zip">cmake-3.8.0-rc1.zip</a></td><td align="right">2017-02-07 12:54 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc2-Darwin-x86_64.dmg">cmake-3.8.0-rc2-Darwin-x86_64.dmg</a></td><td align="right">2017-03-03 10:00 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc2-Darwin-x86_64.tar.gz">cmake-3.8.0-rc2-Darwin-x86_64.tar.gz</a></td><td align="right">2017-03-03 10:00 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.0-rc2-Linux-x86_64.sh">cmake-3.8.0-rc2-Linux-x86_64.sh</a></td><td align="right">2017-03-03 10:00 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc2-Linux-x86_64.tar.gz">cmake-3.8.0-rc2-Linux-x86_64.tar.gz</a></td><td align="right">2017-03-03 09:59 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.0-rc2-SHA-256.txt">cmake-3.8.0-rc2-SHA-256.txt</a></td><td align="right">2017-03-03 09:59 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.0-rc2-SHA-256.txt.asc">cmake-3.8.0-rc2-SHA-256.txt.asc</a></td><td align="right">2017-03-03 09:59 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc2-win32-x86.msi">cmake-3.8.0-rc2-win32-x86.msi</a></td><td align="right">2017-03-03 09:59 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc2-win32-x86.zip">cmake-3.8.0-rc2-win32-x86.zip</a></td><td align="right">2017-03-03 09:59 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc2-win64-x64.msi">cmake-3.8.0-rc2-win64-x64.msi</a></td><td align="right">2017-03-03 09:59 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc2-win64-x64.zip">cmake-3.8.0-rc2-win64-x64.zip</a></td><td align="right">2017-03-03 09:59 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc2.tar.Z">cmake-3.8.0-rc2.tar.Z</a></td><td align="right">2017-03-03 09:59 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc2.tar.gz">cmake-3.8.0-rc2.tar.gz</a></td><td align="right">2017-03-03 09:59 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc2.zip">cmake-3.8.0-rc2.zip</a></td><td align="right">2017-03-03 09:59 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc3-Darwin-x86_64.dmg">cmake-3.8.0-rc3-Darwin-x86_64.dmg</a></td><td align="right">2017-03-24 13:52 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc3-Darwin-x86_64.tar.gz">cmake-3.8.0-rc3-Darwin-x86_64.tar.gz</a></td><td align="right">2017-03-24 13:52 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.0-rc3-Linux-x86_64.sh">cmake-3.8.0-rc3-Linux-x86_64.sh</a></td><td align="right">2017-03-24 13:52 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc3-Linux-x86_64.tar.gz">cmake-3.8.0-rc3-Linux-x86_64.tar.gz</a></td><td align="right">2017-03-24 13:52 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.0-rc3-SHA-256.txt">cmake-3.8.0-rc3-SHA-256.txt</a></td><td align="right">2017-03-24 13:52 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.0-rc3-SHA-256.txt.asc">cmake-3.8.0-rc3-SHA-256.txt.asc</a></td><td align="right">2017-03-24 13:52 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc3-win32-x86.msi">cmake-3.8.0-rc3-win32-x86.msi</a></td><td align="right">2017-03-24 13:52 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc3-win32-x86.zip">cmake-3.8.0-rc3-win32-x86.zip</a></td><td align="right">2017-03-24 13:52 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc3-win64-x64.msi">cmake-3.8.0-rc3-win64-x64.msi</a></td><td align="right">2017-03-24 13:52 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc3-win64-x64.zip">cmake-3.8.0-rc3-win64-x64.zip</a></td><td align="right">2017-03-24 13:52 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc3.tar.Z">cmake-3.8.0-rc3.tar.Z</a></td><td align="right">2017-03-24 13:52 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc3.tar.gz">cmake-3.8.0-rc3.tar.gz</a></td><td align="right">2017-03-24 13:52 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc3.zip">cmake-3.8.0-rc3.zip</a></td><td align="right">2017-03-24 13:52 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc4-Darwin-x86_64.dmg">cmake-3.8.0-rc4-Darwin-x86_64.dmg</a></td><td align="right">2017-03-30 11:38 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc4-Darwin-x86_64.tar.gz">cmake-3.8.0-rc4-Darwin-x86_64.tar.gz</a></td><td align="right">2017-03-30 11:38 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.0-rc4-Linux-x86_64.sh">cmake-3.8.0-rc4-Linux-x86_64.sh</a></td><td align="right">2017-03-30 11:38 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc4-Linux-x86_64.tar.gz">cmake-3.8.0-rc4-Linux-x86_64.tar.gz</a></td><td align="right">2017-03-30 11:38 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.0-rc4-SHA-256.txt">cmake-3.8.0-rc4-SHA-256.txt</a></td><td align="right">2017-03-30 11:38 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.0-rc4-SHA-256.txt.asc">cmake-3.8.0-rc4-SHA-256.txt.asc</a></td><td align="right">2017-03-30 11:38 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc4-win32-x86.msi">cmake-3.8.0-rc4-win32-x86.msi</a></td><td align="right">2017-03-30 11:38 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc4-win32-x86.zip">cmake-3.8.0-rc4-win32-x86.zip</a></td><td align="right">2017-03-30 11:38 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc4-win64-x64.msi">cmake-3.8.0-rc4-win64-x64.msi</a></td><td align="right">2017-03-30 11:38 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc4-win64-x64.zip">cmake-3.8.0-rc4-win64-x64.zip</a></td><td align="right">2017-03-30 11:38 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc4.tar.Z">cmake-3.8.0-rc4.tar.Z</a></td><td align="right">2017-03-30 11:38 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc4.tar.gz">cmake-3.8.0-rc4.tar.gz</a></td><td align="right">2017-03-30 11:38 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-rc4.zip">cmake-3.8.0-rc4.zip</a></td><td align="right">2017-03-30 11:38 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-win32-x86.msi">cmake-3.8.0-win32-x86.msi</a></td><td align="right">2017-04-10 13:39 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-win32-x86.zip">cmake-3.8.0-win32-x86.zip</a></td><td align="right">2017-04-10 13:39 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-win64-x64.msi">cmake-3.8.0-win64-x64.msi</a></td><td align="right">2017-04-10 13:39 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0-win64-x64.zip">cmake-3.8.0-win64-x64.zip</a></td><td align="right">2017-04-10 13:38 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0.tar.Z">cmake-3.8.0.tar.Z</a></td><td align="right">2017-04-10 13:38 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0.tar.gz">cmake-3.8.0.tar.gz</a></td><td align="right">2017-04-10 13:38 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.0.zip">cmake-3.8.0.zip</a></td><td align="right">2017-04-10 13:38 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.1-Darwin-x86_64.dmg">cmake-3.8.1-Darwin-x86_64.dmg</a></td><td align="right">2017-05-02 11:06 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.1-Darwin-x86_64.tar.gz">cmake-3.8.1-Darwin-x86_64.tar.gz</a></td><td align="right">2017-05-02 11:06 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.1-Linux-x86_64.sh">cmake-3.8.1-Linux-x86_64.sh</a></td><td align="right">2017-05-02 11:06 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.1-Linux-x86_64.tar.gz">cmake-3.8.1-Linux-x86_64.tar.gz</a></td><td align="right">2017-05-02 11:05 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.1-SHA-256.txt">cmake-3.8.1-SHA-256.txt</a></td><td align="right">2017-05-02 11:05 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.1-SHA-256.txt.asc">cmake-3.8.1-SHA-256.txt.asc</a></td><td align="right">2017-05-02 11:05 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.1-win32-x86.msi">cmake-3.8.1-win32-x86.msi</a></td><td align="right">2017-05-02 11:05 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.1-win32-x86.zip">cmake-3.8.1-win32-x86.zip</a></td><td align="right">2017-05-02 11:05 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.1-win64-x64.msi">cmake-3.8.1-win64-x64.msi</a></td><td align="right">2017-05-02 11:05 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.1-win64-x64.zip">cmake-3.8.1-win64-x64.zip</a></td><td align="right">2017-05-02 11:05 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.1.tar.Z">cmake-3.8.1.tar.Z</a></td><td align="right">2017-05-02 11:05 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.1.tar.gz">cmake-3.8.1.tar.gz</a></td><td align="right">2017-05-02 11:05 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.1.zip">cmake-3.8.1.zip</a></td><td align="right">2017-05-02 11:05 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.2-Darwin-x86_64.dmg">cmake-3.8.2-Darwin-x86_64.dmg</a></td><td align="right">2017-05-31 12:26 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.2-Darwin-x86_64.tar.gz">cmake-3.8.2-Darwin-x86_64.tar.gz</a></td><td align="right">2017-05-31 12:26 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.2-Linux-x86_64.sh">cmake-3.8.2-Linux-x86_64.sh</a></td><td align="right">2017-05-31 12:26 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.2-Linux-x86_64.tar.gz">cmake-3.8.2-Linux-x86_64.tar.gz</a></td><td align="right">2017-05-31 12:26 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.2-SHA-256.txt">cmake-3.8.2-SHA-256.txt</a></td><td align="right">2017-05-31 12:26 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.8.2-SHA-256.txt.asc">cmake-3.8.2-SHA-256.txt.asc</a></td><td align="right">2017-05-31 12:26 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.2-win32-x86.msi">cmake-3.8.2-win32-x86.msi</a></td><td align="right">2017-05-31 12:26 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.2-win32-x86.zip">cmake-3.8.2-win32-x86.zip</a></td><td align="right">2017-05-31 12:26 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.8.2-win64-x64.msi">cmake-3.8.2-win64-x64.msi</a></td><td align="right">2017-05-31 12:25 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.2-win64-x64.zip">cmake-3.8.2-win64-x64.zip</a></td><td align="right">2017-05-31 12:25 </td><td align="right"> 24M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.2.tar.Z">cmake-3.8.2.tar.Z</a></td><td align="right">2017-05-31 12:25 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.2.tar.gz">cmake-3.8.2.tar.gz</a></td><td align="right">2017-05-31 12:25 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.8.2.zip">cmake-3.8.2.zip</a></td><td align="right">2017-05-31 12:25 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.9/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.9/index.html
new file mode 100644
index 000000000..54182afa0
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/files/v3.9/index.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /files/v3.9</title>
+ </head>
+ <body>
+<h1>Index of /files/v3.9</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/files/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-Darwin-x86_64.dmg">cmake-3.9.0-Darwin-x86_64.dmg</a></td><td align="right">2017-07-18 13:32 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-Darwin-x86_64.tar.gz">cmake-3.9.0-Darwin-x86_64.tar.gz</a></td><td align="right">2017-07-18 13:32 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-Linux-x86_64.sh">cmake-3.9.0-Linux-x86_64.sh</a></td><td align="right">2017-07-18 13:32 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-Linux-x86_64.tar.gz">cmake-3.9.0-Linux-x86_64.tar.gz</a></td><td align="right">2017-07-18 13:32 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-SHA-256.txt">cmake-3.9.0-SHA-256.txt</a></td><td align="right">2017-07-18 13:32 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-SHA-256.txt.asc">cmake-3.9.0-SHA-256.txt.asc</a></td><td align="right">2017-07-18 13:32 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc1-Darwin-x86_64.dmg">cmake-3.9.0-rc1-Darwin-x86_64.dmg</a></td><td align="right">2017-06-05 14:48 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc1-Darwin-x86_64.tar.gz">cmake-3.9.0-rc1-Darwin-x86_64.tar.gz</a></td><td align="right">2017-06-05 14:48 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-rc1-Linux-x86_64.sh">cmake-3.9.0-rc1-Linux-x86_64.sh</a></td><td align="right">2017-06-05 14:48 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc1-Linux-x86_64.tar.gz">cmake-3.9.0-rc1-Linux-x86_64.tar.gz</a></td><td align="right">2017-06-05 14:48 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-rc1-SHA-256.txt">cmake-3.9.0-rc1-SHA-256.txt</a></td><td align="right">2017-06-05 14:48 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-rc1-SHA-256.txt.asc">cmake-3.9.0-rc1-SHA-256.txt.asc</a></td><td align="right">2017-06-05 14:47 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc1-win32-x86.msi">cmake-3.9.0-rc1-win32-x86.msi</a></td><td align="right">2017-06-05 14:47 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc1-win32-x86.zip">cmake-3.9.0-rc1-win32-x86.zip</a></td><td align="right">2017-06-05 14:47 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc1-win64-x64.msi">cmake-3.9.0-rc1-win64-x64.msi</a></td><td align="right">2017-06-05 14:47 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc1-win64-x64.zip">cmake-3.9.0-rc1-win64-x64.zip</a></td><td align="right">2017-06-05 14:47 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc1.tar.Z">cmake-3.9.0-rc1.tar.Z</a></td><td align="right">2017-06-05 14:47 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc1.tar.gz">cmake-3.9.0-rc1.tar.gz</a></td><td align="right">2017-06-05 14:47 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc1.zip">cmake-3.9.0-rc1.zip</a></td><td align="right">2017-06-05 14:47 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc2-Darwin-x86_64.dmg">cmake-3.9.0-rc2-Darwin-x86_64.dmg</a></td><td align="right">2017-06-07 14:46 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc2-Darwin-x86_64.tar.gz">cmake-3.9.0-rc2-Darwin-x86_64.tar.gz</a></td><td align="right">2017-06-07 14:46 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-rc2-Linux-x86_64.sh">cmake-3.9.0-rc2-Linux-x86_64.sh</a></td><td align="right">2017-06-07 14:46 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc2-Linux-x86_64.tar.gz">cmake-3.9.0-rc2-Linux-x86_64.tar.gz</a></td><td align="right">2017-06-07 14:46 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-rc2-SHA-256.txt">cmake-3.9.0-rc2-SHA-256.txt</a></td><td align="right">2017-06-07 14:46 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-rc2-SHA-256.txt.asc">cmake-3.9.0-rc2-SHA-256.txt.asc</a></td><td align="right">2017-06-07 14:46 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc2-win32-x86.msi">cmake-3.9.0-rc2-win32-x86.msi</a></td><td align="right">2017-06-07 14:46 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc2-win32-x86.zip">cmake-3.9.0-rc2-win32-x86.zip</a></td><td align="right">2017-06-07 14:46 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc2-win64-x64.msi">cmake-3.9.0-rc2-win64-x64.msi</a></td><td align="right">2017-06-07 14:46 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc2-win64-x64.zip">cmake-3.9.0-rc2-win64-x64.zip</a></td><td align="right">2017-06-07 14:46 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc2.tar.Z">cmake-3.9.0-rc2.tar.Z</a></td><td align="right">2017-06-07 14:46 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc2.tar.gz">cmake-3.9.0-rc2.tar.gz</a></td><td align="right">2017-06-07 14:46 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc2.zip">cmake-3.9.0-rc2.zip</a></td><td align="right">2017-06-07 14:46 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc3-Darwin-x86_64.dmg">cmake-3.9.0-rc3-Darwin-x86_64.dmg</a></td><td align="right">2017-06-13 14:02 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc3-Darwin-x86_64.tar.gz">cmake-3.9.0-rc3-Darwin-x86_64.tar.gz</a></td><td align="right">2017-06-13 14:02 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-rc3-Linux-x86_64.sh">cmake-3.9.0-rc3-Linux-x86_64.sh</a></td><td align="right">2017-06-13 14:02 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc3-Linux-x86_64.tar.gz">cmake-3.9.0-rc3-Linux-x86_64.tar.gz</a></td><td align="right">2017-06-13 14:02 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-rc3-SHA-256.txt">cmake-3.9.0-rc3-SHA-256.txt</a></td><td align="right">2017-06-13 14:02 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-rc3-SHA-256.txt.asc">cmake-3.9.0-rc3-SHA-256.txt.asc</a></td><td align="right">2017-06-13 14:02 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc3-win32-x86.msi">cmake-3.9.0-rc3-win32-x86.msi</a></td><td align="right">2017-06-13 14:02 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc3-win32-x86.zip">cmake-3.9.0-rc3-win32-x86.zip</a></td><td align="right">2017-06-13 14:02 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc3-win64-x64.msi">cmake-3.9.0-rc3-win64-x64.msi</a></td><td align="right">2017-06-13 14:01 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc3-win64-x64.zip">cmake-3.9.0-rc3-win64-x64.zip</a></td><td align="right">2017-06-13 14:01 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc3.tar.Z">cmake-3.9.0-rc3.tar.Z</a></td><td align="right">2017-06-13 14:01 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc3.tar.gz">cmake-3.9.0-rc3.tar.gz</a></td><td align="right">2017-06-13 14:01 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc3.zip">cmake-3.9.0-rc3.zip</a></td><td align="right">2017-06-13 14:01 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc4-Darwin-x86_64.dmg">cmake-3.9.0-rc4-Darwin-x86_64.dmg</a></td><td align="right">2017-06-22 13:27 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc4-Darwin-x86_64.tar.gz">cmake-3.9.0-rc4-Darwin-x86_64.tar.gz</a></td><td align="right">2017-06-22 13:27 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-rc4-Linux-x86_64.sh">cmake-3.9.0-rc4-Linux-x86_64.sh</a></td><td align="right">2017-06-22 13:27 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc4-Linux-x86_64.tar.gz">cmake-3.9.0-rc4-Linux-x86_64.tar.gz</a></td><td align="right">2017-06-22 13:27 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-rc4-SHA-256.txt">cmake-3.9.0-rc4-SHA-256.txt</a></td><td align="right">2017-06-22 13:27 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-rc4-SHA-256.txt.asc">cmake-3.9.0-rc4-SHA-256.txt.asc</a></td><td align="right">2017-06-22 13:26 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc4-win32-x86.msi">cmake-3.9.0-rc4-win32-x86.msi</a></td><td align="right">2017-06-22 13:26 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc4-win32-x86.zip">cmake-3.9.0-rc4-win32-x86.zip</a></td><td align="right">2017-06-22 13:26 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc4-win64-x64.msi">cmake-3.9.0-rc4-win64-x64.msi</a></td><td align="right">2017-06-22 13:26 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc4-win64-x64.zip">cmake-3.9.0-rc4-win64-x64.zip</a></td><td align="right">2017-06-22 13:26 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc4.tar.Z">cmake-3.9.0-rc4.tar.Z</a></td><td align="right">2017-06-22 13:26 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc4.tar.gz">cmake-3.9.0-rc4.tar.gz</a></td><td align="right">2017-06-22 13:26 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc4.zip">cmake-3.9.0-rc4.zip</a></td><td align="right">2017-06-22 13:26 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc5-Darwin-x86_64.dmg">cmake-3.9.0-rc5-Darwin-x86_64.dmg</a></td><td align="right">2017-06-27 13:56 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc5-Darwin-x86_64.tar.gz">cmake-3.9.0-rc5-Darwin-x86_64.tar.gz</a></td><td align="right">2017-06-27 13:56 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-rc5-Linux-x86_64.sh">cmake-3.9.0-rc5-Linux-x86_64.sh</a></td><td align="right">2017-06-27 13:56 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc5-Linux-x86_64.tar.gz">cmake-3.9.0-rc5-Linux-x86_64.tar.gz</a></td><td align="right">2017-06-27 13:56 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-rc5-SHA-256.txt">cmake-3.9.0-rc5-SHA-256.txt</a></td><td align="right">2017-06-27 13:56 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-rc5-SHA-256.txt.asc">cmake-3.9.0-rc5-SHA-256.txt.asc</a></td><td align="right">2017-06-27 13:56 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc5-win32-x86.msi">cmake-3.9.0-rc5-win32-x86.msi</a></td><td align="right">2017-06-27 13:56 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc5-win32-x86.zip">cmake-3.9.0-rc5-win32-x86.zip</a></td><td align="right">2017-06-27 13:56 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc5-win64-x64.msi">cmake-3.9.0-rc5-win64-x64.msi</a></td><td align="right">2017-06-27 13:56 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc5-win64-x64.zip">cmake-3.9.0-rc5-win64-x64.zip</a></td><td align="right">2017-06-27 13:56 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc5.tar.Z">cmake-3.9.0-rc5.tar.Z</a></td><td align="right">2017-06-27 13:55 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc5.tar.gz">cmake-3.9.0-rc5.tar.gz</a></td><td align="right">2017-06-27 13:55 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc5.zip">cmake-3.9.0-rc5.zip</a></td><td align="right">2017-06-27 13:55 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc6-Darwin-x86_64.dmg">cmake-3.9.0-rc6-Darwin-x86_64.dmg</a></td><td align="right">2017-07-12 11:46 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc6-Darwin-x86_64.tar.gz">cmake-3.9.0-rc6-Darwin-x86_64.tar.gz</a></td><td align="right">2017-07-12 11:46 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-rc6-Linux-x86_64.sh">cmake-3.9.0-rc6-Linux-x86_64.sh</a></td><td align="right">2017-07-12 11:46 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc6-Linux-x86_64.tar.gz">cmake-3.9.0-rc6-Linux-x86_64.tar.gz</a></td><td align="right">2017-07-12 11:46 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-rc6-SHA-256.txt">cmake-3.9.0-rc6-SHA-256.txt</a></td><td align="right">2017-07-12 11:46 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.0-rc6-SHA-256.txt.asc">cmake-3.9.0-rc6-SHA-256.txt.asc</a></td><td align="right">2017-07-12 11:46 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc6-win32-x86.msi">cmake-3.9.0-rc6-win32-x86.msi</a></td><td align="right">2017-07-12 11:46 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc6-win32-x86.zip">cmake-3.9.0-rc6-win32-x86.zip</a></td><td align="right">2017-07-12 11:45 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc6-win64-x64.msi">cmake-3.9.0-rc6-win64-x64.msi</a></td><td align="right">2017-07-12 11:45 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc6-win64-x64.zip">cmake-3.9.0-rc6-win64-x64.zip</a></td><td align="right">2017-07-12 11:45 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc6.tar.Z">cmake-3.9.0-rc6.tar.Z</a></td><td align="right">2017-07-12 11:45 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc6.tar.gz">cmake-3.9.0-rc6.tar.gz</a></td><td align="right">2017-07-12 11:45 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-rc6.zip">cmake-3.9.0-rc6.zip</a></td><td align="right">2017-07-12 11:45 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-win32-x86.msi">cmake-3.9.0-win32-x86.msi</a></td><td align="right">2017-07-18 13:32 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-win32-x86.zip">cmake-3.9.0-win32-x86.zip</a></td><td align="right">2017-07-18 13:32 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-win64-x64.msi">cmake-3.9.0-win64-x64.msi</a></td><td align="right">2017-07-18 13:32 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0-win64-x64.zip">cmake-3.9.0-win64-x64.zip</a></td><td align="right">2017-07-18 13:31 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0.tar.Z">cmake-3.9.0.tar.Z</a></td><td align="right">2017-07-18 13:31 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0.tar.gz">cmake-3.9.0.tar.gz</a></td><td align="right">2017-07-18 13:31 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.0.zip">cmake-3.9.0.zip</a></td><td align="right">2017-07-18 13:31 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.1-Darwin-x86_64.dmg">cmake-3.9.1-Darwin-x86_64.dmg</a></td><td align="right">2017-08-10 11:49 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.1-Darwin-x86_64.tar.gz">cmake-3.9.1-Darwin-x86_64.tar.gz</a></td><td align="right">2017-08-10 11:49 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.1-Linux-x86_64.sh">cmake-3.9.1-Linux-x86_64.sh</a></td><td align="right">2017-08-10 11:49 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.1-Linux-x86_64.tar.gz">cmake-3.9.1-Linux-x86_64.tar.gz</a></td><td align="right">2017-08-10 11:49 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.1-SHA-256.txt">cmake-3.9.1-SHA-256.txt</a></td><td align="right">2017-08-10 11:49 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.1-SHA-256.txt.asc">cmake-3.9.1-SHA-256.txt.asc</a></td><td align="right">2017-08-10 11:49 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.1-win32-x86.msi">cmake-3.9.1-win32-x86.msi</a></td><td align="right">2017-08-10 11:49 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.1-win32-x86.zip">cmake-3.9.1-win32-x86.zip</a></td><td align="right">2017-08-10 11:49 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.1-win64-x64.msi">cmake-3.9.1-win64-x64.msi</a></td><td align="right">2017-08-10 11:49 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.1-win64-x64.zip">cmake-3.9.1-win64-x64.zip</a></td><td align="right">2017-08-10 11:49 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.1.tar.Z">cmake-3.9.1.tar.Z</a></td><td align="right">2017-08-10 11:49 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.1.tar.gz">cmake-3.9.1.tar.gz</a></td><td align="right">2017-08-10 11:49 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.1.zip">cmake-3.9.1.zip</a></td><td align="right">2017-08-10 11:49 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.2-Darwin-x86_64.dmg">cmake-3.9.2-Darwin-x86_64.dmg</a></td><td align="right">2017-09-07 15:55 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.2-Darwin-x86_64.tar.gz">cmake-3.9.2-Darwin-x86_64.tar.gz</a></td><td align="right">2017-09-07 15:54 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.2-Linux-x86_64.sh">cmake-3.9.2-Linux-x86_64.sh</a></td><td align="right">2017-09-07 15:54 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.2-Linux-x86_64.tar.gz">cmake-3.9.2-Linux-x86_64.tar.gz</a></td><td align="right">2017-09-07 15:54 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.2-SHA-256.txt">cmake-3.9.2-SHA-256.txt</a></td><td align="right">2017-09-07 15:54 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.2-SHA-256.txt.asc">cmake-3.9.2-SHA-256.txt.asc</a></td><td align="right">2017-09-07 15:54 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.2-win32-x86.msi">cmake-3.9.2-win32-x86.msi</a></td><td align="right">2017-09-07 15:54 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.2-win32-x86.zip">cmake-3.9.2-win32-x86.zip</a></td><td align="right">2017-09-07 15:54 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.2-win64-x64.msi">cmake-3.9.2-win64-x64.msi</a></td><td align="right">2017-09-07 15:54 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.2-win64-x64.zip">cmake-3.9.2-win64-x64.zip</a></td><td align="right">2017-09-07 15:54 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.2.tar.Z">cmake-3.9.2.tar.Z</a></td><td align="right">2017-09-07 15:54 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.2.tar.gz">cmake-3.9.2.tar.gz</a></td><td align="right">2017-09-07 15:54 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.2.zip">cmake-3.9.2.zip</a></td><td align="right">2017-09-07 15:54 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.3-Darwin-x86_64.dmg">cmake-3.9.3-Darwin-x86_64.dmg</a></td><td align="right">2017-09-20 11:59 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.3-Darwin-x86_64.tar.gz">cmake-3.9.3-Darwin-x86_64.tar.gz</a></td><td align="right">2017-09-20 11:59 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.3-Linux-x86_64.sh">cmake-3.9.3-Linux-x86_64.sh</a></td><td align="right">2017-09-20 11:59 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.3-Linux-x86_64.tar.gz">cmake-3.9.3-Linux-x86_64.tar.gz</a></td><td align="right">2017-09-20 11:59 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.3-SHA-256.txt">cmake-3.9.3-SHA-256.txt</a></td><td align="right">2017-09-20 11:59 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.3-SHA-256.txt.asc">cmake-3.9.3-SHA-256.txt.asc</a></td><td align="right">2017-09-20 11:59 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.3-win32-x86.msi">cmake-3.9.3-win32-x86.msi</a></td><td align="right">2017-09-20 11:59 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.3-win32-x86.zip">cmake-3.9.3-win32-x86.zip</a></td><td align="right">2017-09-20 11:59 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.3-win64-x64.msi">cmake-3.9.3-win64-x64.msi</a></td><td align="right">2017-09-20 11:59 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.3-win64-x64.zip">cmake-3.9.3-win64-x64.zip</a></td><td align="right">2017-09-20 11:59 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.3.tar.Z">cmake-3.9.3.tar.Z</a></td><td align="right">2017-09-20 11:59 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.3.tar.gz">cmake-3.9.3.tar.gz</a></td><td align="right">2017-09-20 11:59 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.3.zip">cmake-3.9.3.zip</a></td><td align="right">2017-09-20 11:59 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.4-Darwin-x86_64.dmg">cmake-3.9.4-Darwin-x86_64.dmg</a></td><td align="right">2017-10-04 09:43 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.4-Darwin-x86_64.tar.gz">cmake-3.9.4-Darwin-x86_64.tar.gz</a></td><td align="right">2017-10-04 09:43 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.4-Linux-x86_64.sh">cmake-3.9.4-Linux-x86_64.sh</a></td><td align="right">2017-10-04 09:43 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.4-Linux-x86_64.tar.gz">cmake-3.9.4-Linux-x86_64.tar.gz</a></td><td align="right">2017-10-04 09:43 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.4-SHA-256.txt">cmake-3.9.4-SHA-256.txt</a></td><td align="right">2017-10-04 09:43 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.4-SHA-256.txt.asc">cmake-3.9.4-SHA-256.txt.asc</a></td><td align="right">2017-10-04 09:42 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.4-win32-x86.msi">cmake-3.9.4-win32-x86.msi</a></td><td align="right">2017-10-04 09:42 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.4-win32-x86.zip">cmake-3.9.4-win32-x86.zip</a></td><td align="right">2017-10-04 09:42 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.4-win64-x64.msi">cmake-3.9.4-win64-x64.msi</a></td><td align="right">2017-10-04 09:42 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.4-win64-x64.zip">cmake-3.9.4-win64-x64.zip</a></td><td align="right">2017-10-04 09:42 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.4.tar.Z">cmake-3.9.4.tar.Z</a></td><td align="right">2017-10-04 09:42 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.4.tar.gz">cmake-3.9.4.tar.gz</a></td><td align="right">2017-10-04 09:42 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.4.zip">cmake-3.9.4.zip</a></td><td align="right">2017-10-04 09:42 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.5-Darwin-x86_64.dmg">cmake-3.9.5-Darwin-x86_64.dmg</a></td><td align="right">2017-11-03 10:26 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.5-Darwin-x86_64.tar.gz">cmake-3.9.5-Darwin-x86_64.tar.gz</a></td><td align="right">2017-11-03 10:26 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.5-Linux-x86_64.sh">cmake-3.9.5-Linux-x86_64.sh</a></td><td align="right">2017-11-03 10:26 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.5-Linux-x86_64.tar.gz">cmake-3.9.5-Linux-x86_64.tar.gz</a></td><td align="right">2017-11-03 10:26 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.5-SHA-256.txt">cmake-3.9.5-SHA-256.txt</a></td><td align="right">2017-11-03 10:26 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.5-SHA-256.txt.asc">cmake-3.9.5-SHA-256.txt.asc</a></td><td align="right">2017-11-03 10:26 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.5-win32-x86.msi">cmake-3.9.5-win32-x86.msi</a></td><td align="right">2017-11-03 10:26 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.5-win32-x86.zip">cmake-3.9.5-win32-x86.zip</a></td><td align="right">2017-11-03 10:26 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.5-win64-x64.msi">cmake-3.9.5-win64-x64.msi</a></td><td align="right">2017-11-03 10:26 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.5-win64-x64.zip">cmake-3.9.5-win64-x64.zip</a></td><td align="right">2017-11-03 10:26 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.5.tar.Z">cmake-3.9.5.tar.Z</a></td><td align="right">2017-11-03 10:26 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.5.tar.gz">cmake-3.9.5.tar.gz</a></td><td align="right">2017-11-03 10:26 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.5.zip">cmake-3.9.5.zip</a></td><td align="right">2017-11-03 10:26 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.6-Darwin-x86_64.dmg">cmake-3.9.6-Darwin-x86_64.dmg</a></td><td align="right">2017-11-10 09:22 </td><td align="right"> 26M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.6-Darwin-x86_64.tar.gz">cmake-3.9.6-Darwin-x86_64.tar.gz</a></td><td align="right">2017-11-10 09:21 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.6-Linux-x86_64.sh">cmake-3.9.6-Linux-x86_64.sh</a></td><td align="right">2017-11-10 09:21 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.6-Linux-x86_64.tar.gz">cmake-3.9.6-Linux-x86_64.tar.gz</a></td><td align="right">2017-11-10 09:21 </td><td align="right"> 31M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.6-SHA-256.txt">cmake-3.9.6-SHA-256.txt</a></td><td align="right">2017-11-10 09:21 </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="cmake-3.9.6-SHA-256.txt.asc">cmake-3.9.6-SHA-256.txt.asc</a></td><td align="right">2017-11-10 09:21 </td><td align="right">833 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.6-win32-x86.msi">cmake-3.9.6-win32-x86.msi</a></td><td align="right">2017-11-10 09:21 </td><td align="right"> 16M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.6-win32-x86.zip">cmake-3.9.6-win32-x86.zip</a></td><td align="right">2017-11-10 09:21 </td><td align="right"> 22M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="cmake-3.9.6-win64-x64.msi">cmake-3.9.6-win64-x64.msi</a></td><td align="right">2017-11-10 09:21 </td><td align="right"> 18M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.6-win64-x64.zip">cmake-3.9.6-win64-x64.zip</a></td><td align="right">2017-11-10 09:21 </td><td align="right"> 25M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.6.tar.Z">cmake-3.9.6.tar.Z</a></td><td align="right">2017-11-10 09:21 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.6.tar.gz">cmake-3.9.6.tar.gz</a></td><td align="right">2017-11-10 09:21 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="cmake-3.9.6.zip">cmake-3.9.6.zip</a></td><td align="right">2017-11-10 09:21 </td><td align="right"> 12M</td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.23/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.23/index.html
new file mode 100644
index 000000000..b3d9244b0
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.23/index.html
@@ -0,0 +1,45 @@
+<html>
+<head><title>Index of /pub/linux/utils/util-linux/v2.23/</title></head>
+<body>
+<h1>Index of /pub/linux/utils/util-linux/v2.23/</h1><hr><pre><a href="../">../</a>
+<a href="libblkid-docs/">libblkid-docs/</a> 31-Jul-2013 12:35 -
+<a href="libmount-docs/">libmount-docs/</a> 31-Jul-2013 12:39 -
+<a href="sha256sums.asc">sha256sums.asc</a> 12-May-2017 10:53 2942
+<a href="util-linux-2.23-rc1.tar.bz2">util-linux-2.23-rc1.tar.bz2</a> 22-Mar-2013 12:48 5M
+<a href="util-linux-2.23-rc1.tar.gz">util-linux-2.23-rc1.tar.gz</a> 22-Mar-2013 12:48 7M
+<a href="util-linux-2.23-rc1.tar.sign">util-linux-2.23-rc1.tar.sign</a> 22-Mar-2013 12:48 836
+<a href="util-linux-2.23-rc1.tar.xz">util-linux-2.23-rc1.tar.xz</a> 22-Mar-2013 12:48 3M
+<a href="util-linux-2.23-rc2.tar.bz2">util-linux-2.23-rc2.tar.bz2</a> 10-Apr-2013 22:14 5M
+<a href="util-linux-2.23-rc2.tar.gz">util-linux-2.23-rc2.tar.gz</a> 10-Apr-2013 22:14 7M
+<a href="util-linux-2.23-rc2.tar.sign">util-linux-2.23-rc2.tar.sign</a> 10-Apr-2013 22:14 836
+<a href="util-linux-2.23-rc2.tar.xz">util-linux-2.23-rc2.tar.xz</a> 10-Apr-2013 22:14 3M
+<a href="util-linux-2.23.1.tar.bz2">util-linux-2.23.1.tar.bz2</a> 28-May-2013 09:57 5M
+<a href="util-linux-2.23.1.tar.gz">util-linux-2.23.1.tar.gz</a> 28-May-2013 09:57 7M
+<a href="util-linux-2.23.1.tar.sign">util-linux-2.23.1.tar.sign</a> 28-May-2013 09:57 836
+<a href="util-linux-2.23.1.tar.xz">util-linux-2.23.1.tar.xz</a> 28-May-2013 09:57 3M
+<a href="util-linux-2.23.2.tar.bz2">util-linux-2.23.2.tar.bz2</a> 31-Jul-2013 12:40 5M
+<a href="util-linux-2.23.2.tar.gz">util-linux-2.23.2.tar.gz</a> 31-Jul-2013 12:40 7M
+<a href="util-linux-2.23.2.tar.sign">util-linux-2.23.2.tar.sign</a> 31-Jul-2013 12:40 836
+<a href="util-linux-2.23.2.tar.xz">util-linux-2.23.2.tar.xz</a> 31-Jul-2013 12:40 3M
+<a href="util-linux-2.23.tar.bz2">util-linux-2.23.tar.bz2</a> 25-Apr-2013 10:48 5M
+<a href="util-linux-2.23.tar.gz">util-linux-2.23.tar.gz</a> 25-Apr-2013 10:48 7M
+<a href="util-linux-2.23.tar.sign">util-linux-2.23.tar.sign</a> 25-Apr-2013 10:48 836
+<a href="util-linux-2.23.tar.xz">util-linux-2.23.tar.xz</a> 25-Apr-2013 10:48 3M
+<a href="v2.23-ChangeLog">v2.23-ChangeLog</a> 25-Apr-2013 10:48 19K
+<a href="v2.23-ChangeLog.sign">v2.23-ChangeLog.sign</a> 25-Apr-2013 10:48 836
+<a href="v2.23-ReleaseNotes">v2.23-ReleaseNotes</a> 25-Apr-2013 10:48 53K
+<a href="v2.23-ReleaseNotes.sign">v2.23-ReleaseNotes.sign</a> 25-Apr-2013 10:48 836
+<a href="v2.23-rc1-ChangeLog">v2.23-rc1-ChangeLog</a> 22-Mar-2013 12:48 361K
+<a href="v2.23-rc1-ChangeLog.sign">v2.23-rc1-ChangeLog.sign</a> 22-Mar-2013 12:48 836
+<a href="v2.23-rc2-ChangeLog">v2.23-rc2-ChangeLog</a> 10-Apr-2013 22:14 80K
+<a href="v2.23-rc2-ChangeLog.sign">v2.23-rc2-ChangeLog.sign</a> 10-Apr-2013 22:14 836
+<a href="v2.23.1-ChangeLog">v2.23.1-ChangeLog</a> 28-May-2013 09:57 13K
+<a href="v2.23.1-ChangeLog.sign">v2.23.1-ChangeLog.sign</a> 28-May-2013 09:57 836
+<a href="v2.23.1-ReleaseNotes">v2.23.1-ReleaseNotes</a> 28-May-2013 09:58 1448
+<a href="v2.23.1-ReleaseNotes.sign">v2.23.1-ReleaseNotes.sign</a> 28-May-2013 09:58 836
+<a href="v2.23.2-ChangeLog">v2.23.2-ChangeLog</a> 31-Jul-2013 12:40 23K
+<a href="v2.23.2-ChangeLog.sign">v2.23.2-ChangeLog.sign</a> 31-Jul-2013 12:40 836
+<a href="v2.23.2-ReleaseNotes">v2.23.2-ReleaseNotes</a> 31-Jul-2013 12:40 2582
+<a href="v2.23.2-ReleaseNotes.sign">v2.23.2-ReleaseNotes.sign</a> 31-Jul-2013 12:40 836
+</pre><hr></body>
+</html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.24/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.24/index.html
new file mode 100644
index 000000000..4afb4625a
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.24/index.html
@@ -0,0 +1,43 @@
+<html>
+<head><title>Index of /pub/linux/utils/util-linux/v2.24/</title></head>
+<body>
+<h1>Index of /pub/linux/utils/util-linux/v2.24/</h1><hr><pre><a href="../">../</a>
+<a href="libblkid-docs/">libblkid-docs/</a> 24-Apr-2014 10:15 -
+<a href="libmount-docs/">libmount-docs/</a> 24-Apr-2014 10:17 -
+<a href="sha256sums.asc">sha256sums.asc</a> 12-May-2017 10:53 2758
+<a href="util-linux-2.24-rc1.tar.bz2">util-linux-2.24-rc1.tar.bz2</a> 27-Sep-2013 12:54 5M
+<a href="util-linux-2.24-rc1.tar.gz">util-linux-2.24-rc1.tar.gz</a> 27-Sep-2013 12:54 7M
+<a href="util-linux-2.24-rc1.tar.sign">util-linux-2.24-rc1.tar.sign</a> 27-Sep-2013 12:54 836
+<a href="util-linux-2.24-rc1.tar.xz">util-linux-2.24-rc1.tar.xz</a> 27-Sep-2013 12:54 3M
+<a href="util-linux-2.24-rc2.tar.bz2">util-linux-2.24-rc2.tar.bz2</a> 11-Oct-2013 11:37 5M
+<a href="util-linux-2.24-rc2.tar.gz">util-linux-2.24-rc2.tar.gz</a> 11-Oct-2013 11:37 7M
+<a href="util-linux-2.24-rc2.tar.sign">util-linux-2.24-rc2.tar.sign</a> 11-Oct-2013 11:37 836
+<a href="util-linux-2.24-rc2.tar.xz">util-linux-2.24-rc2.tar.xz</a> 11-Oct-2013 11:37 3M
+<a href="util-linux-2.24.1.tar.gz">util-linux-2.24.1.tar.gz</a> 20-Jan-2014 13:33 7M
+<a href="util-linux-2.24.1.tar.sign">util-linux-2.24.1.tar.sign</a> 20-Jan-2014 13:33 819
+<a href="util-linux-2.24.1.tar.xz">util-linux-2.24.1.tar.xz</a> 20-Jan-2014 13:33 3M
+<a href="util-linux-2.24.2.tar.gz">util-linux-2.24.2.tar.gz</a> 24-Apr-2014 10:17 7M
+<a href="util-linux-2.24.2.tar.sign">util-linux-2.24.2.tar.sign</a> 24-Apr-2014 10:17 819
+<a href="util-linux-2.24.2.tar.xz">util-linux-2.24.2.tar.xz</a> 24-Apr-2014 10:17 3M
+<a href="util-linux-2.24.tar.bz2">util-linux-2.24.tar.bz2</a> 21-Oct-2013 13:49 5M
+<a href="util-linux-2.24.tar.gz">util-linux-2.24.tar.gz</a> 21-Oct-2013 13:49 7M
+<a href="util-linux-2.24.tar.sign">util-linux-2.24.tar.sign</a> 21-Oct-2013 13:49 836
+<a href="util-linux-2.24.tar.xz">util-linux-2.24.tar.xz</a> 21-Oct-2013 13:49 3M
+<a href="v2.24-ChangeLog">v2.24-ChangeLog</a> 21-Oct-2013 13:49 22K
+<a href="v2.24-ChangeLog.sign">v2.24-ChangeLog.sign</a> 21-Oct-2013 13:49 836
+<a href="v2.24-ReleaseNotes">v2.24-ReleaseNotes</a> 21-Oct-2013 13:49 44K
+<a href="v2.24-ReleaseNotes.sign">v2.24-ReleaseNotes.sign</a> 21-Oct-2013 13:49 836
+<a href="v2.24-rc1-ChangeLog">v2.24-rc1-ChangeLog</a> 27-Sep-2013 12:54 292K
+<a href="v2.24-rc1-ChangeLog.sign">v2.24-rc1-ChangeLog.sign</a> 27-Sep-2013 12:54 836
+<a href="v2.24-rc2-ChangeLog">v2.24-rc2-ChangeLog</a> 11-Oct-2013 11:37 42K
+<a href="v2.24-rc2-ChangeLog.sign">v2.24-rc2-ChangeLog.sign</a> 11-Oct-2013 11:37 836
+<a href="v2.24.1-ChangeLog">v2.24.1-ChangeLog</a> 20-Jan-2014 13:33 38K
+<a href="v2.24.1-ChangeLog.sign">v2.24.1-ChangeLog.sign</a> 20-Jan-2014 13:33 819
+<a href="v2.24.1-ReleaseNotes">v2.24.1-ReleaseNotes</a> 20-Jan-2014 13:33 4449
+<a href="v2.24.1-ReleaseNotes.sign">v2.24.1-ReleaseNotes.sign</a> 20-Jan-2014 13:33 819
+<a href="v2.24.2-ChangeLog">v2.24.2-ChangeLog</a> 24-Apr-2014 10:17 47K
+<a href="v2.24.2-ChangeLog.sign">v2.24.2-ChangeLog.sign</a> 24-Apr-2014 10:17 819
+<a href="v2.24.2-ReleaseNotes">v2.24.2-ReleaseNotes</a> 24-Apr-2014 10:18 5748
+<a href="v2.24.2-ReleaseNotes.sign">v2.24.2-ReleaseNotes.sign</a> 24-Apr-2014 10:18 819
+</pre><hr></body>
+</html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.25/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.25/index.html
new file mode 100644
index 000000000..9516c3b1e
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.25/index.html
@@ -0,0 +1,46 @@
+<html>
+<head><title>Index of /pub/linux/utils/util-linux/v2.25/</title></head>
+<body>
+<h1>Index of /pub/linux/utils/util-linux/v2.25/</h1><hr><pre><a href="../">../</a>
+<a href="libblkid-docs/">libblkid-docs/</a> 24-Oct-2014 13:05 -
+<a href="libmount-docs/">libmount-docs/</a> 24-Oct-2014 13:06 -
+<a href="libsmartcols-docs/">libsmartcols-docs/</a> 24-Oct-2014 13:08 -
+<a href="sha256sums.asc">sha256sums.asc</a> 12-May-2017 10:53 2758
+<a href="util-linux-2.25-rc1.tar.gz">util-linux-2.25-rc1.tar.gz</a> 18-Jun-2014 13:33 7M
+<a href="util-linux-2.25-rc1.tar.sign">util-linux-2.25-rc1.tar.sign</a> 18-Jun-2014 13:33 819
+<a href="util-linux-2.25-rc1.tar.xz">util-linux-2.25-rc1.tar.xz</a> 18-Jun-2014 13:33 3M
+<a href="util-linux-2.25-rc2.tar.gz">util-linux-2.25-rc2.tar.gz</a> 02-Jul-2014 10:02 7M
+<a href="util-linux-2.25-rc2.tar.sign">util-linux-2.25-rc2.tar.sign</a> 02-Jul-2014 10:02 819
+<a href="util-linux-2.25-rc2.tar.xz">util-linux-2.25-rc2.tar.xz</a> 02-Jul-2014 10:02 3M
+<a href="util-linux-2.25.1-rc1.tar.gz">util-linux-2.25.1-rc1.tar.gz</a> 27-Aug-2014 13:18 8M
+<a href="util-linux-2.25.1-rc1.tar.sign">util-linux-2.25.1-rc1.tar.sign</a> 27-Aug-2014 13:18 819
+<a href="util-linux-2.25.1-rc1.tar.xz">util-linux-2.25.1-rc1.tar.xz</a> 27-Aug-2014 13:18 4M
+<a href="util-linux-2.25.1.tar.gz">util-linux-2.25.1.tar.gz</a> 03-Sep-2014 10:41 8M
+<a href="util-linux-2.25.1.tar.sign">util-linux-2.25.1.tar.sign</a> 03-Sep-2014 10:41 819
+<a href="util-linux-2.25.1.tar.xz">util-linux-2.25.1.tar.xz</a> 03-Sep-2014 10:41 4M
+<a href="util-linux-2.25.2.tar.gz">util-linux-2.25.2.tar.gz</a> 24-Oct-2014 13:08 8M
+<a href="util-linux-2.25.2.tar.sign">util-linux-2.25.2.tar.sign</a> 24-Oct-2014 13:08 819
+<a href="util-linux-2.25.2.tar.xz">util-linux-2.25.2.tar.xz</a> 24-Oct-2014 13:08 4M
+<a href="util-linux-2.25.tar.gz">util-linux-2.25.tar.gz</a> 22-Jul-2014 09:50 8M
+<a href="util-linux-2.25.tar.sign">util-linux-2.25.tar.sign</a> 22-Jul-2014 09:50 819
+<a href="util-linux-2.25.tar.xz">util-linux-2.25.tar.xz</a> 22-Jul-2014 09:50 4M
+<a href="v2.25-ChangeLog">v2.25-ChangeLog</a> 22-Jul-2014 09:50 41K
+<a href="v2.25-ChangeLog.sign">v2.25-ChangeLog.sign</a> 22-Jul-2014 09:50 819
+<a href="v2.25-ReleaseNotes">v2.25-ReleaseNotes</a> 22-Jul-2014 09:50 61K
+<a href="v2.25-ReleaseNotes.sign">v2.25-ReleaseNotes.sign</a> 22-Jul-2014 09:50 819
+<a href="v2.25-rc1-ChangeLog">v2.25-rc1-ChangeLog</a> 18-Jun-2014 13:33 489K
+<a href="v2.25-rc1-ChangeLog.sign">v2.25-rc1-ChangeLog.sign</a> 18-Jun-2014 13:33 819
+<a href="v2.25-rc2-ChangeLog">v2.25-rc2-ChangeLog</a> 02-Jul-2014 10:02 27K
+<a href="v2.25-rc2-ChangeLog.sign">v2.25-rc2-ChangeLog.sign</a> 02-Jul-2014 10:02 819
+<a href="v2.25.1-ChangeLog">v2.25.1-ChangeLog</a> 03-Sep-2014 10:41 5816
+<a href="v2.25.1-ChangeLog.sign">v2.25.1-ChangeLog.sign</a> 03-Sep-2014 10:41 819
+<a href="v2.25.1-ReleaseNotes">v2.25.1-ReleaseNotes</a> 03-Sep-2014 10:52 3220
+<a href="v2.25.1-ReleaseNotes.sign">v2.25.1-ReleaseNotes.sign</a> 03-Sep-2014 10:52 819
+<a href="v2.25.1-rc1-ChangeLog">v2.25.1-rc1-ChangeLog</a> 27-Aug-2014 13:18 22K
+<a href="v2.25.1-rc1-ChangeLog.sign">v2.25.1-rc1-ChangeLog.sign</a> 27-Aug-2014 13:18 819
+<a href="v2.25.2-ChangeLog">v2.25.2-ChangeLog</a> 24-Oct-2014 13:08 26K
+<a href="v2.25.2-ChangeLog.sign">v2.25.2-ChangeLog.sign</a> 24-Oct-2014 13:08 819
+<a href="v2.25.2-ReleaseNotes">v2.25.2-ReleaseNotes</a> 24-Oct-2014 13:08 3016
+<a href="v2.25.2-ReleaseNotes.sign">v2.25.2-ReleaseNotes.sign</a> 24-Oct-2014 13:08 819
+</pre><hr></body>
+</html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.26/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.26/index.html
new file mode 100644
index 000000000..b99148957
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.26/index.html
@@ -0,0 +1,42 @@
+<html>
+<head><title>Index of /pub/linux/utils/util-linux/v2.26/</title></head>
+<body>
+<h1>Index of /pub/linux/utils/util-linux/v2.26/</h1><hr><pre><a href="../">../</a>
+<a href="libblkid-docs/">libblkid-docs/</a> 30-Apr-2015 10:38 -
+<a href="libfdisk-docs/">libfdisk-docs/</a> 30-Apr-2015 10:40 -
+<a href="libmount-docs/">libmount-docs/</a> 30-Apr-2015 10:42 -
+<a href="libsmartcols-docs/">libsmartcols-docs/</a> 30-Apr-2015 10:43 -
+<a href="sha256sums.asc">sha256sums.asc</a> 12-May-2017 10:54 2480
+<a href="util-linux-2.26-rc1.tar.gz">util-linux-2.26-rc1.tar.gz</a> 14-Jan-2015 13:14 8M
+<a href="util-linux-2.26-rc1.tar.sign">util-linux-2.26-rc1.tar.sign</a> 14-Jan-2015 13:14 819
+<a href="util-linux-2.26-rc1.tar.xz">util-linux-2.26-rc1.tar.xz</a> 14-Jan-2015 13:14 4M
+<a href="util-linux-2.26-rc2.tar.gz">util-linux-2.26-rc2.tar.gz</a> 04-Feb-2015 11:49 8M
+<a href="util-linux-2.26-rc2.tar.sign">util-linux-2.26-rc2.tar.sign</a> 04-Feb-2015 11:49 819
+<a href="util-linux-2.26-rc2.tar.xz">util-linux-2.26-rc2.tar.xz</a> 04-Feb-2015 11:49 4M
+<a href="util-linux-2.26.1.tar.gz">util-linux-2.26.1.tar.gz</a> 13-Mar-2015 14:23 8M
+<a href="util-linux-2.26.1.tar.sign">util-linux-2.26.1.tar.sign</a> 13-Mar-2015 14:23 819
+<a href="util-linux-2.26.1.tar.xz">util-linux-2.26.1.tar.xz</a> 13-Mar-2015 14:23 4M
+<a href="util-linux-2.26.2.tar.gz">util-linux-2.26.2.tar.gz</a> 30-Apr-2015 10:44 8M
+<a href="util-linux-2.26.2.tar.sign">util-linux-2.26.2.tar.sign</a> 30-Apr-2015 10:44 819
+<a href="util-linux-2.26.2.tar.xz">util-linux-2.26.2.tar.xz</a> 30-Apr-2015 10:44 4M
+<a href="util-linux-2.26.tar.gz">util-linux-2.26.tar.gz</a> 19-Feb-2015 12:47 8M
+<a href="util-linux-2.26.tar.sign">util-linux-2.26.tar.sign</a> 19-Feb-2015 12:47 819
+<a href="util-linux-2.26.tar.xz">util-linux-2.26.tar.xz</a> 19-Feb-2015 12:47 4M
+<a href="v2.26-ChangeLog">v2.26-ChangeLog</a> 19-Feb-2015 12:47 30K
+<a href="v2.26-ChangeLog.sign">v2.26-ChangeLog.sign</a> 19-Feb-2015 12:47 819
+<a href="v2.26-ReleaseNotes">v2.26-ReleaseNotes</a> 19-Feb-2015 12:47 51K
+<a href="v2.26-ReleaseNotes.sign">v2.26-ReleaseNotes.sign</a> 19-Feb-2015 12:47 819
+<a href="v2.26-rc1-ChangeLog">v2.26-rc1-ChangeLog</a> 14-Jan-2015 13:14 360K
+<a href="v2.26-rc1-ChangeLog.sign">v2.26-rc1-ChangeLog.sign</a> 14-Jan-2015 13:14 819
+<a href="v2.26-rc2-ChangeLog">v2.26-rc2-ChangeLog</a> 04-Feb-2015 11:50 51K
+<a href="v2.26-rc2-ChangeLog.sign">v2.26-rc2-ChangeLog.sign</a> 04-Feb-2015 11:50 819
+<a href="v2.26.1-ChangeLog">v2.26.1-ChangeLog</a> 13-Mar-2015 14:23 32K
+<a href="v2.26.1-ChangeLog.sign">v2.26.1-ChangeLog.sign</a> 13-Mar-2015 14:23 819
+<a href="v2.26.1-ReleaseNotes">v2.26.1-ReleaseNotes</a> 13-Mar-2015 14:23 2944
+<a href="v2.26.1-ReleaseNotes.sign">v2.26.1-ReleaseNotes.sign</a> 13-Mar-2015 14:23 819
+<a href="v2.26.2-ChangeLog">v2.26.2-ChangeLog</a> 30-Apr-2015 10:44 58K
+<a href="v2.26.2-ChangeLog.sign">v2.26.2-ChangeLog.sign</a> 30-Apr-2015 10:44 819
+<a href="v2.26.2-ReleaseNotes">v2.26.2-ReleaseNotes</a> 30-Apr-2015 10:44 5834
+<a href="v2.26.2-ReleaseNotes.sign">v2.26.2-ReleaseNotes.sign</a> 30-Apr-2015 10:44 819
+</pre><hr></body>
+</html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.27/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.27/index.html
new file mode 100644
index 000000000..14eb36836
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.27/index.html
@@ -0,0 +1,35 @@
+<html>
+<head><title>Index of /pub/linux/utils/util-linux/v2.27/</title></head>
+<body>
+<h1>Index of /pub/linux/utils/util-linux/v2.27/</h1><hr><pre><a href="../">../</a>
+<a href="libblkid-docs/">libblkid-docs/</a> 02-Nov-2015 11:01 -
+<a href="libfdisk-docs/">libfdisk-docs/</a> 02-Nov-2015 11:03 -
+<a href="libmount-docs/">libmount-docs/</a> 02-Nov-2015 11:04 -
+<a href="libsmartcols-docs/">libsmartcols-docs/</a> 02-Nov-2015 11:06 -
+<a href="sha256sums.asc">sha256sums.asc</a> 12-May-2017 10:54 2127
+<a href="util-linux-2.27-rc1.tar.gz">util-linux-2.27-rc1.tar.gz</a> 31-Jul-2015 11:01 8M
+<a href="util-linux-2.27-rc1.tar.sign">util-linux-2.27-rc1.tar.sign</a> 31-Jul-2015 11:01 819
+<a href="util-linux-2.27-rc1.tar.xz">util-linux-2.27-rc1.tar.xz</a> 31-Jul-2015 11:01 4M
+<a href="util-linux-2.27-rc2.tar.gz">util-linux-2.27-rc2.tar.gz</a> 24-Aug-2015 11:04 8M
+<a href="util-linux-2.27-rc2.tar.sign">util-linux-2.27-rc2.tar.sign</a> 24-Aug-2015 11:04 819
+<a href="util-linux-2.27-rc2.tar.xz">util-linux-2.27-rc2.tar.xz</a> 24-Aug-2015 11:04 4M
+<a href="util-linux-2.27.1.tar.gz">util-linux-2.27.1.tar.gz</a> 02-Nov-2015 11:06 8M
+<a href="util-linux-2.27.1.tar.sign">util-linux-2.27.1.tar.sign</a> 02-Nov-2015 11:06 819
+<a href="util-linux-2.27.1.tar.xz">util-linux-2.27.1.tar.xz</a> 02-Nov-2015 11:06 4M
+<a href="util-linux-2.27.tar.gz">util-linux-2.27.tar.gz</a> 07-Sep-2015 08:17 8M
+<a href="util-linux-2.27.tar.sign">util-linux-2.27.tar.sign</a> 07-Sep-2015 08:17 819
+<a href="util-linux-2.27.tar.xz">util-linux-2.27.tar.xz</a> 07-Sep-2015 08:17 4M
+<a href="v2.27-ChangeLog">v2.27-ChangeLog</a> 07-Sep-2015 08:17 21K
+<a href="v2.27-ChangeLog.sign">v2.27-ChangeLog.sign</a> 07-Sep-2015 08:17 819
+<a href="v2.27-ReleaseNotes">v2.27-ReleaseNotes</a> 07-Sep-2015 08:17 35K
+<a href="v2.27-ReleaseNotes.sign">v2.27-ReleaseNotes.sign</a> 07-Sep-2015 08:17 819
+<a href="v2.27-rc1-ChangeLog">v2.27-rc1-ChangeLog</a> 31-Jul-2015 11:01 263K
+<a href="v2.27-rc1-ChangeLog.sign">v2.27-rc1-ChangeLog.sign</a> 31-Jul-2015 11:01 819
+<a href="v2.27-rc2-ChangeLog">v2.27-rc2-ChangeLog</a> 24-Aug-2015 11:04 38K
+<a href="v2.27-rc2-ChangeLog.sign">v2.27-rc2-ChangeLog.sign</a> 24-Aug-2015 11:04 819
+<a href="v2.27.1-ChangeLog">v2.27.1-ChangeLog</a> 02-Nov-2015 11:06 18K
+<a href="v2.27.1-ChangeLog.sign">v2.27.1-ChangeLog.sign</a> 02-Nov-2015 11:06 819
+<a href="v2.27.1-ReleaseNotes">v2.27.1-ReleaseNotes</a> 02-Nov-2015 11:06 2107
+<a href="v2.27.1-ReleaseNotes.sign">v2.27.1-ReleaseNotes.sign</a> 02-Nov-2015 11:06 819
+</pre><hr></body>
+</html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.28/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.28/index.html
new file mode 100644
index 000000000..4bba6b470
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.28/index.html
@@ -0,0 +1,42 @@
+<html>
+<head><title>Index of /pub/linux/utils/util-linux/v2.28/</title></head>
+<body>
+<h1>Index of /pub/linux/utils/util-linux/v2.28/</h1><hr><pre><a href="../">../</a>
+<a href="libblkid-docs/">libblkid-docs/</a> 07-Sep-2016 12:00 -
+<a href="libfdisk-docs/">libfdisk-docs/</a> 07-Sep-2016 12:02 -
+<a href="libmount-docs/">libmount-docs/</a> 07-Sep-2016 12:04 -
+<a href="libsmartcols-docs/">libsmartcols-docs/</a> 07-Sep-2016 12:06 -
+<a href="sha256sums.asc">sha256sums.asc</a> 12-May-2017 10:55 2480
+<a href="util-linux-2.28-rc1.tar.gz">util-linux-2.28-rc1.tar.gz</a> 11-Mar-2016 11:45 8M
+<a href="util-linux-2.28-rc1.tar.sign">util-linux-2.28-rc1.tar.sign</a> 11-Mar-2016 11:45 819
+<a href="util-linux-2.28-rc1.tar.xz">util-linux-2.28-rc1.tar.xz</a> 11-Mar-2016 11:45 4M
+<a href="util-linux-2.28-rc2.tar.gz">util-linux-2.28-rc2.tar.gz</a> 29-Mar-2016 09:04 8M
+<a href="util-linux-2.28-rc2.tar.sign">util-linux-2.28-rc2.tar.sign</a> 29-Mar-2016 09:04 819
+<a href="util-linux-2.28-rc2.tar.xz">util-linux-2.28-rc2.tar.xz</a> 29-Mar-2016 09:04 4M
+<a href="util-linux-2.28.1.tar.gz">util-linux-2.28.1.tar.gz</a> 11-Aug-2016 10:09 9M
+<a href="util-linux-2.28.1.tar.sign">util-linux-2.28.1.tar.sign</a> 11-Aug-2016 10:09 819
+<a href="util-linux-2.28.1.tar.xz">util-linux-2.28.1.tar.xz</a> 11-Aug-2016 10:09 4M
+<a href="util-linux-2.28.2.tar.gz">util-linux-2.28.2.tar.gz</a> 07-Sep-2016 12:06 9M
+<a href="util-linux-2.28.2.tar.sign">util-linux-2.28.2.tar.sign</a> 07-Sep-2016 12:06 819
+<a href="util-linux-2.28.2.tar.xz">util-linux-2.28.2.tar.xz</a> 07-Sep-2016 12:06 4M
+<a href="util-linux-2.28.tar.gz">util-linux-2.28.tar.gz</a> 12-Apr-2016 11:26 8M
+<a href="util-linux-2.28.tar.sign">util-linux-2.28.tar.sign</a> 12-Apr-2016 11:26 819
+<a href="util-linux-2.28.tar.xz">util-linux-2.28.tar.xz</a> 12-Apr-2016 11:26 4M
+<a href="v2.28-ChangeLog">v2.28-ChangeLog</a> 12-Apr-2016 11:26 13K
+<a href="v2.28-ChangeLog.sign">v2.28-ChangeLog.sign</a> 12-Apr-2016 11:26 819
+<a href="v2.28-ReleaseNotes">v2.28-ReleaseNotes</a> 12-Apr-2016 11:26 33K
+<a href="v2.28-ReleaseNotes.sign">v2.28-ReleaseNotes.sign</a> 12-Apr-2016 11:26 819
+<a href="v2.28-rc1-ChangeLog">v2.28-rc1-ChangeLog</a> 11-Mar-2016 11:45 269K
+<a href="v2.28-rc1-ChangeLog.sign">v2.28-rc1-ChangeLog.sign</a> 11-Mar-2016 11:45 819
+<a href="v2.28-rc2-ChangeLog">v2.28-rc2-ChangeLog</a> 29-Mar-2016 09:04 52K
+<a href="v2.28-rc2-ChangeLog.sign">v2.28-rc2-ChangeLog.sign</a> 29-Mar-2016 09:04 819
+<a href="v2.28.1-ChangeLog">v2.28.1-ChangeLog</a> 11-Aug-2016 10:09 37K
+<a href="v2.28.1-ChangeLog.sign">v2.28.1-ChangeLog.sign</a> 11-Aug-2016 10:09 819
+<a href="v2.28.1-ReleaseNotes">v2.28.1-ReleaseNotes</a> 11-Aug-2016 10:09 3748
+<a href="v2.28.1-ReleaseNotes.sign">v2.28.1-ReleaseNotes.sign</a> 11-Aug-2016 10:09 819
+<a href="v2.28.2-ChangeLog">v2.28.2-ChangeLog</a> 07-Sep-2016 12:06 8900
+<a href="v2.28.2-ChangeLog.sign">v2.28.2-ChangeLog.sign</a> 07-Sep-2016 12:06 819
+<a href="v2.28.2-ReleaseNotes">v2.28.2-ReleaseNotes</a> 07-Sep-2016 12:06 1161
+<a href="v2.28.2-ReleaseNotes.sign">v2.28.2-ReleaseNotes.sign</a> 07-Sep-2016 12:06 819
+</pre><hr></body>
+</html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.29/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.29/index.html
new file mode 100644
index 000000000..916a255fa
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.29/index.html
@@ -0,0 +1,42 @@
+<html>
+<head><title>Index of /pub/linux/utils/util-linux/v2.29/</title></head>
+<body>
+<h1>Index of /pub/linux/utils/util-linux/v2.29/</h1><hr><pre><a href="../">../</a>
+<a href="libblkid-docs/">libblkid-docs/</a> 22-Feb-2017 15:20 -
+<a href="libfdisk-docs/">libfdisk-docs/</a> 22-Feb-2017 15:22 -
+<a href="libmount-docs/">libmount-docs/</a> 22-Feb-2017 15:24 -
+<a href="libsmartcols-docs/">libsmartcols-docs/</a> 22-Feb-2017 15:26 -
+<a href="sha256sums.asc">sha256sums.asc</a> 12-May-2017 10:55 2480
+<a href="util-linux-2.29-rc1.tar.gz">util-linux-2.29-rc1.tar.gz</a> 30-Sep-2016 09:55 9M
+<a href="util-linux-2.29-rc1.tar.sign">util-linux-2.29-rc1.tar.sign</a> 30-Sep-2016 09:55 819
+<a href="util-linux-2.29-rc1.tar.xz">util-linux-2.29-rc1.tar.xz</a> 30-Sep-2016 09:55 4M
+<a href="util-linux-2.29-rc2.tar.gz">util-linux-2.29-rc2.tar.gz</a> 19-Oct-2016 13:13 9M
+<a href="util-linux-2.29-rc2.tar.sign">util-linux-2.29-rc2.tar.sign</a> 19-Oct-2016 13:13 819
+<a href="util-linux-2.29-rc2.tar.xz">util-linux-2.29-rc2.tar.xz</a> 19-Oct-2016 13:13 4M
+<a href="util-linux-2.29.1.tar.gz">util-linux-2.29.1.tar.gz</a> 20-Jan-2017 14:02 9M
+<a href="util-linux-2.29.1.tar.sign">util-linux-2.29.1.tar.sign</a> 20-Jan-2017 14:02 819
+<a href="util-linux-2.29.1.tar.xz">util-linux-2.29.1.tar.xz</a> 20-Jan-2017 14:02 4M
+<a href="util-linux-2.29.2.tar.gz">util-linux-2.29.2.tar.gz</a> 22-Feb-2017 15:26 9M
+<a href="util-linux-2.29.2.tar.sign">util-linux-2.29.2.tar.sign</a> 22-Feb-2017 15:26 819
+<a href="util-linux-2.29.2.tar.xz">util-linux-2.29.2.tar.xz</a> 22-Feb-2017 15:26 4M
+<a href="util-linux-2.29.tar.gz">util-linux-2.29.tar.gz</a> 08-Nov-2016 11:23 9M
+<a href="util-linux-2.29.tar.sign">util-linux-2.29.tar.sign</a> 08-Nov-2016 11:23 819
+<a href="util-linux-2.29.tar.xz">util-linux-2.29.tar.xz</a> 08-Nov-2016 11:23 4M
+<a href="v2.29-ChangeLog">v2.29-ChangeLog</a> 08-Nov-2016 11:23 28K
+<a href="v2.29-ChangeLog.sign">v2.29-ChangeLog.sign</a> 08-Nov-2016 11:23 819
+<a href="v2.29-ReleaseNotes">v2.29-ReleaseNotes</a> 08-Nov-2016 11:24 26K
+<a href="v2.29-ReleaseNotes.sign">v2.29-ReleaseNotes.sign</a> 08-Nov-2016 11:24 819
+<a href="v2.29-rc1-ChangeLog">v2.29-rc1-ChangeLog</a> 30-Sep-2016 09:55 219K
+<a href="v2.29-rc1-ChangeLog.sign">v2.29-rc1-ChangeLog.sign</a> 30-Sep-2016 09:55 819
+<a href="v2.29-rc2-ChangeLog">v2.29-rc2-ChangeLog</a> 19-Oct-2016 13:13 19K
+<a href="v2.29-rc2-ChangeLog.sign">v2.29-rc2-ChangeLog.sign</a> 19-Oct-2016 13:13 819
+<a href="v2.29.1-ChangeLog">v2.29.1-ChangeLog</a> 20-Jan-2017 14:02 47K
+<a href="v2.29.1-ChangeLog.sign">v2.29.1-ChangeLog.sign</a> 20-Jan-2017 14:02 819
+<a href="v2.29.1-ReleaseNotes">v2.29.1-ReleaseNotes</a> 20-Jan-2017 14:02 5067
+<a href="v2.29.1-ReleaseNotes.sign">v2.29.1-ReleaseNotes.sign</a> 20-Jan-2017 14:02 819
+<a href="v2.29.2-ChangeLog">v2.29.2-ChangeLog</a> 22-Feb-2017 15:26 14K
+<a href="v2.29.2-ChangeLog.sign">v2.29.2-ChangeLog.sign</a> 22-Feb-2017 15:26 819
+<a href="v2.29.2-ReleaseNotes">v2.29.2-ReleaseNotes</a> 22-Feb-2017 15:26 2012
+<a href="v2.29.2-ReleaseNotes.sign">v2.29.2-ReleaseNotes.sign</a> 22-Feb-2017 15:26 819
+</pre><hr></body>
+</html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.30/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.30/index.html
new file mode 100644
index 000000000..0441bc0d2
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.30/index.html
@@ -0,0 +1,42 @@
+<html>
+<head><title>Index of /pub/linux/utils/util-linux/v2.30/</title></head>
+<body>
+<h1>Index of /pub/linux/utils/util-linux/v2.30/</h1><hr><pre><a href="../">../</a>
+<a href="libblkid-docs/">libblkid-docs/</a> 21-Sep-2017 09:49 -
+<a href="libfdisk-docs/">libfdisk-docs/</a> 21-Sep-2017 09:50 -
+<a href="libmount-docs/">libmount-docs/</a> 21-Sep-2017 09:50 -
+<a href="libsmartcols-docs/">libsmartcols-docs/</a> 21-Sep-2017 09:51 -
+<a href="sha256sums.asc">sha256sums.asc</a> 21-Sep-2017 09:52 2480
+<a href="util-linux-2.30-rc1.tar.gz">util-linux-2.30-rc1.tar.gz</a> 12-May-2017 12:02 9M
+<a href="util-linux-2.30-rc1.tar.sign">util-linux-2.30-rc1.tar.sign</a> 12-May-2017 12:02 819
+<a href="util-linux-2.30-rc1.tar.xz">util-linux-2.30-rc1.tar.xz</a> 12-May-2017 12:02 4M
+<a href="util-linux-2.30-rc2.tar.gz">util-linux-2.30-rc2.tar.gz</a> 23-May-2017 10:42 9M
+<a href="util-linux-2.30-rc2.tar.sign">util-linux-2.30-rc2.tar.sign</a> 23-May-2017 10:42 819
+<a href="util-linux-2.30-rc2.tar.xz">util-linux-2.30-rc2.tar.xz</a> 23-May-2017 10:42 4M
+<a href="util-linux-2.30.1.tar.gz">util-linux-2.30.1.tar.gz</a> 20-Jul-2017 09:33 9M
+<a href="util-linux-2.30.1.tar.sign">util-linux-2.30.1.tar.sign</a> 20-Jul-2017 09:33 819
+<a href="util-linux-2.30.1.tar.xz">util-linux-2.30.1.tar.xz</a> 20-Jul-2017 09:33 4M
+<a href="util-linux-2.30.2.tar.gz">util-linux-2.30.2.tar.gz</a> 21-Sep-2017 09:51 9M
+<a href="util-linux-2.30.2.tar.sign">util-linux-2.30.2.tar.sign</a> 21-Sep-2017 09:51 833
+<a href="util-linux-2.30.2.tar.xz">util-linux-2.30.2.tar.xz</a> 21-Sep-2017 09:51 4M
+<a href="util-linux-2.30.tar.gz">util-linux-2.30.tar.gz</a> 02-Jun-2017 10:44 9M
+<a href="util-linux-2.30.tar.sign">util-linux-2.30.tar.sign</a> 02-Jun-2017 10:44 819
+<a href="util-linux-2.30.tar.xz">util-linux-2.30.tar.xz</a> 02-Jun-2017 10:44 4M
+<a href="v2.30-ChangeLog">v2.30-ChangeLog</a> 02-Jun-2017 10:44 28K
+<a href="v2.30-ChangeLog.sign">v2.30-ChangeLog.sign</a> 02-Jun-2017 10:44 819
+<a href="v2.30-ReleaseNotes">v2.30-ReleaseNotes</a> 02-Jun-2017 10:44 34K
+<a href="v2.30-ReleaseNotes.sign">v2.30-ReleaseNotes.sign</a> 02-Jun-2017 10:44 819
+<a href="v2.30-rc1-ChangeLog">v2.30-rc1-ChangeLog</a> 23-May-2017 10:42 318K
+<a href="v2.30-rc1-ChangeLog.sign">v2.30-rc1-ChangeLog.sign</a> 23-May-2017 10:42 819
+<a href="v2.30-rc2-ChangeLog">v2.30-rc2-ChangeLog</a> 23-May-2017 10:42 19K
+<a href="v2.30-rc2-ChangeLog.sign">v2.30-rc2-ChangeLog.sign</a> 23-May-2017 10:42 819
+<a href="v2.30.1-ChangeLog">v2.30.1-ChangeLog</a> 20-Jul-2017 09:33 20K
+<a href="v2.30.1-ChangeLog.sign">v2.30.1-ChangeLog.sign</a> 20-Jul-2017 09:33 819
+<a href="v2.30.1-ReleaseNotes">v2.30.1-ReleaseNotes</a> 20-Jul-2017 09:33 1901
+<a href="v2.30.1-ReleaseNotes.sign">v2.30.1-ReleaseNotes.sign</a> 20-Jul-2017 09:33 819
+<a href="v2.30.2-ChangeLog">v2.30.2-ChangeLog</a> 21-Sep-2017 09:51 13K
+<a href="v2.30.2-ChangeLog.sign">v2.30.2-ChangeLog.sign</a> 21-Sep-2017 09:51 833
+<a href="v2.30.2-ReleaseNotes">v2.30.2-ReleaseNotes</a> 21-Sep-2017 09:51 1604
+<a href="v2.30.2-ReleaseNotes.sign">v2.30.2-ReleaseNotes.sign</a> 21-Sep-2017 09:51 833
+</pre><hr></body>
+</html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.31/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.31/index.html
new file mode 100644
index 000000000..097e4e0e3
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.31/index.html
@@ -0,0 +1,35 @@
+<html>
+<head><title>Index of /pub/linux/utils/util-linux/v2.31/</title></head>
+<body>
+<h1>Index of /pub/linux/utils/util-linux/v2.31/</h1><hr><pre><a href="../">../</a>
+<a href="libblkid-docs/">libblkid-docs/</a> 19-Dec-2017 15:16 -
+<a href="libfdisk-docs/">libfdisk-docs/</a> 19-Dec-2017 15:17 -
+<a href="libmount-docs/">libmount-docs/</a> 19-Dec-2017 15:17 -
+<a href="libsmartcols-docs/">libsmartcols-docs/</a> 19-Dec-2017 15:17 -
+<a href="sha256sums.asc">sha256sums.asc</a> 19-Dec-2017 15:20 2127
+<a href="util-linux-2.31-rc1.tar.gz">util-linux-2.31-rc1.tar.gz</a> 22-Sep-2017 10:39 9M
+<a href="util-linux-2.31-rc1.tar.sign">util-linux-2.31-rc1.tar.sign</a> 22-Sep-2017 10:39 833
+<a href="util-linux-2.31-rc1.tar.xz">util-linux-2.31-rc1.tar.xz</a> 22-Sep-2017 10:39 4M
+<a href="util-linux-2.31-rc2.tar.gz">util-linux-2.31-rc2.tar.gz</a> 03-Oct-2017 16:03 9M
+<a href="util-linux-2.31-rc2.tar.sign">util-linux-2.31-rc2.tar.sign</a> 03-Oct-2017 16:03 833
+<a href="util-linux-2.31-rc2.tar.xz">util-linux-2.31-rc2.tar.xz</a> 03-Oct-2017 16:03 4M
+<a href="util-linux-2.31.1.tar.gz">util-linux-2.31.1.tar.gz</a> 19-Dec-2017 15:18 9M
+<a href="util-linux-2.31.1.tar.sign">util-linux-2.31.1.tar.sign</a> 19-Dec-2017 15:18 833
+<a href="util-linux-2.31.1.tar.xz">util-linux-2.31.1.tar.xz</a> 19-Dec-2017 15:18 4M
+<a href="util-linux-2.31.tar.gz">util-linux-2.31.tar.gz</a> 19-Oct-2017 11:27 9M
+<a href="util-linux-2.31.tar.sign">util-linux-2.31.tar.sign</a> 19-Oct-2017 11:27 833
+<a href="util-linux-2.31.tar.xz">util-linux-2.31.tar.xz</a> 19-Oct-2017 11:27 4M
+<a href="v2.31-ChangeLog">v2.31-ChangeLog</a> 19-Oct-2017 11:27 15K
+<a href="v2.31-ChangeLog.sign">v2.31-ChangeLog.sign</a> 19-Oct-2017 11:27 833
+<a href="v2.31-ReleaseNotes">v2.31-ReleaseNotes</a> 19-Oct-2017 11:27 31K
+<a href="v2.31-ReleaseNotes.sign">v2.31-ReleaseNotes.sign</a> 19-Oct-2017 11:27 833
+<a href="v2.31-rc1-ChangeLog">v2.31-rc1-ChangeLog</a> 22-Sep-2017 10:39 290K
+<a href="v2.31-rc1-ChangeLog.sign">v2.31-rc1-ChangeLog.sign</a> 22-Sep-2017 10:39 833
+<a href="v2.31-rc2-ChangeLog">v2.31-rc2-ChangeLog</a> 03-Oct-2017 16:03 12K
+<a href="v2.31-rc2-ChangeLog.sign">v2.31-rc2-ChangeLog.sign</a> 03-Oct-2017 16:03 833
+<a href="v2.31.1-ChangeLog">v2.31.1-ChangeLog</a> 19-Dec-2017 15:18 27K
+<a href="v2.31.1-ChangeLog.sign">v2.31.1-ChangeLog.sign</a> 19-Dec-2017 15:18 833
+<a href="v2.31.1-ReleaseNotes">v2.31.1-ReleaseNotes</a> 19-Dec-2017 15:18 3175
+<a href="v2.31.1-ReleaseNotes.sign">v2.31.1-ReleaseNotes.sign</a> 19-Dec-2017 15:18 833
+</pre><hr></body>
+</html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.32/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.32/index.html
new file mode 100644
index 000000000..d373e9810
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.32/index.html
@@ -0,0 +1,35 @@
+<html>
+<head><title>Index of /pub/linux/utils/util-linux/v2.32/</title></head>
+<body>
+<h1>Index of /pub/linux/utils/util-linux/v2.32/</h1><hr><pre><a href="../">../</a>
+<a href="libblkid-docs/">libblkid-docs/</a> 16-Jul-2018 11:27 -
+<a href="libfdisk-docs/">libfdisk-docs/</a> 16-Jul-2018 11:28 -
+<a href="libmount-docs/">libmount-docs/</a> 16-Jul-2018 11:28 -
+<a href="libsmartcols-docs/">libsmartcols-docs/</a> 16-Jul-2018 11:28 -
+<a href="sha256sums.asc">sha256sums.asc</a> 16-Jul-2018 11:30 2127
+<a href="util-linux-2.32-rc1.tar.gz">util-linux-2.32-rc1.tar.gz</a> 13-Feb-2018 12:25 9M
+<a href="util-linux-2.32-rc1.tar.sign">util-linux-2.32-rc1.tar.sign</a> 13-Feb-2018 12:25 833
+<a href="util-linux-2.32-rc1.tar.xz">util-linux-2.32-rc1.tar.xz</a> 13-Feb-2018 12:25 4M
+<a href="util-linux-2.32-rc2.tar.gz">util-linux-2.32-rc2.tar.gz</a> 01-Mar-2018 13:38 9M
+<a href="util-linux-2.32-rc2.tar.sign">util-linux-2.32-rc2.tar.sign</a> 01-Mar-2018 13:38 833
+<a href="util-linux-2.32-rc2.tar.xz">util-linux-2.32-rc2.tar.xz</a> 01-Mar-2018 13:38 4M
+<a href="util-linux-2.32.1.tar.gz">util-linux-2.32.1.tar.gz</a> 16-Jul-2018 11:29 9M
+<a href="util-linux-2.32.1.tar.sign">util-linux-2.32.1.tar.sign</a> 16-Jul-2018 11:29 833
+<a href="util-linux-2.32.1.tar.xz">util-linux-2.32.1.tar.xz</a> 16-Jul-2018 11:29 4M
+<a href="util-linux-2.32.tar.gz">util-linux-2.32.tar.gz</a> 21-Mar-2018 14:49 9M
+<a href="util-linux-2.32.tar.sign">util-linux-2.32.tar.sign</a> 21-Mar-2018 14:49 833
+<a href="util-linux-2.32.tar.xz">util-linux-2.32.tar.xz</a> 21-Mar-2018 14:49 4M
+<a href="v2.32-ChangeLog">v2.32-ChangeLog</a> 21-Mar-2018 14:49 36K
+<a href="v2.32-ChangeLog.sign">v2.32-ChangeLog.sign</a> 21-Mar-2018 14:49 833
+<a href="v2.32-ReleaseNotes">v2.32-ReleaseNotes</a> 21-Mar-2018 14:49 21K
+<a href="v2.32-ReleaseNotes.sign">v2.32-ReleaseNotes.sign</a> 21-Mar-2018 14:49 833
+<a href="v2.32-rc1-ChangeLog">v2.32-rc1-ChangeLog</a> 13-Feb-2018 12:25 174K
+<a href="v2.32-rc1-ChangeLog.sign">v2.32-rc1-ChangeLog.sign</a> 13-Feb-2018 12:25 833
+<a href="v2.32-rc2-ChangeLog">v2.32-rc2-ChangeLog</a> 01-Mar-2018 13:38 21K
+<a href="v2.32-rc2-ChangeLog.sign">v2.32-rc2-ChangeLog.sign</a> 01-Mar-2018 13:38 833
+<a href="v2.32.1-ChangeLog">v2.32.1-ChangeLog</a> 16-Jul-2018 11:29 31K
+<a href="v2.32.1-ChangeLog.sign">v2.32.1-ChangeLog.sign</a> 16-Jul-2018 11:29 833
+<a href="v2.32.1-ReleaseNotes">v2.32.1-ReleaseNotes</a> 16-Jul-2018 11:29 3425
+<a href="v2.32.1-ReleaseNotes.sign">v2.32.1-ReleaseNotes.sign</a> 16-Jul-2018 11:29 833
+</pre><hr></body>
+</html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.33/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.33/index.html
new file mode 100644
index 000000000..549530542
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.33/index.html
@@ -0,0 +1,42 @@
+<html>
+<head><title>Index of /pub/linux/utils/util-linux/v2.33/</title></head>
+<body>
+<h1>Index of /pub/linux/utils/util-linux/v2.33/</h1><hr><pre><a href="../">../</a>
+<a href="libblkid-docs/">libblkid-docs/</a> 09-Apr-2019 13:55 -
+<a href="libfdisk-docs/">libfdisk-docs/</a> 09-Apr-2019 13:56 -
+<a href="libmount-docs/">libmount-docs/</a> 09-Apr-2019 13:56 -
+<a href="libsmartcols-docs/">libsmartcols-docs/</a> 09-Apr-2019 13:56 -
+<a href="sha256sums.asc">sha256sums.asc</a> 09-Apr-2019 14:01 2480
+<a href="util-linux-2.33-rc1.tar.gz">util-linux-2.33-rc1.tar.gz</a> 25-Sep-2018 10:34 9M
+<a href="util-linux-2.33-rc1.tar.sign">util-linux-2.33-rc1.tar.sign</a> 25-Sep-2018 10:34 833
+<a href="util-linux-2.33-rc1.tar.xz">util-linux-2.33-rc1.tar.xz</a> 25-Sep-2018 10:34 4M
+<a href="util-linux-2.33-rc2.tar.gz">util-linux-2.33-rc2.tar.gz</a> 19-Oct-2018 11:44 9M
+<a href="util-linux-2.33-rc2.tar.sign">util-linux-2.33-rc2.tar.sign</a> 19-Oct-2018 11:44 833
+<a href="util-linux-2.33-rc2.tar.xz">util-linux-2.33-rc2.tar.xz</a> 19-Oct-2018 11:44 4M
+<a href="util-linux-2.33.1.tar.gz">util-linux-2.33.1.tar.gz</a> 09-Jan-2019 10:28 9M
+<a href="util-linux-2.33.1.tar.sign">util-linux-2.33.1.tar.sign</a> 09-Jan-2019 10:28 833
+<a href="util-linux-2.33.1.tar.xz">util-linux-2.33.1.tar.xz</a> 09-Jan-2019 10:28 4M
+<a href="util-linux-2.33.2.tar.gz">util-linux-2.33.2.tar.gz</a> 09-Apr-2019 13:57 10M
+<a href="util-linux-2.33.2.tar.sign">util-linux-2.33.2.tar.sign</a> 09-Apr-2019 13:57 833
+<a href="util-linux-2.33.2.tar.xz">util-linux-2.33.2.tar.xz</a> 09-Apr-2019 13:57 4M
+<a href="util-linux-2.33.tar.gz">util-linux-2.33.tar.gz</a> 06-Nov-2018 11:25 9M
+<a href="util-linux-2.33.tar.sign">util-linux-2.33.tar.sign</a> 06-Nov-2018 11:25 833
+<a href="util-linux-2.33.tar.xz">util-linux-2.33.tar.xz</a> 06-Nov-2018 11:25 4M
+<a href="v2.33-ChangeLog">v2.33-ChangeLog</a> 06-Nov-2018 11:25 7977
+<a href="v2.33-ChangeLog.sign">v2.33-ChangeLog.sign</a> 06-Nov-2018 11:25 833
+<a href="v2.33-ReleaseNotes">v2.33-ReleaseNotes</a> 06-Nov-2018 11:25 27K
+<a href="v2.33-ReleaseNotes.sign">v2.33-ReleaseNotes.sign</a> 06-Nov-2018 11:25 833
+<a href="v2.33-rc1-ChangeLog">v2.33-rc1-ChangeLog</a> 25-Sep-2018 10:34 210K
+<a href="v2.33-rc1-ChangeLog.sign">v2.33-rc1-ChangeLog.sign</a> 25-Sep-2018 10:34 833
+<a href="v2.33-rc2-ChangeLog">v2.33-rc2-ChangeLog</a> 19-Oct-2018 11:44 18K
+<a href="v2.33-rc2-ChangeLog.sign">v2.33-rc2-ChangeLog.sign</a> 19-Oct-2018 11:44 833
+<a href="v2.33.1-ChangeLog">v2.33.1-ChangeLog</a> 09-Jan-2019 10:28 17K
+<a href="v2.33.1-ChangeLog.sign">v2.33.1-ChangeLog.sign</a> 09-Jan-2019 10:28 833
+<a href="v2.33.1-ReleaseNotes">v2.33.1-ReleaseNotes</a> 09-Jan-2019 10:28 1899
+<a href="v2.33.1-ReleaseNotes.sign">v2.33.1-ReleaseNotes.sign</a> 09-Jan-2019 10:28 833
+<a href="v2.33.2-ChangeLog">v2.33.2-ChangeLog</a> 09-Apr-2019 13:57 21K
+<a href="v2.33.2-ChangeLog.sign">v2.33.2-ChangeLog.sign</a> 09-Apr-2019 13:57 833
+<a href="v2.33.2-ReleaseNotes">v2.33.2-ReleaseNotes</a> 09-Apr-2019 13:57 2566
+<a href="v2.33.2-ReleaseNotes.sign">v2.33.2-ReleaseNotes.sign</a> 09-Apr-2019 13:57 833
+</pre><hr></body>
+</html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.34/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.34/index.html
new file mode 100644
index 000000000..bd9d9c87b
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.34/index.html
@@ -0,0 +1,28 @@
+<html>
+<head><title>Index of /pub/linux/utils/util-linux/v2.34/</title></head>
+<body>
+<h1>Index of /pub/linux/utils/util-linux/v2.34/</h1><hr><pre><a href="../">../</a>
+<a href="libblkid-docs/">libblkid-docs/</a> 14-Jun-2019 10:45 -
+<a href="libfdisk-docs/">libfdisk-docs/</a> 14-Jun-2019 10:45 -
+<a href="libmount-docs/">libmount-docs/</a> 14-Jun-2019 10:45 -
+<a href="libsmartcols-docs/">libsmartcols-docs/</a> 14-Jun-2019 10:46 -
+<a href="sha256sums.asc">sha256sums.asc</a> 14-Jun-2019 10:51 1774
+<a href="util-linux-2.34-rc1.tar.gz">util-linux-2.34-rc1.tar.gz</a> 30-Apr-2019 10:24 10M
+<a href="util-linux-2.34-rc1.tar.sign">util-linux-2.34-rc1.tar.sign</a> 30-Apr-2019 10:24 833
+<a href="util-linux-2.34-rc1.tar.xz">util-linux-2.34-rc1.tar.xz</a> 30-Apr-2019 10:24 5M
+<a href="util-linux-2.34-rc2.tar.gz">util-linux-2.34-rc2.tar.gz</a> 30-May-2019 10:24 10M
+<a href="util-linux-2.34-rc2.tar.sign">util-linux-2.34-rc2.tar.sign</a> 30-May-2019 10:24 833
+<a href="util-linux-2.34-rc2.tar.xz">util-linux-2.34-rc2.tar.xz</a> 30-May-2019 10:24 5M
+<a href="util-linux-2.34.tar.gz">util-linux-2.34.tar.gz</a> 14-Jun-2019 10:46 10M
+<a href="util-linux-2.34.tar.sign">util-linux-2.34.tar.sign</a> 14-Jun-2019 10:46 833
+<a href="util-linux-2.34.tar.xz">util-linux-2.34.tar.xz</a> 14-Jun-2019 10:46 5M
+<a href="v2.34-ChangeLog">v2.34-ChangeLog</a> 14-Jun-2019 10:46 14K
+<a href="v2.34-ChangeLog.sign">v2.34-ChangeLog.sign</a> 14-Jun-2019 10:46 833
+<a href="v2.34-ReleaseNotes">v2.34-ReleaseNotes</a> 14-Jun-2019 10:46 27K
+<a href="v2.34-ReleaseNotes.sign">v2.34-ReleaseNotes.sign</a> 14-Jun-2019 10:46 833
+<a href="v2.34-rc1-ChangeLog">v2.34-rc1-ChangeLog</a> 30-Apr-2019 10:24 167K
+<a href="v2.34-rc1-ChangeLog.sign">v2.34-rc1-ChangeLog.sign</a> 30-Apr-2019 10:24 833
+<a href="v2.34-rc2-ChangeLog">v2.34-rc2-ChangeLog</a> 30-May-2019 10:24 57K
+<a href="v2.34-rc2-ChangeLog.sign">v2.34-rc2-ChangeLog.sign</a> 30-May-2019 10:24 833
+</pre><hr></body>
+</html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.35/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.35/index.html
new file mode 100644
index 000000000..aa714d391
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/pub/linux/utils/util-linux/v2.35/index.html
@@ -0,0 +1,18 @@
+<html>
+<head><title>Index of /pub/linux/utils/util-linux/v2.35/</title></head>
+<body>
+<h1>Index of /pub/linux/utils/util-linux/v2.35/</h1><hr><pre><a href="../">../</a>
+<a href="libblkid-docs/">libblkid-docs/</a> 11-Dec-2019 10:04 -
+<a href="libfdisk-docs/">libfdisk-docs/</a> 11-Dec-2019 10:05 -
+<a href="libmount-docs/">libmount-docs/</a> 11-Dec-2019 10:05 -
+<a href="libsmartcols-docs/">libsmartcols-docs/</a> 11-Dec-2019 10:05 -
+<a href="sha256sums.asc">sha256sums.asc</a> 11-Dec-2019 10:11 1242
+<a href="util-linux-2.35-rc1.tar.gz">util-linux-2.35-rc1.tar.gz</a> 11-Dec-2019 10:06 10M
+<a href="util-linux-2.35-rc1.tar.sign">util-linux-2.35-rc1.tar.sign</a> 11-Dec-2019 10:06 833
+<a href="util-linux-2.35-rc1.tar.xz">util-linux-2.35-rc1.tar.xz</a> 11-Dec-2019 10:06 5M
+<a href="v2.35-ReleaseNotes">v2.35-ReleaseNotes</a> 11-Dec-2019 10:06 21K
+<a href="v2.35-ReleaseNotes.sign">v2.35-ReleaseNotes.sign</a> 11-Dec-2019 10:06 833
+<a href="v2.35-rc1-ChangeLog">v2.35-rc1-ChangeLog</a> 11-Dec-2019 10:06 228K
+<a href="v2.35-rc1-ChangeLog.sign">v2.35-rc1-ChangeLog.sign</a> 11-Dec-2019 10:06 833
+</pre><hr></body>
+</html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/releases/eglibc/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/releases/eglibc/index.html
new file mode 100644
index 000000000..b26794021
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/releases/eglibc/index.html
@@ -0,0 +1,21 @@
+<html>
+<head><title>Index of /releases/eglibc/</title></head>
+<body bgcolor="white">
+<h1>Index of /releases/eglibc/</h1><hr><pre><a href="../">../</a>
+<a href="eglibc-2.16-svnr21224.tar.bz2">eglibc-2.16-svnr21224.tar.bz2</a> 17-Oct-2012 18:01 17310656
+<a href="eglibc-2.16-svnr21224.tar.bz2.md5">eglibc-2.16-svnr21224.tar.bz2.md5</a> 17-Oct-2012 21:53 64
+<a href="eglibc-2.16-svnr21224.tar.bz2.sha1">eglibc-2.16-svnr21224.tar.bz2.sha1</a> 17-Oct-2012 21:53 72
+<a href="eglibc-2.17-svnr22064.tar.bz2">eglibc-2.17-svnr22064.tar.bz2</a> 04-Jan-2013 05:44 17565519
+<a href="eglibc-2.17-svnr22064.tar.bz2.asc">eglibc-2.17-svnr22064.tar.bz2.asc</a> 04-Jan-2013 05:45 302
+<a href="eglibc-2.17-svnr22064.tar.bz2.md5">eglibc-2.17-svnr22064.tar.bz2.md5</a> 04-Jan-2013 05:44 64
+<a href="eglibc-2.17-svnr22064.tar.bz2.sha1">eglibc-2.17-svnr22064.tar.bz2.sha1</a> 04-Jan-2013 05:44 72
+<a href="eglibc-2.18-svnr23787.tar.bz2">eglibc-2.18-svnr23787.tar.bz2</a> 21-Aug-2013 05:36 17862773
+<a href="eglibc-2.18-svnr23787.tar.bz2.asc">eglibc-2.18-svnr23787.tar.bz2.asc</a> 21-Aug-2013 05:36 302
+<a href="eglibc-2.18-svnr23787.tar.bz2.md5">eglibc-2.18-svnr23787.tar.bz2.md5</a> 21-Aug-2013 05:36 64
+<a href="eglibc-2.18-svnr23787.tar.bz2.sha1">eglibc-2.18-svnr23787.tar.bz2.sha1</a> 21-Aug-2013 05:36 72
+<a href="eglibc-2.19-svnr25243.tar.bz2">eglibc-2.19-svnr25243.tar.bz2</a> 08-Feb-2014 10:06 18873620
+<a href="eglibc-2.19-svnr25243.tar.bz2.asc">eglibc-2.19-svnr25243.tar.bz2.asc</a> 08-Feb-2014 10:06 285
+<a href="eglibc-2.19-svnr25243.tar.bz2.md5">eglibc-2.19-svnr25243.tar.bz2.md5</a> 08-Feb-2014 10:06 64
+<a href="eglibc-2.19-svnr25243.tar.bz2.sha1">eglibc-2.19-svnr25243.tar.bz2.sha1</a> 08-Feb-2014 10:06 72
+</pre><hr></body>
+</html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/releases/gnu-config/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/releases/gnu-config/index.html
new file mode 100644
index 000000000..051aa4812
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/releases/gnu-config/index.html
@@ -0,0 +1,9 @@
+<html>
+<head><title>Index of /releases/gnu-config/</title></head>
+<body bgcolor="white">
+<h1>Index of /releases/gnu-config/</h1><hr><pre><a href="../">../</a>
+<a href="SHA256SUM">SHA256SUM</a> 03-Oct-2012 17:23 190
+<a href="gnu-config-20120814.tar.bz2">gnu-config-20120814.tar.bz2</a> 18-Sep-2012 09:28 43026
+<a href="gnu-config-yocto-20111111.tgz">gnu-config-yocto-20111111.tgz</a> 08-May-2012 21:11 48762
+</pre><hr></body>
+</html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/releases/individual/xserver/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/releases/individual/xserver/index.html
new file mode 100644
index 000000000..72e0d65e0
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/releases/individual/xserver/index.html
@@ -0,0 +1,609 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /releases/individual/xserver</title>
+ </head>
+ <body>
+<h1>Index of /releases/individual/xserver</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/releases/individual/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.0.1.tar.bz2">xorg-server-1.0.1.tar.bz2</a></td><td align="right">2006-01-18 23:51 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.0.1.tar.gz">xorg-server-1.0.1.tar.gz</a></td><td align="right">2006-01-18 23:51 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.0.2.tar.bz2">xorg-server-1.0.2.tar.bz2</a></td><td align="right">2006-03-20 14:01 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.0.2.tar.gz">xorg-server-1.0.2.tar.gz</a></td><td align="right">2006-03-20 14:02 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.0.99.2.tar.bz2">xorg-server-1.0.99.2.tar.bz2</a></td><td align="right">2006-04-02 00:47 </td><td align="right">6.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.0.99.2.tar.gz">xorg-server-1.0.99.2.tar.gz</a></td><td align="right">2006-04-02 00:48 </td><td align="right">8.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.0.99.901.tar.bz2">xorg-server-1.0.99.901.tar.bz2</a></td><td align="right">2006-04-07 22:51 </td><td align="right">6.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.0.99.901.tar.gz">xorg-server-1.0.99.901.tar.gz</a></td><td align="right">2006-04-07 22:51 </td><td align="right">8.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.0.99.902.tar.bz2">xorg-server-1.0.99.902.tar.bz2</a></td><td align="right">2006-04-28 23:17 </td><td align="right">6.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.0.99.902.tar.gz">xorg-server-1.0.99.902.tar.gz</a></td><td align="right">2006-04-28 23:16 </td><td align="right">8.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.0.99.903.tar.bz2">xorg-server-1.0.99.903.tar.bz2</a></td><td align="right">2006-05-12 20:54 </td><td align="right">6.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.0.99.903.tar.gz">xorg-server-1.0.99.903.tar.gz</a></td><td align="right">2006-05-12 20:52 </td><td align="right">8.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.1.0.tar.bz2">xorg-server-1.1.0.tar.bz2</a></td><td align="right">2006-05-22 23:31 </td><td align="right">6.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.1.0.tar.gz">xorg-server-1.1.0.tar.gz</a></td><td align="right">2006-05-22 23:29 </td><td align="right">8.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.1.1.tar.bz2">xorg-server-1.1.1.tar.bz2</a></td><td align="right">2006-07-08 00:57 </td><td align="right">6.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.1.1.tar.gz">xorg-server-1.1.1.tar.gz</a></td><td align="right">2006-07-08 00:59 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.1.99.901.tar.bz2">xorg-server-1.1.99.901.tar.bz2</a></td><td align="right">2006-10-13 23:06 </td><td align="right">6.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.1.99.901.tar.gz">xorg-server-1.1.99.901.tar.gz</a></td><td align="right">2006-10-13 23:08 </td><td align="right">8.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.1.99.902.tar.bz2">xorg-server-1.1.99.902.tar.bz2</a></td><td align="right">2006-11-13 22:04 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.1.99.902.tar.gz">xorg-server-1.1.99.902.tar.gz</a></td><td align="right">2006-11-13 22:06 </td><td align="right">7.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.1.99.903.tar.bz2">xorg-server-1.1.99.903.tar.bz2</a></td><td align="right">2006-12-02 00:14 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.1.99.903.tar.gz">xorg-server-1.1.99.903.tar.gz</a></td><td align="right">2006-12-02 00:17 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.2.0.tar.bz2">xorg-server-1.2.0.tar.bz2</a></td><td align="right">2007-01-23 06:15 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.2.0.tar.gz">xorg-server-1.2.0.tar.gz</a></td><td align="right">2007-01-23 06:17 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.2.99.0.tar.bz2">xorg-server-1.2.99.0.tar.bz2</a></td><td align="right">2006-11-02 03:15 </td><td align="right">5.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.2.99.0.tar.gz">xorg-server-1.2.99.0.tar.gz</a></td><td align="right">2006-11-02 03:17 </td><td align="right">7.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.2.99.901.tar.bz2">xorg-server-1.2.99.901.tar.bz2</a></td><td align="right">2007-03-05 05:11 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.2.99.901.tar.gz">xorg-server-1.2.99.901.tar.gz</a></td><td align="right">2007-03-05 05:14 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.2.99.902.tar.bz2">xorg-server-1.2.99.902.tar.bz2</a></td><td align="right">2007-03-14 19:38 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.2.99.902.tar.gz">xorg-server-1.2.99.902.tar.gz</a></td><td align="right">2007-03-14 19:43 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.2.99.903.tar.bz2">xorg-server-1.2.99.903.tar.bz2</a></td><td align="right">2007-03-27 05:01 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.2.99.903.tar.gz">xorg-server-1.2.99.903.tar.gz</a></td><td align="right">2007-03-27 05:05 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.2.99.904.tar.bz2">xorg-server-1.2.99.904.tar.bz2</a></td><td align="right">2007-04-06 06:31 </td><td align="right">4.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.2.99.904.tar.gz">xorg-server-1.2.99.904.tar.gz</a></td><td align="right">2007-04-06 06:28 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.2.99.905.tar.bz2">xorg-server-1.2.99.905.tar.bz2</a></td><td align="right">2007-04-06 07:01 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.2.99.905.tar.gz">xorg-server-1.2.99.905.tar.gz</a></td><td align="right">2007-04-06 06:57 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.3.0.0.tar.bz2">xorg-server-1.3.0.0.tar.bz2</a></td><td align="right">2007-04-20 02:45 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.3.0.0.tar.gz">xorg-server-1.3.0.0.tar.gz</a></td><td align="right">2007-04-20 02:42 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.3.99.0.tar.bz2">xorg-server-1.3.99.0.tar.bz2</a></td><td align="right">2007-08-01 05:38 </td><td align="right">6.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.3.99.0.tar.gz">xorg-server-1.3.99.0.tar.gz</a></td><td align="right">2007-08-01 05:36 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.3.99.2.tar.bz2">xorg-server-1.3.99.2.tar.bz2</a></td><td align="right">2007-09-01 03:12 </td><td align="right">5.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.3.99.2.tar.gz">xorg-server-1.3.99.2.tar.gz</a></td><td align="right">2007-09-01 03:10 </td><td align="right">7.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.4.0.90.tar.bz2">xorg-server-1.4.0.90.tar.bz2</a></td><td align="right">2007-12-12 20:44 </td><td align="right">6.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.4.0.90.tar.gz">xorg-server-1.4.0.90.tar.gz</a></td><td align="right">2007-12-12 20:43 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.4.1.tar.bz2">xorg-server-1.4.1.tar.bz2</a></td><td align="right">2008-06-10 15:57 </td><td align="right">6.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.4.1.tar.gz">xorg-server-1.4.1.tar.gz</a></td><td align="right">2008-06-10 15:56 </td><td align="right">8.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.4.2.tar.bz2">xorg-server-1.4.2.tar.bz2</a></td><td align="right">2008-06-11 15:08 </td><td align="right">5.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.4.2.tar.gz">xorg-server-1.4.2.tar.gz</a></td><td align="right">2008-06-11 15:08 </td><td align="right">7.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.4.99.901.tar.bz2">xorg-server-1.4.99.901.tar.bz2</a></td><td align="right">2008-03-06 05:25 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.4.99.901.tar.gz">xorg-server-1.4.99.901.tar.gz</a></td><td align="right">2008-03-06 05:23 </td><td align="right">7.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.4.99.902.tar.bz2">xorg-server-1.4.99.902.tar.bz2</a></td><td align="right">2008-05-22 19:16 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.4.99.902.tar.gz">xorg-server-1.4.99.902.tar.gz</a></td><td align="right">2008-05-22 19:16 </td><td align="right">7.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.4.99.904.tar.bz2">xorg-server-1.4.99.904.tar.bz2</a></td><td align="right">2008-06-30 15:42 </td><td align="right">5.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.4.99.904.tar.gz">xorg-server-1.4.99.904.tar.gz</a></td><td align="right">2008-06-30 15:42 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.4.99.905.tar.bz2">xorg-server-1.4.99.905.tar.bz2</a></td><td align="right">2008-06-30 20:31 </td><td align="right">5.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.4.99.905.tar.gz">xorg-server-1.4.99.905.tar.gz</a></td><td align="right">2008-06-30 20:31 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.4.99.906.tar.bz2">xorg-server-1.4.99.906.tar.bz2</a></td><td align="right">2008-07-23 18:55 </td><td align="right">5.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.4.99.906.tar.gz">xorg-server-1.4.99.906.tar.gz</a></td><td align="right">2008-07-23 18:55 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.4.tar.bz2">xorg-server-1.4.tar.bz2</a></td><td align="right">2007-09-06 09:23 </td><td align="right">5.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.4.tar.gz">xorg-server-1.4.tar.gz</a></td><td align="right">2007-09-06 09:22 </td><td align="right">7.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.0.tar.bz2">xorg-server-1.5.0.tar.bz2</a></td><td align="right">2008-09-03 23:16 </td><td align="right">5.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.0.tar.gz">xorg-server-1.5.0.tar.gz</a></td><td align="right">2008-09-03 23:16 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.1.tar.bz2">xorg-server-1.5.1.tar.bz2</a></td><td align="right">2008-09-23 19:15 </td><td align="right">5.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.1.tar.gz">xorg-server-1.5.1.tar.gz</a></td><td align="right">2008-09-23 19:15 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.2.tar.bz2">xorg-server-1.5.2.tar.bz2</a></td><td align="right">2008-10-10 19:27 </td><td align="right">5.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.2.tar.gz">xorg-server-1.5.2.tar.gz</a></td><td align="right">2008-10-10 19:27 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.3.tar.bz2">xorg-server-1.5.3.tar.bz2</a></td><td align="right">2008-11-05 20:49 </td><td align="right">5.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.3.tar.gz">xorg-server-1.5.3.tar.gz</a></td><td align="right">2008-11-05 20:49 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.99.1.tar.bz2">xorg-server-1.5.99.1.tar.bz2</a></td><td align="right">2008-11-26 07:29 </td><td align="right">4.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.99.1.tar.gz">xorg-server-1.5.99.1.tar.gz</a></td><td align="right">2008-11-26 07:26 </td><td align="right">5.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.99.2.tar.bz2">xorg-server-1.5.99.2.tar.bz2</a></td><td align="right">2008-12-03 08:16 </td><td align="right">4.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.99.2.tar.gz">xorg-server-1.5.99.2.tar.gz</a></td><td align="right">2008-12-03 08:09 </td><td align="right">5.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.99.3.tar.bz2">xorg-server-1.5.99.3.tar.bz2</a></td><td align="right">2008-12-10 06:28 </td><td align="right">4.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.99.3.tar.gz">xorg-server-1.5.99.3.tar.gz</a></td><td align="right">2008-12-10 06:25 </td><td align="right">5.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.99.901.tar.bz2">xorg-server-1.5.99.901.tar.bz2</a></td><td align="right">2009-01-12 21:12 </td><td align="right">4.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.99.901.tar.gz">xorg-server-1.5.99.901.tar.gz</a></td><td align="right">2009-01-12 21:12 </td><td align="right">6.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.99.902.tar.bz2">xorg-server-1.5.99.902.tar.bz2</a></td><td align="right">2009-01-31 05:27 </td><td align="right">4.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.99.902.tar.gz">xorg-server-1.5.99.902.tar.gz</a></td><td align="right">2009-01-31 05:24 </td><td align="right">6.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.99.903.tar.bz2">xorg-server-1.5.99.903.tar.bz2</a></td><td align="right">2009-02-18 06:35 </td><td align="right">4.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.5.99.903.tar.gz">xorg-server-1.5.99.903.tar.gz</a></td><td align="right">2009-02-18 06:32 </td><td align="right">6.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.0.tar.bz2">xorg-server-1.6.0.tar.bz2</a></td><td align="right">2009-02-25 20:25 </td><td align="right">4.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.0.tar.gz">xorg-server-1.6.0.tar.gz</a></td><td align="right">2009-02-25 20:19 </td><td align="right">6.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.1.901.tar.bz2">xorg-server-1.6.1.901.tar.bz2</a></td><td align="right">2009-05-09 05:46 </td><td align="right">4.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.1.901.tar.gz">xorg-server-1.6.1.901.tar.gz</a></td><td align="right">2009-05-09 05:42 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.1.902.tar.bz2">xorg-server-1.6.1.902.tar.bz2</a></td><td align="right">2009-06-29 23:05 </td><td align="right">4.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.1.902.tar.gz">xorg-server-1.6.1.902.tar.gz</a></td><td align="right">2009-06-29 23:02 </td><td align="right">5.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.1.tar.bz2">xorg-server-1.6.1.tar.bz2</a></td><td align="right">2009-04-14 20:09 </td><td align="right">4.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.1.tar.gz">xorg-server-1.6.1.tar.gz</a></td><td align="right">2009-04-14 20:09 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.2.901.tar.bz2">xorg-server-1.6.2.901.tar.bz2</a></td><td align="right">2009-07-26 21:42 </td><td align="right">4.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.2.901.tar.gz">xorg-server-1.6.2.901.tar.gz</a></td><td align="right">2009-07-26 21:41 </td><td align="right">5.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.2.tar.bz2">xorg-server-1.6.2.tar.bz2</a></td><td align="right">2009-07-07 23:40 </td><td align="right">4.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.2.tar.gz">xorg-server-1.6.2.tar.gz</a></td><td align="right">2009-07-07 23:39 </td><td align="right">5.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.3.901.tar.bz2">xorg-server-1.6.3.901.tar.bz2</a></td><td align="right">2009-08-26 05:55 </td><td align="right">4.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.3.901.tar.gz">xorg-server-1.6.3.901.tar.gz</a></td><td align="right">2009-08-26 05:54 </td><td align="right">5.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.3.tar.bz2">xorg-server-1.6.3.tar.bz2</a></td><td align="right">2009-08-01 06:45 </td><td align="right">4.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.3.tar.gz">xorg-server-1.6.3.tar.gz</a></td><td align="right">2009-08-01 06:42 </td><td align="right">5.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.4.901.tar.bz2">xorg-server-1.6.4.901.tar.bz2</a></td><td align="right">2009-10-03 07:40 </td><td align="right">4.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.4.901.tar.gz">xorg-server-1.6.4.901.tar.gz</a></td><td align="right">2009-10-03 07:44 </td><td align="right">5.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.4.tar.bz2">xorg-server-1.6.4.tar.bz2</a></td><td align="right">2009-09-28 02:47 </td><td align="right">4.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.4.tar.gz">xorg-server-1.6.4.tar.gz</a></td><td align="right">2009-09-28 02:45 </td><td align="right">5.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.5.tar.bz2">xorg-server-1.6.5.tar.bz2</a></td><td align="right">2009-10-12 05:27 </td><td align="right">4.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.5.tar.gz">xorg-server-1.6.5.tar.gz</a></td><td align="right">2009-10-12 05:26 </td><td align="right">5.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.99.900.tar.bz2">xorg-server-1.6.99.900.tar.bz2</a></td><td align="right">2009-09-04 07:02 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.99.900.tar.gz">xorg-server-1.6.99.900.tar.gz</a></td><td align="right">2009-09-04 07:02 </td><td align="right">6.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.99.901.tar.bz2">xorg-server-1.6.99.901.tar.bz2</a></td><td align="right">2009-09-14 10:26 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.99.901.tar.gz">xorg-server-1.6.99.901.tar.gz</a></td><td align="right">2009-09-14 10:23 </td><td align="right">6.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.99.902.tar.bz2">xorg-server-1.6.99.902.tar.bz2</a></td><td align="right">2009-09-22 04:53 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.99.902.tar.gz">xorg-server-1.6.99.902.tar.gz</a></td><td align="right">2009-09-22 04:50 </td><td align="right">6.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.99.903.tar.bz2">xorg-server-1.6.99.903.tar.bz2</a></td><td align="right">2009-09-28 11:25 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.6.99.903.tar.gz">xorg-server-1.6.99.903.tar.gz</a></td><td align="right">2009-09-28 11:22 </td><td align="right">6.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.0.901.tar.bz2">xorg-server-1.7.0.901.tar.bz2</a></td><td align="right">2009-10-12 04:40 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.0.901.tar.gz">xorg-server-1.7.0.901.tar.gz</a></td><td align="right">2009-10-12 04:39 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.0.902.tar.bz2">xorg-server-1.7.0.902.tar.bz2</a></td><td align="right">2009-10-19 02:10 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.0.902.tar.gz">xorg-server-1.7.0.902.tar.gz</a></td><td align="right">2009-10-19 02:10 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.0.tar.bz2">xorg-server-1.7.0.tar.bz2</a></td><td align="right">2009-10-02 06:17 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.0.tar.gz">xorg-server-1.7.0.tar.gz</a></td><td align="right">2009-10-02 06:16 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.1.901.tar.bz2">xorg-server-1.7.1.901.tar.bz2</a></td><td align="right">2009-11-06 05:11 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.1.901.tar.gz">xorg-server-1.7.1.901.tar.gz</a></td><td align="right">2009-11-06 05:11 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.1.902.tar.bz2">xorg-server-1.7.1.902.tar.bz2</a></td><td align="right">2009-11-20 05:52 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.1.902.tar.gz">xorg-server-1.7.1.902.tar.gz</a></td><td align="right">2009-11-20 05:51 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.1.tar.bz2">xorg-server-1.7.1.tar.bz2</a></td><td align="right">2009-10-23 05:40 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.1.tar.gz">xorg-server-1.7.1.tar.gz</a></td><td align="right">2009-10-23 05:39 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.2.tar.bz2">xorg-server-1.7.2.tar.bz2</a></td><td align="right">2009-11-27 05:46 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.2.tar.gz">xorg-server-1.7.2.tar.gz</a></td><td align="right">2009-11-27 05:45 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.3.901.tar.bz2">xorg-server-1.7.3.901.tar.bz2</a></td><td align="right">2009-12-11 06:40 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.3.901.tar.gz">xorg-server-1.7.3.901.tar.gz</a></td><td align="right">2009-12-11 06:40 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.3.902.tar.bz2">xorg-server-1.7.3.902.tar.bz2</a></td><td align="right">2009-12-26 01:08 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.3.902.tar.gz">xorg-server-1.7.3.902.tar.gz</a></td><td align="right">2009-12-26 01:05 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.3.tar.bz2">xorg-server-1.7.3.tar.bz2</a></td><td align="right">2009-12-03 03:38 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.3.tar.gz">xorg-server-1.7.3.tar.gz</a></td><td align="right">2009-12-03 03:37 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.4.901.tar.bz2">xorg-server-1.7.4.901.tar.bz2</a></td><td align="right">2010-01-23 00:16 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.4.901.tar.gz">xorg-server-1.7.4.901.tar.gz</a></td><td align="right">2010-01-23 00:16 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.4.902.tar.bz2">xorg-server-1.7.4.902.tar.bz2</a></td><td align="right">2010-02-05 08:37 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.4.902.tar.gz">xorg-server-1.7.4.902.tar.gz</a></td><td align="right">2010-02-05 08:32 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.4.tar.bz2">xorg-server-1.7.4.tar.bz2</a></td><td align="right">2010-01-08 01:09 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.4.tar.gz">xorg-server-1.7.4.tar.gz</a></td><td align="right">2010-01-08 01:09 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.5.901.tar.bz2">xorg-server-1.7.5.901.tar.bz2</a></td><td align="right">2010-03-05 00:26 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.5.901.tar.gz">xorg-server-1.7.5.901.tar.gz</a></td><td align="right">2010-03-05 00:23 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.5.902.tar.bz2">xorg-server-1.7.5.902.tar.bz2</a></td><td align="right">2010-03-12 07:07 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.5.902.tar.gz">xorg-server-1.7.5.902.tar.gz</a></td><td align="right">2010-03-12 07:02 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.5.tar.bz2">xorg-server-1.7.5.tar.bz2</a></td><td align="right">2010-02-16 03:54 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.5.tar.gz">xorg-server-1.7.5.tar.gz</a></td><td align="right">2010-02-16 03:50 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.6.901.tar.bz2">xorg-server-1.7.6.901.tar.bz2</a></td><td align="right">2010-04-12 02:12 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.6.901.tar.gz">xorg-server-1.7.6.901.tar.gz</a></td><td align="right">2010-04-12 02:12 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.6.902.tar.bz2">xorg-server-1.7.6.902.tar.bz2</a></td><td align="right">2010-04-21 00:25 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.6.902.tar.gz">xorg-server-1.7.6.902.tar.gz</a></td><td align="right">2010-04-21 00:25 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.6.tar.bz2">xorg-server-1.7.6.tar.bz2</a></td><td align="right">2010-03-17 01:56 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.6.tar.gz">xorg-server-1.7.6.tar.gz</a></td><td align="right">2010-03-17 01:56 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.7.tar.bz2">xorg-server-1.7.7.tar.bz2</a></td><td align="right">2010-05-04 07:51 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.7.tar.gz">xorg-server-1.7.7.tar.gz</a></td><td align="right">2010-05-04 07:48 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.99.1.tar.bz2">xorg-server-1.7.99.1.tar.bz2</a></td><td align="right">2009-10-21 16:15 </td><td align="right">4.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.99.1.tar.gz">xorg-server-1.7.99.1.tar.gz</a></td><td align="right">2009-10-21 16:15 </td><td align="right">6.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.99.2.tar.bz2">xorg-server-1.7.99.2.tar.bz2</a></td><td align="right">2009-12-20 03:50 </td><td align="right">4.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.99.2.tar.gz">xorg-server-1.7.99.2.tar.gz</a></td><td align="right">2009-12-20 03:48 </td><td align="right">6.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.99.901.tar.bz2">xorg-server-1.7.99.901.tar.bz2</a></td><td align="right">2010-02-12 22:00 </td><td align="right">4.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.99.901.tar.gz">xorg-server-1.7.99.901.tar.gz</a></td><td align="right">2010-02-12 21:59 </td><td align="right">6.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.99.902.tar.bz2">xorg-server-1.7.99.902.tar.bz2</a></td><td align="right">2010-03-22 05:42 </td><td align="right">4.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.7.99.902.tar.gz">xorg-server-1.7.99.902.tar.gz</a></td><td align="right">2010-03-22 05:41 </td><td align="right">6.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.0.901.tar.bz2">xorg-server-1.8.0.901.tar.bz2</a></td><td align="right">2010-04-27 05:08 </td><td align="right">4.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.0.901.tar.gz">xorg-server-1.8.0.901.tar.gz</a></td><td align="right">2010-04-27 05:05 </td><td align="right">6.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.0.902.tar.bz2">xorg-server-1.8.0.902.tar.bz2</a></td><td align="right">2010-05-04 00:39 </td><td align="right">4.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.0.902.tar.gz">xorg-server-1.8.0.902.tar.gz</a></td><td align="right">2010-05-04 00:36 </td><td align="right">6.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.0.tar.bz2">xorg-server-1.8.0.tar.bz2</a></td><td align="right">2010-04-02 07:30 </td><td align="right">4.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.0.tar.gz">xorg-server-1.8.0.tar.gz</a></td><td align="right">2010-04-02 07:28 </td><td align="right">6.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.1.901.tar.bz2">xorg-server-1.8.1.901.tar.bz2</a></td><td align="right">2010-06-02 00:07 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.1.901.tar.gz">xorg-server-1.8.1.901.tar.gz</a></td><td align="right">2010-06-02 00:07 </td><td align="right">6.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.1.902.tar.bz2">xorg-server-1.8.1.902.tar.bz2</a></td><td align="right">2010-06-21 02:07 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.1.902.tar.gz">xorg-server-1.8.1.902.tar.gz</a></td><td align="right">2010-06-21 02:07 </td><td align="right">6.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.1.tar.bz2">xorg-server-1.8.1.tar.bz2</a></td><td align="right">2010-05-11 21:52 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.1.tar.gz">xorg-server-1.8.1.tar.gz</a></td><td align="right">2010-05-11 21:52 </td><td align="right">6.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.2.tar.bz2">xorg-server-1.8.2.tar.bz2</a></td><td align="right">2010-07-01 05:29 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.2.tar.gz">xorg-server-1.8.2.tar.gz</a></td><td align="right">2010-07-01 05:29 </td><td align="right">6.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.99.901.tar.bz2">xorg-server-1.8.99.901.tar.bz2</a></td><td align="right">2010-06-15 21:19 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.99.901.tar.gz">xorg-server-1.8.99.901.tar.gz</a></td><td align="right">2010-06-15 21:18 </td><td align="right">6.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.99.902.tar.bz2">xorg-server-1.8.99.902.tar.bz2</a></td><td align="right">2010-06-22 19:05 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.99.902.tar.gz">xorg-server-1.8.99.902.tar.gz</a></td><td align="right">2010-06-22 19:04 </td><td align="right">6.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.99.903.tar.bz2">xorg-server-1.8.99.903.tar.bz2</a></td><td align="right">2010-06-22 19:33 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.99.903.tar.gz">xorg-server-1.8.99.903.tar.gz</a></td><td align="right">2010-06-22 19:32 </td><td align="right">6.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.99.904.tar.bz2">xorg-server-1.8.99.904.tar.bz2</a></td><td align="right">2010-07-01 13:46 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.99.904.tar.gz">xorg-server-1.8.99.904.tar.gz</a></td><td align="right">2010-07-01 13:39 </td><td align="right">6.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.99.905.tar.bz2">xorg-server-1.8.99.905.tar.bz2</a></td><td align="right">2010-07-14 19:58 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.99.905.tar.gz">xorg-server-1.8.99.905.tar.gz</a></td><td align="right">2010-07-14 19:58 </td><td align="right">6.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.99.906.tar.bz2">xorg-server-1.8.99.906.tar.bz2</a></td><td align="right">2010-08-13 06:22 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.8.99.906.tar.gz">xorg-server-1.8.99.906.tar.gz</a></td><td align="right">2010-08-13 06:20 </td><td align="right">6.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.0.901.tar.bz2">xorg-server-1.9.0.901.tar.bz2</a></td><td align="right">2010-10-01 21:22 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.0.901.tar.gz">xorg-server-1.9.0.901.tar.gz</a></td><td align="right">2010-10-01 21:21 </td><td align="right">6.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.0.902.tar.bz2">xorg-server-1.9.0.902.tar.bz2</a></td><td align="right">2010-10-15 18:34 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.0.902.tar.gz">xorg-server-1.9.0.902.tar.gz</a></td><td align="right">2010-10-15 18:33 </td><td align="right">6.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.0.tar.bz2">xorg-server-1.9.0.tar.bz2</a></td><td align="right">2010-08-21 00:46 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.0.tar.gz">xorg-server-1.9.0.tar.gz</a></td><td align="right">2010-08-21 00:45 </td><td align="right">6.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.1.tar.bz2">xorg-server-1.9.1.tar.bz2</a></td><td align="right">2010-10-24 03:22 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.1.tar.gz">xorg-server-1.9.1.tar.gz</a></td><td align="right">2010-10-24 03:22 </td><td align="right">6.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.2.901.tar.bz2">xorg-server-1.9.2.901.tar.bz2</a></td><td align="right">2010-11-14 00:12 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.2.901.tar.gz">xorg-server-1.9.2.901.tar.gz</a></td><td align="right">2010-11-14 00:12 </td><td align="right">6.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.2.902.tar.bz2">xorg-server-1.9.2.902.tar.bz2</a></td><td align="right">2010-12-04 19:25 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.2.902.tar.gz">xorg-server-1.9.2.902.tar.gz</a></td><td align="right">2010-12-04 19:25 </td><td align="right">6.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.2.tar.bz2">xorg-server-1.9.2.tar.bz2</a></td><td align="right">2010-10-31 23:15 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.2.tar.gz">xorg-server-1.9.2.tar.gz</a></td><td align="right">2010-10-31 23:15 </td><td align="right">6.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.3.901.tar.bz2">xorg-server-1.9.3.901.tar.bz2</a></td><td align="right">2011-01-08 21:37 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.3.901.tar.gz">xorg-server-1.9.3.901.tar.gz</a></td><td align="right">2011-01-08 21:37 </td><td align="right">6.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.3.902.tar.bz2">xorg-server-1.9.3.902.tar.bz2</a></td><td align="right">2011-01-31 01:16 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.3.902.tar.gz">xorg-server-1.9.3.902.tar.gz</a></td><td align="right">2011-01-31 01:16 </td><td align="right">6.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.3.tar.bz2">xorg-server-1.9.3.tar.bz2</a></td><td align="right">2010-12-13 20:05 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.3.tar.gz">xorg-server-1.9.3.tar.gz</a></td><td align="right">2010-12-13 20:05 </td><td align="right">6.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.4.901.tar.bz2">xorg-server-1.9.4.901.tar.bz2</a></td><td align="right">2011-03-04 23:21 </td><td align="right">4.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.4.901.tar.gz">xorg-server-1.9.4.901.tar.gz</a></td><td align="right">2011-03-04 23:21 </td><td align="right">6.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.4.tar.bz2">xorg-server-1.9.4.tar.bz2</a></td><td align="right">2011-02-04 20:03 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.4.tar.gz">xorg-server-1.9.4.tar.gz</a></td><td align="right">2011-02-04 20:02 </td><td align="right">6.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.5.tar.bz2">xorg-server-1.9.5.tar.bz2</a></td><td align="right">2011-03-17 21:49 </td><td align="right">4.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.5.tar.gz">xorg-server-1.9.5.tar.gz</a></td><td align="right">2011-03-17 21:49 </td><td align="right">6.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.99.901.tar.bz2">xorg-server-1.9.99.901.tar.bz2</a></td><td align="right">2010-12-07 04:57 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.99.901.tar.gz">xorg-server-1.9.99.901.tar.gz</a></td><td align="right">2010-12-07 04:56 </td><td align="right">6.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.99.902.tar.bz2">xorg-server-1.9.99.902.tar.bz2</a></td><td align="right">2011-02-18 22:50 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.99.902.tar.gz">xorg-server-1.9.99.902.tar.gz</a></td><td align="right">2011-02-18 22:49 </td><td align="right">6.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.99.903.tar.bz2">xorg-server-1.9.99.903.tar.bz2</a></td><td align="right">2011-02-25 06:46 </td><td align="right">5.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.9.99.903.tar.gz">xorg-server-1.9.99.903.tar.gz</a></td><td align="right">2011-02-25 06:44 </td><td align="right">6.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.0.901.tar.bz2">xorg-server-1.10.0.901.tar.bz2</a></td><td align="right">2011-03-29 07:36 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.0.901.tar.gz">xorg-server-1.10.0.901.tar.gz</a></td><td align="right">2011-03-29 07:36 </td><td align="right">6.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.0.902.tar.bz2">xorg-server-1.10.0.902.tar.bz2</a></td><td align="right">2011-04-08 23:49 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.0.902.tar.gz">xorg-server-1.10.0.902.tar.gz</a></td><td align="right">2011-04-08 23:48 </td><td align="right">6.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.0.tar.bz2">xorg-server-1.10.0.tar.bz2</a></td><td align="right">2011-02-26 05:49 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.0.tar.gz">xorg-server-1.10.0.tar.gz</a></td><td align="right">2011-02-26 05:48 </td><td align="right">6.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.1.901.tar.bz2">xorg-server-1.10.1.901.tar.bz2</a></td><td align="right">2011-05-06 22:59 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.1.901.tar.gz">xorg-server-1.10.1.901.tar.gz</a></td><td align="right">2011-05-06 22:59 </td><td align="right">6.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.1.902.tar.bz2">xorg-server-1.10.1.902.tar.bz2</a></td><td align="right">2011-05-21 06:13 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.1.902.tar.gz">xorg-server-1.10.1.902.tar.gz</a></td><td align="right">2011-05-21 06:13 </td><td align="right">6.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.1.tar.bz2">xorg-server-1.10.1.tar.bz2</a></td><td align="right">2011-04-16 01:13 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.1.tar.gz">xorg-server-1.10.1.tar.gz</a></td><td align="right">2011-04-16 01:13 </td><td align="right">6.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.2.901.tar.bz2">xorg-server-1.10.2.901.tar.bz2</a></td><td align="right">2011-06-17 17:30 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.2.901.tar.gz">xorg-server-1.10.2.901.tar.gz</a></td><td align="right">2011-06-17 17:30 </td><td align="right">6.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.2.902.tar.bz2">xorg-server-1.10.2.902.tar.bz2</a></td><td align="right">2011-07-02 03:55 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.2.902.tar.gz">xorg-server-1.10.2.902.tar.gz</a></td><td align="right">2011-07-02 03:55 </td><td align="right">6.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.2.tar.bz2">xorg-server-1.10.2.tar.bz2</a></td><td align="right">2011-05-29 00:20 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.2.tar.gz">xorg-server-1.10.2.tar.gz</a></td><td align="right">2011-05-29 00:20 </td><td align="right">6.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.3.901.tar.bz2">xorg-server-1.10.3.901.tar.bz2</a></td><td align="right">2011-07-29 18:39 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.3.901.tar.gz">xorg-server-1.10.3.901.tar.gz</a></td><td align="right">2011-07-29 18:39 </td><td align="right">7.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.3.902.tar.bz2">xorg-server-1.10.3.902.tar.bz2</a></td><td align="right">2011-08-12 22:30 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.3.902.tar.gz">xorg-server-1.10.3.902.tar.gz</a></td><td align="right">2011-08-12 22:30 </td><td align="right">7.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.3.tar.bz2">xorg-server-1.10.3.tar.bz2</a></td><td align="right">2011-07-08 20:04 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.3.tar.gz">xorg-server-1.10.3.tar.gz</a></td><td align="right">2011-07-08 20:04 </td><td align="right">6.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.4.tar.bz2">xorg-server-1.10.4.tar.bz2</a></td><td align="right">2011-08-19 07:13 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.4.tar.gz">xorg-server-1.10.4.tar.gz</a></td><td align="right">2011-08-19 07:12 </td><td align="right">7.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.6.tar.bz2">xorg-server-1.10.6.tar.bz2</a></td><td align="right">2012-02-11 01:11 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.6.tar.gz">xorg-server-1.10.6.tar.gz</a></td><td align="right">2012-02-11 01:11 </td><td align="right">7.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.99.901.tar.bz2">xorg-server-1.10.99.901.tar.bz2</a></td><td align="right">2011-06-01 18:34 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.99.901.tar.gz">xorg-server-1.10.99.901.tar.gz</a></td><td align="right">2011-06-01 18:33 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.99.902.tar.bz2">xorg-server-1.10.99.902.tar.bz2</a></td><td align="right">2011-08-04 04:10 </td><td align="right">4.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.10.99.902.tar.gz">xorg-server-1.10.99.902.tar.gz</a></td><td align="right">2011-08-04 04:09 </td><td align="right">6.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.0.tar.bz2">xorg-server-1.11.0.tar.bz2</a></td><td align="right">2011-08-27 01:02 </td><td align="right">4.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.0.tar.gz">xorg-server-1.11.0.tar.gz</a></td><td align="right">2011-08-27 01:01 </td><td align="right">6.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.1.901.tar.bz2">xorg-server-1.11.1.901.tar.bz2</a></td><td align="right">2011-10-14 23:41 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.1.901.tar.gz">xorg-server-1.11.1.901.tar.gz</a></td><td align="right">2011-10-14 23:40 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.1.902.tar.bz2">xorg-server-1.11.1.902.tar.bz2</a></td><td align="right">2011-10-29 01:44 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.1.902.tar.gz">xorg-server-1.11.1.902.tar.gz</a></td><td align="right">2011-10-29 01:44 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.1.tar.bz2">xorg-server-1.11.1.tar.bz2</a></td><td align="right">2011-09-24 07:19 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.1.tar.gz">xorg-server-1.11.1.tar.gz</a></td><td align="right">2011-09-24 07:19 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.2.901.tar.bz2">xorg-server-1.11.2.901.tar.bz2</a></td><td align="right">2011-11-28 08:17 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.2.901.tar.gz">xorg-server-1.11.2.901.tar.gz</a></td><td align="right">2011-11-28 08:16 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.2.902.tar.bz2">xorg-server-1.11.2.902.tar.bz2</a></td><td align="right">2011-12-09 21:10 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.2.902.tar.gz">xorg-server-1.11.2.902.tar.gz</a></td><td align="right">2011-12-09 21:10 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.2.tar.bz2">xorg-server-1.11.2.tar.bz2</a></td><td align="right">2011-11-04 17:38 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.2.tar.gz">xorg-server-1.11.2.tar.gz</a></td><td align="right">2011-11-04 17:38 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.3.901.tar.bz2">xorg-server-1.11.3.901.tar.bz2</a></td><td align="right">2012-01-07 07:34 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.3.901.tar.gz">xorg-server-1.11.3.901.tar.gz</a></td><td align="right">2012-01-07 07:34 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.3.902.tar.bz2">xorg-server-1.11.3.902.tar.bz2</a></td><td align="right">2012-01-21 08:29 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.3.902.tar.gz">xorg-server-1.11.3.902.tar.gz</a></td><td align="right">2012-01-21 08:29 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.3.tar.bz2">xorg-server-1.11.3.tar.bz2</a></td><td align="right">2011-12-17 02:03 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.3.tar.gz">xorg-server-1.11.3.tar.gz</a></td><td align="right">2011-12-17 02:03 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.4.tar.bz2">xorg-server-1.11.4.tar.bz2</a></td><td align="right">2012-01-28 05:20 </td><td align="right">4.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.4.tar.gz">xorg-server-1.11.4.tar.gz</a></td><td align="right">2012-01-28 05:20 </td><td align="right">6.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.99.1.tar.bz2">xorg-server-1.11.99.1.tar.bz2</a></td><td align="right">2011-11-20 23:05 </td><td align="right">4.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.99.1.tar.gz">xorg-server-1.11.99.1.tar.gz</a></td><td align="right">2011-11-20 23:04 </td><td align="right">6.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.99.2.tar.bz2">xorg-server-1.11.99.2.tar.bz2</a></td><td align="right">2011-12-18 01:30 </td><td align="right">4.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.99.2.tar.gz">xorg-server-1.11.99.2.tar.gz</a></td><td align="right">2011-12-18 01:29 </td><td align="right">6.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.99.901.tar.bz2">xorg-server-1.11.99.901.tar.bz2</a></td><td align="right">2011-12-27 22:19 </td><td align="right">4.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.99.901.tar.gz">xorg-server-1.11.99.901.tar.gz</a></td><td align="right">2011-12-27 22:18 </td><td align="right">6.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.99.902.tar.bz2">xorg-server-1.11.99.902.tar.bz2</a></td><td align="right">2012-01-28 06:48 </td><td align="right">4.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.99.902.tar.gz">xorg-server-1.11.99.902.tar.gz</a></td><td align="right">2012-01-28 06:47 </td><td align="right">6.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.99.903.tar.bz2">xorg-server-1.11.99.903.tar.bz2</a></td><td align="right">2012-02-11 03:18 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.11.99.903.tar.gz">xorg-server-1.11.99.903.tar.gz</a></td><td align="right">2012-02-11 03:16 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.0.901.tar.bz2">xorg-server-1.12.0.901.tar.bz2</a></td><td align="right">2012-03-31 03:15 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.0.901.tar.gz">xorg-server-1.12.0.901.tar.gz</a></td><td align="right">2012-03-31 03:15 </td><td align="right">7.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.0.902.tar.bz2">xorg-server-1.12.0.902.tar.bz2</a></td><td align="right">2012-04-10 02:48 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.0.902.tar.gz">xorg-server-1.12.0.902.tar.gz</a></td><td align="right">2012-04-10 02:48 </td><td align="right">7.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.0.tar.bz2">xorg-server-1.12.0.tar.bz2</a></td><td align="right">2012-03-05 05:12 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.0.tar.gz">xorg-server-1.12.0.tar.gz</a></td><td align="right">2012-03-05 05:11 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.1.901.tar.bz2">xorg-server-1.12.1.901.tar.bz2</a></td><td align="right">2012-05-07 07:10 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.1.901.tar.gz">xorg-server-1.12.1.901.tar.gz</a></td><td align="right">2012-05-07 07:10 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.1.902.tar.bz2">xorg-server-1.12.1.902.tar.bz2</a></td><td align="right">2012-05-20 05:17 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.1.902.tar.gz">xorg-server-1.12.1.902.tar.gz</a></td><td align="right">2012-05-20 05:17 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.1.tar.bz2">xorg-server-1.12.1.tar.bz2</a></td><td align="right">2012-04-13 22:52 </td><td align="right">5.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.1.tar.gz">xorg-server-1.12.1.tar.gz</a></td><td align="right">2012-04-13 22:52 </td><td align="right">7.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.2.901.tar.bz2">xorg-server-1.12.2.901.tar.bz2</a></td><td align="right">2012-06-15 03:15 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.2.901.tar.gz">xorg-server-1.12.2.901.tar.gz</a></td><td align="right">2012-06-15 03:14 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.2.902.tar.bz2">xorg-server-1.12.2.902.tar.bz2</a></td><td align="right">2012-07-02 00:34 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.2.902.tar.gz">xorg-server-1.12.2.902.tar.gz</a></td><td align="right">2012-07-02 00:34 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.2.tar.bz2">xorg-server-1.12.2.tar.bz2</a></td><td align="right">2012-05-29 20:11 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.2.tar.gz">xorg-server-1.12.2.tar.gz</a></td><td align="right">2012-05-29 20:11 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.3.901.tar.bz2">xorg-server-1.12.3.901.tar.bz2</a></td><td align="right">2012-08-03 17:26 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.3.901.tar.gz">xorg-server-1.12.3.901.tar.gz</a></td><td align="right">2012-08-03 17:26 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.3.902.tar.bz2">xorg-server-1.12.3.902.tar.bz2</a></td><td align="right">2012-08-19 16:11 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.3.902.tar.gz">xorg-server-1.12.3.902.tar.gz</a></td><td align="right">2012-08-19 16:11 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.3.tar.bz2">xorg-server-1.12.3.tar.bz2</a></td><td align="right">2012-07-09 01:21 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.3.tar.gz">xorg-server-1.12.3.tar.gz</a></td><td align="right">2012-07-09 01:21 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.4.tar.bz2">xorg-server-1.12.4.tar.bz2</a></td><td align="right">2012-08-27 05:15 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.4.tar.gz">xorg-server-1.12.4.tar.gz</a></td><td align="right">2012-08-27 05:15 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.99.901.tar.bz2">xorg-server-1.12.99.901.tar.bz2</a></td><td align="right">2012-07-10 08:35 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.99.901.tar.gz">xorg-server-1.12.99.901.tar.gz</a></td><td align="right">2012-07-10 08:34 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.99.902.tar.bz2">xorg-server-1.12.99.902.tar.bz2</a></td><td align="right">2012-07-17 22:50 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.99.902.tar.gz">xorg-server-1.12.99.902.tar.gz</a></td><td align="right">2012-07-17 22:49 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.99.903.tar.bz2">xorg-server-1.12.99.903.tar.bz2</a></td><td align="right">2012-07-26 05:50 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.99.903.tar.gz">xorg-server-1.12.99.903.tar.gz</a></td><td align="right">2012-07-26 05:49 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.99.904.tar.bz2">xorg-server-1.12.99.904.tar.bz2</a></td><td align="right">2012-08-08 00:57 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.99.904.tar.gz">xorg-server-1.12.99.904.tar.gz</a></td><td align="right">2012-08-08 00:56 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.99.905.tar.bz2">xorg-server-1.12.99.905.tar.bz2</a></td><td align="right">2012-08-21 21:53 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.12.99.905.tar.gz">xorg-server-1.12.99.905.tar.gz</a></td><td align="right">2012-08-21 21:52 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.0.901.tar.bz2">xorg-server-1.13.0.901.tar.bz2</a></td><td align="right">2012-11-23 05:10 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.0.901.tar.gz">xorg-server-1.13.0.901.tar.gz</a></td><td align="right">2012-11-23 05:09 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.0.902.tar.bz2">xorg-server-1.13.0.902.tar.bz2</a></td><td align="right">2012-12-07 06:09 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.0.902.tar.gz">xorg-server-1.13.0.902.tar.gz</a></td><td align="right">2012-12-07 06:08 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.0.tar.bz2">xorg-server-1.13.0.tar.bz2</a></td><td align="right">2012-09-05 21:48 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.0.tar.gz">xorg-server-1.13.0.tar.gz</a></td><td align="right">2012-09-05 21:47 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.1.901.tar.bz2">xorg-server-1.13.1.901.tar.bz2</a></td><td align="right">2013-01-04 06:51 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.1.901.tar.gz">xorg-server-1.13.1.901.tar.gz</a></td><td align="right">2013-01-04 06:50 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.1.tar.bz2">xorg-server-1.13.1.tar.bz2</a></td><td align="right">2012-12-14 21:47 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.1.tar.bz2.old">xorg-server-1.13.1.tar.bz2.old</a></td><td align="right">2012-12-14 04:43 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.1.tar.gz">xorg-server-1.13.1.tar.gz</a></td><td align="right">2012-12-14 21:49 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.1.tar.gz.old">xorg-server-1.13.1.tar.gz.old</a></td><td align="right">2012-12-14 04:42 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.2.901.tar.bz2">xorg-server-1.13.2.901.tar.bz2</a></td><td align="right">2013-02-16 07:14 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.2.901.tar.gz">xorg-server-1.13.2.901.tar.gz</a></td><td align="right">2013-02-16 07:14 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.2.902.tar.bz2">xorg-server-1.13.2.902.tar.bz2</a></td><td align="right">2013-03-01 07:31 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.2.902.tar.gz">xorg-server-1.13.2.902.tar.gz</a></td><td align="right">2013-03-01 07:31 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.2.tar.bz2">xorg-server-1.13.2.tar.bz2</a></td><td align="right">2013-01-25 06:01 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.2.tar.gz">xorg-server-1.13.2.tar.gz</a></td><td align="right">2013-01-25 06:00 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.3.tar.bz2">xorg-server-1.13.3.tar.bz2</a></td><td align="right">2013-03-08 06:19 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.3.tar.gz">xorg-server-1.13.3.tar.gz</a></td><td align="right">2013-03-08 06:19 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.4.tar.bz2">xorg-server-1.13.4.tar.bz2</a></td><td align="right">2013-04-17 06:00 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.4.tar.gz">xorg-server-1.13.4.tar.gz</a></td><td align="right">2013-04-17 05:59 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.99.901.tar.bz2">xorg-server-1.13.99.901.tar.bz2</a></td><td align="right">2012-12-19 20:50 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.99.901.tar.gz">xorg-server-1.13.99.901.tar.gz</a></td><td align="right">2012-12-19 20:50 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.99.902.tar.bz2">xorg-server-1.13.99.902.tar.bz2</a></td><td align="right">2013-02-14 05:44 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.13.99.902.tar.gz">xorg-server-1.13.99.902.tar.gz</a></td><td align="right">2013-02-14 05:43 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.0.tar.bz2">xorg-server-1.14.0.tar.bz2</a></td><td align="right">2013-03-06 06:35 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.0.tar.gz">xorg-server-1.14.0.tar.gz</a></td><td align="right">2013-03-06 06:34 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.1.901.tar.bz2">xorg-server-1.14.1.901.tar.bz2</a></td><td align="right">2013-05-31 06:09 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.1.901.tar.gz">xorg-server-1.14.1.901.tar.gz</a></td><td align="right">2013-05-31 06:09 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.1.902.tar.bz2">xorg-server-1.14.1.902.tar.bz2</a></td><td align="right">2013-06-13 22:28 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.1.902.tar.gz">xorg-server-1.14.1.902.tar.gz</a></td><td align="right">2013-06-13 22:28 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.1.tar.bz2">xorg-server-1.14.1.tar.bz2</a></td><td align="right">2013-04-17 07:37 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.1.tar.gz">xorg-server-1.14.1.tar.gz</a></td><td align="right">2013-04-17 07:36 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.2-rc1.tar.bz2">xorg-server-1.14.2-rc1.tar.bz2</a></td><td align="right">2013-05-31 04:38 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.2-rc1.tar.gz">xorg-server-1.14.2-rc1.tar.gz</a></td><td align="right">2013-05-31 04:38 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.2.901.tar.bz2">xorg-server-1.14.2.901.tar.bz2</a></td><td align="right">2013-07-26 05:47 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.2.901.tar.bz2.old">xorg-server-1.14.2.901.tar.bz2.old</a></td><td align="right">2013-07-26 04:27 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.2.901.tar.gz">xorg-server-1.14.2.901.tar.gz</a></td><td align="right">2013-07-26 05:47 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.2.901.tar.gz.old">xorg-server-1.14.2.901.tar.gz.old</a></td><td align="right">2013-07-26 04:27 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.2.902.tar.bz2">xorg-server-1.14.2.902.tar.bz2</a></td><td align="right">2013-08-22 23:57 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.2.902.tar.gz">xorg-server-1.14.2.902.tar.gz</a></td><td align="right">2013-08-22 23:57 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.2.tar.bz2">xorg-server-1.14.2.tar.bz2</a></td><td align="right">2013-06-25 15:52 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.2.tar.gz">xorg-server-1.14.2.tar.gz</a></td><td align="right">2013-06-25 15:52 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.3-rc1.tar.bz2">xorg-server-1.14.3-rc1.tar.bz2</a></td><td align="right">2013-07-26 04:21 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.3-rc1.tar.gz">xorg-server-1.14.3-rc1.tar.gz</a></td><td align="right">2013-07-26 04:21 </td><td align="right">7.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.3.901.tar.bz2">xorg-server-1.14.3.901.tar.bz2</a></td><td align="right">2013-10-26 19:53 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.3.901.tar.gz">xorg-server-1.14.3.901.tar.gz</a></td><td align="right">2013-10-26 19:53 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.3.tar.bz2">xorg-server-1.14.3.tar.bz2</a></td><td align="right">2013-09-13 03:19 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.3.tar.gz">xorg-server-1.14.3.tar.gz</a></td><td align="right">2013-09-13 03:19 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.4.901.tar.bz2">xorg-server-1.14.4.901.tar.bz2</a></td><td align="right">2013-11-22 05:13 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.4.901.tar.gz">xorg-server-1.14.4.901.tar.gz</a></td><td align="right">2013-11-22 05:13 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.4.tar.bz2">xorg-server-1.14.4.tar.bz2</a></td><td align="right">2013-11-01 05:31 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.4.tar.gz">xorg-server-1.14.4.tar.gz</a></td><td align="right">2013-11-01 05:31 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.5.901.tar.bz2">xorg-server-1.14.5.901.tar.bz2</a></td><td align="right">2014-03-22 05:21 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.5.901.tar.gz">xorg-server-1.14.5.901.tar.gz</a></td><td align="right">2014-03-22 05:21 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.5.tar.bz2">xorg-server-1.14.5.tar.bz2</a></td><td align="right">2013-12-13 03:53 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.5.tar.gz">xorg-server-1.14.5.tar.gz</a></td><td align="right">2013-12-13 03:53 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.6.tar.bz2">xorg-server-1.14.6.tar.bz2</a></td><td align="right">2014-04-14 02:49 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.6.tar.gz">xorg-server-1.14.6.tar.gz</a></td><td align="right">2014-04-14 02:49 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.7.tar.bz2">xorg-server-1.14.7.tar.bz2</a></td><td align="right">2014-06-06 04:20 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.7.tar.gz">xorg-server-1.14.7.tar.gz</a></td><td align="right">2014-06-06 04:19 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.99.1.tar.bz2">xorg-server-1.14.99.1.tar.bz2</a></td><td align="right">2013-04-24 17:16 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.99.1.tar.gz">xorg-server-1.14.99.1.tar.gz</a></td><td align="right">2013-04-24 17:15 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.99.2.tar.bz2">xorg-server-1.14.99.2.tar.bz2</a></td><td align="right">2013-10-05 00:01 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.99.2.tar.gz">xorg-server-1.14.99.2.tar.gz</a></td><td align="right">2013-10-05 00:00 </td><td align="right">7.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.99.3.tar.bz2">xorg-server-1.14.99.3.tar.bz2</a></td><td align="right">2013-10-19 00:34 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.99.3.tar.gz">xorg-server-1.14.99.3.tar.gz</a></td><td align="right">2013-10-19 00:33 </td><td align="right">7.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.99.901.tar.bz2">xorg-server-1.14.99.901.tar.bz2</a></td><td align="right">2013-11-01 08:51 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.99.901.tar.gz">xorg-server-1.14.99.901.tar.gz</a></td><td align="right">2013-11-01 08:50 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.99.902.tar.bz2">xorg-server-1.14.99.902.tar.bz2</a></td><td align="right">2013-11-14 01:32 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.99.902.tar.gz">xorg-server-1.14.99.902.tar.gz</a></td><td align="right">2013-11-14 01:32 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.99.903.tar.bz2">xorg-server-1.14.99.903.tar.bz2</a></td><td align="right">2013-11-24 06:31 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.99.903.tar.gz">xorg-server-1.14.99.903.tar.gz</a></td><td align="right">2013-11-24 06:30 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.99.904.tar.bz2">xorg-server-1.14.99.904.tar.bz2</a></td><td align="right">2013-12-11 15:57 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.99.904.tar.gz">xorg-server-1.14.99.904.tar.gz</a></td><td align="right">2013-12-11 15:56 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.99.905.tar.bz2">xorg-server-1.14.99.905.tar.bz2</a></td><td align="right">2013-12-19 22:35 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.14.99.905.tar.gz">xorg-server-1.14.99.905.tar.gz</a></td><td align="right">2013-12-19 22:35 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.0.901.tar.bz2">xorg-server-1.15.0.901.tar.bz2</a></td><td align="right">2014-03-22 06:04 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.0.901.tar.gz">xorg-server-1.15.0.901.tar.gz</a></td><td align="right">2014-03-22 06:04 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.0.tar.bz2">xorg-server-1.15.0.tar.bz2</a></td><td align="right">2013-12-27 18:01 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.0.tar.gz">xorg-server-1.15.0.tar.gz</a></td><td align="right">2013-12-27 18:00 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.1.tar.bz2">xorg-server-1.15.1.tar.bz2</a></td><td align="right">2014-04-14 03:16 </td><td align="right">5.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.1.tar.gz">xorg-server-1.15.1.tar.gz</a></td><td align="right">2014-04-14 03:16 </td><td align="right">7.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.2.tar.bz2">xorg-server-1.15.2.tar.bz2</a></td><td align="right">2014-06-27 01:30 </td><td align="right">5.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.2.tar.bz2.sig">xorg-server-1.15.2.tar.bz2.sig</a></td><td align="right">2014-06-27 01:30 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.2.tar.gz">xorg-server-1.15.2.tar.gz</a></td><td align="right">2014-06-27 01:29 </td><td align="right">7.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.2.tar.gz.sig">xorg-server-1.15.2.tar.gz.sig</a></td><td align="right">2014-06-27 01:30 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.99.901.tar.bz2">xorg-server-1.15.99.901.tar.bz2</a></td><td align="right">2014-02-24 21:52 </td><td align="right">5.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.99.901.tar.gz">xorg-server-1.15.99.901.tar.gz</a></td><td align="right">2014-02-24 21:52 </td><td align="right">7.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.99.902.tar.bz2">xorg-server-1.15.99.902.tar.bz2</a></td><td align="right">2014-04-08 21:32 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.99.902.tar.gz">xorg-server-1.15.99.902.tar.gz</a></td><td align="right">2014-04-08 21:31 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.99.903.tar.bz2">xorg-server-1.15.99.903.tar.bz2</a></td><td align="right">2014-06-05 05:41 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.99.903.tar.gz">xorg-server-1.15.99.903.tar.gz</a></td><td align="right">2014-06-05 05:40 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.99.904.tar.bz2">xorg-server-1.15.99.904.tar.bz2</a></td><td align="right">2014-07-07 23:35 </td><td align="right">5.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.99.904.tar.bz2.sig">xorg-server-1.15.99.904.tar.bz2.sig</a></td><td align="right">2014-07-07 23:35 </td><td align="right">536 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.99.904.tar.gz">xorg-server-1.15.99.904.tar.gz</a></td><td align="right">2014-07-07 23:35 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.15.99.904.tar.gz.sig">xorg-server-1.15.99.904.tar.gz.sig</a></td><td align="right">2014-07-07 23:35 </td><td align="right">536 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.0.901.tar.bz2">xorg-server-1.16.0.901.tar.bz2</a></td><td align="right">2014-09-15 21:38 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.0.901.tar.bz2.sig">xorg-server-1.16.0.901.tar.bz2.sig</a></td><td align="right">2014-09-15 21:38 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.0.901.tar.gz">xorg-server-1.16.0.901.tar.gz</a></td><td align="right">2014-09-15 21:37 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.0.901.tar.gz.sig">xorg-server-1.16.0.901.tar.gz.sig</a></td><td align="right">2014-09-15 21:38 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.0.tar.bz2">xorg-server-1.16.0.tar.bz2</a></td><td align="right">2014-07-17 07:09 </td><td align="right">5.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.0.tar.bz2.sig">xorg-server-1.16.0.tar.bz2.sig</a></td><td align="right">2014-07-17 07:09 </td><td align="right">536 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.0.tar.gz">xorg-server-1.16.0.tar.gz</a></td><td align="right">2014-07-17 07:08 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.0.tar.gz.sig">xorg-server-1.16.0.tar.gz.sig</a></td><td align="right">2014-07-17 07:09 </td><td align="right">536 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.1.901.tar.bz2">xorg-server-1.16.1.901.tar.bz2</a></td><td align="right">2014-11-02 10:52 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.1.901.tar.bz2.sig">xorg-server-1.16.1.901.tar.bz2.sig</a></td><td align="right">2014-11-02 10:52 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.1.901.tar.gz">xorg-server-1.16.1.901.tar.gz</a></td><td align="right">2014-11-02 10:51 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.1.901.tar.gz.sig">xorg-server-1.16.1.901.tar.gz.sig</a></td><td align="right">2014-11-02 10:52 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.1.tar.bz2">xorg-server-1.16.1.tar.bz2</a></td><td align="right">2014-09-21 09:17 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.1.tar.bz2.sig">xorg-server-1.16.1.tar.bz2.sig</a></td><td align="right">2014-09-21 09:17 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.1.tar.gz">xorg-server-1.16.1.tar.gz</a></td><td align="right">2014-09-21 09:16 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.1.tar.gz.sig">xorg-server-1.16.1.tar.gz.sig</a></td><td align="right">2014-09-21 09:17 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.2.901.tar.bz2">xorg-server-1.16.2.901.tar.bz2</a></td><td align="right">2014-12-09 20:12 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.2.901.tar.bz2.sig">xorg-server-1.16.2.901.tar.bz2.sig</a></td><td align="right">2014-12-09 20:12 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.2.901.tar.gz">xorg-server-1.16.2.901.tar.gz</a></td><td align="right">2014-12-09 20:11 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.2.901.tar.gz.sig">xorg-server-1.16.2.901.tar.gz.sig</a></td><td align="right">2014-12-09 20:12 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.2.tar.bz2">xorg-server-1.16.2.tar.bz2</a></td><td align="right">2014-11-10 15:53 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.2.tar.bz2.sig">xorg-server-1.16.2.tar.bz2.sig</a></td><td align="right">2014-11-10 15:53 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.2.tar.gz">xorg-server-1.16.2.tar.gz</a></td><td align="right">2014-11-10 15:53 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.2.tar.gz.sig">xorg-server-1.16.2.tar.gz.sig</a></td><td align="right">2014-11-10 15:53 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.3.tar.bz2">xorg-server-1.16.3.tar.bz2</a></td><td align="right">2014-12-20 12:19 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.3.tar.bz2.sig">xorg-server-1.16.3.tar.bz2.sig</a></td><td align="right">2014-12-20 12:19 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.3.tar.gz">xorg-server-1.16.3.tar.gz</a></td><td align="right">2014-12-20 12:18 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.3.tar.gz.sig">xorg-server-1.16.3.tar.gz.sig</a></td><td align="right">2014-12-20 12:19 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.4.tar.bz2">xorg-server-1.16.4.tar.bz2</a></td><td align="right">2015-02-11 00:15 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.4.tar.bz2.sig">xorg-server-1.16.4.tar.bz2.sig</a></td><td align="right">2015-02-11 00:15 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.4.tar.gz">xorg-server-1.16.4.tar.gz</a></td><td align="right">2015-02-11 00:14 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.4.tar.gz.sig">xorg-server-1.16.4.tar.gz.sig</a></td><td align="right">2015-02-11 00:15 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.99.901.tar.bz2">xorg-server-1.16.99.901.tar.bz2</a></td><td align="right">2014-10-29 04:37 </td><td align="right">5.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.99.901.tar.bz2.sig">xorg-server-1.16.99.901.tar.bz2.sig</a></td><td align="right">2014-10-29 04:37 </td><td align="right">536 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.99.901.tar.gz">xorg-server-1.16.99.901.tar.gz</a></td><td align="right">2014-10-29 04:37 </td><td align="right">7.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.99.901.tar.gz.sig">xorg-server-1.16.99.901.tar.gz.sig</a></td><td align="right">2014-10-29 04:37 </td><td align="right">536 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.99.902.tar.bz2">xorg-server-1.16.99.902.tar.bz2</a></td><td align="right">2015-01-23 19:03 </td><td align="right">5.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.99.902.tar.bz2.sig">xorg-server-1.16.99.902.tar.bz2.sig</a></td><td align="right">2015-01-23 19:03 </td><td align="right">536 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.99.902.tar.gz">xorg-server-1.16.99.902.tar.gz</a></td><td align="right">2015-01-23 19:03 </td><td align="right">7.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.16.99.902.tar.gz.sig">xorg-server-1.16.99.902.tar.gz.sig</a></td><td align="right">2015-01-23 19:03 </td><td align="right">536 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.0.tar.bz2">xorg-server-1.17.0.tar.bz2</a></td><td align="right">2015-02-04 17:37 </td><td align="right">5.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.0.tar.bz2.sig">xorg-server-1.17.0.tar.bz2.sig</a></td><td align="right">2015-02-04 17:37 </td><td align="right">536 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.0.tar.gz">xorg-server-1.17.0.tar.gz</a></td><td align="right">2015-02-04 17:37 </td><td align="right">7.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.0.tar.gz.sig">xorg-server-1.17.0.tar.gz.sig</a></td><td align="right">2015-02-04 17:37 </td><td align="right">536 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.1.tar.bz2">xorg-server-1.17.1.tar.bz2</a></td><td align="right">2015-02-10 22:53 </td><td align="right">5.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.1.tar.bz2.sig">xorg-server-1.17.1.tar.bz2.sig</a></td><td align="right">2015-02-10 22:53 </td><td align="right">536 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.1.tar.gz">xorg-server-1.17.1.tar.gz</a></td><td align="right">2015-02-10 22:52 </td><td align="right">7.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.1.tar.gz.sig">xorg-server-1.17.1.tar.gz.sig</a></td><td align="right">2015-02-10 22:53 </td><td align="right">536 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.2.tar.bz2">xorg-server-1.17.2.tar.bz2</a></td><td align="right">2015-06-16 16:31 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.2.tar.bz2.sig">xorg-server-1.17.2.tar.bz2.sig</a></td><td align="right">2015-06-16 16:31 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.2.tar.gz">xorg-server-1.17.2.tar.gz</a></td><td align="right">2015-06-16 16:30 </td><td align="right">7.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.2.tar.gz.sig">xorg-server-1.17.2.tar.gz.sig</a></td><td align="right">2015-06-16 16:31 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.3.tar.bz2">xorg-server-1.17.3.tar.bz2</a></td><td align="right">2015-10-26 17:09 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.3.tar.bz2.sig">xorg-server-1.17.3.tar.bz2.sig</a></td><td align="right">2015-10-26 17:09 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.3.tar.gz">xorg-server-1.17.3.tar.gz</a></td><td align="right">2015-10-26 17:09 </td><td align="right">7.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.3.tar.gz.sig">xorg-server-1.17.3.tar.gz.sig</a></td><td align="right">2015-10-26 17:09 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.4.tar.bz2">xorg-server-1.17.4.tar.bz2</a></td><td align="right">2015-10-28 16:38 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.4.tar.bz2.sig">xorg-server-1.17.4.tar.bz2.sig</a></td><td align="right">2015-10-28 16:38 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.4.tar.gz">xorg-server-1.17.4.tar.gz</a></td><td align="right">2015-10-28 16:38 </td><td align="right">7.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.4.tar.gz.sig">xorg-server-1.17.4.tar.gz.sig</a></td><td align="right">2015-10-28 16:38 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.99.901.tar.bz2">xorg-server-1.17.99.901.tar.bz2</a></td><td align="right">2015-09-02 02:34 </td><td align="right">5.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.99.901.tar.bz2.sig">xorg-server-1.17.99.901.tar.bz2.sig</a></td><td align="right">2015-09-02 02:34 </td><td align="right">536 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.99.901.tar.gz">xorg-server-1.17.99.901.tar.gz</a></td><td align="right">2015-09-02 02:34 </td><td align="right">7.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.99.901.tar.gz.sig">xorg-server-1.17.99.901.tar.gz.sig</a></td><td align="right">2015-09-02 02:34 </td><td align="right">536 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.99.902.tar.bz2">xorg-server-1.17.99.902.tar.bz2</a></td><td align="right">2015-10-26 18:13 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.99.902.tar.bz2.sig">xorg-server-1.17.99.902.tar.bz2.sig</a></td><td align="right">2015-10-26 18:13 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.99.902.tar.gz">xorg-server-1.17.99.902.tar.gz</a></td><td align="right">2015-10-26 18:13 </td><td align="right">7.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.17.99.902.tar.gz.sig">xorg-server-1.17.99.902.tar.gz.sig</a></td><td align="right">2015-10-26 18:13 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.0.tar.bz2">xorg-server-1.18.0.tar.bz2</a></td><td align="right">2015-11-09 21:11 </td><td align="right">5.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.0.tar.bz2.sig">xorg-server-1.18.0.tar.bz2.sig</a></td><td align="right">2015-11-09 21:11 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.0.tar.gz">xorg-server-1.18.0.tar.gz</a></td><td align="right">2015-11-09 21:11 </td><td align="right">7.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.0.tar.gz.sig">xorg-server-1.18.0.tar.gz.sig</a></td><td align="right">2015-11-09 21:11 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.1.tar.bz2">xorg-server-1.18.1.tar.bz2</a></td><td align="right">2016-02-08 23:41 </td><td align="right">5.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.1.tar.bz2.sig">xorg-server-1.18.1.tar.bz2.sig</a></td><td align="right">2016-02-08 23:41 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.1.tar.gz">xorg-server-1.18.1.tar.gz</a></td><td align="right">2016-02-08 23:41 </td><td align="right">7.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.1.tar.gz.sig">xorg-server-1.18.1.tar.gz.sig</a></td><td align="right">2016-02-08 23:41 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.2.tar.bz2">xorg-server-1.18.2.tar.bz2</a></td><td align="right">2016-03-11 21:45 </td><td align="right">5.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.2.tar.bz2.sig">xorg-server-1.18.2.tar.bz2.sig</a></td><td align="right">2016-03-11 21:45 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.2.tar.gz">xorg-server-1.18.2.tar.gz</a></td><td align="right">2016-03-11 21:45 </td><td align="right">7.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.2.tar.gz.sig">xorg-server-1.18.2.tar.gz.sig</a></td><td align="right">2016-03-11 21:45 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.3.tar.bz2">xorg-server-1.18.3.tar.bz2</a></td><td align="right">2016-04-04 19:48 </td><td align="right">5.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.3.tar.bz2.sig">xorg-server-1.18.3.tar.bz2.sig</a></td><td align="right">2016-04-04 19:48 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.3.tar.gz">xorg-server-1.18.3.tar.gz</a></td><td align="right">2016-04-04 19:48 </td><td align="right">7.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.3.tar.gz.sig">xorg-server-1.18.3.tar.gz.sig</a></td><td align="right">2016-04-04 19:48 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.4.tar.bz2">xorg-server-1.18.4.tar.bz2</a></td><td align="right">2016-07-19 17:42 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.4.tar.bz2.sig">xorg-server-1.18.4.tar.bz2.sig</a></td><td align="right">2016-07-19 17:42 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.4.tar.gz">xorg-server-1.18.4.tar.gz</a></td><td align="right">2016-07-19 17:42 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.4.tar.gz.sig">xorg-server-1.18.4.tar.gz.sig</a></td><td align="right">2016-07-19 17:42 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.99.2.tar.bz2">xorg-server-1.18.99.2.tar.bz2</a></td><td align="right">2016-09-16 20:55 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.99.2.tar.bz2.sig">xorg-server-1.18.99.2.tar.bz2.sig</a></td><td align="right">2016-09-16 20:55 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.99.2.tar.gz">xorg-server-1.18.99.2.tar.gz</a></td><td align="right">2016-09-16 20:54 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.99.2.tar.gz.sig">xorg-server-1.18.99.2.tar.gz.sig</a></td><td align="right">2016-09-16 20:55 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.99.901.tar.bz2">xorg-server-1.18.99.901.tar.bz2</a></td><td align="right">2016-09-19 16:10 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.99.901.tar.bz2.sig">xorg-server-1.18.99.901.tar.bz2.sig</a></td><td align="right">2016-09-19 16:10 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.99.901.tar.gz">xorg-server-1.18.99.901.tar.gz</a></td><td align="right">2016-09-19 16:10 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.99.901.tar.gz.sig">xorg-server-1.18.99.901.tar.gz.sig</a></td><td align="right">2016-09-19 16:10 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.99.902.tar.bz2">xorg-server-1.18.99.902.tar.bz2</a></td><td align="right">2016-10-28 16:47 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.99.902.tar.bz2.sig">xorg-server-1.18.99.902.tar.bz2.sig</a></td><td align="right">2016-10-28 16:47 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.99.902.tar.gz">xorg-server-1.18.99.902.tar.gz</a></td><td align="right">2016-10-28 16:47 </td><td align="right">8.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.18.99.902.tar.gz.sig">xorg-server-1.18.99.902.tar.gz.sig</a></td><td align="right">2016-10-28 16:47 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.0.tar.bz2">xorg-server-1.19.0.tar.bz2</a></td><td align="right">2016-11-15 17:08 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.0.tar.bz2.sig">xorg-server-1.19.0.tar.bz2.sig</a></td><td align="right">2016-11-15 17:08 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.0.tar.gz">xorg-server-1.19.0.tar.gz</a></td><td align="right">2016-11-15 17:07 </td><td align="right">8.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.0.tar.gz.sig">xorg-server-1.19.0.tar.gz.sig</a></td><td align="right">2016-11-15 17:08 </td><td align="right">543 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.1.tar.bz2">xorg-server-1.19.1.tar.bz2</a></td><td align="right">2017-01-11 21:25 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.1.tar.bz2.sig">xorg-server-1.19.1.tar.bz2.sig</a></td><td align="right">2017-01-11 21:25 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.1.tar.gz">xorg-server-1.19.1.tar.gz</a></td><td align="right">2017-01-11 21:25 </td><td align="right">8.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.1.tar.gz.sig">xorg-server-1.19.1.tar.gz.sig</a></td><td align="right">2017-01-11 21:25 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.2.tar.bz2">xorg-server-1.19.2.tar.bz2</a></td><td align="right">2017-03-02 23:05 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.2.tar.bz2.sig">xorg-server-1.19.2.tar.bz2.sig</a></td><td align="right">2017-03-02 23:05 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.2.tar.gz">xorg-server-1.19.2.tar.gz</a></td><td align="right">2017-03-02 23:05 </td><td align="right">7.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.2.tar.gz.sig">xorg-server-1.19.2.tar.gz.sig</a></td><td align="right">2017-03-02 23:05 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.3.tar.bz2">xorg-server-1.19.3.tar.bz2</a></td><td align="right">2017-03-15 18:12 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.3.tar.bz2.sig">xorg-server-1.19.3.tar.bz2.sig</a></td><td align="right">2017-03-15 18:12 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.3.tar.gz">xorg-server-1.19.3.tar.gz</a></td><td align="right">2017-03-15 18:12 </td><td align="right">8.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.3.tar.gz.sig">xorg-server-1.19.3.tar.gz.sig</a></td><td align="right">2017-03-15 18:12 </td><td align="right"> 72 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.4.tar.bz2">xorg-server-1.19.4.tar.bz2</a></td><td align="right">2017-10-04 22:00 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.4.tar.bz2.sig">xorg-server-1.19.4.tar.bz2.sig</a></td><td align="right">2017-10-04 22:00 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.4.tar.gz">xorg-server-1.19.4.tar.gz</a></td><td align="right">2017-10-04 22:00 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.4.tar.gz.sig">xorg-server-1.19.4.tar.gz.sig</a></td><td align="right">2017-10-04 22:00 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.5.tar.bz2">xorg-server-1.19.5.tar.bz2</a></td><td align="right">2017-10-12 17:31 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.5.tar.bz2.sig">xorg-server-1.19.5.tar.bz2.sig</a></td><td align="right">2017-10-12 17:31 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.5.tar.gz">xorg-server-1.19.5.tar.gz</a></td><td align="right">2017-10-12 17:31 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.5.tar.gz.sig">xorg-server-1.19.5.tar.gz.sig</a></td><td align="right">2017-10-12 17:31 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.6.tar.bz2">xorg-server-1.19.6.tar.bz2</a></td><td align="right">2017-12-20 20:39 </td><td align="right">5.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.6.tar.bz2.sig">xorg-server-1.19.6.tar.bz2.sig</a></td><td align="right">2017-12-20 20:39 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.6.tar.gz">xorg-server-1.19.6.tar.gz</a></td><td align="right">2017-12-20 20:39 </td><td align="right">8.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.6.tar.gz.sig">xorg-server-1.19.6.tar.gz.sig</a></td><td align="right">2017-12-20 20:39 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.7.tar.bz2">xorg-server-1.19.7.tar.bz2</a></td><td align="right">2019-03-02 23:03 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.7.tar.bz2.sig">xorg-server-1.19.7.tar.bz2.sig</a></td><td align="right">2019-03-02 23:03 </td><td align="right">287 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.7.tar.gz">xorg-server-1.19.7.tar.gz</a></td><td align="right">2019-03-02 23:02 </td><td align="right">8.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.7.tar.gz.sig">xorg-server-1.19.7.tar.gz.sig</a></td><td align="right">2019-03-02 23:03 </td><td align="right">287 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.901.tar.bz2">xorg-server-1.19.99.901.tar.bz2</a></td><td align="right">2018-02-28 18:28 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.901.tar.bz2.sig">xorg-server-1.19.99.901.tar.bz2.sig</a></td><td align="right">2018-02-28 18:28 </td><td align="right"> 95 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.901.tar.gz">xorg-server-1.19.99.901.tar.gz</a></td><td align="right">2018-02-28 18:28 </td><td align="right">8.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.901.tar.gz.sig">xorg-server-1.19.99.901.tar.gz.sig</a></td><td align="right">2018-02-28 18:28 </td><td align="right"> 95 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.902.tar.bz2">xorg-server-1.19.99.902.tar.bz2</a></td><td align="right">2018-03-28 20:39 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.902.tar.bz2.sig">xorg-server-1.19.99.902.tar.bz2.sig</a></td><td align="right">2018-03-28 20:39 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.902.tar.gz">xorg-server-1.19.99.902.tar.gz</a></td><td align="right">2018-03-28 20:39 </td><td align="right">8.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.902.tar.gz.sig">xorg-server-1.19.99.902.tar.gz.sig</a></td><td align="right">2018-03-28 20:39 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.903.tar.bz2">xorg-server-1.19.99.903.tar.bz2</a></td><td align="right">2018-04-02 19:56 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.903.tar.bz2.sig">xorg-server-1.19.99.903.tar.bz2.sig</a></td><td align="right">2018-04-02 19:56 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.903.tar.gz">xorg-server-1.19.99.903.tar.gz</a></td><td align="right">2018-04-02 19:56 </td><td align="right">8.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.903.tar.gz.sig">xorg-server-1.19.99.903.tar.gz.sig</a></td><td align="right">2018-04-02 19:56 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.904.tar.bz2">xorg-server-1.19.99.904.tar.bz2</a></td><td align="right">2018-04-10 19:50 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.904.tar.bz2.sig">xorg-server-1.19.99.904.tar.bz2.sig</a></td><td align="right">2018-04-10 19:50 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.904.tar.gz">xorg-server-1.19.99.904.tar.gz</a></td><td align="right">2018-04-10 19:50 </td><td align="right">8.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.904.tar.gz.sig">xorg-server-1.19.99.904.tar.gz.sig</a></td><td align="right">2018-04-10 19:50 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.905.tar.bz2">xorg-server-1.19.99.905.tar.bz2</a></td><td align="right">2018-04-24 21:12 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.905.tar.bz2.sig">xorg-server-1.19.99.905.tar.bz2.sig</a></td><td align="right">2018-04-24 21:12 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.905.tar.gz">xorg-server-1.19.99.905.tar.gz</a></td><td align="right">2018-04-24 21:12 </td><td align="right">8.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.19.99.905.tar.gz.sig">xorg-server-1.19.99.905.tar.gz.sig</a></td><td align="right">2018-04-24 21:12 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.0.tar.bz2">xorg-server-1.20.0.tar.bz2</a></td><td align="right">2018-05-10 16:38 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.0.tar.bz2.sig">xorg-server-1.20.0.tar.bz2.sig</a></td><td align="right">2018-05-10 16:38 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.0.tar.gz">xorg-server-1.20.0.tar.gz</a></td><td align="right">2018-05-10 16:38 </td><td align="right">8.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.0.tar.gz.sig">xorg-server-1.20.0.tar.gz.sig</a></td><td align="right">2018-05-10 16:38 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.1.tar.bz2">xorg-server-1.20.1.tar.bz2</a></td><td align="right">2018-08-07 16:37 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.1.tar.bz2.sig">xorg-server-1.20.1.tar.bz2.sig</a></td><td align="right">2018-08-07 16:37 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.1.tar.gz">xorg-server-1.20.1.tar.gz</a></td><td align="right">2018-08-07 16:37 </td><td align="right">8.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.1.tar.gz.sig">xorg-server-1.20.1.tar.gz.sig</a></td><td align="right">2018-08-07 16:37 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.2.tar.bz2">xorg-server-1.20.2.tar.bz2</a></td><td align="right">2018-10-15 16:03 </td><td align="right">5.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.2.tar.bz2.sig">xorg-server-1.20.2.tar.bz2.sig</a></td><td align="right">2018-10-15 16:03 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.2.tar.gz">xorg-server-1.20.2.tar.gz</a></td><td align="right">2018-10-15 16:03 </td><td align="right">8.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.2.tar.gz.sig">xorg-server-1.20.2.tar.gz.sig</a></td><td align="right">2018-10-15 16:03 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.3.tar.bz2">xorg-server-1.20.3.tar.bz2</a></td><td align="right">2018-10-25 14:17 </td><td align="right">5.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.3.tar.bz2.sig">xorg-server-1.20.3.tar.bz2.sig</a></td><td align="right">2018-10-25 14:17 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.3.tar.gz">xorg-server-1.20.3.tar.gz</a></td><td align="right">2018-10-25 14:17 </td><td align="right">8.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.3.tar.gz.sig">xorg-server-1.20.3.tar.gz.sig</a></td><td align="right">2018-10-25 14:17 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.4.tar.bz2">xorg-server-1.20.4.tar.bz2</a></td><td align="right">2019-02-26 19:33 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.4.tar.bz2.sig">xorg-server-1.20.4.tar.bz2.sig</a></td><td align="right">2019-02-26 19:33 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.4.tar.gz">xorg-server-1.20.4.tar.gz</a></td><td align="right">2019-02-26 19:33 </td><td align="right">8.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.4.tar.gz.sig">xorg-server-1.20.4.tar.gz.sig</a></td><td align="right">2019-02-26 19:33 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.5.tar.bz2">xorg-server-1.20.5.tar.bz2</a></td><td align="right">2019-05-30 18:32 </td><td align="right">5.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.5.tar.bz2.sig">xorg-server-1.20.5.tar.bz2.sig</a></td><td align="right">2019-05-30 18:32 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.5.tar.gz">xorg-server-1.20.5.tar.gz</a></td><td align="right">2019-05-30 18:32 </td><td align="right">8.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.5.tar.gz.sig">xorg-server-1.20.5.tar.gz.sig</a></td><td align="right">2019-05-30 18:32 </td><td align="right">438 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.6.tar.bz2">xorg-server-1.20.6.tar.bz2</a></td><td align="right">2019-11-22 23:50 </td><td align="right">6.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.6.tar.bz2.sig">xorg-server-1.20.6.tar.bz2.sig</a></td><td align="right">2019-11-22 23:50 </td><td align="right">215 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.6.tar.gz">xorg-server-1.20.6.tar.gz</a></td><td align="right">2019-11-22 23:50 </td><td align="right">8.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="xorg-server-1.20.6.tar.gz.sig">xorg-server-1.20.6.tar.gz.sig</a></td><td align="right">2019-11-22 23:50 </td><td align="right">215 </td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+<address>Apache/2.4.38 (Debian) Server at www.x.org Port 443</address>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/software/pulseaudio/releases/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/software/pulseaudio/releases/index.html
new file mode 100644
index 000000000..bf2d23cf9
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/software/pulseaudio/releases/index.html
@@ -0,0 +1,383 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /software/pulseaudio/releases</title>
+ </head>
+ <body>
+<h1>Index of /software/pulseaudio/releases</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
+ <tr><th colspan="5"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/software/pulseaudio/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="bad/">bad/</a></td><td align="right">2014-01-26 17:50 </td><td align="right"> - </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="polypaudio-0.1.tar.gz">polypaudio-0.1.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">387K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.1.tar.gz.md5">polypaudio-0.1.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.1.tar.gz.sha1">polypaudio-0.1.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="polypaudio-0.2.tar.gz">polypaudio-0.2.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">460K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.2.tar.gz.md5">polypaudio-0.2.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.2.tar.gz.sha1">polypaudio-0.2.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="polypaudio-0.3.tar.gz">polypaudio-0.3.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">470K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.3.tar.gz.md5">polypaudio-0.3.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.3.tar.gz.sha1">polypaudio-0.3.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="polypaudio-0.4.tar.gz">polypaudio-0.4.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">486K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.4.tar.gz.md5">polypaudio-0.4.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.4.tar.gz.sha1">polypaudio-0.4.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="polypaudio-0.5.1.tar.gz">polypaudio-0.5.1.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">524K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.5.1.tar.gz.md5">polypaudio-0.5.1.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 58 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.5.1.tar.gz.sha1">polypaudio-0.5.1.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 66 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="polypaudio-0.5.tar.gz">polypaudio-0.5.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">518K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.5.tar.gz.md5">polypaudio-0.5.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.5.tar.gz.sha1">polypaudio-0.5.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="polypaudio-0.6.tar.gz">polypaudio-0.6.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">448K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.6.tar.gz.md5">polypaudio-0.6.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.6.tar.gz.sha1">polypaudio-0.6.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="polypaudio-0.7.tar.gz">polypaudio-0.7.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">924K</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.7.tar.gz.md5">polypaudio-0.7.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.7.tar.gz.sha1">polypaudio-0.7.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="polypaudio-0.8.1.tar.gz">polypaudio-0.8.1.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">1.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.8.1.tar.gz.md5">polypaudio-0.8.1.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 58 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.8.1.tar.gz.sha1">polypaudio-0.8.1.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 66 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="polypaudio-0.8.tar.gz">polypaudio-0.8.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">1.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.8.tar.gz.md5">polypaudio-0.8.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.8.tar.gz.sha1">polypaudio-0.8.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="polypaudio-0.9.0.tar.gz">polypaudio-0.9.0.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">1.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.9.0.tar.gz.md5">polypaudio-0.9.0.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 58 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.9.0.tar.gz.sha1">polypaudio-0.9.0.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 66 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="polypaudio-0.9.1.tar.gz">polypaudio-0.9.1.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">1.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.9.1.tar.gz.md5">polypaudio-0.9.1.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 58 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="polypaudio-0.9.1.tar.gz.sha1">polypaudio-0.9.1.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 66 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.2.tar.gz">pulseaudio-0.9.2.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">1.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.2.tar.gz.md5">pulseaudio-0.9.2.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 58 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.2.tar.gz.sha1">pulseaudio-0.9.2.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 66 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.3.tar.gz">pulseaudio-0.9.3.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">1.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.3.tar.gz.md5">pulseaudio-0.9.3.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 58 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.3.tar.gz.sha1">pulseaudio-0.9.3.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 66 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.4.tar.gz">pulseaudio-0.9.4.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">1.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.4.tar.gz.md5">pulseaudio-0.9.4.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 58 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.4.tar.gz.sha1">pulseaudio-0.9.4.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 66 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.5.tar.gz">pulseaudio-0.9.5.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">1.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.5.tar.gz.md5">pulseaudio-0.9.5.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 58 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.5.tar.gz.sha1">pulseaudio-0.9.5.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 66 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.6.tar.gz">pulseaudio-0.9.6.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">1.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.6.tar.gz.md5">pulseaudio-0.9.6.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 58 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.6.tar.gz.sha1">pulseaudio-0.9.6.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 66 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.7.tar.gz">pulseaudio-0.9.7.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">1.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.7.tar.gz.md5">pulseaudio-0.9.7.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 58 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.7.tar.gz.sha1">pulseaudio-0.9.7.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 66 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.8.tar.gz">pulseaudio-0.9.8.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">1.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.8.tar.gz.md5">pulseaudio-0.9.8.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 58 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.8.tar.gz.sha1">pulseaudio-0.9.8.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 66 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.9.tar.gz">pulseaudio-0.9.9.tar.gz</a></td><td align="right">2008-03-28 21:16 </td><td align="right">1.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.9.tar.gz.md5">pulseaudio-0.9.9.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 58 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.9.tar.gz.sha1">pulseaudio-0.9.9.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 66 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.10.tar.gz">pulseaudio-0.9.10.tar.gz</a></td><td align="right">2008-03-30 16:30 </td><td align="right">1.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.10.tar.gz.md5">pulseaudio-0.9.10.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.10.tar.gz.sha1">pulseaudio-0.9.10.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.11.tar.gz">pulseaudio-0.9.11.tar.gz</a></td><td align="right">2008-07-24 12:41 </td><td align="right">1.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.11.tar.gz.md5">pulseaudio-0.9.11.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.11.tar.gz.sha1">pulseaudio-0.9.11.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.12.tar.gz">pulseaudio-0.9.12.tar.gz</a></td><td align="right">2008-09-09 00:17 </td><td align="right">1.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.12.tar.gz.md5">pulseaudio-0.9.12.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.12.tar.gz.sha1">pulseaudio-0.9.12.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.13.tar.gz">pulseaudio-0.9.13.tar.gz</a></td><td align="right">2008-10-06 01:43 </td><td align="right">1.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.13.tar.gz.md5">pulseaudio-0.9.13.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.13.tar.gz.sha1">pulseaudio-0.9.13.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.14.tar.gz">pulseaudio-0.9.14.tar.gz</a></td><td align="right">2009-01-12 23:09 </td><td align="right">1.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.14.tar.gz.md5">pulseaudio-0.9.14.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.14.tar.gz.sha1">pulseaudio-0.9.14.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.15.tar.gz">pulseaudio-0.9.15.tar.gz</a></td><td align="right">2009-04-13 23:24 </td><td align="right">1.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.15.tar.gz.md5">pulseaudio-0.9.15.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.15.tar.gz.sha1">pulseaudio-0.9.15.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.16-test1.tar.gz">pulseaudio-0.9.16-test1.tar.gz</a></td><td align="right">2009-06-23 17:16 </td><td align="right">1.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.16-test1.tar.gz.md5">pulseaudio-0.9.16-test1.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 65 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.16-test1.tar.gz.sha1">pulseaudio-0.9.16-test1.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 73 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.16.tar.gz">pulseaudio-0.9.16.tar.gz</a></td><td align="right">2009-09-10 00:49 </td><td align="right">1.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.16.tar.gz.md5">pulseaudio-0.9.16.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.16.tar.gz.sha1">pulseaudio-0.9.16.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.17.tar.gz">pulseaudio-0.9.17.tar.gz</a></td><td align="right">2009-09-11 01:32 </td><td align="right">1.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.17.tar.gz.md5">pulseaudio-0.9.17.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.17.tar.gz.sha1">pulseaudio-0.9.17.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.18.tar.gz">pulseaudio-0.9.18.tar.gz</a></td><td align="right">2009-09-19 00:43 </td><td align="right">1.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.18.tar.gz.md5">pulseaudio-0.9.18.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.18.tar.gz.sha1">pulseaudio-0.9.18.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.19.tar.gz">pulseaudio-0.9.19.tar.gz</a></td><td align="right">2009-09-30 01:30 </td><td align="right">1.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.19.tar.gz.md5">pulseaudio-0.9.19.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.19.tar.gz.sha1">pulseaudio-0.9.19.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.20.tar.gz">pulseaudio-0.9.20.tar.gz</a></td><td align="right">2009-11-11 05:10 </td><td align="right">2.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.20.tar.gz.md5">pulseaudio-0.9.20.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.20.tar.gz.sha1">pulseaudio-0.9.20.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.21.tar.gz">pulseaudio-0.9.21.tar.gz</a></td><td align="right">2009-11-23 04:23 </td><td align="right">2.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.21.tar.gz.md5">pulseaudio-0.9.21.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.21.tar.gz.sha1">pulseaudio-0.9.21.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.22.tar.gz">pulseaudio-0.9.22.tar.gz</a></td><td align="right">2010-11-26 01:12 </td><td align="right">2.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.22.tar.gz.md5">pulseaudio-0.9.22.tar.gz.md5</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.22.tar.gz.sha1">pulseaudio-0.9.22.tar.gz.sha1</a></td><td align="right">2011-05-29 11:28 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.23.tar.gz">pulseaudio-0.9.23.tar.gz</a></td><td align="right">2011-06-23 21:13 </td><td align="right">2.0M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.23.tar.gz.md5">pulseaudio-0.9.23.tar.gz.md5</a></td><td align="right">2011-06-23 21:13 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.9.23.tar.gz.sha1">pulseaudio-0.9.23.tar.gz.sha1</a></td><td align="right">2011-06-23 21:13 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.99.1.tar.gz">pulseaudio-0.99.1.tar.gz</a></td><td align="right">2011-08-02 21:59 </td><td align="right">2.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.99.1.tar.gz.md5">pulseaudio-0.99.1.tar.gz.md5</a></td><td align="right">2011-08-02 21:59 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.99.1.tar.gz.sha1">pulseaudio-0.99.1.tar.gz.sha1</a></td><td align="right">2011-08-02 21:59 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.99.2.tar.gz">pulseaudio-0.99.2.tar.gz</a></td><td align="right">2011-08-16 10:19 </td><td align="right">2.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.99.2.tar.gz.md5">pulseaudio-0.99.2.tar.gz.md5</a></td><td align="right">2011-08-16 10:19 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.99.2.tar.gz.sha1">pulseaudio-0.99.2.tar.gz.sha1</a></td><td align="right">2011-08-16 10:19 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.99.3.tar.gz">pulseaudio-0.99.3.tar.gz</a></td><td align="right">2011-08-29 17:11 </td><td align="right">2.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.99.3.tar.gz.md5">pulseaudio-0.99.3.tar.gz.md5</a></td><td align="right">2011-08-29 17:11 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.99.3.tar.gz.sha1">pulseaudio-0.99.3.tar.gz.sha1</a></td><td align="right">2011-08-29 17:11 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-0.99.4.tar.gz">pulseaudio-0.99.4.tar.gz</a></td><td align="right">2011-09-15 11:04 </td><td align="right">2.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.99.4.tar.gz.md5">pulseaudio-0.99.4.tar.gz.md5</a></td><td align="right">2011-09-15 11:04 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-0.99.4.tar.gz.sha1">pulseaudio-0.99.4.tar.gz.sha1</a></td><td align="right">2011-09-15 11:04 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-1.0.tar.gz">pulseaudio-1.0.tar.gz</a></td><td align="right">2011-09-27 08:54 </td><td align="right">2.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-1.0.tar.gz.md5">pulseaudio-1.0.tar.gz.md5</a></td><td align="right">2011-09-27 08:54 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-1.0.tar.gz.sha1">pulseaudio-1.0.tar.gz.sha1</a></td><td align="right">2011-09-27 08:54 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-1.0.tar.xz">pulseaudio-1.0.tar.xz</a></td><td align="right">2011-09-27 08:54 </td><td align="right">1.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-1.0.tar.xz.md5">pulseaudio-1.0.tar.xz.md5</a></td><td align="right">2011-09-27 08:54 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-1.0.tar.xz.sha1">pulseaudio-1.0.tar.xz.sha1</a></td><td align="right">2011-09-27 08:54 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-1.1.tar.gz">pulseaudio-1.1.tar.gz</a></td><td align="right">2011-10-20 13:25 </td><td align="right">2.1M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-1.1.tar.gz.md5">pulseaudio-1.1.tar.gz.md5</a></td><td align="right">2011-10-20 13:25 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-1.1.tar.gz.sha1">pulseaudio-1.1.tar.gz.sha1</a></td><td align="right">2011-10-20 13:25 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-1.1.tar.xz">pulseaudio-1.1.tar.xz</a></td><td align="right">2011-10-20 13:25 </td><td align="right">1.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-1.1.tar.xz.md5">pulseaudio-1.1.tar.xz.md5</a></td><td align="right">2011-10-20 13:25 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-1.1.tar.xz.sha1">pulseaudio-1.1.tar.xz.sha1</a></td><td align="right">2011-10-20 13:25 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-1.99.1.tar.gz">pulseaudio-1.99.1.tar.gz</a></td><td align="right">2012-03-15 12:50 </td><td align="right">2.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-1.99.1.tar.gz.md5">pulseaudio-1.99.1.tar.gz.md5</a></td><td align="right">2012-03-15 12:50 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-1.99.1.tar.gz.sha1">pulseaudio-1.99.1.tar.gz.sha1</a></td><td align="right">2012-03-15 12:50 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-1.99.1.tar.xz">pulseaudio-1.99.1.tar.xz</a></td><td align="right">2012-03-15 12:50 </td><td align="right">1.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-1.99.1.tar.xz.md5">pulseaudio-1.99.1.tar.xz.md5</a></td><td align="right">2012-03-15 12:50 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-1.99.1.tar.xz.sha1">pulseaudio-1.99.1.tar.xz.sha1</a></td><td align="right">2012-03-15 12:50 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-2.0.tar.gz">pulseaudio-2.0.tar.gz</a></td><td align="right">2012-05-11 13:48 </td><td align="right">2.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.0.tar.gz.md5">pulseaudio-2.0.tar.gz.md5</a></td><td align="right">2012-05-11 13:48 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.0.tar.gz.sha1">pulseaudio-2.0.tar.gz.sha1</a></td><td align="right">2012-05-11 13:48 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.0.tar.xz">pulseaudio-2.0.tar.xz</a></td><td align="right">2012-05-11 13:48 </td><td align="right">1.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.0.tar.xz.md5">pulseaudio-2.0.tar.xz.md5</a></td><td align="right">2012-05-11 13:48 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.0.tar.xz.sha1">pulseaudio-2.0.tar.xz.sha1</a></td><td align="right">2012-05-11 13:48 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-2.1.tar.gz">pulseaudio-2.1.tar.gz</a></td><td align="right">2012-07-19 12:09 </td><td align="right">2.2M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.1.tar.gz.md5">pulseaudio-2.1.tar.gz.md5</a></td><td align="right">2012-07-19 12:09 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.1.tar.gz.sha1">pulseaudio-2.1.tar.gz.sha1</a></td><td align="right">2012-07-19 12:09 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.1.tar.xz">pulseaudio-2.1.tar.xz</a></td><td align="right">2012-07-19 12:09 </td><td align="right">1.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.1.tar.xz.md5">pulseaudio-2.1.tar.xz.md5</a></td><td align="right">2012-07-19 12:09 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.1.tar.xz.sha1">pulseaudio-2.1.tar.xz.sha1</a></td><td align="right">2012-07-19 12:09 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-2.99.1.tar.gz">pulseaudio-2.99.1.tar.gz</a></td><td align="right">2012-11-03 11:44 </td><td align="right">2.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.99.1.tar.gz.md5">pulseaudio-2.99.1.tar.gz.md5</a></td><td align="right">2012-11-03 11:45 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.99.1.tar.gz.sha1">pulseaudio-2.99.1.tar.gz.sha1</a></td><td align="right">2012-11-03 11:45 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.99.1.tar.xz">pulseaudio-2.99.1.tar.xz</a></td><td align="right">2012-11-03 11:44 </td><td align="right">1.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.99.1.tar.xz.md5">pulseaudio-2.99.1.tar.xz.md5</a></td><td align="right">2012-11-03 11:46 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.99.1.tar.xz.sha1">pulseaudio-2.99.1.tar.xz.sha1</a></td><td align="right">2012-11-03 11:46 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-2.99.2.tar.gz">pulseaudio-2.99.2.tar.gz</a></td><td align="right">2012-11-17 08:21 </td><td align="right">2.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.99.2.tar.gz.md5">pulseaudio-2.99.2.tar.gz.md5</a></td><td align="right">2012-11-17 08:22 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.99.2.tar.gz.sha1">pulseaudio-2.99.2.tar.gz.sha1</a></td><td align="right">2012-11-17 08:22 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.99.2.tar.xz">pulseaudio-2.99.2.tar.xz</a></td><td align="right">2012-11-17 08:21 </td><td align="right">1.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.99.2.tar.xz.md5">pulseaudio-2.99.2.tar.xz.md5</a></td><td align="right">2012-11-17 08:22 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.99.2.tar.xz.sha1">pulseaudio-2.99.2.tar.xz.sha1</a></td><td align="right">2012-11-17 08:22 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-2.99.3.tar.gz">pulseaudio-2.99.3.tar.gz</a></td><td align="right">2012-12-07 04:07 </td><td align="right">2.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.99.3.tar.gz.md5">pulseaudio-2.99.3.tar.gz.md5</a></td><td align="right">2012-12-07 04:07 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.99.3.tar.gz.sha1">pulseaudio-2.99.3.tar.gz.sha1</a></td><td align="right">2012-12-07 04:07 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.99.3.tar.xz">pulseaudio-2.99.3.tar.xz</a></td><td align="right">2012-12-07 04:07 </td><td align="right">1.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.99.3.tar.xz.md5">pulseaudio-2.99.3.tar.xz.md5</a></td><td align="right">2012-12-07 04:07 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-2.99.3.tar.xz.sha1">pulseaudio-2.99.3.tar.xz.sha1</a></td><td align="right">2012-12-07 04:07 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-3.0.tar.gz">pulseaudio-3.0.tar.gz</a></td><td align="right">2012-12-18 07:22 </td><td align="right">2.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-3.0.tar.gz.md5">pulseaudio-3.0.tar.gz.md5</a></td><td align="right">2012-12-18 07:22 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-3.0.tar.gz.sha1">pulseaudio-3.0.tar.gz.sha1</a></td><td align="right">2012-12-18 07:22 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-3.0.tar.xz">pulseaudio-3.0.tar.xz</a></td><td align="right">2012-12-18 07:22 </td><td align="right">1.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-3.0.tar.xz.md5">pulseaudio-3.0.tar.xz.md5</a></td><td align="right">2012-12-18 07:22 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-3.0.tar.xz.sha1">pulseaudio-3.0.tar.xz.sha1</a></td><td align="right">2012-12-18 07:22 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-3.99.1.tar.gz">pulseaudio-3.99.1.tar.gz</a></td><td align="right">2013-04-16 04:10 </td><td align="right">2.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-3.99.1.tar.gz.md5">pulseaudio-3.99.1.tar.gz.md5</a></td><td align="right">2013-04-16 04:10 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-3.99.1.tar.gz.sha1">pulseaudio-3.99.1.tar.gz.sha1</a></td><td align="right">2013-04-16 04:10 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-3.99.1.tar.xz">pulseaudio-3.99.1.tar.xz</a></td><td align="right">2013-04-16 04:10 </td><td align="right">1.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-3.99.1.tar.xz.md5">pulseaudio-3.99.1.tar.xz.md5</a></td><td align="right">2013-04-16 04:10 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-3.99.1.tar.xz.sha1">pulseaudio-3.99.1.tar.xz.sha1</a></td><td align="right">2013-04-16 04:10 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-3.99.2.tar.gz">pulseaudio-3.99.2.tar.gz</a></td><td align="right">2013-05-23 03:26 </td><td align="right">2.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-3.99.2.tar.gz.md5">pulseaudio-3.99.2.tar.gz.md5</a></td><td align="right">2013-05-23 03:26 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-3.99.2.tar.gz.sha1">pulseaudio-3.99.2.tar.gz.sha1</a></td><td align="right">2013-05-23 03:26 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-3.99.2.tar.xz">pulseaudio-3.99.2.tar.xz</a></td><td align="right">2013-05-23 03:26 </td><td align="right">1.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-3.99.2.tar.xz.md5">pulseaudio-3.99.2.tar.xz.md5</a></td><td align="right">2013-05-23 03:26 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-3.99.2.tar.xz.sha1">pulseaudio-3.99.2.tar.xz.sha1</a></td><td align="right">2013-05-23 03:26 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-4.0.tar.gz">pulseaudio-4.0.tar.gz</a></td><td align="right">2013-06-03 18:52 </td><td align="right">2.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.0.tar.gz.md5">pulseaudio-4.0.tar.gz.md5</a></td><td align="right">2013-06-03 18:52 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.0.tar.gz.sha1">pulseaudio-4.0.tar.gz.sha1</a></td><td align="right">2013-06-03 18:52 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.0.tar.xz">pulseaudio-4.0.tar.xz</a></td><td align="right">2013-06-03 18:52 </td><td align="right">1.3M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.0.tar.xz.md5">pulseaudio-4.0.tar.xz.md5</a></td><td align="right">2013-06-03 18:52 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.0.tar.xz.sha1">pulseaudio-4.0.tar.xz.sha1</a></td><td align="right">2013-06-03 18:52 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-4.99.2.tar.gz">pulseaudio-4.99.2.tar.gz</a></td><td align="right">2014-01-23 19:10 </td><td align="right">2.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.99.2.tar.gz.md5">pulseaudio-4.99.2.tar.gz.md5</a></td><td align="right">2014-01-23 19:10 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.99.2.tar.gz.sha1">pulseaudio-4.99.2.tar.gz.sha1</a></td><td align="right">2014-01-23 19:10 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.99.2.tar.xz">pulseaudio-4.99.2.tar.xz</a></td><td align="right">2014-01-23 19:10 </td><td align="right">1.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.99.2.tar.xz.md5">pulseaudio-4.99.2.tar.xz.md5</a></td><td align="right">2014-01-23 19:10 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.99.2.tar.xz.sha1">pulseaudio-4.99.2.tar.xz.sha1</a></td><td align="right">2014-01-23 19:10 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-4.99.3.tar.gz">pulseaudio-4.99.3.tar.gz</a></td><td align="right">2014-01-29 20:16 </td><td align="right">2.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.99.3.tar.gz.md5">pulseaudio-4.99.3.tar.gz.md5</a></td><td align="right">2014-01-29 20:16 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.99.3.tar.gz.sha1">pulseaudio-4.99.3.tar.gz.sha1</a></td><td align="right">2014-01-29 20:16 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.99.3.tar.xz">pulseaudio-4.99.3.tar.xz</a></td><td align="right">2014-01-29 20:16 </td><td align="right">1.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.99.3.tar.xz.md5">pulseaudio-4.99.3.tar.xz.md5</a></td><td align="right">2014-01-29 20:16 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.99.3.tar.xz.sha1">pulseaudio-4.99.3.tar.xz.sha1</a></td><td align="right">2014-01-29 20:16 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-4.99.4.tar.gz">pulseaudio-4.99.4.tar.gz</a></td><td align="right">2014-02-15 06:04 </td><td align="right">2.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.99.4.tar.gz.md5">pulseaudio-4.99.4.tar.gz.md5</a></td><td align="right">2014-02-15 06:04 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.99.4.tar.gz.sha1">pulseaudio-4.99.4.tar.gz.sha1</a></td><td align="right">2014-02-15 06:04 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.99.4.tar.xz">pulseaudio-4.99.4.tar.xz</a></td><td align="right">2014-02-15 06:04 </td><td align="right">1.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.99.4.tar.xz.md5">pulseaudio-4.99.4.tar.xz.md5</a></td><td align="right">2014-02-15 06:04 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-4.99.4.tar.xz.sha1">pulseaudio-4.99.4.tar.xz.sha1</a></td><td align="right">2014-02-15 06:04 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-5.0.tar.gz">pulseaudio-5.0.tar.gz</a></td><td align="right">2014-03-03 15:00 </td><td align="right">2.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.0.tar.gz.md5">pulseaudio-5.0.tar.gz.md5</a></td><td align="right">2014-03-03 15:00 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.0.tar.gz.sha1">pulseaudio-5.0.tar.gz.sha1</a></td><td align="right">2014-03-03 15:00 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.0.tar.xz">pulseaudio-5.0.tar.xz</a></td><td align="right">2014-03-03 15:00 </td><td align="right">1.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.0.tar.xz.md5">pulseaudio-5.0.tar.xz.md5</a></td><td align="right">2014-03-03 15:00 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.0.tar.xz.sha1">pulseaudio-5.0.tar.xz.sha1</a></td><td align="right">2014-03-03 15:00 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-5.99.1.tar.gz">pulseaudio-5.99.1.tar.gz</a></td><td align="right">2014-11-21 14:26 </td><td align="right">2.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.99.1.tar.gz.md5">pulseaudio-5.99.1.tar.gz.md5</a></td><td align="right">2014-11-21 14:26 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.99.1.tar.gz.sha1">pulseaudio-5.99.1.tar.gz.sha1</a></td><td align="right">2014-11-21 14:26 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.99.1.tar.xz">pulseaudio-5.99.1.tar.xz</a></td><td align="right">2014-11-21 14:27 </td><td align="right">1.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.99.1.tar.xz.md5">pulseaudio-5.99.1.tar.xz.md5</a></td><td align="right">2014-11-21 14:27 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.99.1.tar.xz.sha1">pulseaudio-5.99.1.tar.xz.sha1</a></td><td align="right">2014-11-21 14:27 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-5.99.2.tar.gz">pulseaudio-5.99.2.tar.gz</a></td><td align="right">2014-12-19 13:08 </td><td align="right">2.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.99.2.tar.gz.md5">pulseaudio-5.99.2.tar.gz.md5</a></td><td align="right">2014-12-19 13:08 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.99.2.tar.gz.sha1">pulseaudio-5.99.2.tar.gz.sha1</a></td><td align="right">2014-12-19 13:08 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.99.2.tar.xz">pulseaudio-5.99.2.tar.xz</a></td><td align="right">2014-12-19 13:08 </td><td align="right">1.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.99.2.tar.xz.md5">pulseaudio-5.99.2.tar.xz.md5</a></td><td align="right">2014-12-19 13:08 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.99.2.tar.xz.sha1">pulseaudio-5.99.2.tar.xz.sha1</a></td><td align="right">2014-12-19 13:08 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-5.99.3.tar.gz">pulseaudio-5.99.3.tar.gz</a></td><td align="right">2015-01-21 14:45 </td><td align="right">2.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.99.3.tar.gz.md5">pulseaudio-5.99.3.tar.gz.md5</a></td><td align="right">2015-01-21 14:45 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.99.3.tar.gz.sha1">pulseaudio-5.99.3.tar.gz.sha1</a></td><td align="right">2015-01-21 14:45 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.99.3.tar.xz">pulseaudio-5.99.3.tar.xz</a></td><td align="right">2015-01-21 14:45 </td><td align="right">1.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.99.3.tar.xz.md5">pulseaudio-5.99.3.tar.xz.md5</a></td><td align="right">2015-01-21 14:45 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-5.99.3.tar.xz.sha1">pulseaudio-5.99.3.tar.xz.sha1</a></td><td align="right">2015-01-21 14:45 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-6.0.tar.gz">pulseaudio-6.0.tar.gz</a></td><td align="right">2015-02-12 19:02 </td><td align="right">2.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-6.0.tar.gz.md5">pulseaudio-6.0.tar.gz.md5</a></td><td align="right">2015-02-12 19:02 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-6.0.tar.gz.sha1">pulseaudio-6.0.tar.gz.sha1</a></td><td align="right">2015-02-12 19:02 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-6.0.tar.xz">pulseaudio-6.0.tar.xz</a></td><td align="right">2015-02-12 19:02 </td><td align="right">1.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-6.0.tar.xz.md5">pulseaudio-6.0.tar.xz.md5</a></td><td align="right">2015-02-12 19:02 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-6.0.tar.xz.sha1">pulseaudio-6.0.tar.xz.sha1</a></td><td align="right">2015-02-12 19:02 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-6.99.1.tar.gz">pulseaudio-6.99.1.tar.gz</a></td><td align="right">2015-08-27 17:56 </td><td align="right">2.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-6.99.1.tar.gz.md5">pulseaudio-6.99.1.tar.gz.md5</a></td><td align="right">2015-08-27 17:56 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-6.99.1.tar.gz.sha1">pulseaudio-6.99.1.tar.gz.sha1</a></td><td align="right">2015-08-27 17:56 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-6.99.1.tar.xz">pulseaudio-6.99.1.tar.xz</a></td><td align="right">2015-08-27 17:56 </td><td align="right">1.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-6.99.1.tar.xz.md5">pulseaudio-6.99.1.tar.xz.md5</a></td><td align="right">2015-08-27 17:56 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-6.99.1.tar.xz.sha1">pulseaudio-6.99.1.tar.xz.sha1</a></td><td align="right">2015-08-27 17:56 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-6.99.2.tar.gz">pulseaudio-6.99.2.tar.gz</a></td><td align="right">2015-09-12 13:56 </td><td align="right">2.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-6.99.2.tar.gz.md5">pulseaudio-6.99.2.tar.gz.md5</a></td><td align="right">2015-09-12 13:56 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-6.99.2.tar.gz.sha1">pulseaudio-6.99.2.tar.gz.sha1</a></td><td align="right">2015-09-12 13:56 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-6.99.2.tar.xz">pulseaudio-6.99.2.tar.xz</a></td><td align="right">2015-09-12 13:56 </td><td align="right">1.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-6.99.2.tar.xz.md5">pulseaudio-6.99.2.tar.xz.md5</a></td><td align="right">2015-09-12 13:56 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-6.99.2.tar.xz.sha1">pulseaudio-6.99.2.tar.xz.sha1</a></td><td align="right">2015-09-12 13:56 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-7.0.tar.gz">pulseaudio-7.0.tar.gz</a></td><td align="right">2015-09-24 03:31 </td><td align="right">2.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.0.tar.gz.md5sum">pulseaudio-7.0.tar.gz.md5sum</a></td><td align="right">2015-09-24 03:31 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.0.tar.gz.sha1sum">pulseaudio-7.0.tar.gz.sha1sum</a></td><td align="right">2015-09-24 03:31 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.0.tar.xz">pulseaudio-7.0.tar.xz</a></td><td align="right">2015-09-24 03:31 </td><td align="right">1.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.0.tar.xz.md5">pulseaudio-7.0.tar.xz.md5</a></td><td align="right">2015-09-24 03:31 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.0.tar.xz.md5sum">pulseaudio-7.0.tar.xz.md5sum</a></td><td align="right">2015-09-24 03:31 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.0.tar.xz.sha1">pulseaudio-7.0.tar.xz.sha1</a></td><td align="right">2015-09-24 03:31 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.0.tar.xz.sha1sum">pulseaudio-7.0.tar.xz.sha1sum</a></td><td align="right">2015-09-24 03:31 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-7.1.tar.gz">pulseaudio-7.1.tar.gz</a></td><td align="right">2015-10-30 12:51 </td><td align="right">2.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.1.tar.gz.md5">pulseaudio-7.1.tar.gz.md5</a></td><td align="right">2015-10-30 12:51 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.1.tar.gz.sha1">pulseaudio-7.1.tar.gz.sha1</a></td><td align="right">2015-10-30 12:51 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.1.tar.xz">pulseaudio-7.1.tar.xz</a></td><td align="right">2015-10-30 12:51 </td><td align="right">1.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.1.tar.xz.md5">pulseaudio-7.1.tar.xz.md5</a></td><td align="right">2015-10-30 12:51 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.1.tar.xz.sha1">pulseaudio-7.1.tar.xz.sha1</a></td><td align="right">2015-10-30 12:51 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-7.99.1.tar.gz">pulseaudio-7.99.1.tar.gz</a></td><td align="right">2015-12-28 12:38 </td><td align="right">2.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.99.1.tar.gz.md5">pulseaudio-7.99.1.tar.gz.md5</a></td><td align="right">2015-12-28 12:38 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.99.1.tar.gz.sha1">pulseaudio-7.99.1.tar.gz.sha1</a></td><td align="right">2015-12-28 12:38 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.99.1.tar.xz">pulseaudio-7.99.1.tar.xz</a></td><td align="right">2015-12-28 12:39 </td><td align="right">1.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.99.1.tar.xz.md5">pulseaudio-7.99.1.tar.xz.md5</a></td><td align="right">2015-12-28 12:39 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.99.1.tar.xz.sha1">pulseaudio-7.99.1.tar.xz.sha1</a></td><td align="right">2015-12-28 12:39 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-7.99.2.tar.gz">pulseaudio-7.99.2.tar.gz</a></td><td align="right">2016-01-12 03:28 </td><td align="right">2.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.99.2.tar.gz.md5">pulseaudio-7.99.2.tar.gz.md5</a></td><td align="right">2016-01-12 03:28 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.99.2.tar.gz.sha1">pulseaudio-7.99.2.tar.gz.sha1</a></td><td align="right">2016-01-12 03:28 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.99.2.tar.xz">pulseaudio-7.99.2.tar.xz</a></td><td align="right">2016-01-12 03:28 </td><td align="right">1.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.99.2.tar.xz.md5">pulseaudio-7.99.2.tar.xz.md5</a></td><td align="right">2016-01-12 03:28 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-7.99.2.tar.xz.sha1">pulseaudio-7.99.2.tar.xz.sha1</a></td><td align="right">2016-01-12 03:28 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-8.0.tar.gz">pulseaudio-8.0.tar.gz</a></td><td align="right">2016-01-22 07:38 </td><td align="right">2.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-8.0.tar.gz.md5">pulseaudio-8.0.tar.gz.md5</a></td><td align="right">2016-01-22 07:38 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-8.0.tar.gz.sha1">pulseaudio-8.0.tar.gz.sha1</a></td><td align="right">2016-01-22 07:38 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-8.0.tar.xz">pulseaudio-8.0.tar.xz</a></td><td align="right">2016-01-22 07:38 </td><td align="right">1.4M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-8.0.tar.xz.md5">pulseaudio-8.0.tar.xz.md5</a></td><td align="right">2016-01-22 07:38 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-8.0.tar.xz.sha1">pulseaudio-8.0.tar.xz.sha1</a></td><td align="right">2016-01-22 07:38 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-8.99.1.tar.gz">pulseaudio-8.99.1.tar.gz</a></td><td align="right">2016-05-12 10:58 </td><td align="right">2.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-8.99.1.tar.gz.md5">pulseaudio-8.99.1.tar.gz.md5</a></td><td align="right">2016-05-12 10:58 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-8.99.1.tar.gz.sha1">pulseaudio-8.99.1.tar.gz.sha1</a></td><td align="right">2016-05-12 10:58 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-8.99.1.tar.xz">pulseaudio-8.99.1.tar.xz</a></td><td align="right">2016-05-12 10:58 </td><td align="right">1.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-8.99.1.tar.xz.md5">pulseaudio-8.99.1.tar.xz.md5</a></td><td align="right">2016-05-12 10:58 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-8.99.1.tar.xz.sha1">pulseaudio-8.99.1.tar.xz.sha1</a></td><td align="right">2016-05-12 10:58 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-8.99.2.tar.gz">pulseaudio-8.99.2.tar.gz</a></td><td align="right">2016-05-29 06:08 </td><td align="right">2.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-8.99.2.tar.gz.md5">pulseaudio-8.99.2.tar.gz.md5</a></td><td align="right">2016-05-29 06:08 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-8.99.2.tar.gz.sha1">pulseaudio-8.99.2.tar.gz.sha1</a></td><td align="right">2016-05-29 06:08 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-8.99.2.tar.xz">pulseaudio-8.99.2.tar.xz</a></td><td align="right">2016-05-29 06:08 </td><td align="right">1.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-8.99.2.tar.xz.md5">pulseaudio-8.99.2.tar.xz.md5</a></td><td align="right">2016-05-29 06:08 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-8.99.2.tar.xz.sha1">pulseaudio-8.99.2.tar.xz.sha1</a></td><td align="right">2016-05-29 06:08 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-9.0.tar.gz">pulseaudio-9.0.tar.gz</a></td><td align="right">2016-06-22 07:09 </td><td align="right">2.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-9.0.tar.gz.md5">pulseaudio-9.0.tar.gz.md5</a></td><td align="right">2016-06-22 07:09 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-9.0.tar.gz.sha1">pulseaudio-9.0.tar.gz.sha1</a></td><td align="right">2016-06-22 07:09 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-9.0.tar.xz">pulseaudio-9.0.tar.xz</a></td><td align="right">2016-06-22 07:09 </td><td align="right">1.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-9.0.tar.xz.md5">pulseaudio-9.0.tar.xz.md5</a></td><td align="right">2016-06-22 07:09 </td><td align="right"> 56 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-9.0.tar.xz.sha1">pulseaudio-9.0.tar.xz.sha1</a></td><td align="right">2016-06-22 07:09 </td><td align="right"> 64 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-9.99.1.tar.gz">pulseaudio-9.99.1.tar.gz</a></td><td align="right">2017-01-03 16:14 </td><td align="right">2.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-9.99.1.tar.gz.md5">pulseaudio-9.99.1.tar.gz.md5</a></td><td align="right">2017-01-03 16:14 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-9.99.1.tar.gz.sha1">pulseaudio-9.99.1.tar.gz.sha1</a></td><td align="right">2017-01-03 16:14 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-9.99.1.tar.xz">pulseaudio-9.99.1.tar.xz</a></td><td align="right">2017-01-03 16:14 </td><td align="right">1.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-9.99.1.tar.xz.md5">pulseaudio-9.99.1.tar.xz.md5</a></td><td align="right">2017-01-03 16:14 </td><td align="right"> 59 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-9.99.1.tar.xz.sha1">pulseaudio-9.99.1.tar.xz.sha1</a></td><td align="right">2017-01-03 16:14 </td><td align="right"> 67 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-10.0.tar.gz">pulseaudio-10.0.tar.gz</a></td><td align="right">2017-01-19 00:12 </td><td align="right">2.7M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-10.0.tar.gz.md5">pulseaudio-10.0.tar.gz.md5</a></td><td align="right">2017-01-19 00:12 </td><td align="right"> 57 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-10.0.tar.gz.sha1">pulseaudio-10.0.tar.gz.sha1</a></td><td align="right">2017-01-19 00:12 </td><td align="right"> 65 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-10.0.tar.xz">pulseaudio-10.0.tar.xz</a></td><td align="right">2017-01-19 00:12 </td><td align="right">1.5M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-10.0.tar.xz.md5">pulseaudio-10.0.tar.xz.md5</a></td><td align="right">2017-01-19 00:12 </td><td align="right"> 57 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-10.0.tar.xz.sha1">pulseaudio-10.0.tar.xz.sha1</a></td><td align="right">2017-01-19 00:12 </td><td align="right"> 65 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-10.99.1.tar.gz">pulseaudio-10.99.1.tar.gz</a></td><td align="right">2017-07-24 23:52 </td><td align="right">2.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-10.99.1.tar.gz.md5">pulseaudio-10.99.1.tar.gz.md5</a></td><td align="right">2017-07-24 23:52 </td><td align="right"> 60 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-10.99.1.tar.gz.sha1">pulseaudio-10.99.1.tar.gz.sha1</a></td><td align="right">2017-07-24 23:52 </td><td align="right"> 68 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-10.99.1.tar.xz">pulseaudio-10.99.1.tar.xz</a></td><td align="right">2017-07-24 23:52 </td><td align="right">1.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-10.99.1.tar.xz.md5">pulseaudio-10.99.1.tar.xz.md5</a></td><td align="right">2017-07-24 23:52 </td><td align="right"> 60 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-10.99.1.tar.xz.sha1">pulseaudio-10.99.1.tar.xz.sha1</a></td><td align="right">2017-07-24 23:52 </td><td align="right"> 68 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-11.0.tar.gz">pulseaudio-11.0.tar.gz</a></td><td align="right">2017-09-05 09:49 </td><td align="right">2.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-11.0.tar.gz.md5">pulseaudio-11.0.tar.gz.md5</a></td><td align="right">2017-09-05 09:49 </td><td align="right"> 57 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-11.0.tar.gz.sha1">pulseaudio-11.0.tar.gz.sha1</a></td><td align="right">2017-09-05 09:49 </td><td align="right"> 65 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-11.0.tar.xz">pulseaudio-11.0.tar.xz</a></td><td align="right">2017-09-05 09:49 </td><td align="right">1.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-11.0.tar.xz.md5">pulseaudio-11.0.tar.xz.md5</a></td><td align="right">2017-09-05 09:49 </td><td align="right"> 57 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-11.0.tar.xz.sha1">pulseaudio-11.0.tar.xz.sha1</a></td><td align="right">2017-09-05 09:49 </td><td align="right"> 65 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-11.1.tar.gz">pulseaudio-11.1.tar.gz</a></td><td align="right">2017-09-18 15:23 </td><td align="right">2.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-11.1.tar.gz.md5">pulseaudio-11.1.tar.gz.md5</a></td><td align="right">2017-09-18 15:23 </td><td align="right"> 57 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-11.1.tar.gz.sha1">pulseaudio-11.1.tar.gz.sha1</a></td><td align="right">2017-09-18 15:23 </td><td align="right"> 65 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-11.1.tar.xz">pulseaudio-11.1.tar.xz</a></td><td align="right">2017-09-18 15:23 </td><td align="right">1.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-11.1.tar.xz.md5">pulseaudio-11.1.tar.xz.md5</a></td><td align="right">2017-09-18 15:23 </td><td align="right"> 57 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-11.1.tar.xz.sha1">pulseaudio-11.1.tar.xz.sha1</a></td><td align="right">2017-09-18 15:23 </td><td align="right"> 65 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-11.99.1.tar.gz">pulseaudio-11.99.1.tar.gz</a></td><td align="right">2018-05-13 06:57 </td><td align="right">2.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-11.99.1.tar.gz.md5">pulseaudio-11.99.1.tar.gz.md5</a></td><td align="right">2018-05-13 06:57 </td><td align="right"> 60 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-11.99.1.tar.gz.sha1">pulseaudio-11.99.1.tar.gz.sha1</a></td><td align="right">2018-05-13 06:57 </td><td align="right"> 68 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-11.99.1.tar.xz">pulseaudio-11.99.1.tar.xz</a></td><td align="right">2018-05-13 06:57 </td><td align="right">1.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-11.99.1.tar.xz.md5">pulseaudio-11.99.1.tar.xz.md5</a></td><td align="right">2018-05-13 06:57 </td><td align="right"> 60 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-11.99.1.tar.xz.sha1">pulseaudio-11.99.1.tar.xz.sha1</a></td><td align="right">2018-05-13 06:57 </td><td align="right"> 68 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-12.0.tar.gz">pulseaudio-12.0.tar.gz</a></td><td align="right">2018-06-20 20:33 </td><td align="right">2.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.0.tar.gz.md5">pulseaudio-12.0.tar.gz.md5</a></td><td align="right">2018-06-20 20:33 </td><td align="right"> 57 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.0.tar.gz.sha1">pulseaudio-12.0.tar.gz.sha1</a></td><td align="right">2018-06-20 20:33 </td><td align="right"> 65 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.0.tar.xz">pulseaudio-12.0.tar.xz</a></td><td align="right">2018-06-20 20:33 </td><td align="right">1.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.0.tar.xz.md5">pulseaudio-12.0.tar.xz.md5</a></td><td align="right">2018-06-20 20:33 </td><td align="right"> 57 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.0.tar.xz.sha1">pulseaudio-12.0.tar.xz.sha1</a></td><td align="right">2018-06-20 20:33 </td><td align="right"> 65 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-12.1.tar.gz">pulseaudio-12.1.tar.gz</a></td><td align="right">2018-07-14 16:43 </td><td align="right">2.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.1.tar.gz.md5">pulseaudio-12.1.tar.gz.md5</a></td><td align="right">2018-07-14 16:43 </td><td align="right"> 57 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.1.tar.gz.sha1">pulseaudio-12.1.tar.gz.sha1</a></td><td align="right">2018-07-14 16:43 </td><td align="right"> 65 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.1.tar.xz">pulseaudio-12.1.tar.xz</a></td><td align="right">2018-07-14 16:43 </td><td align="right">1.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.1.tar.xz.md5">pulseaudio-12.1.tar.xz.md5</a></td><td align="right">2018-07-14 16:43 </td><td align="right"> 57 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.1.tar.xz.sha1">pulseaudio-12.1.tar.xz.sha1</a></td><td align="right">2018-07-14 16:43 </td><td align="right"> 65 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-12.2.tar.gz">pulseaudio-12.2.tar.gz</a></td><td align="right">2018-07-16 16:12 </td><td align="right">2.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.2.tar.gz.sha256">pulseaudio-12.2.tar.gz.sha256</a></td><td align="right">2018-07-16 16:13 </td><td align="right"> 89 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.2.tar.xz">pulseaudio-12.2.tar.xz</a></td><td align="right">2018-07-16 16:12 </td><td align="right">1.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.2.tar.xz.sha256">pulseaudio-12.2.tar.xz.sha256</a></td><td align="right">2018-07-16 16:13 </td><td align="right"> 89 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-12.99.1.tar.gz">pulseaudio-12.99.1.tar.gz</a></td><td align="right">2019-07-09 03:16 </td><td align="right">3.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.99.1.tar.gz.sha256">pulseaudio-12.99.1.tar.gz.sha256</a></td><td align="right">2019-07-09 03:16 </td><td align="right"> 92 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.99.1.tar.xz">pulseaudio-12.99.1.tar.xz</a></td><td align="right">2019-07-09 03:16 </td><td align="right">1.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.99.1.tar.xz.sha256">pulseaudio-12.99.1.tar.xz.sha256</a></td><td align="right">2019-07-09 03:16 </td><td align="right"> 92 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-12.99.2.tar.gz">pulseaudio-12.99.2.tar.gz</a></td><td align="right">2019-08-06 17:47 </td><td align="right">3.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.99.2.tar.gz.sha256">pulseaudio-12.99.2.tar.gz.sha256</a></td><td align="right">2019-08-06 17:47 </td><td align="right"> 92 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.99.2.tar.xz">pulseaudio-12.99.2.tar.xz</a></td><td align="right">2019-08-06 17:47 </td><td align="right">1.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.99.2.tar.xz.sha256">pulseaudio-12.99.2.tar.xz.sha256</a></td><td align="right">2019-08-06 17:47 </td><td align="right"> 92 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-12.99.3.tar.gz">pulseaudio-12.99.3.tar.gz</a></td><td align="right">2019-09-01 07:44 </td><td align="right">3.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.99.3.tar.gz.sha256">pulseaudio-12.99.3.tar.gz.sha256</a></td><td align="right">2019-09-01 07:44 </td><td align="right"> 92 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.99.3.tar.xz">pulseaudio-12.99.3.tar.xz</a></td><td align="right">2019-09-01 07:44 </td><td align="right">1.9M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-12.99.3.tar.xz.sha256">pulseaudio-12.99.3.tar.xz.sha256</a></td><td align="right">2019-09-01 07:44 </td><td align="right"> 92 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="pulseaudio-13.0.tar.gz">pulseaudio-13.0.tar.gz</a></td><td align="right">2019-09-13 13:34 </td><td align="right">3.6M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-13.0.tar.gz.sha256">pulseaudio-13.0.tar.gz.sha256</a></td><td align="right">2019-09-13 13:34 </td><td align="right"> 89 </td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-13.0.tar.xz">pulseaudio-13.0.tar.xz</a></td><td align="right">2019-09-13 13:34 </td><td align="right">1.8M</td><td>&nbsp;</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="pulseaudio-13.0.tar.xz.sha256">pulseaudio-13.0.tar.xz.sha256</a></td><td align="right">2019-09-13 13:34 </td><td align="right"> 89 </td><td>&nbsp;</td></tr>
+ <tr><th colspan="5"><hr></th></tr>
+</table>
+<address>Apache/2.4.38 (Debian) Server at freedesktop.org Port 443</address>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py
index 83fad3ff0..d0c161a7f 100644
--- a/poky/bitbake/lib/bb/tests/fetch.py
+++ b/poky/bitbake/lib/bb/tests/fetch.py
@@ -9,12 +9,12 @@
import unittest
import hashlib
import tempfile
-import subprocess
import collections
import os
from bb.fetch2 import URI
from bb.fetch2 import FetchMethod
import bb
+from bb.tests.support.httpserver import HTTPService
def skipIfNoNetwork():
if os.environ.get("BB_SKIP_NETTESTS") == "yes":
@@ -1180,27 +1180,46 @@ class FetchLatestVersionTest(FetcherTest):
}
test_wget_uris = {
+ #
# packages with versions inside directory name
- ("util-linux", "http://kernel.org/pub/linux/utils/util-linux/v2.23/util-linux-2.24.2.tar.bz2", "", "")
+ #
+ # http://kernel.org/pub/linux/utils/util-linux/v2.23/util-linux-2.24.2.tar.bz2
+ ("util-linux", "/pub/linux/utils/util-linux/v2.23/util-linux-2.24.2.tar.bz2", "", "")
: "2.24.2",
- ("enchant", "http://www.abisource.com/downloads/enchant/1.6.0/enchant-1.6.0.tar.gz", "", "")
+ # http://www.abisource.com/downloads/enchant/1.6.0/enchant-1.6.0.tar.gz
+ ("enchant", "/downloads/enchant/1.6.0/enchant-1.6.0.tar.gz", "", "")
: "1.6.0",
- ("cmake", "http://www.cmake.org/files/v2.8/cmake-2.8.12.1.tar.gz", "", "")
+ # http://www.cmake.org/files/v2.8/cmake-2.8.12.1.tar.gz
+ ("cmake", "/files/v2.8/cmake-2.8.12.1.tar.gz", "", "")
: "2.8.12.1",
+ #
# packages with versions only in current directory
- ("eglic", "http://downloads.yoctoproject.org/releases/eglibc/eglibc-2.18-svnr23787.tar.bz2", "", "")
+ #
+ # http://downloads.yoctoproject.org/releases/eglibc/eglibc-2.18-svnr23787.tar.bz2
+ ("eglic", "/releases/eglibc/eglibc-2.18-svnr23787.tar.bz2", "", "")
: "2.19",
- ("gnu-config", "http://downloads.yoctoproject.org/releases/gnu-config/gnu-config-20120814.tar.bz2", "", "")
+ # http://downloads.yoctoproject.org/releases/gnu-config/gnu-config-20120814.tar.bz2
+ ("gnu-config", "/releases/gnu-config/gnu-config-20120814.tar.bz2", "", "")
: "20120814",
+ #
# packages with "99" in the name of possible version
- ("pulseaudio", "http://freedesktop.org/software/pulseaudio/releases/pulseaudio-4.0.tar.xz", "", "")
+ #
+ # http://freedesktop.org/software/pulseaudio/releases/pulseaudio-4.0.tar.xz
+ ("pulseaudio", "/software/pulseaudio/releases/pulseaudio-4.0.tar.xz", "", "")
: "5.0",
- ("xserver-xorg", "http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.15.1.tar.bz2", "", "")
+ # http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.15.1.tar.bz2
+ ("xserver-xorg", "/releases/individual/xserver/xorg-server-1.15.1.tar.bz2", "", "")
: "1.15.1",
+ #
# packages with valid UPSTREAM_CHECK_URI and UPSTREAM_CHECK_REGEX
- ("cups", "http://www.cups.org/software/1.7.2/cups-1.7.2-source.tar.bz2", "https://github.com/apple/cups/releases", "(?P<name>cups\-)(?P<pver>((\d+[\.\-_]*)+))\-source\.tar\.gz")
+ #
+ # http://www.cups.org/software/1.7.2/cups-1.7.2-source.tar.bz2
+ # https://github.com/apple/cups/releases
+ ("cups", "/software/1.7.2/cups-1.7.2-source.tar.bz2", "/apple/cups/releases", "(?P<name>cups\-)(?P<pver>((\d+[\.\-_]*)+))\-source\.tar\.gz")
: "2.0.0",
- ("db", "http://download.oracle.com/berkeley-db/db-5.3.21.tar.gz", "http://ftp.debian.org/debian/pool/main/d/db5.3/", "(?P<name>db5\.3_)(?P<pver>\d+(\.\d+)+).+\.orig\.tar\.xz")
+ # http://download.oracle.com/berkeley-db/db-5.3.21.tar.gz
+ # http://ftp.debian.org/debian/pool/main/d/db5.3/
+ ("db", "/berkeley-db/db-5.3.21.tar.gz", "/debian/pool/main/d/db5.3/", "(?P<name>db5\.3_)(?P<pver>\d+(\.\d+)+).+\.orig\.tar\.xz")
: "5.3.10",
}
@@ -1217,18 +1236,28 @@ class FetchLatestVersionTest(FetcherTest):
r = bb.utils.vercmp_string(v, verstring)
self.assertTrue(r == -1 or r == 0, msg="Package %s, version: %s <= %s" % (k[0], v, verstring))
- @skipIfNoNetwork()
def test_wget_latest_versionstring(self):
- for k, v in self.test_wget_uris.items():
- self.d.setVar("PN", k[0])
- self.d.setVar("UPSTREAM_CHECK_URI", k[2])
- self.d.setVar("UPSTREAM_CHECK_REGEX", k[3])
- ud = bb.fetch2.FetchData(k[1], self.d)
- pupver = ud.method.latest_versionstring(ud, self.d)
- verstring = pupver[0]
- self.assertTrue(verstring, msg="Could not find upstream version for %s" % k[0])
- r = bb.utils.vercmp_string(v, verstring)
- self.assertTrue(r == -1 or r == 0, msg="Package %s, version: %s <= %s" % (k[0], v, verstring))
+ testdata = os.path.dirname(os.path.abspath(__file__)) + "/fetch-testdata"
+ server = HTTPService(testdata)
+ server.start()
+ port = server.port
+ try:
+ for k, v in self.test_wget_uris.items():
+ self.d.setVar("PN", k[0])
+ checkuri = ""
+ if k[2]:
+ checkuri = "http://localhost:%s/" % port + k[2]
+ self.d.setVar("UPSTREAM_CHECK_URI", checkuri)
+ self.d.setVar("UPSTREAM_CHECK_REGEX", k[3])
+ url = "http://localhost:%s/" % port + k[1]
+ ud = bb.fetch2.FetchData(url, self.d)
+ pupver = ud.method.latest_versionstring(ud, self.d)
+ verstring = pupver[0]
+ self.assertTrue(verstring, msg="Could not find upstream version for %s" % k[0])
+ r = bb.utils.vercmp_string(v, verstring)
+ self.assertTrue(r == -1 or r == 0, msg="Package %s, version: %s <= %s" % (k[0], v, verstring))
+ finally:
+ server.stop()
class FetchCheckStatusTest(FetcherTest):
@@ -1662,6 +1691,47 @@ class GitShallowTest(FetcherTest):
# Verify the submodule is also shallow
self.assertRevCount(1, cwd=os.path.join(self.gitdir, 'gitsubmodule'))
+ def test_shallow_submodule_mirrors(self):
+ self.add_empty_file('a')
+ self.add_empty_file('b')
+
+ smdir = os.path.join(self.tempdir, 'gitsubmodule')
+ bb.utils.mkdirhier(smdir)
+ self.git('init', cwd=smdir)
+ # Make this look like it was cloned from a remote...
+ self.git('config --add remote.origin.url "%s"' % smdir, cwd=smdir)
+ self.git('config --add remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"', cwd=smdir)
+ self.add_empty_file('asub', cwd=smdir)
+ self.add_empty_file('bsub', cwd=smdir)
+
+ self.git('submodule init', cwd=self.srcdir)
+ self.git('submodule add file://%s' % smdir, cwd=self.srcdir)
+ self.git('submodule update', cwd=self.srcdir)
+ self.git('commit -m submodule -a', cwd=self.srcdir)
+
+ uri = 'gitsm://%s;protocol=file;subdir=${S}' % self.srcdir
+
+ # Fetch once to generate the shallow tarball
+ fetcher, ud = self.fetch(uri)
+
+ # Set up the mirror
+ mirrordir = os.path.join(self.tempdir, 'mirror')
+ os.rename(self.dldir, mirrordir)
+ self.d.setVar('PREMIRRORS', 'gitsm://.*/.* file://%s/\n' % mirrordir)
+
+ # Fetch from the mirror
+ bb.utils.remove(self.dldir, recurse=True)
+ bb.utils.remove(self.gitdir, recurse=True)
+ self.fetch_and_unpack(uri)
+
+ # Verify the main repository is shallow
+ self.assertRevCount(1)
+
+ # Verify the gitsubmodule directory is present
+ assert os.listdir(os.path.join(self.gitdir, 'gitsubmodule'))
+
+ # Verify the submodule is also shallow
+ self.assertRevCount(1, cwd=os.path.join(self.gitdir, 'gitsubmodule'))
if any(os.path.exists(os.path.join(p, 'git-annex')) for p in os.environ.get('PATH').split(':')):
def test_shallow_annex(self):
@@ -2008,3 +2078,437 @@ class GitLfsTest(FetcherTest):
ud.method._find_git_lfs = lambda d: False
shutil.rmtree(self.gitdir, ignore_errors=True)
fetcher.unpack(self.d.getVar('WORKDIR'))
+
+class NPMTest(FetcherTest):
+ def skipIfNoNpm():
+ import shutil
+ if not shutil.which('npm'):
+ return unittest.skip('npm not installed, tests being skipped')
+ return lambda f: f
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npm(self):
+ url = 'npm://registry.npmjs.org;package=@savoirfairelinux/node-server-example;version=1.0.0'
+ fetcher = bb.fetch.Fetch([url], self.d)
+ ud = fetcher.ud[fetcher.urls[0]]
+ fetcher.download()
+ self.assertTrue(os.path.exists(ud.localpath))
+ self.assertTrue(os.path.exists(ud.localpath + '.done'))
+ self.assertTrue(os.path.exists(ud.resolvefile))
+ fetcher.unpack(self.unpackdir)
+ unpackdir = os.path.join(self.unpackdir, 'npm')
+ self.assertTrue(os.path.exists(os.path.join(unpackdir, 'package.json')))
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npm_bad_checksum(self):
+ url = 'npm://registry.npmjs.org;package=@savoirfairelinux/node-server-example;version=1.0.0'
+ # Fetch once to get a tarball
+ fetcher = bb.fetch.Fetch([url], self.d)
+ ud = fetcher.ud[fetcher.urls[0]]
+ fetcher.download()
+ self.assertTrue(os.path.exists(ud.localpath))
+ # Modify the tarball
+ bad = b'bad checksum'
+ with open(ud.localpath, 'wb') as f:
+ f.write(bad)
+ # Verify that the tarball is fetched again
+ fetcher.download()
+ badsum = hashlib.sha512(bad).hexdigest()
+ self.assertTrue(os.path.exists(ud.localpath + '_bad-checksum_' + badsum))
+ self.assertTrue(os.path.exists(ud.localpath))
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npm_premirrors(self):
+ url = 'npm://registry.npmjs.org;package=@savoirfairelinux/node-server-example;version=1.0.0'
+ # Fetch once to get a tarball
+ fetcher = bb.fetch.Fetch([url], self.d)
+ ud = fetcher.ud[fetcher.urls[0]]
+ fetcher.download()
+ self.assertTrue(os.path.exists(ud.localpath))
+ # Setup the mirror
+ mirrordir = os.path.join(self.tempdir, 'mirror')
+ bb.utils.mkdirhier(mirrordir)
+ os.replace(ud.localpath, os.path.join(mirrordir, os.path.basename(ud.localpath)))
+ self.d.setVar('PREMIRRORS', 'https?$://.*/.* file://%s/\n' % mirrordir)
+ self.d.setVar('BB_FETCH_PREMIRRORONLY', '1')
+ # Fetch again
+ self.assertFalse(os.path.exists(ud.localpath))
+ fetcher.download()
+ self.assertTrue(os.path.exists(ud.localpath))
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npm_mirrors(self):
+ # Fetch once to get a tarball
+ url = 'npm://registry.npmjs.org;package=@savoirfairelinux/node-server-example;version=1.0.0'
+ fetcher = bb.fetch.Fetch([url], self.d)
+ ud = fetcher.ud[fetcher.urls[0]]
+ fetcher.download()
+ self.assertTrue(os.path.exists(ud.localpath))
+ # Setup the mirror
+ mirrordir = os.path.join(self.tempdir, 'mirror')
+ bb.utils.mkdirhier(mirrordir)
+ os.replace(ud.localpath, os.path.join(mirrordir, os.path.basename(ud.localpath)))
+ self.d.setVar('MIRRORS', 'https?$://.*/.* file://%s/\n' % mirrordir)
+ # Update the resolved url to an invalid url
+ with open(ud.resolvefile, 'r') as f:
+ url = f.read()
+ uri = URI(url)
+ uri.path = '/invalid'
+ with open(ud.resolvefile, 'w') as f:
+ f.write(str(uri))
+ # Fetch again
+ self.assertFalse(os.path.exists(ud.localpath))
+ fetcher.download()
+ self.assertTrue(os.path.exists(ud.localpath))
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npm_destsuffix_downloadfilename(self):
+ url = 'npm://registry.npmjs.org;package=@savoirfairelinux/node-server-example;version=1.0.0;destsuffix=foo/bar;downloadfilename=foo-bar.tgz'
+ fetcher = bb.fetch.Fetch([url], self.d)
+ fetcher.download()
+ self.assertTrue(os.path.exists(os.path.join(self.dldir, 'foo-bar.tgz')))
+ fetcher.unpack(self.unpackdir)
+ unpackdir = os.path.join(self.unpackdir, 'foo', 'bar')
+ self.assertTrue(os.path.exists(os.path.join(unpackdir, 'package.json')))
+
+ def test_npm_no_network_no_tarball(self):
+ url = 'npm://registry.npmjs.org;package=@savoirfairelinux/node-server-example;version=1.0.0'
+ self.d.setVar('BB_NO_NETWORK', '1')
+ fetcher = bb.fetch.Fetch([url], self.d)
+ with self.assertRaises(bb.fetch2.NetworkAccess):
+ fetcher.download()
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npm_no_network_with_tarball(self):
+ url = 'npm://registry.npmjs.org;package=@savoirfairelinux/node-server-example;version=1.0.0'
+ # Fetch once to get a tarball
+ fetcher = bb.fetch.Fetch([url], self.d)
+ fetcher.download()
+ # Disable network access
+ self.d.setVar('BB_NO_NETWORK', '1')
+ # Fetch again
+ fetcher.download()
+ fetcher.unpack(self.unpackdir)
+ unpackdir = os.path.join(self.unpackdir, 'npm')
+ self.assertTrue(os.path.exists(os.path.join(unpackdir, 'package.json')))
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npm_registry_alternate(self):
+ url = 'npm://registry.freajs.org;package=@savoirfairelinux/node-server-example;version=1.0.0'
+ fetcher = bb.fetch.Fetch([url], self.d)
+ fetcher.download()
+ fetcher.unpack(self.unpackdir)
+ unpackdir = os.path.join(self.unpackdir, 'npm')
+ self.assertTrue(os.path.exists(os.path.join(unpackdir, 'package.json')))
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npm_version_latest(self):
+ url = 'npm://registry.npmjs.org;package=@savoirfairelinux/node-server-example;version=latest'
+ fetcher = bb.fetch.Fetch([url], self.d)
+ fetcher.download()
+ fetcher.unpack(self.unpackdir)
+ unpackdir = os.path.join(self.unpackdir, 'npm')
+ self.assertTrue(os.path.exists(os.path.join(unpackdir, 'package.json')))
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npm_registry_invalid(self):
+ url = 'npm://registry.invalid.org;package=@savoirfairelinux/node-server-example;version=1.0.0'
+ fetcher = bb.fetch.Fetch([url], self.d)
+ with self.assertRaises(bb.fetch2.FetchError):
+ fetcher.download()
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npm_package_invalid(self):
+ url = 'npm://registry.npmjs.org;package=@savoirfairelinux/invalid;version=1.0.0'
+ fetcher = bb.fetch.Fetch([url], self.d)
+ with self.assertRaises(bb.fetch2.FetchError):
+ fetcher.download()
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npm_version_invalid(self):
+ url = 'npm://registry.npmjs.org;package=@savoirfairelinux/node-server-example;version=invalid'
+ with self.assertRaises(bb.fetch2.ParameterError):
+ fetcher = bb.fetch.Fetch([url], self.d)
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npm_registry_none(self):
+ url = 'npm://;package=@savoirfairelinux/node-server-example;version=1.0.0'
+ with self.assertRaises(bb.fetch2.MalformedUrl):
+ fetcher = bb.fetch.Fetch([url], self.d)
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npm_package_none(self):
+ url = 'npm://registry.npmjs.org;version=1.0.0'
+ with self.assertRaises(bb.fetch2.MissingParameterError):
+ fetcher = bb.fetch.Fetch([url], self.d)
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npm_version_none(self):
+ url = 'npm://registry.npmjs.org;package=@savoirfairelinux/node-server-example'
+ with self.assertRaises(bb.fetch2.MissingParameterError):
+ fetcher = bb.fetch.Fetch([url], self.d)
+
+ def create_shrinkwrap_file(self, data):
+ import json
+ datadir = os.path.join(self.tempdir, 'data')
+ swfile = os.path.join(datadir, 'npm-shrinkwrap.json')
+ bb.utils.mkdirhier(datadir)
+ with open(swfile, 'w') as f:
+ json.dump(data, f)
+ # Also configure the S directory
+ self.sdir = os.path.join(self.unpackdir, 'S')
+ self.d.setVar('S', self.sdir)
+ return swfile
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npmsw(self):
+ swfile = self.create_shrinkwrap_file({
+ 'dependencies': {
+ 'array-flatten': {
+ 'version': '1.1.1',
+ 'resolved': 'https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz',
+ 'integrity': 'sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=',
+ 'dependencies': {
+ 'content-type': {
+ 'version': 'https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz',
+ 'integrity': 'sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==',
+ 'dependencies': {
+ 'cookie': {
+ 'version': 'git+https://github.com/jshttp/cookie.git#aec1177c7da67e3b3273df96cf476824dbc9ae09',
+ 'from': 'git+https://github.com/jshttp/cookie.git'
+ }
+ }
+ }
+ }
+ }
+ }
+ })
+ fetcher = bb.fetch.Fetch(['npmsw://' + swfile], self.d)
+ fetcher.download()
+ self.assertTrue(os.path.exists(os.path.join(self.dldir, 'npm2', 'array-flatten-1.1.1.tgz')))
+ self.assertTrue(os.path.exists(os.path.join(self.dldir, 'npm2', 'content-type-1.0.4.tgz')))
+ self.assertTrue(os.path.exists(os.path.join(self.dldir, 'git2', 'github.com.jshttp.cookie.git')))
+ fetcher.unpack(self.unpackdir)
+ self.assertTrue(os.path.exists(os.path.join(self.sdir, 'npm-shrinkwrap.json')))
+ self.assertTrue(os.path.exists(os.path.join(self.sdir, 'node_modules', 'array-flatten', 'package.json')))
+ self.assertTrue(os.path.exists(os.path.join(self.sdir, 'node_modules', 'array-flatten', 'node_modules', 'content-type', 'package.json')))
+ self.assertTrue(os.path.exists(os.path.join(self.sdir, 'node_modules', 'array-flatten', 'node_modules', 'content-type', 'node_modules', 'cookie', 'package.json')))
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npmsw_dev(self):
+ swfile = self.create_shrinkwrap_file({
+ 'dependencies': {
+ 'array-flatten': {
+ 'version': '1.1.1',
+ 'resolved': 'https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz',
+ 'integrity': 'sha1-ml9pkFGx5wczKPKgCJaLZOopVdI='
+ },
+ 'content-type': {
+ 'version': '1.0.4',
+ 'resolved': 'https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz',
+ 'integrity': 'sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==',
+ 'dev': True
+ }
+ }
+ })
+ # Fetch with dev disabled
+ fetcher = bb.fetch.Fetch(['npmsw://' + swfile], self.d)
+ fetcher.download()
+ self.assertTrue(os.path.exists(os.path.join(self.dldir, 'npm2', 'array-flatten-1.1.1.tgz')))
+ self.assertFalse(os.path.exists(os.path.join(self.dldir, 'npm2', 'content-type-1.0.4.tgz')))
+ # Fetch with dev enabled
+ fetcher = bb.fetch.Fetch(['npmsw://' + swfile + ';dev=1'], self.d)
+ fetcher.download()
+ self.assertTrue(os.path.exists(os.path.join(self.dldir, 'npm2', 'array-flatten-1.1.1.tgz')))
+ self.assertTrue(os.path.exists(os.path.join(self.dldir, 'npm2', 'content-type-1.0.4.tgz')))
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npmsw_destsuffix(self):
+ swfile = self.create_shrinkwrap_file({
+ 'dependencies': {
+ 'array-flatten': {
+ 'version': '1.1.1',
+ 'resolved': 'https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz',
+ 'integrity': 'sha1-ml9pkFGx5wczKPKgCJaLZOopVdI='
+ }
+ }
+ })
+ fetcher = bb.fetch.Fetch(['npmsw://' + swfile + ';destsuffix=foo/bar'], self.d)
+ fetcher.download()
+ fetcher.unpack(self.unpackdir)
+ self.assertTrue(os.path.exists(os.path.join(self.unpackdir, 'foo', 'bar', 'node_modules', 'array-flatten', 'package.json')))
+
+ def test_npmsw_no_network_no_tarball(self):
+ swfile = self.create_shrinkwrap_file({
+ 'dependencies': {
+ 'array-flatten': {
+ 'version': '1.1.1',
+ 'resolved': 'https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz',
+ 'integrity': 'sha1-ml9pkFGx5wczKPKgCJaLZOopVdI='
+ }
+ }
+ })
+ self.d.setVar('BB_NO_NETWORK', '1')
+ fetcher = bb.fetch.Fetch(['npmsw://' + swfile], self.d)
+ with self.assertRaises(bb.fetch2.NetworkAccess):
+ fetcher.download()
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npmsw_no_network_with_tarball(self):
+ # Fetch once to get a tarball
+ fetcher = bb.fetch.Fetch(['npm://registry.npmjs.org;package=array-flatten;version=1.1.1'], self.d)
+ fetcher.download()
+ # Disable network access
+ self.d.setVar('BB_NO_NETWORK', '1')
+ # Fetch again
+ swfile = self.create_shrinkwrap_file({
+ 'dependencies': {
+ 'array-flatten': {
+ 'version': '1.1.1',
+ 'resolved': 'https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz',
+ 'integrity': 'sha1-ml9pkFGx5wczKPKgCJaLZOopVdI='
+ }
+ }
+ })
+ fetcher = bb.fetch.Fetch(['npmsw://' + swfile], self.d)
+ fetcher.download()
+ fetcher.unpack(self.unpackdir)
+ self.assertTrue(os.path.exists(os.path.join(self.sdir, 'node_modules', 'array-flatten', 'package.json')))
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npmsw_npm_reusability(self):
+ # Fetch once with npmsw
+ swfile = self.create_shrinkwrap_file({
+ 'dependencies': {
+ 'array-flatten': {
+ 'version': '1.1.1',
+ 'resolved': 'https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz',
+ 'integrity': 'sha1-ml9pkFGx5wczKPKgCJaLZOopVdI='
+ }
+ }
+ })
+ fetcher = bb.fetch.Fetch(['npmsw://' + swfile], self.d)
+ fetcher.download()
+ # Disable network access
+ self.d.setVar('BB_NO_NETWORK', '1')
+ # Fetch again with npm
+ fetcher = bb.fetch.Fetch(['npm://registry.npmjs.org;package=array-flatten;version=1.1.1'], self.d)
+ fetcher.download()
+ fetcher.unpack(self.unpackdir)
+ self.assertTrue(os.path.exists(os.path.join(self.unpackdir, 'npm', 'package.json')))
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npmsw_bad_checksum(self):
+ # Try to fetch with bad checksum
+ swfile = self.create_shrinkwrap_file({
+ 'dependencies': {
+ 'array-flatten': {
+ 'version': '1.1.1',
+ 'resolved': 'https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz',
+ 'integrity': 'sha1-gfNEp2hqgLTFKT6P3AsBYMgsBqg='
+ }
+ }
+ })
+ fetcher = bb.fetch.Fetch(['npmsw://' + swfile], self.d)
+ with self.assertRaises(bb.fetch2.FetchError):
+ fetcher.download()
+ # Fetch correctly to get a tarball
+ swfile = self.create_shrinkwrap_file({
+ 'dependencies': {
+ 'array-flatten': {
+ 'version': '1.1.1',
+ 'resolved': 'https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz',
+ 'integrity': 'sha1-ml9pkFGx5wczKPKgCJaLZOopVdI='
+ }
+ }
+ })
+ fetcher = bb.fetch.Fetch(['npmsw://' + swfile], self.d)
+ fetcher.download()
+ localpath = os.path.join(self.dldir, 'npm2', 'array-flatten-1.1.1.tgz')
+ self.assertTrue(os.path.exists(localpath))
+ # Modify the tarball
+ bad = b'bad checksum'
+ with open(localpath, 'wb') as f:
+ f.write(bad)
+ # Verify that the tarball is fetched again
+ fetcher.download()
+ badsum = hashlib.sha1(bad).hexdigest()
+ self.assertTrue(os.path.exists(localpath + '_bad-checksum_' + badsum))
+ self.assertTrue(os.path.exists(localpath))
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npmsw_premirrors(self):
+ # Fetch once to get a tarball
+ fetcher = bb.fetch.Fetch(['npm://registry.npmjs.org;package=array-flatten;version=1.1.1'], self.d)
+ ud = fetcher.ud[fetcher.urls[0]]
+ fetcher.download()
+ self.assertTrue(os.path.exists(ud.localpath))
+ # Setup the mirror
+ mirrordir = os.path.join(self.tempdir, 'mirror')
+ bb.utils.mkdirhier(mirrordir)
+ os.replace(ud.localpath, os.path.join(mirrordir, os.path.basename(ud.localpath)))
+ self.d.setVar('PREMIRRORS', 'https?$://.*/.* file://%s/\n' % mirrordir)
+ self.d.setVar('BB_FETCH_PREMIRRORONLY', '1')
+ # Fetch again
+ self.assertFalse(os.path.exists(ud.localpath))
+ swfile = self.create_shrinkwrap_file({
+ 'dependencies': {
+ 'array-flatten': {
+ 'version': '1.1.1',
+ 'resolved': 'https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz',
+ 'integrity': 'sha1-ml9pkFGx5wczKPKgCJaLZOopVdI='
+ }
+ }
+ })
+ fetcher = bb.fetch.Fetch(['npmsw://' + swfile], self.d)
+ fetcher.download()
+ self.assertTrue(os.path.exists(ud.localpath))
+
+ @skipIfNoNpm()
+ @skipIfNoNetwork()
+ def test_npmsw_mirrors(self):
+ # Fetch once to get a tarball
+ fetcher = bb.fetch.Fetch(['npm://registry.npmjs.org;package=array-flatten;version=1.1.1'], self.d)
+ ud = fetcher.ud[fetcher.urls[0]]
+ fetcher.download()
+ self.assertTrue(os.path.exists(ud.localpath))
+ # Setup the mirror
+ mirrordir = os.path.join(self.tempdir, 'mirror')
+ bb.utils.mkdirhier(mirrordir)
+ os.replace(ud.localpath, os.path.join(mirrordir, os.path.basename(ud.localpath)))
+ self.d.setVar('MIRRORS', 'https?$://.*/.* file://%s/\n' % mirrordir)
+ # Fetch again with invalid url
+ self.assertFalse(os.path.exists(ud.localpath))
+ swfile = self.create_shrinkwrap_file({
+ 'dependencies': {
+ 'array-flatten': {
+ 'version': '1.1.1',
+ 'resolved': 'https://invalid',
+ 'integrity': 'sha1-ml9pkFGx5wczKPKgCJaLZOopVdI='
+ }
+ }
+ })
+ fetcher = bb.fetch.Fetch(['npmsw://' + swfile], self.d)
+ fetcher.download()
+ self.assertTrue(os.path.exists(ud.localpath))
diff --git a/poky/bitbake/lib/bb/tests/runqueue.py b/poky/bitbake/lib/bb/tests/runqueue.py
index 5e6439156..4ba12a077 100644
--- a/poky/bitbake/lib/bb/tests/runqueue.py
+++ b/poky/bitbake/lib/bb/tests/runqueue.py
@@ -7,7 +7,6 @@
#
import unittest
-import bb
import os
import tempfile
import subprocess
@@ -255,7 +254,7 @@ class RunQueueTests(unittest.TestCase):
cmd = ["bitbake", "a1", "b1"]
tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True)
expected = ['a1:populate_sysroot', 'a1:package', 'a1:package_write_rpm_setscene', 'a1:packagedata_setscene',
- 'a1:package_write_ipk_setscene', 'a1:package_qa_setscene']
+ 'a1:package_write_ipk_setscene', 'a1:package_qa_setscene', 'a1:build']
self.assertEqual(set(tasks), set(expected))
self.shutdown(tempdir)
diff --git a/poky/bitbake/lib/bb/tests/support/httpserver.py b/poky/bitbake/lib/bb/tests/support/httpserver.py
new file mode 100644
index 000000000..78f766005
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/support/httpserver.py
@@ -0,0 +1,65 @@
+#
+# SPDX-License-Identifier: MIT
+#
+
+import http.server
+import multiprocessing
+import os
+import traceback
+import signal
+import logging
+from socketserver import ThreadingMixIn
+
+class HTTPServer(ThreadingMixIn, http.server.HTTPServer):
+
+ def server_start(self, root_dir, logger):
+ os.chdir(root_dir)
+ self.serve_forever()
+
+class HTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
+
+ def log_message(self, format_str, *args):
+ pass
+
+class HTTPService(object):
+
+ def __init__(self, root_dir, host='', port=0, logger=None):
+ self.root_dir = root_dir
+ self.host = host
+ self.port = port
+ if not logger:
+ logger = logging.getLogger()
+ self.logger = logger
+
+ def start(self):
+ print(self.root_dir)
+ if not os.path.exists(self.root_dir):
+ self.logger.info("Not starting HTTPService for directory %s which doesn't exist" % (self.root_dir))
+ return
+
+ self.server = HTTPServer((self.host, self.port), HTTPRequestHandler)
+ if self.port == 0:
+ self.port = self.server.server_port
+ self.process = multiprocessing.Process(target=self.server.server_start, args=[self.root_dir, self.logger])
+
+ # The signal handler from testimage.bbclass can cause deadlocks here
+ # if the HTTPServer is terminated before it can restore the standard
+ #signal behaviour
+ orig = signal.getsignal(signal.SIGTERM)
+ signal.signal(signal.SIGTERM, signal.SIG_DFL)
+ self.process.start()
+ signal.signal(signal.SIGTERM, orig)
+
+ if self.logger:
+ self.logger.info("Started HTTPService on %s:%s" % (self.host, self.port))
+
+
+ def stop(self):
+ if hasattr(self, "server"):
+ self.server.server_close()
+ if hasattr(self, "process"):
+ self.process.terminate()
+ self.process.join()
+ if self.logger:
+ self.logger.info("Stopped HTTPService on %s:%s" % (self.host, self.port))
+
diff --git a/poky/bitbake/lib/bb/tests/utils.py b/poky/bitbake/lib/bb/tests/utils.py
index 5c910b4b8..a7ff33db5 100644
--- a/poky/bitbake/lib/bb/tests/utils.py
+++ b/poky/bitbake/lib/bb/tests/utils.py
@@ -622,3 +622,47 @@ BBLAYERS += "/home/user/otherpath/layer6"
['/home/user/otherpath/layer6', '/home/user/path/layer3'], ['/home/user/path/layer1', '/home/user/path/layer4', '/home/user/path/layer7'],
['/home/user/path/layer3'],
['/home/user/path/layer7'])
+
+
+class GetReferencedVars(unittest.TestCase):
+ def setUp(self):
+ self.d = bb.data.init()
+
+ def check_referenced(self, expression, expected_layers):
+ vars = bb.utils.get_referenced_vars(expression, self.d)
+
+ # Do the easy check first - is every variable accounted for?
+ expected_vars = set.union(set(), *expected_layers)
+ got_vars = set(vars)
+ self.assertSetEqual(got_vars, expected_vars)
+
+ # Now test the order of the layers
+ start = 0
+ for i, expected_layer in enumerate(expected_layers):
+ got_layer = set(vars[start:len(expected_layer)+start])
+ start += len(expected_layer)
+ self.assertSetEqual(got_layer, expected_layer)
+
+ def test_no_vars(self):
+ self.check_referenced("", [])
+ self.check_referenced(" ", [])
+ self.check_referenced(" no vars here! ", [])
+
+ def test_single_layer(self):
+ self.check_referenced("${VAR}", [{"VAR"}])
+ self.check_referenced("${VAR} ${VAR}", [{"VAR"}])
+
+ def test_two_layer(self):
+ self.d.setVar("VAR", "${B}")
+ self.check_referenced("${VAR}", [{"VAR"}, {"B"}])
+ self.check_referenced("${@d.getVar('VAR')}", [{"VAR"}, {"B"}])
+
+ def test_more_complicated(self):
+ self.d["SRC_URI"] = "${QT_GIT}/${QT_MODULE}.git;name=${QT_MODULE};${QT_MODULE_BRANCH_PARAM};protocol=${QT_GIT_PROTOCOL}"
+ self.d["QT_GIT"] = "git://code.qt.io/${QT_GIT_PROJECT}"
+ self.d["QT_MODULE_BRANCH_PARAM"] = "branch=${QT_MODULE_BRANCH}"
+ self.d["QT_MODULE"] = "${BPN}"
+ self.d["BPN"] = "something to do with ${PN} and ${SPECIAL_PKGSUFFIX}"
+
+ layers = [{"SRC_URI"}, {"QT_GIT", "QT_MODULE", "QT_MODULE_BRANCH_PARAM", "QT_GIT_PROTOCOL"}, {"QT_GIT_PROJECT", "QT_MODULE_BRANCH", "BPN"}, {"PN", "SPECIAL_PKGSUFFIX"}]
+ self.check_referenced("${SRC_URI}", layers)
diff --git a/poky/bitbake/lib/bb/tinfoil.py b/poky/bitbake/lib/bb/tinfoil.py
index 0a1b91305..8c9b6b8ca 100644
--- a/poky/bitbake/lib/bb/tinfoil.py
+++ b/poky/bitbake/lib/bb/tinfoil.py
@@ -13,6 +13,7 @@ import sys
import atexit
import re
from collections import OrderedDict, defaultdict
+from functools import partial
import bb.cache
import bb.cooker
@@ -21,8 +22,8 @@ import bb.taskdata
import bb.utils
import bb.command
import bb.remotedata
-from bb.cookerdata import CookerConfiguration, ConfigParameters
-from bb.main import setup_bitbake, BitBakeConfigParameters, BBMainException
+from bb.cookerdata import CookerConfiguration
+from bb.main import setup_bitbake, BitBakeConfigParameters
import bb.fetch2
@@ -44,66 +45,69 @@ class TinfoilUIException(Exception):
class TinfoilCommandFailed(Exception):
"""Exception raised when run_command fails"""
+class TinfoilDataStoreConnectorVarHistory:
+ def __init__(self, tinfoil, dsindex):
+ self.tinfoil = tinfoil
+ self.dsindex = dsindex
+
+ def remoteCommand(self, cmd, *args, **kwargs):
+ return self.tinfoil.run_command('dataStoreConnectorVarHistCmd', self.dsindex, cmd, args, kwargs)
+
+ def __getattr__(self, name):
+ if not hasattr(bb.data_smart.VariableHistory, name):
+ raise AttributeError("VariableHistory has no such method %s" % name)
+
+ newfunc = partial(self.remoteCommand, name)
+ setattr(self, name, newfunc)
+ return newfunc
+
+class TinfoilDataStoreConnectorIncHistory:
+ def __init__(self, tinfoil, dsindex):
+ self.tinfoil = tinfoil
+ self.dsindex = dsindex
+
+ def remoteCommand(self, cmd, *args, **kwargs):
+ return self.tinfoil.run_command('dataStoreConnectorIncHistCmd', self.dsindex, cmd, args, kwargs)
+
+ def __getattr__(self, name):
+ if not hasattr(bb.data_smart.IncludeHistory, name):
+ raise AttributeError("IncludeHistory has no such method %s" % name)
+
+ newfunc = partial(self.remoteCommand, name)
+ setattr(self, name, newfunc)
+ return newfunc
+
class TinfoilDataStoreConnector:
- """Connector object used to enable access to datastore objects via tinfoil"""
+ """
+ Connector object used to enable access to datastore objects via tinfoil
+ Method calls are transmitted to the remote datastore for processing, if a datastore is
+ returned we return a connector object for the new store
+ """
def __init__(self, tinfoil, dsindex):
self.tinfoil = tinfoil
self.dsindex = dsindex
- def getVar(self, name):
- value = self.tinfoil.run_command('dataStoreConnectorFindVar', self.dsindex, name)
- overrides = None
- if isinstance(value, dict):
- if '_connector_origtype' in value:
- value['_content'] = self.tinfoil._reconvert_type(value['_content'], value['_connector_origtype'])
- del value['_connector_origtype']
- if '_connector_overrides' in value:
- overrides = value['_connector_overrides']
- del value['_connector_overrides']
- return value, overrides
- def getKeys(self):
- return set(self.tinfoil.run_command('dataStoreConnectorGetKeys', self.dsindex))
- def getVarHistory(self, name):
- return self.tinfoil.run_command('dataStoreConnectorGetVarHistory', self.dsindex, name)
- def expandPythonRef(self, varname, expr, d):
- ds = bb.remotedata.RemoteDatastores.transmit_datastore(d)
- ret = self.tinfoil.run_command('dataStoreConnectorExpandPythonRef', ds, varname, expr)
+ self.varhistory = TinfoilDataStoreConnectorVarHistory(tinfoil, dsindex)
+ self.inchistory = TinfoilDataStoreConnectorIncHistory(tinfoil, dsindex)
+
+ def remoteCommand(self, cmd, *args, **kwargs):
+ ret = self.tinfoil.run_command('dataStoreConnectorCmd', self.dsindex, cmd, args, kwargs)
+ if isinstance(ret, bb.command.DataStoreConnectionHandle):
+ return TinfoilDataStoreConnector(self.tinfoil, ret.dsindex)
return ret
- def setVar(self, varname, value):
- if self.dsindex is None:
- self.tinfoil.run_command('setVariable', varname, value)
- else:
- # Not currently implemented - indicate that setting should
- # be redirected to local side
- return True
- def setVarFlag(self, varname, flagname, value):
- if self.dsindex is None:
- self.tinfoil.run_command('dataStoreConnectorSetVarFlag', self.dsindex, varname, flagname, value)
- else:
- # Not currently implemented - indicate that setting should
- # be redirected to local side
- return True
- def delVar(self, varname):
- if self.dsindex is None:
- self.tinfoil.run_command('dataStoreConnectorDelVar', self.dsindex, varname)
- else:
- # Not currently implemented - indicate that setting should
- # be redirected to local side
- return True
- def delVarFlag(self, varname, flagname):
- if self.dsindex is None:
- self.tinfoil.run_command('dataStoreConnectorDelVar', self.dsindex, varname, flagname)
- else:
- # Not currently implemented - indicate that setting should
- # be redirected to local side
- return True
- def renameVar(self, name, newname):
- if self.dsindex is None:
- self.tinfoil.run_command('dataStoreConnectorRenameVar', self.dsindex, name, newname)
- else:
- # Not currently implemented - indicate that setting should
- # be redirected to local side
- return True
+
+ def __getattr__(self, name):
+ if not hasattr(bb.data._dict_type, name):
+ raise AttributeError("Data store has no such method %s" % name)
+
+ newfunc = partial(self.remoteCommand, name)
+ setattr(self, name, newfunc)
+ return newfunc
+
+ def __iter__(self):
+ keys = self.tinfoil.run_command('dataStoreConnectorCmd', self.dsindex, "keys", [], {})
+ for k in keys:
+ yield k
class TinfoilCookerAdapter:
"""
@@ -127,12 +131,13 @@ class TinfoilCookerAdapter:
class TinfoilRecipeCacheAdapter:
""" cooker.recipecache adapter """
- def __init__(self, tinfoil):
+ def __init__(self, tinfoil, mc=''):
self.tinfoil = tinfoil
+ self.mc = mc
self._cache = {}
def get_pkg_pn_fn(self):
- pkg_pn = defaultdict(list, self.tinfoil.run_command('getRecipes') or [])
+ pkg_pn = defaultdict(list, self.tinfoil.run_command('getRecipes', self.mc) or [])
pkg_fn = {}
for pn, fnlist in pkg_pn.items():
for fn in fnlist:
@@ -151,27 +156,27 @@ class TinfoilCookerAdapter:
self.get_pkg_pn_fn()
return self._cache[name]
elif name == 'deps':
- attrvalue = defaultdict(list, self.tinfoil.run_command('getRecipeDepends') or [])
+ attrvalue = defaultdict(list, self.tinfoil.run_command('getRecipeDepends', self.mc) or [])
elif name == 'rundeps':
- attrvalue = defaultdict(lambda: defaultdict(list), self.tinfoil.run_command('getRuntimeDepends') or [])
+ attrvalue = defaultdict(lambda: defaultdict(list), self.tinfoil.run_command('getRuntimeDepends', self.mc) or [])
elif name == 'runrecs':
- attrvalue = defaultdict(lambda: defaultdict(list), self.tinfoil.run_command('getRuntimeRecommends') or [])
+ attrvalue = defaultdict(lambda: defaultdict(list), self.tinfoil.run_command('getRuntimeRecommends', self.mc) or [])
elif name == 'pkg_pepvpr':
- attrvalue = self.tinfoil.run_command('getRecipeVersions') or {}
+ attrvalue = self.tinfoil.run_command('getRecipeVersions', self.mc) or {}
elif name == 'inherits':
- attrvalue = self.tinfoil.run_command('getRecipeInherits') or {}
+ attrvalue = self.tinfoil.run_command('getRecipeInherits', self.mc) or {}
elif name == 'bbfile_priority':
- attrvalue = self.tinfoil.run_command('getBbFilePriority') or {}
+ attrvalue = self.tinfoil.run_command('getBbFilePriority', self.mc) or {}
elif name == 'pkg_dp':
- attrvalue = self.tinfoil.run_command('getDefaultPreference') or {}
+ attrvalue = self.tinfoil.run_command('getDefaultPreference', self.mc) or {}
elif name == 'fn_provides':
- attrvalue = self.tinfoil.run_command('getRecipeProvides') or {}
+ attrvalue = self.tinfoil.run_command('getRecipeProvides', self.mc) or {}
elif name == 'packages':
- attrvalue = self.tinfoil.run_command('getRecipePackages') or {}
+ attrvalue = self.tinfoil.run_command('getRecipePackages', self.mc) or {}
elif name == 'packages_dynamic':
- attrvalue = self.tinfoil.run_command('getRecipePackagesDynamic') or {}
+ attrvalue = self.tinfoil.run_command('getRecipePackagesDynamic', self.mc) or {}
elif name == 'rproviders':
- attrvalue = self.tinfoil.run_command('getRProviders') or {}
+ attrvalue = self.tinfoil.run_command('getRProviders', self.mc) or {}
else:
raise AttributeError("%s instance has no attribute '%s'" % (self.__class__.__name__, name))
@@ -182,8 +187,9 @@ class TinfoilCookerAdapter:
self.tinfoil = tinfoil
self.collection = self.TinfoilCookerCollectionAdapter(tinfoil)
self.recipecaches = {}
- # FIXME all machines
self.recipecaches[''] = self.TinfoilRecipeCacheAdapter(tinfoil)
+ for mc in (tinfoil.config_data.getVar('BBMULTICONFIG') or '').split():
+ self.recipecaches[mc] = self.TinfoilRecipeCacheAdapter(tinfoil, mc)
self._cache = {}
def __getattr__(self, name):
# Grab these only when they are requested since they aren't always used
@@ -410,9 +416,7 @@ class Tinfoil:
self.run_actions(config_params)
self.recipes_parsed = True
- self.config_data = bb.data.init()
- connector = TinfoilDataStoreConnector(self, None)
- self.config_data.setVar('_remote_data', connector)
+ self.config_data = TinfoilDataStoreConnector(self, 0)
self.cooker = TinfoilCookerAdapter(self)
self.cooker_data = self.cooker.recipecaches['']
else:
@@ -501,11 +505,11 @@ class Tinfoil:
"""
return OrderedDict(self.run_command('getSkippedRecipes'))
- def get_all_providers(self):
- return defaultdict(list, self.run_command('allProviders'))
+ def get_all_providers(self, mc=''):
+ return defaultdict(list, self.run_command('allProviders', mc))
- def find_providers(self):
- return self.run_command('findProviders')
+ def find_providers(self, mc=''):
+ return self.run_command('findProviders', mc)
def find_best_provider(self, pn):
return self.run_command('findBestProvider', pn)
@@ -624,9 +628,6 @@ class Tinfoil:
appends: True to apply bbappends, False otherwise
appendlist: optional list of bbappend files to apply, if you
want to filter them
- config_data: custom config datastore to use. NOTE: if you
- specify config_data then you cannot use a virtual
- specification for fn.
"""
if self.tracking:
# Enable history tracking just for the parse operation
@@ -635,8 +636,8 @@ class Tinfoil:
if appends and appendlist == []:
appends = False
if config_data:
- dctr = bb.remotedata.RemoteDatastores.transmit_datastore(config_data)
- dscon = self.run_command('parseRecipeFile', fn, appends, appendlist, dctr)
+ config_data = bb.data.createCopy(config_data)
+ dscon = self.run_command('parseRecipeFile', fn, appends, appendlist, config_data.dsindex)
else:
dscon = self.run_command('parseRecipeFile', fn, appends, appendlist)
if dscon:
@@ -723,21 +724,9 @@ class Tinfoil:
# Borrowed from knotty, instead somewhat hackily we use the helper
# as the object to store "shutdown" on
helper = bb.ui.uihelper.BBUIHelper()
- # We set up logging optionally in the constructor so now we need to
- # grab the handlers to pass to TerminalFilter
- console = None
- errconsole = None
- for handler in self.logger.handlers:
- if isinstance(handler, logging.StreamHandler):
- if handler.stream == sys.stdout:
- console = handler
- elif handler.stream == sys.stderr:
- errconsole = handler
- format_str = "%(levelname)s: %(message)s"
- format = bb.msg.BBLogFormatter(format_str)
helper.shutdown = 0
parseprogress = None
- termfilter = bb.ui.knotty.TerminalFilter(helper, helper, console, errconsole, format, quiet=self.quiet)
+ termfilter = bb.ui.knotty.TerminalFilter(helper, helper, self.logger.handlers, quiet=self.quiet)
try:
while True:
try:
@@ -859,9 +848,7 @@ class Tinfoil:
newobj = origtype(obj)
if isinstance(newobj, bb.command.DataStoreConnectionHandle):
- connector = TinfoilDataStoreConnector(self, newobj.dsindex)
- newobj = bb.data.init()
- newobj.setVar('_remote_data', connector)
+ newobj = TinfoilDataStoreConnector(self, newobj.dsindex)
return newobj
diff --git a/poky/bitbake/lib/bb/ui/buildinfohelper.py b/poky/bitbake/lib/bb/ui/buildinfohelper.py
index 5cbca97f3..82c62e332 100644
--- a/poky/bitbake/lib/bb/ui/buildinfohelper.py
+++ b/poky/bitbake/lib/bb/ui/buildinfohelper.py
@@ -935,7 +935,7 @@ class BuildInfoHelper(object):
# only reset the build name if the one on the server is actually
# a valid value for the build_name field
- if build_name != None:
+ if build_name is not None:
build_info['build_name'] = build_name
changed = True
@@ -1194,7 +1194,7 @@ class BuildInfoHelper(object):
evdata = BuildInfoHelper._get_data_from_event(event)
for t in self.internal_state['targets']:
- if t.is_image == True:
+ if t.is_image:
output_files = list(evdata.keys())
for output in output_files:
if t.target in output and 'rootfs' in output and not output.endswith(".manifest"):
@@ -1236,7 +1236,7 @@ class BuildInfoHelper(object):
task_information['outcome'] = Task.OUTCOME_PREBUILT
else:
task_information['task_executed'] = True
- if 'noexec' in vars(event) and event.noexec == True:
+ if 'noexec' in vars(event) and event.noexec:
task_information['task_executed'] = False
task_information['outcome'] = Task.OUTCOME_EMPTY
task_information['script_type'] = Task.CODING_NA
@@ -1776,7 +1776,7 @@ class BuildInfoHelper(object):
image_file_extensions_unique = {}
image_fstypes = self.server.runCommand(
['getVariable', 'IMAGE_FSTYPES'])[0]
- if image_fstypes != None:
+ if image_fstypes is not None:
image_types_str = image_fstypes.strip()
image_file_extensions = re.sub(r' {2,}', ' ', image_types_str)
image_file_extensions_unique = set(image_file_extensions.split(' '))
diff --git a/poky/bitbake/lib/bb/ui/knotty.py b/poky/bitbake/lib/bb/ui/knotty.py
index 35736ade0..87e873d64 100644
--- a/poky/bitbake/lib/bb/ui/knotty.py
+++ b/poky/bitbake/lib/bb/ui/knotty.py
@@ -12,7 +12,6 @@ from __future__ import division
import os
import sys
-import xmlrpc.client as xmlrpclib
import logging
import progressbar
import signal
@@ -35,15 +34,15 @@ class BBProgress(progressbar.ProgressBar):
self.msg = msg
self.extrapos = extrapos
if not widgets:
- widgets = [progressbar.Percentage(), ' ', progressbar.Bar(), ' ',
- progressbar.ETA()]
- self.extrapos = 4
+ widgets = [': ', progressbar.Percentage(), ' ', progressbar.Bar(),
+ ' ', progressbar.ETA()]
+ self.extrapos = 5
if resize_handler:
self._resize_default = resize_handler
else:
self._resize_default = signal.getsignal(signal.SIGWINCH)
- progressbar.ProgressBar.__init__(self, maxval, [self.msg + ": "] + widgets, fd=sys.stdout)
+ progressbar.ProgressBar.__init__(self, maxval, [self.msg] + widgets, fd=sys.stdout)
def _handle_resize(self, signum=None, frame=None):
progressbar.ProgressBar._handle_resize(self, signum, frame)
@@ -110,12 +109,11 @@ def pluralise(singular, plural, qty):
class InteractConsoleLogFilter(logging.Filter):
- def __init__(self, tf, format):
+ def __init__(self, tf):
self.tf = tf
- self.format = format
def filter(self, record):
- if record.levelno == self.format.NOTE and (record.msg.startswith("Running") or record.msg.startswith("recipe ")):
+ if record.levelno == bb.msg.BBLogFormatter.NOTE and (record.msg.startswith("Running") or record.msg.startswith("recipe ")):
return False
self.tf.clearFooter()
return True
@@ -151,7 +149,7 @@ class TerminalFilter(object):
cr = (25, 80)
return cr
- def __init__(self, main, helper, console, errconsole, format, quiet):
+ def __init__(self, main, helper, handlers, quiet):
self.main = main
self.helper = helper
self.cuu = None
@@ -181,7 +179,11 @@ class TerminalFilter(object):
termios.tcsetattr(fd, termios.TCSADRAIN, new)
curses.setupterm()
if curses.tigetnum("colors") > 2:
- format.enable_color()
+ for h in handlers:
+ try:
+ h.formatter.enable_color()
+ except AttributeError:
+ pass
self.ed = curses.tigetstr("ed")
if self.ed:
self.cuu = curses.tigetstr("cuu")
@@ -197,10 +199,9 @@ class TerminalFilter(object):
self.interactive = False
bb.note("Unable to use interactive mode for this terminal, using fallback")
return
- if console:
- console.addFilter(InteractConsoleLogFilter(self, format))
- if errconsole:
- errconsole.addFilter(InteractConsoleLogFilter(self, format))
+
+ for h in handlers:
+ h.addFilter(InteractConsoleLogFilter(self))
self.main_progress = None
@@ -255,19 +256,19 @@ class TerminalFilter(object):
start_time = activetasks[t].get("starttime", None)
if not pbar or pbar.bouncing != (progress < 0):
if progress < 0:
- pbar = BBProgress("0: %s (pid %s) " % (activetasks[t]["title"], t), 100, widgets=[progressbar.BouncingSlider(), ''], extrapos=2, resize_handler=self.sigwinch_handle)
+ pbar = BBProgress("0: %s (pid %s)" % (activetasks[t]["title"], activetasks[t]["pid"]), 100, widgets=[' ', progressbar.BouncingSlider(), ''], extrapos=3, resize_handler=self.sigwinch_handle)
pbar.bouncing = True
else:
- pbar = BBProgress("0: %s (pid %s) " % (activetasks[t]["title"], t), 100, widgets=[progressbar.Percentage(), ' ', progressbar.Bar(), ''], extrapos=4, resize_handler=self.sigwinch_handle)
+ pbar = BBProgress("0: %s (pid %s)" % (activetasks[t]["title"], activetasks[t]["pid"]), 100, widgets=[' ', progressbar.Percentage(), ' ', progressbar.Bar(), ''], extrapos=5, resize_handler=self.sigwinch_handle)
pbar.bouncing = False
activetasks[t]["progressbar"] = pbar
tasks.append((pbar, progress, rate, start_time))
else:
start_time = activetasks[t].get("starttime", None)
if start_time:
- tasks.append("%s - %s (pid %s)" % (activetasks[t]["title"], self.elapsed(currenttime - start_time), t))
+ tasks.append("%s - %s (pid %s)" % (activetasks[t]["title"], self.elapsed(currenttime - start_time), activetasks[t]["pid"]))
else:
- tasks.append("%s (pid %s)" % (activetasks[t]["title"], t))
+ tasks.append("%s (pid %s)" % (activetasks[t]["title"], activetasks[t]["pid"]))
if self.main.shutdown:
content = "Waiting for %s running tasks to finish:" % len(activetasks)
@@ -363,7 +364,11 @@ def _log_settings_from_server(server, observe_only):
if error:
logger.error("Unable to get the value of BB_CONSOLELOG variable: %s" % error)
raise BaseException(error)
- return includelogs, loglines, consolelogfile
+ logconfigfile, error = server.runCommand([cmd, "BB_LOGCONFIG"])
+ if error:
+ logger.error("Unable to get the value of BB_LOGCONFIG variable: %s" % error)
+ raise BaseException(error)
+ return includelogs, loglines, consolelogfile, logconfigfile
_evt_list = [ "bb.runqueue.runQueueExitWait", "bb.event.LogExecTTY", "logging.LogRecord",
"bb.build.TaskFailed", "bb.build.TaskBase", "bb.event.ParseStarted",
@@ -380,7 +385,148 @@ def main(server, eventHandler, params, tf = TerminalFilter):
if not params.observe_only:
params.updateToServer(server, os.environ.copy())
- includelogs, loglines, consolelogfile = _log_settings_from_server(server, params.observe_only)
+ includelogs, loglines, consolelogfile, logconfigfile = _log_settings_from_server(server, params.observe_only)
+
+ loglevel, _ = bb.msg.constructLogOptions()
+
+ if params.options.quiet == 0:
+ console_loglevel = loglevel
+ elif params.options.quiet > 2:
+ console_loglevel = bb.msg.BBLogFormatter.ERROR
+ else:
+ console_loglevel = bb.msg.BBLogFormatter.WARNING
+
+ logconfig = {
+ "version": 1,
+ "handlers": {
+ "BitBake.console": {
+ "class": "logging.StreamHandler",
+ "formatter": "BitBake.consoleFormatter",
+ "level": console_loglevel,
+ "stream": "ext://sys.stdout",
+ "filters": ["BitBake.stdoutFilter"],
+ ".": {
+ "is_console": True,
+ },
+ },
+ "BitBake.errconsole": {
+ "class": "logging.StreamHandler",
+ "formatter": "BitBake.consoleFormatter",
+ "level": loglevel,
+ "stream": "ext://sys.stderr",
+ "filters": ["BitBake.stderrFilter"],
+ ".": {
+ "is_console": True,
+ },
+ },
+ # This handler can be used if specific loggers should print on
+ # the console at a lower severity than the default. It will
+ # display any messages sent to it that are lower than then
+ # BitBake.console logging level (so as to prevent duplication of
+ # messages). Nothing is attached to this handler by default
+ "BitBake.verbconsole": {
+ "class": "logging.StreamHandler",
+ "formatter": "BitBake.consoleFormatter",
+ "level": 1,
+ "stream": "ext://sys.stdout",
+ "filters": ["BitBake.verbconsoleFilter"],
+ ".": {
+ "is_console": True,
+ },
+ },
+ },
+ "formatters": {
+ # This format instance will get color output enabled by the
+ # terminal
+ "BitBake.consoleFormatter" : {
+ "()": "bb.msg.BBLogFormatter",
+ "format": "%(levelname)s: %(message)s"
+ },
+ # The file log requires a separate instance so that it doesn't get
+ # color enabled
+ "BitBake.logfileFormatter": {
+ "()": "bb.msg.BBLogFormatter",
+ "format": "%(levelname)s: %(message)s"
+ }
+ },
+ "filters": {
+ "BitBake.stdoutFilter": {
+ "()": "bb.msg.LogFilterLTLevel",
+ "level": "ERROR"
+ },
+ "BitBake.stderrFilter": {
+ "()": "bb.msg.LogFilterGEQLevel",
+ "level": "ERROR"
+ },
+ "BitBake.verbconsoleFilter": {
+ "()": "bb.msg.LogFilterLTLevel",
+ "level": console_loglevel
+ },
+ },
+ "loggers": {
+ "BitBake": {
+ "level": loglevel,
+ "handlers": ["BitBake.console", "BitBake.errconsole"],
+ }
+ },
+ "disable_existing_loggers": False
+ }
+
+ # Enable the console log file if enabled
+ if consolelogfile and not params.options.show_environment and not params.options.show_versions:
+ logconfig = bb.msg.mergeLoggingConfig(logconfig, {
+ "version": 1,
+ "handlers" : {
+ "BitBake.consolelog": {
+ "class": "logging.FileHandler",
+ "formatter": "BitBake.logfileFormatter",
+ "level": loglevel,
+ "filename": consolelogfile,
+ },
+ # Just like verbconsole, anything sent here will go to the
+ # log file, unless it would go to BitBake.consolelog
+ "BitBake.verbconsolelog" : {
+ "class": "logging.FileHandler",
+ "formatter": "BitBake.logfileFormatter",
+ "level": 1,
+ "filename": consolelogfile,
+ "filters": ["BitBake.verbconsolelogFilter"],
+ },
+ },
+ "filters": {
+ "BitBake.verbconsolelogFilter": {
+ "()": "bb.msg.LogFilterLTLevel",
+ "level": loglevel,
+ },
+ },
+ "loggers": {
+ "BitBake": {
+ "handlers": ["BitBake.consolelog"],
+ },
+
+ # Other interesting things that we want to keep an eye on
+ # in the log files in case someone has an issue, but not
+ # necessarily show to the user on the console
+ "BitBake.SigGen.HashEquiv": {
+ "level": "VERBOSE",
+ "handlers": ["BitBake.verbconsolelog"],
+ },
+ "BitBake.RunQueue.HashEquiv": {
+ "level": "VERBOSE",
+ "handlers": ["BitBake.verbconsolelog"],
+ }
+ }
+ })
+
+ bb.utils.mkdirhier(os.path.dirname(consolelogfile))
+ loglink = os.path.join(os.path.dirname(consolelogfile), 'console-latest.log')
+ bb.utils.remove(loglink)
+ try:
+ os.symlink(os.path.basename(consolelogfile), loglink)
+ except OSError:
+ pass
+
+ conf = bb.msg.setLoggingConfig(logconfig, logconfigfile)
if sys.stdin.isatty() and sys.stdout.isatty():
log_exec_tty = True
@@ -389,23 +535,9 @@ def main(server, eventHandler, params, tf = TerminalFilter):
helper = uihelper.BBUIHelper()
- console = logging.StreamHandler(sys.stdout)
- errconsole = logging.StreamHandler(sys.stderr)
- format_str = "%(levelname)s: %(message)s"
- format = bb.msg.BBLogFormatter(format_str)
- if params.options.quiet == 0:
- forcelevel = None
- elif params.options.quiet > 2:
- forcelevel = bb.msg.BBLogFormatter.ERROR
- else:
- forcelevel = bb.msg.BBLogFormatter.WARNING
- bb.msg.addDefaultlogFilter(console, bb.msg.BBLogFilterStdOut, forcelevel)
- bb.msg.addDefaultlogFilter(errconsole, bb.msg.BBLogFilterStdErr)
- console.setFormatter(format)
- errconsole.setFormatter(format)
- if not bb.msg.has_console_handler(logger):
- logger.addHandler(console)
- logger.addHandler(errconsole)
+ # Look for the specially designated handlers which need to be passed to the
+ # terminal handler
+ console_handlers = [h for h in conf.config['handlers'].values() if getattr(h, 'is_console', False)]
bb.utils.set_process_name("KnottyUI")
@@ -413,24 +545,14 @@ def main(server, eventHandler, params, tf = TerminalFilter):
server.terminateServer()
return
- consolelog = None
- if consolelogfile and not params.options.show_environment and not params.options.show_versions:
- bb.utils.mkdirhier(os.path.dirname(consolelogfile))
- conlogformat = bb.msg.BBLogFormatter(format_str)
- consolelog = logging.FileHandler(consolelogfile)
- bb.msg.addDefaultlogFilter(consolelog)
- consolelog.setFormatter(conlogformat)
- logger.addHandler(consolelog)
- loglink = os.path.join(os.path.dirname(consolelogfile), 'console-latest.log')
- bb.utils.remove(loglink)
- try:
- os.symlink(os.path.basename(consolelogfile), loglink)
- except OSError:
- pass
-
llevel, debug_domains = bb.msg.constructLogOptions()
server.runCommand(["setEventMask", server.getEventHandle(), llevel, debug_domains, _evt_list])
+ # The logging_tree module is *extremely* helpful in debugging logging
+ # domains. Uncomment here to dump the logging tree when bitbake starts
+ #import logging_tree
+ #logging_tree.printout()
+
universe = False
if not params.observe_only:
params.updateFromServer(server)
@@ -448,7 +570,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
if error:
logger.error("Command '%s' failed: %s" % (cmdline, error))
return 1
- elif ret != True:
+ elif not ret:
logger.error("Command '%s' failed: returned %s" % (cmdline, ret))
return 1
@@ -465,7 +587,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
printinterval = 5000
lastprint = time.time()
- termfilter = tf(main, helper, console, errconsole, format, params.options.quiet)
+ termfilter = tf(main, helper, console_handlers, params.options.quiet)
atexit.register(termfilter.finish)
while True:
@@ -477,7 +599,8 @@ def main(server, eventHandler, params, tf = TerminalFilter):
if event is None:
if main.shutdown > 1:
break
- termfilter.updateFooter()
+ if not parseprogress:
+ termfilter.updateFooter()
event = eventHandler.waitEvent(0.25)
if event is None:
continue
@@ -503,26 +626,26 @@ def main(server, eventHandler, params, tf = TerminalFilter):
if isinstance(event, logging.LogRecord):
lastprint = time.time()
printinterval = 5000
- if event.levelno >= format.ERROR:
+ if event.levelno >= bb.msg.BBLogFormatter.ERROR:
errors = errors + 1
return_value = 1
- elif event.levelno == format.WARNING:
+ elif event.levelno == bb.msg.BBLogFormatter.WARNING:
warnings = warnings + 1
if event.taskpid != 0:
# For "normal" logging conditions, don't show note logs from tasks
# but do show them if the user has changed the default log level to
# include verbose/debug messages
- if event.levelno <= format.NOTE and (event.levelno < llevel or (event.levelno == format.NOTE and llevel != format.VERBOSE)):
+ if event.levelno <= bb.msg.BBLogFormatter.NOTE and (event.levelno < llevel or (event.levelno == bb.msg.BBLogFormatter.NOTE and llevel != bb.msg.BBLogFormatter.VERBOSE)):
continue
# Prefix task messages with recipe/task
- if event.taskpid in helper.running_tasks and event.levelno != format.PLAIN:
- taskinfo = helper.running_tasks[event.taskpid]
+ if event.taskpid in helper.pidmap and event.levelno != bb.msg.BBLogFormatter.PLAIN:
+ taskinfo = helper.running_tasks[helper.pidmap[event.taskpid]]
event.msg = taskinfo['title'] + ': ' + event.msg
if hasattr(event, 'fn'):
event.msg = event.fn + ': ' + event.msg
- logger.handle(event)
+ logging.getLogger(event.name).handle(event)
continue
if isinstance(event, bb.build.TaskFailedSilent):
@@ -539,6 +662,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
continue
if event.total == 0:
continue
+ termfilter.clearFooter()
parseprogress = new_progress("Parsing recipes", event.total).start()
continue
if isinstance(event, bb.event.ParseProgress):
@@ -589,6 +713,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
if isinstance(event, bb.command.CommandExit):
if not return_value:
return_value = event.exitcode
+ main.shutdown = 2
continue
if isinstance(event, (bb.command.CommandCompleted, bb.cooker.CookerExit)):
main.shutdown = 2
@@ -638,6 +763,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
if isinstance(event, bb.event.ProcessStarted):
if params.options.quiet > 1:
continue
+ termfilter.clearFooter()
parseprogress = new_progress(event.processname, event.total)
parseprogress.start(False)
continue
@@ -745,8 +871,6 @@ def main(server, eventHandler, params, tf = TerminalFilter):
if e.errno == errno.EPIPE:
pass
- if consolelog:
- logger.removeHandler(consolelog)
- consolelog.close()
+ logging.shutdown()
return return_value
diff --git a/poky/bitbake/lib/bb/ui/ncurses.py b/poky/bitbake/lib/bb/ui/ncurses.py
index c422732b2..da4fbeabb 100644
--- a/poky/bitbake/lib/bb/ui/ncurses.py
+++ b/poky/bitbake/lib/bb/ui/ncurses.py
@@ -37,7 +37,7 @@
import logging
-import os, sys, itertools, time, subprocess
+import os, sys, itertools, time
try:
import curses
@@ -46,7 +46,6 @@ except ImportError:
import bb
import xmlrpc.client
-from bb import ui
from bb.ui import uihelper
parsespin = itertools.cycle( r'|/-\\' )
@@ -239,7 +238,7 @@ class NCursesUI:
if error:
print("Error running command '%s': %s" % (cmdline, error))
return
- elif ret != True:
+ elif not ret:
print("Couldn't get default commandlind! %s" % ret)
return
except xmlrpc.client.Fault as x:
diff --git a/poky/bitbake/lib/bb/ui/taskexp.py b/poky/bitbake/lib/bb/ui/taskexp.py
index 50a943cd0..8fff24423 100644
--- a/poky/bitbake/lib/bb/ui/taskexp.py
+++ b/poky/bitbake/lib/bb/ui/taskexp.py
@@ -11,10 +11,8 @@ import sys
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk, GObject
-from multiprocessing import Queue
import threading
from xmlrpc import client
-import time
import bb
import bb.event
@@ -202,7 +200,7 @@ def main(server, eventHandler, params):
if error:
print("Error running command '%s': %s" % (cmdline, error))
return 1
- elif ret != True:
+ elif not ret:
print("Error running command '%s': returned %s" % (cmdline, ret))
return 1
except client.Fault as x:
diff --git a/poky/bitbake/lib/bb/ui/teamcity.py b/poky/bitbake/lib/bb/ui/teamcity.py
new file mode 100644
index 000000000..1854292fa
--- /dev/null
+++ b/poky/bitbake/lib/bb/ui/teamcity.py
@@ -0,0 +1,398 @@
+#
+# TeamCity UI Implementation
+#
+# Implements a TeamCity frontend for the BitBake utility, via service messages.
+# See https://www.jetbrains.com/help/teamcity/build-script-interaction-with-teamcity.html
+#
+# Based on ncurses.py and knotty.py, variously by Michael Lauer and Richard Purdie
+#
+# Copyright (C) 2006 Michael 'Mickey' Lauer
+# Copyright (C) 2006-2012 Richard Purdie
+# Copyright (C) 2018-2020 Agilent Technologies, Inc.
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Author: Chris Laplante <chris.laplante@agilent.com>
+
+from __future__ import division
+
+import datetime
+import logging
+import math
+import os
+import re
+import sys
+import xmlrpc.client
+from collections import deque
+
+import bb
+import bb.build
+import bb.command
+import bb.cooker
+import bb.event
+import bb.exceptions
+import bb.runqueue
+from bb.ui import uihelper
+
+logger = logging.getLogger("BitBake")
+
+
+class TeamCityUI:
+ def __init__(self):
+ self._block_stack = []
+ self._last_progress_state = None
+
+ @classmethod
+ def escape_service_value(cls, value):
+ """
+ Escape a value for inclusion in a service message. TeamCity uses the vertical pipe character for escaping.
+ See: https://confluence.jetbrains.com/display/TCD10/Build+Script+Interaction+with+TeamCity#BuildScriptInteractionwithTeamCity-Escapedvalues
+ """
+ return re.sub(r"(['|\[\]])", r"|\1", value).replace("\n", "|n").replace("\r", "|r")
+
+ @classmethod
+ def emit_service_message(cls, message_type, **kwargs):
+ print(cls.format_service_message(message_type, **kwargs), flush=True)
+
+ @classmethod
+ def format_service_message(cls, message_type, **kwargs):
+ payload = " ".join(["{0}='{1}'".format(k, cls.escape_service_value(v)) for k, v in kwargs.items()])
+ return "##teamcity[{0} {1}]".format(message_type, payload)
+
+ @classmethod
+ def emit_simple_service_message(cls, message_type, message):
+ print(cls.format_simple_service_message(message_type, message), flush=True)
+
+ @classmethod
+ def format_simple_service_message(cls, message_type, message):
+ return "##teamcity[{0} '{1}']".format(message_type, cls.escape_service_value(message))
+
+ @classmethod
+ def format_build_message(cls, text, status):
+ return cls.format_service_message("message", text=text, status=status)
+
+ def block_start(self, name):
+ self._block_stack.append(name)
+ self.emit_service_message("blockOpened", name=name)
+
+ def block_end(self):
+ if self._block_stack:
+ name = self._block_stack.pop()
+ self.emit_service_message("blockClosed", name=name)
+
+ def progress(self, message, percent, extra=None):
+ now = datetime.datetime.now()
+ percent = "{0: >3.0f}".format(percent)
+
+ report = False
+ if not self._last_progress_state \
+ or (self._last_progress_state[0] == message
+ and self._last_progress_state[1] != percent
+ and (now - self._last_progress_state[2]).microseconds >= 5000) \
+ or self._last_progress_state[0] != message:
+ report = True
+ self._last_progress_state = (message, percent, now)
+
+ if report or percent in [0, 100]:
+ self.emit_simple_service_message("progressMessage", "{0}: {1}%{2}".format(message, percent, extra or ""))
+
+
+class TeamcityLogFormatter(logging.Formatter):
+ def format(self, record):
+ details = ""
+ if hasattr(record, 'bb_exc_formatted'):
+ details = ''.join(record.bb_exc_formatted)
+ elif hasattr(record, 'bb_exc_info'):
+ etype, value, tb = record.bb_exc_info
+ formatted = bb.exceptions.format_exception(etype, value, tb, limit=5)
+ details = ''.join(formatted)
+
+ if record.levelno in [bb.msg.BBLogFormatter.ERROR, bb.msg.BBLogFormatter.CRITICAL]:
+ # ERROR gets a separate errorDetails field
+ msg = TeamCityUI.format_service_message("message", text=record.getMessage(), status="ERROR",
+ errorDetails=details)
+ else:
+ payload = record.getMessage()
+ if details:
+ payload += "\n" + details
+ if record.levelno == bb.msg.BBLogFormatter.PLAIN:
+ msg = payload
+ elif record.levelno == bb.msg.BBLogFormatter.WARNING:
+ msg = TeamCityUI.format_service_message("message", text=payload, status="WARNING")
+ else:
+ msg = TeamCityUI.format_service_message("message", text=payload, status="NORMAL")
+
+ return msg
+
+
+_evt_list = ["bb.runqueue.runQueueExitWait", "bb.event.LogExecTTY", "logging.LogRecord",
+ "bb.build.TaskFailed", "bb.build.TaskBase", "bb.event.ParseStarted",
+ "bb.event.ParseProgress", "bb.event.ParseCompleted", "bb.event.CacheLoadStarted",
+ "bb.event.CacheLoadProgress", "bb.event.CacheLoadCompleted", "bb.command.CommandFailed",
+ "bb.command.CommandExit", "bb.command.CommandCompleted", "bb.cooker.CookerExit",
+ "bb.event.MultipleProviders", "bb.event.NoProvider", "bb.runqueue.sceneQueueTaskStarted",
+ "bb.runqueue.runQueueTaskStarted", "bb.runqueue.runQueueTaskFailed", "bb.runqueue.sceneQueueTaskFailed",
+ "bb.event.BuildBase", "bb.build.TaskStarted", "bb.build.TaskSucceeded", "bb.build.TaskFailedSilent",
+ "bb.build.TaskProgress", "bb.event.ProcessStarted", "bb.event.ProcessProgress", "bb.event.ProcessFinished"]
+
+
+def _log_settings_from_server(server):
+ # Get values of variables which control our output
+ includelogs, error = server.runCommand(["getVariable", "BBINCLUDELOGS"])
+ if error:
+ logger.error("Unable to get the value of BBINCLUDELOGS variable: %s" % error)
+ raise BaseException(error)
+ loglines, error = server.runCommand(["getVariable", "BBINCLUDELOGS_LINES"])
+ if error:
+ logger.error("Unable to get the value of BBINCLUDELOGS_LINES variable: %s" % error)
+ raise BaseException(error)
+ return includelogs, loglines
+
+
+def main(server, eventHandler, params):
+ params.updateToServer(server, os.environ.copy())
+
+ includelogs, loglines = _log_settings_from_server(server)
+
+ ui = TeamCityUI()
+
+ helper = uihelper.BBUIHelper()
+
+ console = logging.StreamHandler(sys.stdout)
+ errconsole = logging.StreamHandler(sys.stderr)
+ format = TeamcityLogFormatter()
+ if params.options.quiet == 0:
+ forcelevel = None
+ elif params.options.quiet > 2:
+ forcelevel = bb.msg.BBLogFormatter.ERROR
+ else:
+ forcelevel = bb.msg.BBLogFormatter.WARNING
+ bb.msg.addDefaultlogFilter(console, bb.msg.BBLogFilterStdOut, forcelevel)
+ bb.msg.addDefaultlogFilter(errconsole, bb.msg.BBLogFilterStdErr)
+ console.setFormatter(format)
+ errconsole.setFormatter(format)
+ if not bb.msg.has_console_handler(logger):
+ logger.addHandler(console)
+ logger.addHandler(errconsole)
+
+ if params.options.remote_server and params.options.kill_server:
+ server.terminateServer()
+ return
+
+ if params.observe_only:
+ logger.error("Observe-only mode not supported in this UI")
+ return 1
+
+ llevel, debug_domains = bb.msg.constructLogOptions()
+ server.runCommand(["setEventMask", server.getEventHandle(), llevel, debug_domains, _evt_list])
+
+ try:
+ params.updateFromServer(server)
+ cmdline = params.parseActions()
+ if not cmdline:
+ logger.error("No task given")
+ return 1
+ if 'msg' in cmdline and cmdline['msg']:
+ logger.error(cmdline['msg'])
+ return 1
+ cmdline = cmdline['action']
+ ret, error = server.runCommand(cmdline)
+ if error:
+ logger.error("{0}: {1}".format(cmdline, error))
+ return 1
+ elif not ret:
+ logger.error("Couldn't get default commandline: {0}".format(re))
+ return 1
+ except xmlrpc.client.Fault as x:
+ logger.error("XMLRPC Fault getting commandline: {0}".format(x))
+ return 1
+
+ active_process_total = None
+ is_tasks_running = False
+
+ while True:
+ try:
+ event = eventHandler.waitEvent(0.25)
+ if not event:
+ continue
+
+ helper.eventHandler(event)
+
+ if isinstance(event, bb.build.TaskBase):
+ logger.info(event._message)
+ if isinstance(event, logging.LogRecord):
+ # Don't report sstate failures as errors, since Yocto will just run the tasks for real
+ if event.msg == "No suitable staging package found" or (event.msg.startswith(
+ "Fetcher failure: Unable to find file") and "downloadfilename" in event.msg and "sstate" in event.msg):
+ event.levelno = bb.msg.BBLogFormatter.WARNING
+ if event.taskpid != 0:
+ # For "normal" logging conditions, don't show note logs from tasks
+ # but do show them if the user has changed the default log level to
+ # include verbose/debug messages
+ if event.levelno <= bb.msg.BBLogFormatter.NOTE and (event.levelno < llevel or (
+ event.levelno == bb.msg.BBLogFormatter.NOTE and llevel != bb.msg.BBLogFormatter.VERBOSE)):
+ continue
+
+ # Prefix task messages with recipe/task
+ if event.taskpid in helper.running_tasks and event.levelno != bb.msg.BBLogFormatter.PLAIN:
+ taskinfo = helper.running_tasks[event.taskpid]
+ event.msg = taskinfo['title'] + ': ' + event.msg
+ if hasattr(event, 'fn'):
+ event.msg = event.fn + ': ' + event.msg
+ logger.handle(event)
+ if isinstance(event, bb.build.TaskFailedSilent):
+ logger.warning("Logfile for failed setscene task is %s" % event.logfile)
+ continue
+ if isinstance(event, bb.build.TaskFailed):
+ rt = "{0}-{1}:{2}".format(event.pn, event.pv.replace("AUTOINC", "0"), event.task)
+
+ logfile = event.logfile
+ if not logfile or not os.path.exists(logfile):
+ TeamCityUI.emit_service_message("buildProblem", description="{0}\nUnknown failure (no log file available)".format(rt))
+ if not event.task.endswith("_setscene"):
+ server.runCommand(["stateForceShutdown"])
+ continue
+
+ details = deque(maxlen=loglines)
+ error_lines = []
+ if includelogs and not event.errprinted:
+ with open(logfile, "r") as f:
+ while True:
+ line = f.readline()
+ if not line:
+ break
+ line = line.rstrip()
+ details.append(' | %s' % line)
+ # TODO: a less stupid check for errors
+ if (event.task == "do_compile") and ("error:" in line):
+ error_lines.append(line)
+
+ if error_lines:
+ TeamCityUI.emit_service_message("compilationStarted", compiler=rt)
+ for line in error_lines:
+ TeamCityUI.emit_service_message("message", text=line, status="ERROR")
+ TeamCityUI.emit_service_message("compilationFinished", compiler=rt)
+ else:
+ TeamCityUI.emit_service_message("buildProblem", description=rt)
+
+ err = "Logfile of failure stored in: %s" % logfile
+ if details:
+ ui.block_start("{0} task log".format(rt))
+ # TeamCity seems to choke on service messages longer than about 63800 characters, so if error
+ # details is longer than, say, 60000, batch it up into several messages.
+ first_message = True
+ while details:
+ detail_len = 0
+ batch = deque()
+ while details and detail_len < 60000:
+ # TODO: This code doesn't bother to handle lines that themselves are extremely long.
+ line = details.popleft()
+ batch.append(line)
+ detail_len += len(line)
+
+ if first_message:
+ batch.appendleft("Log data follows:")
+ first_message = False
+ TeamCityUI.emit_service_message("message", text=err, status="ERROR",
+ errorDetails="\n".join(batch))
+ else:
+ TeamCityUI.emit_service_message("message", text="[continued]", status="ERROR",
+ errorDetails="\n".join(batch))
+ ui.block_end()
+ else:
+ TeamCityUI.emit_service_message("message", text=err, status="ERROR", errorDetails="")
+
+ if not event.task.endswith("_setscene"):
+ server.runCommand(["stateForceShutdown"])
+
+ if isinstance(event, bb.event.ProcessStarted):
+ if event.processname in ["Initialising tasks", "Checking sstate mirror object availability"]:
+ active_process_total = event.total
+ ui.block_start(event.processname)
+ if isinstance(event, bb.event.ProcessFinished):
+ if event.processname in ["Initialising tasks", "Checking sstate mirror object availability"]:
+ ui.progress(event.processname, 100)
+ ui.block_end()
+ if isinstance(event, bb.event.ProcessProgress):
+ if event.processname in ["Initialising tasks",
+ "Checking sstate mirror object availability"] and active_process_total != 0:
+ ui.progress(event.processname, event.progress * 100 / active_process_total)
+ if isinstance(event, bb.event.CacheLoadStarted):
+ ui.block_start("Loading cache")
+ if isinstance(event, bb.event.CacheLoadProgress):
+ if event.total != 0:
+ ui.progress("Loading cache", math.floor(event.current * 100 / event.total))
+ if isinstance(event, bb.event.CacheLoadCompleted):
+ ui.progress("Loading cache", 100)
+ ui.block_end()
+ if isinstance(event, bb.event.ParseStarted):
+ ui.block_start("Parsing recipes and checking upstream revisions")
+ if isinstance(event, bb.event.ParseProgress):
+ if event.total != 0:
+ ui.progress("Parsing recipes", math.floor(event.current * 100 / event.total))
+ if isinstance(event, bb.event.ParseCompleted):
+ ui.progress("Parsing recipes", 100)
+ ui.block_end()
+ if isinstance(event, bb.command.CommandCompleted):
+ return
+ if isinstance(event, bb.command.CommandFailed):
+ logger.error(str(event))
+ return 1
+ if isinstance(event, bb.event.MultipleProviders):
+ logger.warning(str(event))
+ continue
+ if isinstance(event, bb.event.NoProvider):
+ logger.error(str(event))
+ continue
+ if isinstance(event, bb.command.CommandExit):
+ return
+ if isinstance(event, bb.cooker.CookerExit):
+ return
+ if isinstance(event, bb.runqueue.sceneQueueTaskStarted):
+ if not is_tasks_running:
+ is_tasks_running = True
+ ui.block_start("Running tasks")
+ if event.stats.total != 0:
+ ui.progress("Running setscene tasks", (
+ event.stats.completed + event.stats.active + event.stats.failed + 1) * 100 / event.stats.total)
+ if isinstance(event, bb.runqueue.runQueueTaskStarted):
+ if not is_tasks_running:
+ is_tasks_running = True
+ ui.block_start("Running tasks")
+ if event.stats.total != 0:
+ pseudo_total = event.stats.total - event.stats.skipped
+ pseudo_complete = event.stats.completed + event.stats.active - event.stats.skipped + event.stats.failed + 1
+ # TODO: sometimes this gives over 100%
+ ui.progress("Running runqueue tasks", (pseudo_complete) * 100 / pseudo_total,
+ " ({0}/{1})".format(pseudo_complete, pseudo_total))
+ if isinstance(event, bb.runqueue.sceneQueueTaskFailed):
+ logger.warning(str(event))
+ continue
+ if isinstance(event, bb.runqueue.runQueueTaskFailed):
+ logger.error(str(event))
+ return 1
+ if isinstance(event, bb.event.LogExecTTY):
+ pass
+ except EnvironmentError as ioerror:
+ # ignore interrupted io
+ if ioerror.args[0] == 4:
+ pass
+ except Exception as ex:
+ logger.error(str(ex))
+
+ # except KeyboardInterrupt:
+ # if shutdown == 2:
+ # mw.appendText("Third Keyboard Interrupt, exit.\n")
+ # exitflag = True
+ # if shutdown == 1:
+ # mw.appendText("Second Keyboard Interrupt, stopping...\n")
+ # _, error = server.runCommand(["stateForceShutdown"])
+ # if error:
+ # print("Unable to cleanly stop: %s" % error)
+ # if shutdown == 0:
+ # mw.appendText("Keyboard Interrupt, closing down...\n")
+ # _, error = server.runCommand(["stateShutdown"])
+ # if error:
+ # print("Unable to cleanly shutdown: %s" % error)
+ # shutdown = shutdown + 1
+ # pass
diff --git a/poky/bitbake/lib/bb/ui/toasterui.py b/poky/bitbake/lib/bb/ui/toasterui.py
index 51892c9a0..9260f5d9d 100644
--- a/poky/bitbake/lib/bb/ui/toasterui.py
+++ b/poky/bitbake/lib/bb/ui/toasterui.py
@@ -176,7 +176,7 @@ def main(server, eventHandler, params):
if error:
logger.error("Command '%s' failed: %s" % (cmdline, error))
return 1
- elif ret != True:
+ elif not ret:
logger.error("Command '%s' failed: returned %s" % (cmdline, ret))
return 1
diff --git a/poky/bitbake/lib/bb/ui/uievent.py b/poky/bitbake/lib/bb/ui/uievent.py
index fedb05064..13d0d4a04 100644
--- a/poky/bitbake/lib/bb/ui/uievent.py
+++ b/poky/bitbake/lib/bb/ui/uievent.py
@@ -46,7 +46,7 @@ class BBUIEventQueue:
self.EventHandle = ret
error = ""
- if self.EventHandle != None:
+ if self.EventHandle is not None:
break
errmsg = "Could not register UI event handler. Error: %s, host %s, "\
diff --git a/poky/bitbake/lib/bb/ui/uihelper.py b/poky/bitbake/lib/bb/ui/uihelper.py
index c8dd7df08..48d808ae2 100644
--- a/poky/bitbake/lib/bb/ui/uihelper.py
+++ b/poky/bitbake/lib/bb/ui/uihelper.py
@@ -15,39 +15,48 @@ class BBUIHelper:
# Running PIDs preserves the order tasks were executed in
self.running_pids = []
self.failed_tasks = []
+ self.pidmap = {}
self.tasknumber_current = 0
self.tasknumber_total = 0
def eventHandler(self, event):
+ # PIDs are a bad idea as they can be reused before we process all UI events.
+ # We maintain a 'fuzzy' match for TaskProgress since there is no other way to match
+ def removetid(pid, tid):
+ self.running_pids.remove(tid)
+ del self.running_tasks[tid]
+ if self.pidmap[pid] == tid:
+ del self.pidmap[pid]
+ self.needUpdate = True
+
if isinstance(event, bb.build.TaskStarted):
+ tid = event._fn + ":" + event._task
if event._mc != "default":
- self.running_tasks[event.pid] = { 'title' : "mc:%s:%s %s" % (event._mc, event._package, event._task), 'starttime' : time.time() }
+ self.running_tasks[tid] = { 'title' : "mc:%s:%s %s" % (event._mc, event._package, event._task), 'starttime' : time.time(), 'pid' : event.pid }
else:
- self.running_tasks[event.pid] = { 'title' : "%s %s" % (event._package, event._task), 'starttime' : time.time() }
- self.running_pids.append(event.pid)
+ self.running_tasks[tid] = { 'title' : "%s %s" % (event._package, event._task), 'starttime' : time.time(), 'pid' : event.pid }
+ self.running_pids.append(tid)
+ self.pidmap[event.pid] = tid
self.needUpdate = True
elif isinstance(event, bb.build.TaskSucceeded):
- del self.running_tasks[event.pid]
- self.running_pids.remove(event.pid)
- self.needUpdate = True
+ tid = event._fn + ":" + event._task
+ removetid(event.pid, tid)
elif isinstance(event, bb.build.TaskFailedSilent):
- del self.running_tasks[event.pid]
- self.running_pids.remove(event.pid)
+ tid = event._fn + ":" + event._task
+ removetid(event.pid, tid)
# Don't add to the failed tasks list since this is e.g. a setscene task failure
- self.needUpdate = True
elif isinstance(event, bb.build.TaskFailed):
- del self.running_tasks[event.pid]
- self.running_pids.remove(event.pid)
+ tid = event._fn + ":" + event._task
+ removetid(event.pid, tid)
self.failed_tasks.append( { 'title' : "%s %s" % (event._package, event._task)})
- self.needUpdate = True
elif isinstance(event, bb.runqueue.runQueueTaskStarted):
self.tasknumber_current = event.stats.completed + event.stats.active + event.stats.failed + 1
self.tasknumber_total = event.stats.total
self.needUpdate = True
elif isinstance(event, bb.build.TaskProgress):
- if event.pid > 0:
- self.running_tasks[event.pid]['progress'] = event.progress
- self.running_tasks[event.pid]['rate'] = event.rate
+ if event.pid > 0 and event.pid in self.pidmap:
+ self.running_tasks[self.pidmap[event.pid]]['progress'] = event.progress
+ self.running_tasks[self.pidmap[event.pid]]['rate'] = event.rate
self.needUpdate = True
else:
return False
diff --git a/poky/bitbake/lib/bb/utils.py b/poky/bitbake/lib/bb/utils.py
index 8d40bcdf8..5f5767c1d 100644
--- a/poky/bitbake/lib/bb/utils.py
+++ b/poky/bitbake/lib/bb/utils.py
@@ -24,7 +24,6 @@ import fnmatch
import traceback
import errno
import signal
-import ast
import collections
import copy
from subprocess import getstatusoutput
@@ -428,10 +427,11 @@ def fileslocked(files):
for lockfile in files:
locks.append(bb.utils.lockfile(lockfile))
- yield
-
- for lock in locks:
- bb.utils.unlockfile(lock)
+ try:
+ yield
+ finally:
+ for lock in locks:
+ bb.utils.unlockfile(lock)
@contextmanager
def timeout(seconds):
@@ -556,6 +556,20 @@ def sha1_file(filename):
import hashlib
return _hasher(hashlib.sha1(), filename)
+def sha384_file(filename):
+ """
+ Return the hex string representation of the SHA384 checksum of the filename
+ """
+ import hashlib
+ return _hasher(hashlib.sha384(), filename)
+
+def sha512_file(filename):
+ """
+ Return the hex string representation of the SHA512 checksum of the filename
+ """
+ import hashlib
+ return _hasher(hashlib.sha512(), filename)
+
def preserved_envvars_exported():
"""Variables which are taken from the environment and placed in and exported
from the metadata"""
@@ -850,7 +864,7 @@ def copyfile(src, dest, newmtime = None, sstat = None):
if destexists and not stat.S_ISDIR(dstat[stat.ST_MODE]):
os.unlink(dest)
os.symlink(target, dest)
- #os.lchown(dest,sstat[stat.ST_UID],sstat[stat.ST_GID])
+ os.lchown(dest,sstat[stat.ST_UID],sstat[stat.ST_GID])
return os.lstat(dest)
except Exception as e:
logger.warning("copyfile: failed to create symlink %s to %s (%s)" % (dest, target, e))
@@ -1025,6 +1039,43 @@ def filter(variable, checkvalues, d):
checkvalues = set(checkvalues)
return ' '.join(sorted(checkvalues & val))
+
+def get_referenced_vars(start_expr, d):
+ """
+ :return: names of vars referenced in start_expr (recursively), in quasi-BFS order (variables within the same level
+ are ordered arbitrarily)
+ """
+
+ seen = set()
+ ret = []
+
+ # The first entry in the queue is the unexpanded start expression
+ queue = collections.deque([start_expr])
+ # Subsequent entries will be variable names, so we need to track whether or not entry requires getVar
+ is_first = True
+
+ empty_data = bb.data.init()
+ while queue:
+ entry = queue.popleft()
+ if is_first:
+ # Entry is the start expression - no expansion needed
+ is_first = False
+ expression = entry
+ else:
+ # This is a variable name - need to get the value
+ expression = d.getVar(entry, False)
+ ret.append(entry)
+
+ # expandWithRefs is how we actually get the referenced variables in the expression. We call it using an empty
+ # data store because we only want the variables directly used in the expression. It returns a set, which is what
+ # dooms us to only ever be "quasi-BFS" rather than full BFS.
+ new_vars = empty_data.expandWithRefs(expression, None).references - set(seen)
+
+ queue.extend(new_vars)
+ seen.update(new_vars)
+ return ret
+
+
def cpu_count():
return multiprocessing.cpu_count()
@@ -1560,3 +1611,29 @@ class LogCatcher(logging.Handler):
self.messages.append(bb.build.logformatter.format(record))
def contains(self, message):
return (message in self.messages)
+
+def is_semver(version):
+ """
+ Is the version string following the semver semantic?
+
+ https://semver.org/spec/v2.0.0.html
+ """
+ regex = re.compile(
+ r"""
+ ^
+ (0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)
+ (?:-(
+ (?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)
+ (?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*
+ ))?
+ (?:\+(
+ [0-9a-zA-Z-]+
+ (?:\.[0-9a-zA-Z-]+)*
+ ))?
+ $
+ """, re.VERBOSE)
+
+ if regex.match(version) is None:
+ return False
+
+ return True
diff --git a/poky/bitbake/lib/bblayers/common.py b/poky/bitbake/lib/bblayers/common.py
index c5657d381..6c76ef350 100644
--- a/poky/bitbake/lib/bblayers/common.py
+++ b/poky/bitbake/lib/bblayers/common.py
@@ -17,7 +17,7 @@ class LayerPlugin():
def tinfoil_init(self, tinfoil):
self.tinfoil = tinfoil
self.bblayers = (self.tinfoil.config_data.getVar('BBLAYERS') or "").split()
- layerconfs = self.tinfoil.config_data.varhistory.get_variable_items_files('BBFILE_COLLECTIONS', self.tinfoil.config_data)
+ layerconfs = self.tinfoil.config_data.varhistory.get_variable_items_files('BBFILE_COLLECTIONS')
self.bbfile_collections = {layer: os.path.dirname(os.path.dirname(path)) for layer, path in layerconfs.items()}
@staticmethod
diff --git a/poky/bitbake/lib/bblayers/layerindex.py b/poky/bitbake/lib/bblayers/layerindex.py
index 57cd9027f..95b67a662 100644
--- a/poky/bitbake/lib/bblayers/layerindex.py
+++ b/poky/bitbake/lib/bblayers/layerindex.py
@@ -24,7 +24,7 @@ class LayerIndexPlugin(ActionPlugin):
This class inherits ActionPlugin to get do_add_layer.
"""
- def get_fetch_layer(self, fetchdir, url, subdir, fetch_layer):
+ def get_fetch_layer(self, fetchdir, url, subdir, fetch_layer, branch, shallow=False):
layername = self.get_layer_name(url)
if os.path.splitext(layername)[1] == '.git':
layername = os.path.splitext(layername)[0]
@@ -32,9 +32,15 @@ class LayerIndexPlugin(ActionPlugin):
layerdir = os.path.join(repodir, subdir)
if not os.path.exists(repodir):
if fetch_layer:
- result = subprocess.call(['git', 'clone', url, repodir])
+ cmd = ['git', 'clone']
+ if shallow:
+ cmd.extend(['--depth', '1'])
+ if branch:
+ cmd.extend(['-b' , branch])
+ cmd.extend([url, repodir])
+ result = subprocess.call(cmd)
if result:
- logger.error("Failed to download %s" % url)
+ logger.error("Failed to download %s (%s)" % (url, branch))
return None, None, None
else:
return subdir, layername, layerdir
@@ -171,7 +177,9 @@ class LayerIndexPlugin(ActionPlugin):
subdir, name, layerdir = self.get_fetch_layer(fetchdir,
layerBranch.layer.vcs_url,
layerBranch.vcs_subdir,
- not args.show_only)
+ not args.show_only,
+ layerBranch.actual_branch,
+ args.shallow)
if not name:
# Error already shown
return 1
@@ -204,6 +212,7 @@ class LayerIndexPlugin(ActionPlugin):
parser_layerindex_fetch = self.add_command(sp, 'layerindex-fetch', self.do_layerindex_fetch, parserecipes=False)
parser_layerindex_fetch.add_argument('-n', '--show-only', help='show dependencies and do nothing else', action='store_true')
parser_layerindex_fetch.add_argument('-b', '--branch', help='branch name to fetch')
+ parser_layerindex_fetch.add_argument('-s', '--shallow', help='do only shallow clones (--depth=1)', action='store_true')
parser_layerindex_fetch.add_argument('-i', '--ignore', help='assume the specified layers do not need to be fetched/added (separate multiple layers with commas, no spaces)', metavar='LAYER')
parser_layerindex_fetch.add_argument('layername', nargs='+', help='layer to fetch')
diff --git a/poky/bitbake/lib/bblayers/query.py b/poky/bitbake/lib/bblayers/query.py
index 7db49c8e2..e2cc31053 100644
--- a/poky/bitbake/lib/bblayers/query.py
+++ b/poky/bitbake/lib/bblayers/query.py
@@ -46,7 +46,7 @@ layer, with the preferred version first. Note that skipped recipes that
are overlayed will also be listed, with a " (skipped)" suffix.
"""
- items_listed = self.list_recipes('Overlayed recipes', None, True, args.same_version, args.filenames, False, True, None, False, None)
+ items_listed = self.list_recipes('Overlayed recipes', None, True, args.same_version, args.filenames, False, True, None, False, None, args.mc)
# Check for overlayed .bbclass files
classes = collections.defaultdict(list)
@@ -112,9 +112,9 @@ skipped recipes will also be listed, with a " (skipped)" suffix.
title = 'Matching recipes:'
else:
title = 'Available recipes:'
- self.list_recipes(title, args.pnspec, False, False, args.filenames, args.recipes_only, args.multiple, args.layer, args.bare, inheritlist)
+ self.list_recipes(title, args.pnspec, False, False, args.filenames, args.recipes_only, args.multiple, args.layer, args.bare, inheritlist, args.mc)
- def list_recipes(self, title, pnspec, show_overlayed_only, show_same_ver_only, show_filenames, show_recipes_only, show_multi_provider_only, selected_layer, bare, inherits):
+ def list_recipes(self, title, pnspec, show_overlayed_only, show_same_ver_only, show_filenames, show_recipes_only, show_multi_provider_only, selected_layer, bare, inherits, mc):
if inherits:
bbpath = str(self.tinfoil.config_data.getVar('BBPATH'))
for classname in inherits:
@@ -123,14 +123,18 @@ skipped recipes will also be listed, with a " (skipped)" suffix.
logger.error('No class named %s found in BBPATH', classfile)
sys.exit(1)
- pkg_pn = self.tinfoil.cooker.recipecaches[''].pkg_pn
- (latest_versions, preferred_versions) = self.tinfoil.find_providers()
- allproviders = self.tinfoil.get_all_providers()
+ pkg_pn = self.tinfoil.cooker.recipecaches[mc].pkg_pn
+ (latest_versions, preferred_versions) = self.tinfoil.find_providers(mc)
+ allproviders = self.tinfoil.get_all_providers(mc)
# Ensure we list skipped recipes
# We are largely guessing about PN, PV and the preferred version here,
# but we have no choice since skipped recipes are not fully parsed
skiplist = list(self.tinfoil.cooker.skiplist.keys())
+ mcspec = 'mc:%s:' % mc
+ if mc:
+ skiplist = [s[len(mcspec):] for s in skiplist if s.startswith(mcspec)]
+
for fn in skiplist:
recipe_parts = os.path.splitext(os.path.basename(fn))[0].split('_')
p = recipe_parts[0]
@@ -187,7 +191,7 @@ skipped recipes will also be listed, with a " (skipped)" suffix.
# We only display once per recipe, we should prefer non extended versions of the
# recipe if present (so e.g. in OpenEmbedded, openssl rather than nativesdk-openssl
# which would otherwise sort first).
- if realfn[1] and realfn[0] in self.tinfoil.cooker.recipecaches[''].pkg_fn:
+ if realfn[1] and realfn[0] in self.tinfoil.cooker.recipecaches[mc].pkg_fn:
continue
if inherits:
@@ -496,6 +500,7 @@ NOTE: .bbappend files can impact the dependencies.
parser_show_overlayed = self.add_command(sp, 'show-overlayed', self.do_show_overlayed)
parser_show_overlayed.add_argument('-f', '--filenames', help='instead of the default formatting, list filenames of higher priority recipes with the ones they overlay indented underneath', action='store_true')
parser_show_overlayed.add_argument('-s', '--same-version', help='only list overlayed recipes where the version is the same', action='store_true')
+ parser_show_overlayed.add_argument('--mc', help='use specified multiconfig', default='')
parser_show_recipes = self.add_command(sp, 'show-recipes', self.do_show_recipes)
parser_show_recipes.add_argument('-f', '--filenames', help='instead of the default formatting, list filenames of higher priority recipes with the ones they overlay indented underneath', action='store_true')
@@ -504,6 +509,7 @@ NOTE: .bbappend files can impact the dependencies.
parser_show_recipes.add_argument('-i', '--inherits', help='only list recipes that inherit the named class(es) - separate multiple classes using , (without spaces)', metavar='CLASS', default='')
parser_show_recipes.add_argument('-l', '--layer', help='only list recipes from the selected layer', default='')
parser_show_recipes.add_argument('-b', '--bare', help='output just names without the "(skipped)" marker', action='store_true')
+ parser_show_recipes.add_argument('--mc', help='use specified multiconfig', default='')
parser_show_recipes.add_argument('pnspec', nargs='*', help='optional recipe name specification (wildcards allowed, enclose in quotes to avoid shell expansion)')
parser_show_appends = self.add_command(sp, 'show-appends', self.do_show_appends)
diff --git a/poky/bitbake/lib/bs4/__init__.py b/poky/bitbake/lib/bs4/__init__.py
index f6fdfd50b..e35725b86 100644
--- a/poky/bitbake/lib/bs4/__init__.py
+++ b/poky/bitbake/lib/bs4/__init__.py
@@ -427,7 +427,7 @@ class BeautifulSoup(Tag):
if self.is_xml:
# Print the XML declaration
encoding_part = ''
- if eventual_encoding != None:
+ if eventual_encoding is not None:
encoding_part = ' encoding="%s"' % eventual_encoding
prefix = '<?xml version="1.0"%s?>\n' % encoding_part
else:
diff --git a/poky/bitbake/lib/bs4/builder/_html5lib.py b/poky/bitbake/lib/bs4/builder/_html5lib.py
index 2b7a70aa1..9e9216ef9 100644
--- a/poky/bitbake/lib/bs4/builder/_html5lib.py
+++ b/poky/bitbake/lib/bs4/builder/_html5lib.py
@@ -2,7 +2,6 @@ __all__ = [
'HTML5TreeBuilder',
]
-from pdb import set_trace
import warnings
from bs4.builder import (
PERMISSIVE,
@@ -322,7 +321,7 @@ class Element(treebuildersbase.Node):
return self.element.contents
def getNameTuple(self):
- if self.namespace == None:
+ if self.namespace is None:
return namespaces["html"], self.name
else:
return self.namespace, self.name
diff --git a/poky/bitbake/lib/bs4/dammit.py b/poky/bitbake/lib/bs4/dammit.py
index 805aa908a..7ad9e0dd1 100644
--- a/poky/bitbake/lib/bs4/dammit.py
+++ b/poky/bitbake/lib/bs4/dammit.py
@@ -8,12 +8,10 @@ XML or HTML to reflect a new encoding; that's the tree builder's job.
"""
__license__ = "MIT"
-from pdb import set_trace
import codecs
from html.entities import codepoint2name
import re
import logging
-import string
# Import a library to autodetect character encodings.
chardet_type = None
@@ -38,12 +36,6 @@ except ImportError:
def chardet_dammit(s):
return None
-# Available from http://cjkpython.i18n.org/.
-try:
- import iconv_codec
-except ImportError:
- pass
-
xml_encoding_re = re.compile(
r'^<\?.*encoding=[\'"](.*?)[\'"].*\?>'.encode(), re.I)
html_meta_re = re.compile(
diff --git a/poky/bitbake/lib/bs4/element.py b/poky/bitbake/lib/bs4/element.py
index 3775a6045..68be42d13 100644
--- a/poky/bitbake/lib/bs4/element.py
+++ b/poky/bitbake/lib/bs4/element.py
@@ -1,6 +1,5 @@
__license__ = "MIT"
-from pdb import set_trace
import collections.abc
import re
import sys
diff --git a/poky/bitbake/lib/bs4/testing.py b/poky/bitbake/lib/bs4/testing.py
index 3a2f260e2..953bca8e9 100644
--- a/poky/bitbake/lib/bs4/testing.py
+++ b/poky/bitbake/lib/bs4/testing.py
@@ -4,7 +4,6 @@ __license__ = "MIT"
import pickle
import copy
-import functools
import unittest
from unittest import TestCase
from bs4 import BeautifulSoup
diff --git a/poky/bitbake/lib/bs4/tests/test_docs.py b/poky/bitbake/lib/bs4/tests/test_docs.py
index 5b9f67709..d1d76a33b 100644
--- a/poky/bitbake/lib/bs4/tests/test_docs.py
+++ b/poky/bitbake/lib/bs4/tests/test_docs.py
@@ -7,19 +7,15 @@ __all__ = [
'additional_tests',
]
-import atexit
import doctest
-import os
#from pkg_resources import (
# resource_filename, resource_exists, resource_listdir, cleanup_resources)
-import unittest
DOCTEST_FLAGS = (
doctest.ELLIPSIS |
doctest.NORMALIZE_WHITESPACE |
doctest.REPORT_NDIFF)
-
# def additional_tests():
# "Run the doc tests (README.txt and docs/*, if any exist)"
# doctest_files = [
diff --git a/poky/bitbake/lib/bs4/tests/test_htmlparser.py b/poky/bitbake/lib/bs4/tests/test_htmlparser.py
index b45e35f99..30a25e670 100644
--- a/poky/bitbake/lib/bs4/tests/test_htmlparser.py
+++ b/poky/bitbake/lib/bs4/tests/test_htmlparser.py
@@ -1,7 +1,6 @@
"""Tests to ensure that the html.parser tree builder generates good
trees."""
-from pdb import set_trace
import pickle
from bs4.testing import SoupTest, HTMLTreeBuilderSmokeTest
from bs4.builder import HTMLParserTreeBuilder
diff --git a/poky/bitbake/lib/bs4/tests/test_lxml.py b/poky/bitbake/lib/bs4/tests/test_lxml.py
index 6c2a1d73e..6b6cdd07c 100644
--- a/poky/bitbake/lib/bs4/tests/test_lxml.py
+++ b/poky/bitbake/lib/bs4/tests/test_lxml.py
@@ -1,6 +1,5 @@
"""Tests to ensure that the lxml tree builder generates good trees."""
-import re
import warnings
try:
@@ -14,13 +13,8 @@ except ImportError as e:
if LXML_PRESENT:
from bs4.builder import LXMLTreeBuilder, LXMLTreeBuilderForXML
-from bs4 import (
- BeautifulSoup,
- BeautifulStoneSoup,
- )
-from bs4.element import Comment, Doctype, SoupStrainer
+from bs4 import BeautifulStoneSoup
from bs4.testing import skipIf
-from bs4.tests import test_htmlparser
from bs4.testing import (
HTMLTreeBuilderSmokeTest,
XMLTreeBuilderSmokeTest,
diff --git a/poky/bitbake/lib/bs4/tests/test_soup.py b/poky/bitbake/lib/bs4/tests/test_soup.py
index f87949e3d..6ad3cb376 100644
--- a/poky/bitbake/lib/bs4/tests/test_soup.py
+++ b/poky/bitbake/lib/bs4/tests/test_soup.py
@@ -1,16 +1,12 @@
# -*- coding: utf-8 -*-
"""Tests of Beautiful Soup as a whole."""
-from pdb import set_trace
import logging
import unittest
import sys
import tempfile
-from bs4 import (
- BeautifulSoup,
- BeautifulStoneSoup,
-)
+from bs4 import BeautifulSoup
from bs4.element import (
CharsetMetaAttributeValue,
ContentMetaAttributeValue,
diff --git a/poky/bitbake/lib/bs4/tests/test_tree.py b/poky/bitbake/lib/bs4/tests/test_tree.py
index 6d3e67f31..8e5c66426 100644
--- a/poky/bitbake/lib/bs4/tests/test_tree.py
+++ b/poky/bitbake/lib/bs4/tests/test_tree.py
@@ -9,16 +9,12 @@ same markup, but all Beautiful Soup trees can be traversed with the
methods tested here.
"""
-from pdb import set_trace
import copy
import pickle
import re
import warnings
from bs4 import BeautifulSoup
-from bs4.builder import (
- builder_registry,
- HTMLParserTreeBuilder,
-)
+from bs4.builder import builder_registry
from bs4.element import (
PY3K,
CData,
@@ -29,10 +25,7 @@ from bs4.element import (
SoupStrainer,
Tag,
)
-from bs4.testing import (
- SoupTest,
- skipIf,
-)
+from bs4.testing import SoupTest
XML_BUILDER_PRESENT = (builder_registry.lookup("xml") is not None)
LXML_PRESENT = (builder_registry.lookup("lxml") is not None)
diff --git a/poky/bitbake/lib/hashserv/client.py b/poky/bitbake/lib/hashserv/client.py
index f65956617..46085d641 100644
--- a/poky/bitbake/lib/hashserv/client.py
+++ b/poky/bitbake/lib/hashserv/client.py
@@ -3,7 +3,6 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-from contextlib import closing
import json
import logging
import socket
@@ -148,6 +147,14 @@ class Client(object):
m['unihash'] = unihash
return self.send_message({'report': m})
+ def report_unihash_equiv(self, taskhash, method, unihash, extra={}):
+ self._set_mode(self.MODE_NORMAL)
+ m = extra.copy()
+ m['taskhash'] = taskhash
+ m['method'] = method
+ m['unihash'] = unihash
+ return self.send_message({'report-equiv': m})
+
def get_stats(self):
self._set_mode(self.MODE_NORMAL)
return self.send_message({'get-stats': None})
diff --git a/poky/bitbake/lib/hashserv/server.py b/poky/bitbake/lib/hashserv/server.py
index 0aff77688..cc7e48233 100644
--- a/poky/bitbake/lib/hashserv/server.py
+++ b/poky/bitbake/lib/hashserv/server.py
@@ -143,6 +143,7 @@ class ServerClient(object):
handlers = {
'get': self.handle_get,
'report': self.handle_report,
+ 'report-equiv': self.handle_equivreport,
'get-stream': self.handle_get_stream,
'get-stats': self.handle_get_stats,
'reset-stats': self.handle_reset_stats,
@@ -303,6 +304,41 @@ class ServerClient(object):
self.write_message(d)
+ async def handle_equivreport(self, data):
+ with closing(self.db.cursor()) as cursor:
+ insert_data = {
+ 'method': data['method'],
+ 'outhash': "",
+ 'taskhash': data['taskhash'],
+ 'unihash': data['unihash'],
+ 'created': datetime.now()
+ }
+
+ for k in ('owner', 'PN', 'PV', 'PR', 'task', 'outhash_siginfo'):
+ if k in data:
+ insert_data[k] = data[k]
+
+ cursor.execute('''INSERT OR IGNORE INTO tasks_v2 (%s) VALUES (%s)''' % (
+ ', '.join(sorted(insert_data.keys())),
+ ', '.join(':' + k for k in sorted(insert_data.keys()))),
+ insert_data)
+
+ self.db.commit()
+
+ # Fetch the unihash that will be reported for the taskhash. If the
+ # unihash matches, it means this row was inserted (or the mapping
+ # was already valid)
+ row = self.query_equivalent(data['method'], data['taskhash'])
+
+ if row['unihash'] == data['unihash']:
+ logger.info('Adding taskhash equivalence for %s with unihash %s',
+ data['taskhash'], row['unihash'])
+
+ d = {k: row[k] for k in ('taskhash', 'method', 'unihash')}
+
+ self.write_message(d)
+
+
async def handle_get_stats(self, request):
d = {
'requests': self.request_stats.todict(),
diff --git a/poky/bitbake/lib/layerindexlib/cooker.py b/poky/bitbake/lib/layerindexlib/cooker.py
index 604a9611d..65b23d087 100644
--- a/poky/bitbake/lib/layerindexlib/cooker.py
+++ b/poky/bitbake/lib/layerindexlib/cooker.py
@@ -4,9 +4,8 @@
#
import logging
-import json
-from collections import OrderedDict, defaultdict
+from collections import defaultdict
from urllib.parse import unquote, urlparse
@@ -94,7 +93,7 @@ class CookerPlugin(layerindexlib.plugin.IndexPlugin):
return index
collections = d.getVar('BBFILE_COLLECTIONS')
- layerconfs = d.varhistory.get_variable_items_files('BBFILE_COLLECTIONS', d)
+ layerconfs = d.varhistory.get_variable_items_files('BBFILE_COLLECTIONS')
bbfile_collections = {layer: os.path.dirname(os.path.dirname(path)) for layer, path in layerconfs.items()}
(_, bb_branch, _, _) = self._get_bitbake_info()
diff --git a/poky/bitbake/lib/layerindexlib/plugin.py b/poky/bitbake/lib/layerindexlib/plugin.py
index 7015a1af2..cadda36c7 100644
--- a/poky/bitbake/lib/layerindexlib/plugin.py
+++ b/poky/bitbake/lib/layerindexlib/plugin.py
@@ -7,10 +7,7 @@
# Plugin base class
# Utility Functions for working on layerindex data
-import argparse
import logging
-import os
-import bb.msg
logger = logging.getLogger('BitBake.layerindexlib.plugin')
diff --git a/poky/bitbake/lib/layerindexlib/tests/cooker.py b/poky/bitbake/lib/layerindexlib/tests/cooker.py
index 1fa102e60..1d0685e09 100644
--- a/poky/bitbake/lib/layerindexlib/tests/cooker.py
+++ b/poky/bitbake/lib/layerindexlib/tests/cooker.py
@@ -3,15 +3,12 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-import unittest
-import tempfile
import os
import bb
import layerindexlib
from layerindexlib.tests.common import LayersTest
-import logging
class LayerIndexCookerTest(LayersTest):
diff --git a/poky/bitbake/lib/layerindexlib/tests/layerindexobj.py b/poky/bitbake/lib/layerindexlib/tests/layerindexobj.py
index 0c5ec8881..de1e47468 100644
--- a/poky/bitbake/lib/layerindexlib/tests/layerindexobj.py
+++ b/poky/bitbake/lib/layerindexlib/tests/layerindexobj.py
@@ -3,14 +3,8 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-import unittest
-import tempfile
-import os
-import bb
-
from layerindexlib.tests.common import LayersTest
-import logging
class LayerIndexObjectsTest(LayersTest):
def setUp(self):
diff --git a/poky/bitbake/lib/layerindexlib/tests/restapi.py b/poky/bitbake/lib/layerindexlib/tests/restapi.py
index 6d8dc0058..e5ccafe5c 100644
--- a/poky/bitbake/lib/layerindexlib/tests/restapi.py
+++ b/poky/bitbake/lib/layerindexlib/tests/restapi.py
@@ -4,14 +4,11 @@
#
import unittest
-import tempfile
import os
-import bb
import layerindexlib
from layerindexlib.tests.common import LayersTest
-import logging
def skipIfNoNetwork():
if os.environ.get("BB_SKIP_NETTESTS") == "yes":
diff --git a/poky/bitbake/lib/ply/yacc.py b/poky/bitbake/lib/ply/yacc.py
index d50886ed2..561784f2f 100644
--- a/poky/bitbake/lib/ply/yacc.py
+++ b/poky/bitbake/lib/ply/yacc.py
@@ -488,7 +488,7 @@ class LRParser:
# --! DEBUG
return result
- if t == None:
+ if t is None:
# --! DEBUG
debug.error('Error : %s',
@@ -766,7 +766,7 @@ class LRParser:
n = symstack[-1]
return getattr(n,"value",None)
- if t == None:
+ if t is None:
# We have some kind of parsing error here. To handle
# this, we are going to push the current token onto
@@ -1021,7 +1021,7 @@ class LRParser:
n = symstack[-1]
return getattr(n,"value",None)
- if t == None:
+ if t is None:
# We have some kind of parsing error here. To handle
# this, we are going to push the current token onto
diff --git a/poky/bitbake/lib/prserv/db.py b/poky/bitbake/lib/prserv/db.py
index 117d8c052..cb2a2461e 100644
--- a/poky/bitbake/lib/prserv/db.py
+++ b/poky/bitbake/lib/prserv/db.py
@@ -71,7 +71,7 @@ class PRTable(object):
data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
(version, pkgarch, checksum))
row=data.fetchone()
- if row != None:
+ if row is not None:
return row[0]
else:
#no value found, try to insert
@@ -87,7 +87,7 @@ class PRTable(object):
data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
(version, pkgarch, checksum))
row=data.fetchone()
- if row != None:
+ if row is not None:
return row[0]
else:
raise prserv.NotFoundError
@@ -99,7 +99,7 @@ class PRTable(object):
% (self.table, self.table),
(version, pkgarch, checksum, version, pkgarch))
row=data.fetchone()
- if row != None:
+ if row is not None:
return row[0]
else:
#no value found, try to insert
@@ -116,7 +116,7 @@ class PRTable(object):
data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
(version, pkgarch, checksum))
row=data.fetchone()
- if row != None:
+ if row is not None:
return row[0]
else:
raise prserv.NotFoundError
@@ -132,7 +132,7 @@ class PRTable(object):
data = self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
(version, pkgarch, checksum))
row = data.fetchone()
- if row != None:
+ if row is not None:
val=row[0]
else:
#no value found, try to insert
@@ -147,7 +147,7 @@ class PRTable(object):
data = self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
(version, pkgarch, checksum))
row = data.fetchone()
- if row != None:
+ if row is not None:
val = row[0]
return val
@@ -170,7 +170,7 @@ class PRTable(object):
data = self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=? AND value>=?;" % self.table,
(version,pkgarch,checksum,value))
row=data.fetchone()
- if row != None:
+ if row is not None:
return row[0]
else:
return None
diff --git a/poky/bitbake/lib/prserv/serv.py b/poky/bitbake/lib/prserv/serv.py
index b854ba14b..25dcf8a0e 100644
--- a/poky/bitbake/lib/prserv/serv.py
+++ b/poky/bitbake/lib/prserv/serv.py
@@ -292,10 +292,9 @@ class PRServer(SimpleXMLRPCServer):
logger.addHandler(streamhandler)
# write pidfile
- pid = str(os.getpid())
- pf = open(self.pidfile, 'w')
- pf.write("%s\n" % pid)
- pf.close()
+ pid = str(os.getpid())
+ with open(self.pidfile, 'w') as pf:
+ pf.write("%s\n" % pid)
self.work_forever()
self.delpid()
@@ -353,9 +352,8 @@ def start_daemon(dbfile, host, port, logfile):
ip = socket.gethostbyname(host)
pidfile = PIDPREFIX % (ip, port)
try:
- pf = open(pidfile,'r')
- pid = int(pf.readline().strip())
- pf.close()
+ with open(pidfile) as pf:
+ pid = int(pf.readline().strip())
except IOError:
pid = None
@@ -449,29 +447,35 @@ class PRServiceConfigError(Exception):
def auto_start(d):
global singleton
- # Shutdown any existing PR Server
- auto_shutdown()
-
host_params = list(filter(None, (d.getVar('PRSERV_HOST') or '').split(':')))
if not host_params:
+ # Shutdown any existing PR Server
+ auto_shutdown()
return None
if len(host_params) != 2:
+ # Shutdown any existing PR Server
+ auto_shutdown()
logger.critical('\n'.join(['PRSERV_HOST: incorrect format',
'Usage: PRSERV_HOST = "<hostname>:<port>"']))
raise PRServiceConfigError
- if is_local_special(host_params[0], int(host_params[1])) and not singleton:
+ if is_local_special(host_params[0], int(host_params[1])):
import bb.utils
cachedir = (d.getVar("PERSISTENT_DIR") or d.getVar("CACHE"))
if not cachedir:
logger.critical("Please set the 'PERSISTENT_DIR' or 'CACHE' variable")
raise PRServiceConfigError
- bb.utils.mkdirhier(cachedir)
dbfile = os.path.join(cachedir, "prserv.sqlite3")
logfile = os.path.join(cachedir, "prserv.log")
- singleton = PRServSingleton(os.path.abspath(dbfile), os.path.abspath(logfile), ("localhost",0))
- singleton.start()
+ if singleton:
+ if singleton.dbfile != dbfile:
+ # Shutdown any existing PR Server as doesn't match config
+ auto_shutdown()
+ if not singleton:
+ bb.utils.mkdirhier(cachedir)
+ singleton = PRServSingleton(os.path.abspath(dbfile), os.path.abspath(logfile), ("localhost",0))
+ singleton.start()
if singleton:
host, port = singleton.getinfo()
else:
diff --git a/poky/bitbake/lib/pyinotify.py b/poky/bitbake/lib/pyinotify.py
index 1528a22e8..6ae40a2d7 100644
--- a/poky/bitbake/lib/pyinotify.py
+++ b/poky/bitbake/lib/pyinotify.py
@@ -1274,7 +1274,7 @@ class Notifier:
basename = os.path.basename(sys.argv[0]) or 'pyinotify'
pid_file = os.path.join(dirname, basename + '.pid')
- if pid_file != False and os.path.lexists(pid_file):
+ if pid_file and os.path.lexists(pid_file):
err = 'Cannot daemonize: pid file %s already exists.' % pid_file
raise NotifierError(err)
@@ -1308,7 +1308,7 @@ class Notifier:
fork_daemon()
# Write pid
- if pid_file != False:
+ if pid_file:
flags = os.O_WRONLY|os.O_CREAT|os.O_NOFOLLOW|os.O_EXCL
fd_pid = os.open(pid_file, flags, 0o0600)
os.write(fd_pid, bytes(str(os.getpid()) + '\n',
diff --git a/poky/bitbake/lib/toaster/bldcollector/urls.py b/poky/bitbake/lib/toaster/bldcollector/urls.py
index 8eb1e34a5..efd67a81a 100644
--- a/poky/bitbake/lib/toaster/bldcollector/urls.py
+++ b/poky/bitbake/lib/toaster/bldcollector/urls.py
@@ -6,7 +6,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-from django.conf.urls import include, url
+from django.conf.urls import url
import bldcollector.views
diff --git a/poky/bitbake/lib/toaster/bldcollector/views.py b/poky/bitbake/lib/toaster/bldcollector/views.py
index c708b415e..04cd8b3dd 100644
--- a/poky/bitbake/lib/toaster/bldcollector/views.py
+++ b/poky/bitbake/lib/toaster/bldcollector/views.py
@@ -6,16 +6,8 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-from django.views.decorators.cache import cache_control
-from django.core.urlresolvers import reverse
-from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
+from django.urls import reverse
from django.http import HttpResponseBadRequest, HttpResponse
-from django.utils import timezone
-from django.utils.html import escape
-from datetime import timedelta
-from django.utils import formats
-from toastergui.templatetags.projecttags import json as jsonfilter
-import json
import os
import tempfile
import subprocess
diff --git a/poky/bitbake/lib/toaster/bldcontrol/admin.py b/poky/bitbake/lib/toaster/bldcontrol/admin.py
index e85c30ed1..1754bc11c 100644
--- a/poky/bitbake/lib/toaster/bldcontrol/admin.py
+++ b/poky/bitbake/lib/toaster/bldcontrol/admin.py
@@ -3,7 +3,6 @@
#
from django.contrib import admin
-from django.contrib.admin.filters import RelatedFieldListFilter
from .models import BuildEnvironment
class BuildEnvironmentAdmin(admin.ModelAdmin):
diff --git a/poky/bitbake/lib/toaster/bldcontrol/bbcontroller.py b/poky/bitbake/lib/toaster/bldcontrol/bbcontroller.py
index 301df1880..71c288df3 100644
--- a/poky/bitbake/lib/toaster/bldcontrol/bbcontroller.py
+++ b/poky/bitbake/lib/toaster/bldcontrol/bbcontroller.py
@@ -8,10 +8,8 @@
import os
import sys
-import re
-from django.db import transaction
from django.db.models import Q
-from bldcontrol.models import BuildEnvironment, BRLayer, BRVariable, BRTarget, BRBitbake
+from bldcontrol.models import BuildEnvironment, BRLayer, BRBitbake
# load Bitbake components
path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
diff --git a/poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py b/poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
index 39ea736b5..75674ccbf 100644
--- a/poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
+++ b/poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
@@ -7,27 +7,24 @@
#
import os
-import sys
import re
import shutil
import time
-from django.db import transaction
-from django.db.models import Q
-from bldcontrol.models import BuildEnvironment, BuildRequest, BRLayer, BRVariable, BRTarget, BRBitbake, Build
-from orm.models import CustomImageRecipe, Layer, Layer_Version, Project, ProjectLayer, ToasterSetting
+from bldcontrol.models import BuildEnvironment, BuildRequest, Build
+from orm.models import CustomImageRecipe, Layer, Layer_Version, Project, ToasterSetting
from orm.models import signal_runbuilds
import subprocess
from toastermain import settings
-from bldcontrol.bbcontroller import BuildEnvironmentController, ShellCmdException, BuildSetupException, BitbakeController
+from bldcontrol.bbcontroller import BuildEnvironmentController, ShellCmdException, BuildSetupException
import logging
logger = logging.getLogger("toaster")
install_dir = os.environ.get('TOASTER_DIR')
-from pprint import pprint, pformat
+from pprint import pformat
class LocalhostBEController(BuildEnvironmentController):
""" Implementation of the BuildEnvironmentController for the localhost;
diff --git a/poky/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py b/poky/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py
index fe2c4dc2b..20f9dce56 100644
--- a/poky/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py
+++ b/poky/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py
@@ -2,11 +2,9 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-from django.core.management.base import BaseCommand, CommandError
-from django.db import transaction
+from django.core.management.base import BaseCommand
from django.core.management import call_command
-from bldcontrol.bbcontroller import getBuildEnvironmentController, ShellCmdException
from bldcontrol.models import BuildRequest, BuildEnvironment, BRError
from orm.models import ToasterSetting, Build, Layer
@@ -80,7 +78,7 @@ class Command(BaseCommand):
template_conf = os.environ.get("TEMPLATECONF", "")
custom_xml_only = os.environ.get("CUSTOM_XML_ONLY")
- if ToasterSetting.objects.filter(name='CUSTOM_XML_ONLY').count() > 0 or (not custom_xml_only == None):
+ if ToasterSetting.objects.filter(name='CUSTOM_XML_ONLY').count() > 0 or custom_xml_only is not None:
# only use the custom settings
pass
elif "poky" in template_conf:
diff --git a/poky/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py b/poky/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py
index 50ec40986..19f659ec4 100644
--- a/poky/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py
+++ b/poky/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py
@@ -168,17 +168,17 @@ class Command(BaseCommand):
try:
self.cleanup()
except Exception as e:
- logger.warn("runbuilds: cleanup exception %s" % str(e))
+ logger.warning("runbuilds: cleanup exception %s" % str(e))
try:
self.archive()
except Exception as e:
- logger.warn("runbuilds: archive exception %s" % str(e))
+ logger.warning("runbuilds: archive exception %s" % str(e))
try:
self.schedule()
except Exception as e:
- logger.warn("runbuilds: schedule exception %s" % str(e))
+ logger.warning("runbuilds: schedule exception %s" % str(e))
def handle(self, **options):
pidfile_path = os.path.join(os.environ.get("BUILDDIR", "."),
diff --git a/poky/bitbake/lib/toaster/bldcontrol/migrations/0001_initial.py b/poky/bitbake/lib/toaster/bldcontrol/migrations/0001_initial.py
index 67db37856..7ee19f474 100644
--- a/poky/bitbake/lib/toaster/bldcontrol/migrations/0001_initial.py
+++ b/poky/bitbake/lib/toaster/bldcontrol/migrations/0001_initial.py
@@ -37,7 +37,7 @@ class Migration(migrations.Migration):
('giturl', models.CharField(max_length=254)),
('commit', models.CharField(max_length=254)),
('dirpath', models.CharField(max_length=254)),
- ('layer_version', models.ForeignKey(to='orm.Layer_Version', null=True)),
+ ('layer_version', models.ForeignKey(to='orm.Layer_Version', null=True, on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -80,34 +80,34 @@ class Migration(migrations.Migration):
('state', models.IntegerField(default=0, choices=[(0, b'created'), (1, b'queued'), (2, b'in progress'), (3, b'completed'), (4, b'failed'), (5, b'deleted'), (6, b'archive')])),
('created', models.DateTimeField(auto_now_add=True)),
('updated', models.DateTimeField(auto_now=True)),
- ('build', models.OneToOneField(null=True, to='orm.Build')),
- ('environment', models.ForeignKey(to='bldcontrol.BuildEnvironment', null=True)),
- ('project', models.ForeignKey(to='orm.Project')),
+ ('build', models.OneToOneField(null=True, to='orm.Build', on_delete=models.CASCADE)),
+ ('environment', models.ForeignKey(to='bldcontrol.BuildEnvironment', null=True, on_delete=models.CASCADE)),
+ ('project', models.ForeignKey(to='orm.Project', on_delete=models.CASCADE)),
],
),
migrations.AddField(
model_name='brvariable',
name='req',
- field=models.ForeignKey(to='bldcontrol.BuildRequest'),
+ field=models.ForeignKey(to='bldcontrol.BuildRequest', on_delete=models.CASCADE),
),
migrations.AddField(
model_name='brtarget',
name='req',
- field=models.ForeignKey(to='bldcontrol.BuildRequest'),
+ field=models.ForeignKey(to='bldcontrol.BuildRequest', on_delete=models.CASCADE),
),
migrations.AddField(
model_name='brlayer',
name='req',
- field=models.ForeignKey(to='bldcontrol.BuildRequest'),
+ field=models.ForeignKey(to='bldcontrol.BuildRequest', on_delete=models.CASCADE),
),
migrations.AddField(
model_name='brerror',
name='req',
- field=models.ForeignKey(to='bldcontrol.BuildRequest'),
+ field=models.ForeignKey(to='bldcontrol.BuildRequest', on_delete=models.CASCADE),
),
migrations.AddField(
model_name='brbitbake',
name='req',
- field=models.OneToOneField(to='bldcontrol.BuildRequest'),
+ field=models.OneToOneField(to='bldcontrol.BuildRequest', on_delete=models.CASCADE),
),
]
diff --git a/poky/bitbake/lib/toaster/bldcontrol/models.py b/poky/bitbake/lib/toaster/bldcontrol/models.py
index bcffcf5e2..c2f302da2 100644
--- a/poky/bitbake/lib/toaster/bldcontrol/models.py
+++ b/poky/bitbake/lib/toaster/bldcontrol/models.py
@@ -4,9 +4,8 @@
from __future__ import unicode_literals
from django.db import models
-from django.core.validators import MaxValueValidator, MinValueValidator
from django.utils.encoding import force_text
-from orm.models import Project, ProjectLayer, ProjectVariable, ProjectTarget, Build, Layer_Version
+from orm.models import Project, Build, Layer_Version
import logging
logger = logging.getLogger("toaster")
@@ -86,9 +85,9 @@ class BuildRequest(models.Model):
search_allowed_fields = ("brtarget__target", "build__project__name")
- project = models.ForeignKey(Project)
- build = models.OneToOneField(Build, null = True) # TODO: toasterui should set this when Build is created
- environment = models.ForeignKey(BuildEnvironment, null = True)
+ project = models.ForeignKey(Project, on_delete=models.CASCADE)
+ build = models.OneToOneField(Build, on_delete=models.CASCADE, null = True) # TODO: toasterui should set this when Build is created
+ environment = models.ForeignKey(BuildEnvironment, on_delete=models.CASCADE, null = True)
state = models.IntegerField(choices = REQUEST_STATE, default = REQ_CREATED)
created = models.DateTimeField(auto_now_add = True)
updated = models.DateTimeField(auto_now = True)
@@ -132,32 +131,32 @@ class BuildRequest(models.Model):
class BRLayer(models.Model):
- req = models.ForeignKey(BuildRequest)
+ req = models.ForeignKey(BuildRequest, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
giturl = models.CharField(max_length=254, null=True)
local_source_dir = models.CharField(max_length=254, null=True)
commit = models.CharField(max_length=254, null=True)
dirpath = models.CharField(max_length=254, null=True)
- layer_version = models.ForeignKey(Layer_Version, null=True)
+ layer_version = models.ForeignKey(Layer_Version, on_delete=models.CASCADE, null=True)
class BRBitbake(models.Model):
- req = models.OneToOneField(BuildRequest) # only one bitbake for a request
+ req = models.OneToOneField(BuildRequest, on_delete=models.CASCADE) # only one bitbake for a request
giturl = models.CharField(max_length =254)
commit = models.CharField(max_length = 254)
dirpath = models.CharField(max_length = 254)
class BRVariable(models.Model):
- req = models.ForeignKey(BuildRequest)
+ req = models.ForeignKey(BuildRequest, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
value = models.TextField(blank = True)
class BRTarget(models.Model):
- req = models.ForeignKey(BuildRequest)
+ req = models.ForeignKey(BuildRequest, on_delete=models.CASCADE)
target = models.CharField(max_length=100)
task = models.CharField(max_length=100, null=True)
class BRError(models.Model):
- req = models.ForeignKey(BuildRequest)
+ req = models.ForeignKey(BuildRequest, on_delete=models.CASCADE)
errtype = models.CharField(max_length=100)
errmsg = models.TextField()
traceback = models.TextField()
diff --git a/poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml b/poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml
index a723f5a2a..fd93f4d87 100644
--- a/poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml
+++ b/poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml
@@ -8,9 +8,9 @@
<!-- Bitbake versions which correspond to the metadata release -->
<object model="orm.bitbakeversion" pk="1">
- <field type="CharField" name="name">warrior</field>
+ <field type="CharField" name="name">dunfell</field>
<field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field>
- <field type="CharField" name="branch">1.42</field>
+ <field type="CharField" name="branch">1.46</field>
</object>
<object model="orm.bitbakeversion" pk="2">
<field type="CharField" name="name">HEAD</field>
@@ -30,11 +30,11 @@
<!-- Releases available -->
<object model="orm.release" pk="1">
- <field type="CharField" name="name">warrior</field>
- <field type="CharField" name="description">Openembedded Warrior</field>
+ <field type="CharField" name="name">dunfell</field>
+ <field type="CharField" name="description">Openembedded Dunfell</field>
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">1</field>
- <field type="CharField" name="branch_name">warrior</field>
- <field type="TextField" name="helptext">Toaster will run your builds using the tip of the &lt;a href=\"http://cgit.openembedded.org/openembedded-core/log/?h=warrior\"&gt;OpenEmbedded Warrior&lt;/a&gt; branch.</field>
+ <field type="CharField" name="branch_name">dunfell</field>
+ <field type="TextField" name="helptext">Toaster will run your builds using the tip of the &lt;a href=\"http://cgit.openembedded.org/openembedded-core/log/?h=dunfell\"&gt;OpenEmbedded Dunfell&lt;/a&gt; branch.</field>
</object>
<object model="orm.release" pk="2">
<field type="CharField" name="name">local</field>
diff --git a/poky/bitbake/lib/toaster/orm/fixtures/poky.xml b/poky/bitbake/lib/toaster/orm/fixtures/poky.xml
index 79923837f..902bc88a5 100644
--- a/poky/bitbake/lib/toaster/orm/fixtures/poky.xml
+++ b/poky/bitbake/lib/toaster/orm/fixtures/poky.xml
@@ -8,9 +8,9 @@
<!-- Bitbake versions which correspond to the metadata release -->
<object model="orm.bitbakeversion" pk="1">
- <field type="CharField" name="name">warrior</field>
+ <field type="CharField" name="name">dunfell</field>
<field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field>
- <field type="CharField" name="branch">warrior</field>
+ <field type="CharField" name="branch">dunfell</field>
<field type="CharField" name="dirpath">bitbake</field>
</object>
<object model="orm.bitbakeversion" pk="2">
@@ -35,11 +35,11 @@
<!-- Releases available -->
<object model="orm.release" pk="1">
- <field type="CharField" name="name">warrior</field>
- <field type="CharField" name="description">Yocto Project 2.7 "Warrior"</field>
+ <field type="CharField" name="name">dunfell</field>
+ <field type="CharField" name="description">Yocto Project 3.1 "Dunfell"</field>
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">1</field>
- <field type="CharField" name="branch_name">warrior</field>
- <field type="TextField" name="helptext">Toaster will run your builds using the tip of the &lt;a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=warrior"&gt;Yocto Project Warrior branch&lt;/a&gt;.</field>
+ <field type="CharField" name="branch_name">dunfell</field>
+ <field type="TextField" name="helptext">Toaster will run your builds using the tip of the &lt;a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=dunfell"&gt;Yocto Project Dunfell branch&lt;/a&gt;.</field>
</object>
<object model="orm.release" pk="2">
<field type="CharField" name="name">local</field>
@@ -130,7 +130,7 @@
<field rel="ManyToOneRel" to="orm.layer" name="layer">1</field>
<field type="IntegerField" name="layer_source">0</field>
<field rel="ManyToOneRel" to="orm.release" name="release">1</field>
- <field type="CharField" name="branch">warrior</field>
+ <field type="CharField" name="branch">dunfell</field>
<field type="CharField" name="dirpath">meta</field>
</object>
<object model="orm.layer_version" pk="2">
@@ -168,7 +168,7 @@
<field rel="ManyToOneRel" to="orm.layer" name="layer">2</field>
<field type="IntegerField" name="layer_source">0</field>
<field rel="ManyToOneRel" to="orm.release" name="release">1</field>
- <field type="CharField" name="branch">warrior</field>
+ <field type="CharField" name="branch">dunfell</field>
<field type="CharField" name="dirpath">meta-poky</field>
</object>
<object model="orm.layer_version" pk="6">
@@ -206,7 +206,7 @@
<field rel="ManyToOneRel" to="orm.layer" name="layer">3</field>
<field type="IntegerField" name="layer_source">0</field>
<field rel="ManyToOneRel" to="orm.release" name="release">1</field>
- <field type="CharField" name="branch">warrior</field>
+ <field type="CharField" name="branch">dunfell</field>
<field type="CharField" name="dirpath">meta-yocto-bsp</field>
</object>
<object model="orm.layer_version" pk="10">
diff --git a/poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py b/poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py
index 5b5abbb29..a4dbcaa76 100644
--- a/poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py
+++ b/poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py
@@ -8,7 +8,7 @@
from django.core.management.base import BaseCommand
-from orm.models import LayerSource, Layer, Release, Layer_Version
+from orm.models import Layer, Release, Layer_Version
from orm.models import LayerVersionDependency, Machine, Recipe
from orm.models import Distro
from orm.models import ToasterSetting
diff --git a/poky/bitbake/lib/toaster/orm/migrations/0001_initial.py b/poky/bitbake/lib/toaster/orm/migrations/0001_initial.py
index 760462f6b..a8ac23bfc 100644
--- a/poky/bitbake/lib/toaster/orm/migrations/0001_initial.py
+++ b/poky/bitbake/lib/toaster/orm/migrations/0001_initial.py
@@ -54,7 +54,7 @@ class Migration(migrations.Migration):
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('file_name', models.FilePathField()),
('file_size', models.IntegerField()),
- ('build', models.ForeignKey(to='orm.Build')),
+ ('build', models.ForeignKey(to='orm.Build', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -64,7 +64,7 @@ class Migration(migrations.Migration):
('area', models.IntegerField(choices=[(0, b'variable')])),
('key', models.CharField(max_length=100)),
('text', models.TextField()),
- ('build', models.ForeignKey(related_name='helptext_build', to='orm.Build')),
+ ('build', models.ForeignKey(related_name='helptext_build', to='orm.Build', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -94,8 +94,8 @@ class Migration(migrations.Migration):
('dirpath', models.CharField(default=None, max_length=255, null=True)),
('priority', models.IntegerField(default=0)),
('local_path', models.FilePathField(default=b'/', max_length=1024)),
- ('build', models.ForeignKey(related_name='layer_version_build', default=None, to='orm.Build', null=True)),
- ('layer', models.ForeignKey(related_name='layer_version_layer', to='orm.Layer')),
+ ('build', models.ForeignKey(related_name='layer_version_build', default=None, to='orm.Build', null=True, on_delete=models.CASCADE)),
+ ('layer', models.ForeignKey(related_name='layer_version_layer', to='orm.Layer', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -112,9 +112,9 @@ class Migration(migrations.Migration):
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('up_id', models.IntegerField(default=None, null=True)),
- ('depends_on', models.ForeignKey(related_name='dependees', to='orm.Layer_Version')),
- ('layer_source', models.ForeignKey(default=None, to='orm.LayerSource', null=True)),
- ('layer_version', models.ForeignKey(related_name='dependencies', to='orm.Layer_Version')),
+ ('depends_on', models.ForeignKey(related_name='dependees', to='orm.Layer_Version', on_delete=models.CASCADE)),
+ ('layer_source', models.ForeignKey(default=None, to='orm.LayerSource', null=True, on_delete=models.CASCADE)),
+ ('layer_version', models.ForeignKey(related_name='dependencies', to='orm.Layer_Version', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -125,7 +125,7 @@ class Migration(migrations.Migration):
('message', models.TextField(null=True, blank=True)),
('pathname', models.FilePathField(max_length=255, blank=True)),
('lineno', models.IntegerField(null=True)),
- ('build', models.ForeignKey(to='orm.Build')),
+ ('build', models.ForeignKey(to='orm.Build', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -136,8 +136,8 @@ class Migration(migrations.Migration):
('up_date', models.DateTimeField(default=None, null=True)),
('name', models.CharField(max_length=255)),
('description', models.CharField(max_length=255)),
- ('layer_source', models.ForeignKey(default=None, to='orm.LayerSource', null=True)),
- ('layer_version', models.ForeignKey(to='orm.Layer_Version')),
+ ('layer_source', models.ForeignKey(default=None, to='orm.LayerSource', null=True, on_delete=models.CASCADE)),
+ ('layer_version', models.ForeignKey(to='orm.Layer_Version', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -154,7 +154,7 @@ class Migration(migrations.Migration):
('installed_size', models.IntegerField(default=0)),
('section', models.CharField(max_length=80, blank=True)),
('license', models.CharField(max_length=80, blank=True)),
- ('build', models.ForeignKey(to='orm.Build', null=True)),
+ ('build', models.ForeignKey(to='orm.Build', null=True, on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -162,8 +162,8 @@ class Migration(migrations.Migration):
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('dep_type', models.IntegerField(choices=[(0, b'depends'), (1, b'depends'), (3, b'recommends'), (2, b'recommends'), (4, b'suggests'), (5, b'provides'), (6, b'replaces'), (7, b'conflicts')])),
- ('depends_on', models.ForeignKey(related_name='package_dependencies_target', to='orm.Package')),
- ('package', models.ForeignKey(related_name='package_dependencies_source', to='orm.Package')),
+ ('depends_on', models.ForeignKey(related_name='package_dependencies_target', to='orm.Package', on_delete=models.CASCADE)),
+ ('package', models.ForeignKey(related_name='package_dependencies_source', to='orm.Package', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -172,7 +172,7 @@ class Migration(migrations.Migration):
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('path', models.FilePathField(max_length=255, blank=True)),
('size', models.IntegerField()),
- ('package', models.ForeignKey(related_name='buildfilelist_package', to='orm.Package')),
+ ('package', models.ForeignKey(related_name='buildfilelist_package', to='orm.Package', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -185,7 +185,7 @@ class Migration(migrations.Migration):
('updated', models.DateTimeField(auto_now=True)),
('user_id', models.IntegerField(null=True)),
('is_default', models.BooleanField(default=False)),
- ('bitbake_version', models.ForeignKey(to='orm.BitbakeVersion', null=True)),
+ ('bitbake_version', models.ForeignKey(to='orm.BitbakeVersion', null=True, on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -193,8 +193,8 @@ class Migration(migrations.Migration):
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('optional', models.BooleanField(default=True)),
- ('layercommit', models.ForeignKey(to='orm.Layer_Version', null=True)),
- ('project', models.ForeignKey(to='orm.Project')),
+ ('layercommit', models.ForeignKey(to='orm.Layer_Version', null=True, on_delete=models.CASCADE)),
+ ('project', models.ForeignKey(to='orm.Project', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -203,7 +203,7 @@ class Migration(migrations.Migration):
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('target', models.CharField(max_length=100)),
('task', models.CharField(max_length=100, null=True)),
- ('project', models.ForeignKey(to='orm.Project')),
+ ('project', models.ForeignKey(to='orm.Project', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -212,7 +212,7 @@ class Migration(migrations.Migration):
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('name', models.CharField(max_length=100)),
('value', models.TextField(blank=True)),
- ('project', models.ForeignKey(to='orm.Project')),
+ ('project', models.ForeignKey(to='orm.Project', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -232,8 +232,8 @@ class Migration(migrations.Migration):
('file_path', models.FilePathField(max_length=255)),
('pathflags', models.CharField(max_length=200, blank=True)),
('is_image', models.BooleanField(default=False)),
- ('layer_source', models.ForeignKey(default=None, to='orm.LayerSource', null=True)),
- ('layer_version', models.ForeignKey(related_name='recipe_layer_version', to='orm.Layer_Version')),
+ ('layer_source', models.ForeignKey(default=None, to='orm.LayerSource', null=True, on_delete=models.CASCADE)),
+ ('layer_version', models.ForeignKey(related_name='recipe_layer_version', to='orm.Layer_Version', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -241,8 +241,8 @@ class Migration(migrations.Migration):
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('dep_type', models.IntegerField(choices=[(0, b'depends'), (1, b'rdepends')])),
- ('depends_on', models.ForeignKey(related_name='r_dependencies_depends', to='orm.Recipe')),
- ('recipe', models.ForeignKey(related_name='r_dependencies_recipe', to='orm.Recipe')),
+ ('depends_on', models.ForeignKey(related_name='r_dependencies_depends', to='orm.Recipe', on_delete=models.CASCADE)),
+ ('recipe', models.ForeignKey(related_name='r_dependencies_recipe', to='orm.Recipe', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -253,7 +253,7 @@ class Migration(migrations.Migration):
('description', models.CharField(max_length=255)),
('branch_name', models.CharField(default=b'', max_length=50)),
('helptext', models.TextField(null=True)),
- ('bitbake_version', models.ForeignKey(to='orm.BitbakeVersion')),
+ ('bitbake_version', models.ForeignKey(to='orm.BitbakeVersion', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -261,7 +261,7 @@ class Migration(migrations.Migration):
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('layer_name', models.CharField(default=b'', max_length=100)),
- ('release', models.ForeignKey(to='orm.Release')),
+ ('release', models.ForeignKey(to='orm.Release', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -269,8 +269,8 @@ class Migration(migrations.Migration):
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('priority', models.IntegerField(default=0)),
- ('layer_source', models.ForeignKey(to='orm.LayerSource')),
- ('release', models.ForeignKey(to='orm.Release')),
+ ('layer_source', models.ForeignKey(to='orm.LayerSource', on_delete=models.CASCADE)),
+ ('release', models.ForeignKey(to='orm.Release', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -282,7 +282,7 @@ class Migration(migrations.Migration):
('is_image', models.BooleanField(default=False)),
('image_size', models.IntegerField(default=0)),
('license_manifest_path', models.CharField(max_length=500, null=True)),
- ('build', models.ForeignKey(to='orm.Build')),
+ ('build', models.ForeignKey(to='orm.Build', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -295,9 +295,9 @@ class Migration(migrations.Migration):
('permission', models.CharField(max_length=16)),
('owner', models.CharField(max_length=128)),
('group', models.CharField(max_length=128)),
- ('directory', models.ForeignKey(related_name='directory_set', to='orm.Target_File', null=True)),
- ('sym_target', models.ForeignKey(related_name='symlink_set', to='orm.Target_File', null=True)),
- ('target', models.ForeignKey(to='orm.Target')),
+ ('directory', models.ForeignKey(related_name='directory_set', to='orm.Target_File', null=True, on_delete=models.CASCADE)),
+ ('sym_target', models.ForeignKey(related_name='symlink_set', to='orm.Target_File', null=True, on_delete=models.CASCADE)),
+ ('target', models.ForeignKey(to='orm.Target', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -306,15 +306,15 @@ class Migration(migrations.Migration):
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('file_name', models.FilePathField(max_length=254)),
('file_size', models.IntegerField()),
- ('target', models.ForeignKey(to='orm.Target')),
+ ('target', models.ForeignKey(to='orm.Target', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
name='Target_Installed_Package',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
- ('package', models.ForeignKey(related_name='buildtargetlist_package', to='orm.Package')),
- ('target', models.ForeignKey(to='orm.Target')),
+ ('package', models.ForeignKey(related_name='buildtargetlist_package', to='orm.Package', on_delete=models.CASCADE)),
+ ('target', models.ForeignKey(to='orm.Target', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -337,8 +337,8 @@ class Migration(migrations.Migration):
('sstate_result', models.IntegerField(default=0, choices=[(0, b'Not Applicable'), (1, b'File not in cache'), (2, b'Failed'), (3, b'Succeeded')])),
('message', models.CharField(max_length=240)),
('logfile', models.FilePathField(max_length=255, blank=True)),
- ('build', models.ForeignKey(related_name='task_build', to='orm.Build')),
- ('recipe', models.ForeignKey(related_name='tasks', to='orm.Recipe')),
+ ('build', models.ForeignKey(related_name='task_build', to='orm.Build', on_delete=models.CASCADE)),
+ ('recipe', models.ForeignKey(related_name='tasks', to='orm.Recipe', on_delete=models.CASCADE)),
],
options={
'ordering': ('order', 'recipe'),
@@ -348,8 +348,8 @@ class Migration(migrations.Migration):
name='Task_Dependency',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
- ('depends_on', models.ForeignKey(related_name='task_dependencies_depends', to='orm.Task')),
- ('task', models.ForeignKey(related_name='task_dependencies_task', to='orm.Task')),
+ ('depends_on', models.ForeignKey(related_name='task_dependencies_depends', to='orm.Task', on_delete=models.CASCADE)),
+ ('task', models.ForeignKey(related_name='task_dependencies_task', to='orm.Task', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -370,7 +370,7 @@ class Migration(migrations.Migration):
('changed', models.BooleanField(default=False)),
('human_readable_name', models.CharField(max_length=200)),
('description', models.TextField(blank=True)),
- ('build', models.ForeignKey(related_name='variable_build', to='orm.Build')),
+ ('build', models.ForeignKey(related_name='variable_build', to='orm.Build', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -381,28 +381,28 @@ class Migration(migrations.Migration):
('file_name', models.FilePathField(max_length=255)),
('line_number', models.IntegerField(null=True)),
('operation', models.CharField(max_length=64)),
- ('variable', models.ForeignKey(related_name='vhistory', to='orm.Variable')),
+ ('variable', models.ForeignKey(related_name='vhistory', to='orm.Variable', on_delete=models.CASCADE)),
],
),
migrations.AddField(
model_name='project',
name='release',
- field=models.ForeignKey(to='orm.Release', null=True),
+ field=models.ForeignKey(to='orm.Release', null=True, on_delete=models.CASCADE),
),
migrations.AddField(
model_name='package_dependency',
name='target',
- field=models.ForeignKey(to='orm.Target', null=True),
+ field=models.ForeignKey(to='orm.Target', null=True, on_delete=models.CASCADE),
),
migrations.AddField(
model_name='package',
name='recipe',
- field=models.ForeignKey(to='orm.Recipe', null=True),
+ field=models.ForeignKey(to='orm.Recipe', null=True, on_delete=models.CASCADE),
),
migrations.AddField(
model_name='logmessage',
name='task',
- field=models.ForeignKey(blank=True, to='orm.Task', null=True),
+ field=models.ForeignKey(blank=True, to='orm.Task', null=True, on_delete=models.CASCADE),
),
migrations.AlterUniqueTogether(
name='layersource',
@@ -411,32 +411,32 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='layer_version',
name='layer_source',
- field=models.ForeignKey(default=None, to='orm.LayerSource', null=True),
+ field=models.ForeignKey(default=None, to='orm.LayerSource', null=True, on_delete=models.CASCADE),
),
migrations.AddField(
model_name='layer_version',
name='project',
- field=models.ForeignKey(default=None, to='orm.Project', null=True),
+ field=models.ForeignKey(default=None, to='orm.Project', null=True, on_delete=models.CASCADE),
),
migrations.AddField(
model_name='layer_version',
name='up_branch',
- field=models.ForeignKey(default=None, to='orm.Branch', null=True),
+ field=models.ForeignKey(default=None, to='orm.Branch', null=True, on_delete=models.CASCADE),
),
migrations.AddField(
model_name='layer',
name='layer_source',
- field=models.ForeignKey(default=None, to='orm.LayerSource', null=True),
+ field=models.ForeignKey(default=None, to='orm.LayerSource', null=True, on_delete=models.CASCADE),
),
migrations.AddField(
model_name='build',
name='project',
- field=models.ForeignKey(to='orm.Project'),
+ field=models.ForeignKey(to='orm.Project', on_delete=models.CASCADE),
),
migrations.AddField(
model_name='branch',
name='layer_source',
- field=models.ForeignKey(default=True, to='orm.LayerSource', null=True),
+ field=models.ForeignKey(default=True, to='orm.LayerSource', null=True, on_delete=models.CASCADE),
),
migrations.CreateModel(
name='ImportedLayerSource',
diff --git a/poky/bitbake/lib/toaster/orm/migrations/0002_customimagerecipe.py b/poky/bitbake/lib/toaster/orm/migrations/0002_customimagerecipe.py
index 9cec82e8d..09c2bffa2 100644
--- a/poky/bitbake/lib/toaster/orm/migrations/0002_customimagerecipe.py
+++ b/poky/bitbake/lib/toaster/orm/migrations/0002_customimagerecipe.py
@@ -14,10 +14,10 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='CustomImageRecipe',
fields=[
- ('recipe_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='orm.Recipe')),
+ ('recipe_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='orm.Recipe', on_delete=models.CASCADE)),
('last_updated', models.DateTimeField(default=None, null=True)),
- ('base_recipe', models.ForeignKey(related_name='based_on_recipe', to='orm.Recipe')),
- ('project', models.ForeignKey(to='orm.Project')),
+ ('base_recipe', models.ForeignKey(related_name='based_on_recipe', to='orm.Recipe', on_delete=models.CASCADE)),
+ ('project', models.ForeignKey(to='orm.Project', on_delete=models.CASCADE)),
],
bases=('orm.recipe',),
),
diff --git a/poky/bitbake/lib/toaster/orm/migrations/0003_customimagepackage.py b/poky/bitbake/lib/toaster/orm/migrations/0003_customimagepackage.py
index b027f6613..8cb81d7b5 100644
--- a/poky/bitbake/lib/toaster/orm/migrations/0003_customimagepackage.py
+++ b/poky/bitbake/lib/toaster/orm/migrations/0003_customimagepackage.py
@@ -14,7 +14,7 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='CustomImagePackage',
fields=[
- ('package_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='orm.Package')),
+ ('package_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='orm.Package', on_delete=models.CASCADE)),
('recipe_appends', models.ManyToManyField(related_name='appends_set', to='orm.CustomImageRecipe')),
('recipe_excludes', models.ManyToManyField(related_name='excludes_set', to='orm.CustomImageRecipe')),
('recipe_includes', models.ManyToManyField(related_name='includes_set', to='orm.CustomImageRecipe')),
diff --git a/poky/bitbake/lib/toaster/orm/migrations/0004_provides.py b/poky/bitbake/lib/toaster/orm/migrations/0004_provides.py
index dfde2d136..844960498 100644
--- a/poky/bitbake/lib/toaster/orm/migrations/0004_provides.py
+++ b/poky/bitbake/lib/toaster/orm/migrations/0004_provides.py
@@ -16,12 +16,12 @@ class Migration(migrations.Migration):
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('name', models.CharField(max_length=100)),
- ('recipe', models.ForeignKey(to='orm.Recipe')),
+ ('recipe', models.ForeignKey(to='orm.Recipe', on_delete=models.CASCADE)),
],
),
migrations.AddField(
model_name='recipe_dependency',
name='via',
- field=models.ForeignKey(null=True, default=None, to='orm.Provides'),
+ field=models.ForeignKey(null=True, default=None, to='orm.Provides', on_delete=models.CASCADE),
),
]
diff --git a/poky/bitbake/lib/toaster/orm/migrations/0008_refactor_artifact_models.py b/poky/bitbake/lib/toaster/orm/migrations/0008_refactor_artifact_models.py
index 3367582a8..41a547a60 100644
--- a/poky/bitbake/lib/toaster/orm/migrations/0008_refactor_artifact_models.py
+++ b/poky/bitbake/lib/toaster/orm/migrations/0008_refactor_artifact_models.py
@@ -17,7 +17,7 @@ class Migration(migrations.Migration):
('id', models.AutoField(auto_created=True, primary_key=True, verbose_name='ID', serialize=False)),
('file_name', models.FilePathField()),
('file_size', models.IntegerField()),
- ('target', models.ForeignKey(to='orm.Target')),
+ ('target', models.ForeignKey(to='orm.Target', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
@@ -26,7 +26,7 @@ class Migration(migrations.Migration):
('id', models.AutoField(auto_created=True, primary_key=True, verbose_name='ID', serialize=False)),
('file_name', models.FilePathField()),
('file_size', models.IntegerField()),
- ('target', models.ForeignKey(to='orm.Target')),
+ ('target', models.ForeignKey(to='orm.Target', on_delete=models.CASCADE)),
],
),
migrations.RemoveField(
diff --git a/poky/bitbake/lib/toaster/orm/migrations/0011_delete_layersource.py b/poky/bitbake/lib/toaster/orm/migrations/0011_delete_layersource.py
index 75506961a..3f3a2e161 100644
--- a/poky/bitbake/lib/toaster/orm/migrations/0011_delete_layersource.py
+++ b/poky/bitbake/lib/toaster/orm/migrations/0011_delete_layersource.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
-from django.db import migrations, models
+from django.db import migrations
class Migration(migrations.Migration):
diff --git a/poky/bitbake/lib/toaster/orm/migrations/0012_use_release_instead_of_up_branch.py b/poky/bitbake/lib/toaster/orm/migrations/0012_use_release_instead_of_up_branch.py
index 0e6bb8331..4b96bf096 100644
--- a/poky/bitbake/lib/toaster/orm/migrations/0012_use_release_instead_of_up_branch.py
+++ b/poky/bitbake/lib/toaster/orm/migrations/0012_use_release_instead_of_up_branch.py
@@ -46,7 +46,7 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='layer_version',
name='release',
- field=models.ForeignKey(to='orm.Release', default=None, null=True),
+ field=models.ForeignKey(to='orm.Release', default=None, null=True, on_delete=models.CASCADE),
),
migrations.RunPython(branch_to_release,
reverse_code=migrations.RunPython.noop),
diff --git a/poky/bitbake/lib/toaster/orm/migrations/0017_distro_clone.py b/poky/bitbake/lib/toaster/orm/migrations/0017_distro_clone.py
index d3c590127..731c0debd 100644
--- a/poky/bitbake/lib/toaster/orm/migrations/0017_distro_clone.py
+++ b/poky/bitbake/lib/toaster/orm/migrations/0017_distro_clone.py
@@ -18,7 +18,7 @@ class Migration(migrations.Migration):
('up_date', models.DateTimeField(default=None, null=True)),
('name', models.CharField(max_length=255)),
('description', models.CharField(max_length=255)),
- ('layer_version', models.ForeignKey(to='orm.Layer_Version')),
+ ('layer_version', models.ForeignKey(to='orm.Layer_Version', on_delete=models.CASCADE)),
],
),
]
diff --git a/poky/bitbake/lib/toaster/orm/migrations/0019_django_2_2.py b/poky/bitbake/lib/toaster/orm/migrations/0019_django_2_2.py
new file mode 100644
index 000000000..666aef18b
--- /dev/null
+++ b/poky/bitbake/lib/toaster/orm/migrations/0019_django_2_2.py
@@ -0,0 +1,23 @@
+# Generated by Django 2.2.7 on 2019-11-19 03:38
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('orm', '0018_project_specific'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='distro',
+ name='up_id',
+ ),
+ migrations.AlterField(
+ model_name='build',
+ name='recipes_parsed',
+ field=models.IntegerField(default=1),
+ ),
+ ]
diff --git a/poky/bitbake/lib/toaster/orm/models.py b/poky/bitbake/lib/toaster/orm/models.py
index bb6b5decf..7f7e922ad 100644
--- a/poky/bitbake/lib/toaster/orm/models.py
+++ b/poky/bitbake/lib/toaster/orm/models.py
@@ -13,7 +13,7 @@ from django.db.models import F, Q, Sum, Count
from django.utils import timezone
from django.utils.encoding import force_bytes
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from django.core import validators
from django.conf import settings
@@ -178,8 +178,8 @@ class Project(models.Model):
'release__branch_name']
name = models.CharField(max_length=100)
short_description = models.CharField(max_length=50, blank=True)
- bitbake_version = models.ForeignKey('BitbakeVersion', null=True)
- release = models.ForeignKey("Release", null=True)
+ bitbake_version = models.ForeignKey('BitbakeVersion', on_delete=models.CASCADE, null=True)
+ release = models.ForeignKey("Release", on_delete=models.CASCADE, null=True)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
# This is a horrible hack; since Toaster has no "User" model available when
@@ -469,7 +469,7 @@ class Build(models.Model):
search_allowed_fields = ['machine', 'cooker_log_path', "target__target", "target__target_image_file__file_name"]
- project = models.ForeignKey(Project) # must have a project
+ project = models.ForeignKey(Project, on_delete=models.CASCADE) # must have a project
machine = models.CharField(max_length=100)
distro = models.CharField(max_length=100)
distro_version = models.CharField(max_length=100)
@@ -777,13 +777,13 @@ class Build(models.Model):
return "%d %s %s" % (self.id, self.project, ",".join([t.target for t in self.target_set.all()]))
class ProjectTarget(models.Model):
- project = models.ForeignKey(Project)
+ project = models.ForeignKey(Project, on_delete=models.CASCADE)
target = models.CharField(max_length=100)
task = models.CharField(max_length=100, null=True)
class Target(models.Model):
search_allowed_fields = ['target', 'file_name']
- build = models.ForeignKey(Build)
+ build = models.ForeignKey(Build, on_delete=models.CASCADE)
target = models.CharField(max_length=100)
task = models.CharField(max_length=100, null=True)
is_image = models.BooleanField(default = False)
@@ -944,7 +944,7 @@ class Target(models.Model):
# kernel artifacts for a target: bzImage and modules*
class TargetKernelFile(models.Model):
- target = models.ForeignKey(Target)
+ target = models.ForeignKey(Target, on_delete=models.CASCADE)
file_name = models.FilePathField()
file_size = models.IntegerField()
@@ -954,7 +954,7 @@ class TargetKernelFile(models.Model):
# SDK artifacts for a target: sh and manifest files
class TargetSDKFile(models.Model):
- target = models.ForeignKey(Target)
+ target = models.ForeignKey(Target, on_delete=models.CASCADE)
file_name = models.FilePathField()
file_size = models.IntegerField()
@@ -973,7 +973,7 @@ class Target_Image_File(models.Model):
'ubifs', 'wic', 'wic.bz2', 'wic.gz', 'wic.lzma'
}
- target = models.ForeignKey(Target)
+ target = models.ForeignKey(Target, on_delete=models.CASCADE)
file_name = models.FilePathField(max_length=254)
file_size = models.IntegerField()
@@ -1007,15 +1007,15 @@ class Target_File(models.Model):
( ITYPE_BLOCK ,'block'),
)
- target = models.ForeignKey(Target)
+ target = models.ForeignKey(Target, on_delete=models.CASCADE)
path = models.FilePathField()
size = models.IntegerField()
inodetype = models.IntegerField(choices = ITYPES)
permission = models.CharField(max_length=16)
owner = models.CharField(max_length=128)
group = models.CharField(max_length=128)
- directory = models.ForeignKey('Target_File', related_name="directory_set", null=True)
- sym_target = models.ForeignKey('Target_File', related_name="symlink_set", null=True)
+ directory = models.ForeignKey('Target_File', on_delete=models.CASCADE, related_name="directory_set", null=True)
+ sym_target = models.ForeignKey('Target_File', on_delete=models.CASCADE, related_name="symlink_set", null=True)
class Task(models.Model):
@@ -1102,13 +1102,13 @@ class Task(models.Model):
def get_description(self):
return self._helptext
- build = models.ForeignKey(Build, related_name='task_build')
+ build = models.ForeignKey(Build, on_delete=models.CASCADE, related_name='task_build')
order = models.IntegerField(null=True)
task_executed = models.BooleanField(default=False) # True means Executed, False means Not/Executed
outcome = models.IntegerField(choices=TASK_OUTCOME, default=OUTCOME_NA)
sstate_checksum = models.CharField(max_length=100, blank=True)
path_to_sstate_obj = models.FilePathField(max_length=500, blank=True)
- recipe = models.ForeignKey('Recipe', related_name='tasks')
+ recipe = models.ForeignKey('Recipe', on_delete=models.CASCADE, related_name='tasks')
task_name = models.CharField(max_length=100)
source_url = models.FilePathField(max_length=255, blank=True)
work_directory = models.FilePathField(max_length=255, blank=True)
@@ -1147,13 +1147,13 @@ class Task(models.Model):
class Task_Dependency(models.Model):
- task = models.ForeignKey(Task, related_name='task_dependencies_task')
- depends_on = models.ForeignKey(Task, related_name='task_dependencies_depends')
+ task = models.ForeignKey(Task, on_delete=models.CASCADE, related_name='task_dependencies_task')
+ depends_on = models.ForeignKey(Task, on_delete=models.CASCADE, related_name='task_dependencies_depends')
class Package(models.Model):
search_allowed_fields = ['name', 'version', 'revision', 'recipe__name', 'recipe__version', 'recipe__license', 'recipe__layer_version__layer__name', 'recipe__layer_version__branch', 'recipe__layer_version__commit', 'recipe__layer_version__local_path', 'installed_name']
- build = models.ForeignKey('Build', null=True)
- recipe = models.ForeignKey('Recipe', null=True)
+ build = models.ForeignKey('Build', on_delete=models.CASCADE, null=True)
+ recipe = models.ForeignKey('Recipe', on_delete=models.CASCADE, null=True)
name = models.CharField(max_length=100)
installed_name = models.CharField(max_length=100, default='')
version = models.CharField(max_length=100, blank=True)
@@ -1289,19 +1289,19 @@ class Package_Dependency(models.Model):
TYPE_RCONFLICTS : ("conflicts", "%s conflicts with %s, which will not be installed if this package is not first removed"),
}
- package = models.ForeignKey(Package, related_name='package_dependencies_source')
- depends_on = models.ForeignKey(Package, related_name='package_dependencies_target') # soft dependency
+ package = models.ForeignKey(Package, on_delete=models.CASCADE, related_name='package_dependencies_source')
+ depends_on = models.ForeignKey(Package, on_delete=models.CASCADE, related_name='package_dependencies_target') # soft dependency
dep_type = models.IntegerField(choices=DEPENDS_TYPE)
- target = models.ForeignKey(Target, null=True)
+ target = models.ForeignKey(Target, on_delete=models.CASCADE, null=True)
objects = Package_DependencyManager()
class Target_Installed_Package(models.Model):
- target = models.ForeignKey(Target)
- package = models.ForeignKey(Package, related_name='buildtargetlist_package')
+ target = models.ForeignKey(Target, on_delete=models.CASCADE)
+ package = models.ForeignKey(Package, on_delete=models.CASCADE, related_name='buildtargetlist_package')
class Package_File(models.Model):
- package = models.ForeignKey(Package, related_name='buildfilelist_package')
+ package = models.ForeignKey(Package, on_delete=models.CASCADE, related_name='buildfilelist_package')
path = models.FilePathField(max_length=255, blank=True)
size = models.IntegerField()
@@ -1318,7 +1318,7 @@ class Recipe(models.Model):
name = models.CharField(max_length=100, blank=True)
version = models.CharField(max_length=100, blank=True)
- layer_version = models.ForeignKey('Layer_Version',
+ layer_version = models.ForeignKey('Layer_Version', on_delete=models.CASCADE,
related_name='recipe_layer_version')
summary = models.TextField(blank=True)
description = models.TextField(blank=True)
@@ -1356,7 +1356,7 @@ class Recipe_DependencyManager(models.Manager):
class Provides(models.Model):
name = models.CharField(max_length=100)
- recipe = models.ForeignKey(Recipe)
+ recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
class Recipe_Dependency(models.Model):
TYPE_DEPENDS = 0
@@ -1366,9 +1366,9 @@ class Recipe_Dependency(models.Model):
(TYPE_DEPENDS, "depends"),
(TYPE_RDEPENDS, "rdepends"),
)
- recipe = models.ForeignKey(Recipe, related_name='r_dependencies_recipe')
- depends_on = models.ForeignKey(Recipe, related_name='r_dependencies_depends')
- via = models.ForeignKey(Provides, null=True, default=None)
+ recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE, related_name='r_dependencies_recipe')
+ depends_on = models.ForeignKey(Recipe, on_delete=models.CASCADE, related_name='r_dependencies_depends')
+ via = models.ForeignKey(Provides, on_delete=models.CASCADE, null=True, default=None)
dep_type = models.IntegerField(choices=DEPENDS_TYPE)
objects = Recipe_DependencyManager()
@@ -1377,7 +1377,7 @@ class Machine(models.Model):
search_allowed_fields = ["name", "description", "layer_version__layer__name"]
up_date = models.DateTimeField(null = True, default = None)
- layer_version = models.ForeignKey('Layer_Version')
+ layer_version = models.ForeignKey('Layer_Version', on_delete=models.CASCADE)
name = models.CharField(max_length=255)
description = models.CharField(max_length=255)
@@ -1408,7 +1408,7 @@ class Release(models.Model):
""" A release is a project template, used to pre-populate Project settings with a configuration set """
name = models.CharField(max_length=32, unique = True)
description = models.CharField(max_length=255)
- bitbake_version = models.ForeignKey(BitbakeVersion)
+ bitbake_version = models.ForeignKey(BitbakeVersion, on_delete=models.CASCADE)
branch_name = models.CharField(max_length=50, default = "")
helptext = models.TextField(null=True)
@@ -1419,7 +1419,7 @@ class Release(models.Model):
return self.name
class ReleaseDefaultLayer(models.Model):
- release = models.ForeignKey(Release)
+ release = models.ForeignKey(Release, on_delete=models.CASCADE)
layer_name = models.CharField(max_length=100, default="")
@@ -1474,10 +1474,10 @@ class Layer_Version(models.Model):
"layer__description", "layer__vcs_url",
"dirpath", "release__name", "commit", "branch"]
- build = models.ForeignKey(Build, related_name='layer_version_build',
+ build = models.ForeignKey(Build, on_delete=models.CASCADE, related_name='layer_version_build',
default=None, null=True)
- layer = models.ForeignKey(Layer, related_name='layer_version_layer')
+ layer = models.ForeignKey(Layer, on_delete=models.CASCADE, related_name='layer_version_layer')
layer_source = models.IntegerField(choices=LayerSource.SOURCE_TYPE,
default=0)
@@ -1485,7 +1485,7 @@ class Layer_Version(models.Model):
up_date = models.DateTimeField(null=True, default=timezone.now)
# To which metadata release does this layer version belong to
- release = models.ForeignKey(Release, null=True, default=None)
+ release = models.ForeignKey(Release, on_delete=models.CASCADE, null=True, default=None)
branch = models.CharField(max_length=80)
commit = models.CharField(max_length=100)
@@ -1499,7 +1499,7 @@ class Layer_Version(models.Model):
local_path = models.FilePathField(max_length=1024, default="/")
# Set if this layer is restricted to a particular project
- project = models.ForeignKey('Project', null=True, default=None)
+ project = models.ForeignKey('Project', on_delete=models.CASCADE, null=True, default=None)
# code lifted, with adaptations, from the layerindex-web application
# https://git.yoctoproject.org/cgit/cgit.cgi/layerindex-web/
@@ -1608,14 +1608,14 @@ class Layer_Version(models.Model):
class LayerVersionDependency(models.Model):
- layer_version = models.ForeignKey(Layer_Version,
+ layer_version = models.ForeignKey(Layer_Version, on_delete=models.CASCADE,
related_name="dependencies")
- depends_on = models.ForeignKey(Layer_Version,
+ depends_on = models.ForeignKey(Layer_Version, on_delete=models.CASCADE,
related_name="dependees")
class ProjectLayer(models.Model):
- project = models.ForeignKey(Project)
- layercommit = models.ForeignKey(Layer_Version, null=True)
+ project = models.ForeignKey(Project, on_delete=models.CASCADE)
+ layercommit = models.ForeignKey(Layer_Version, on_delete=models.CASCADE, null=True)
optional = models.BooleanField(default = True)
def __unicode__(self):
@@ -1630,8 +1630,8 @@ class CustomImageRecipe(Recipe):
LAYER_NAME = "toaster-custom-images"
search_allowed_fields = ['name']
- base_recipe = models.ForeignKey(Recipe, related_name='based_on_recipe')
- project = models.ForeignKey(Project)
+ base_recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE, related_name='based_on_recipe')
+ project = models.ForeignKey(Project, on_delete=models.CASCADE)
last_updated = models.DateTimeField(null=True, default=None)
def get_last_successful_built_target(self):
@@ -1647,14 +1647,14 @@ class CustomImageRecipe(Recipe):
"""
# Check if we're aldready up-to-date or not
target = self.get_last_successful_built_target()
- if target == None:
+ if target is None:
# So we've never actually built this Custom recipe but what about
# the recipe it's based on?
target = \
Target.objects.filter(Q(build__outcome=Build.SUCCEEDED) &
Q(build__project=self.project) &
Q(target=self.base_recipe.name)).last()
- if target == None:
+ if target is None:
return
if target.build.completed_on == self.last_updated:
@@ -1784,14 +1784,14 @@ class CustomImageRecipe(Recipe):
return recipe_contents
class ProjectVariable(models.Model):
- project = models.ForeignKey(Project)
+ project = models.ForeignKey(Project, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
value = models.TextField(blank = True)
class Variable(models.Model):
search_allowed_fields = ['variable_name', 'variable_value',
'vhistory__file_name', "description"]
- build = models.ForeignKey(Build, related_name='variable_build')
+ build = models.ForeignKey(Build, on_delete=models.CASCADE, related_name='variable_build')
variable_name = models.CharField(max_length=100)
variable_value = models.TextField(blank=True)
changed = models.BooleanField(default=False)
@@ -1799,7 +1799,7 @@ class Variable(models.Model):
description = models.TextField(blank=True)
class VariableHistory(models.Model):
- variable = models.ForeignKey(Variable, related_name='vhistory')
+ variable = models.ForeignKey(Variable, on_delete=models.CASCADE, related_name='vhistory')
value = models.TextField(blank=True)
file_name = models.FilePathField(max_length=255)
line_number = models.IntegerField(null=True)
@@ -1809,7 +1809,7 @@ class HelpText(models.Model):
VARIABLE = 0
HELPTEXT_AREA = ((VARIABLE, 'variable'), )
- build = models.ForeignKey(Build, related_name='helptext_build')
+ build = models.ForeignKey(Build, on_delete=models.CASCADE, related_name='helptext_build')
area = models.IntegerField(choices=HELPTEXT_AREA)
key = models.CharField(max_length=100)
text = models.TextField()
@@ -1829,8 +1829,8 @@ class LogMessage(models.Model):
(EXCEPTION, "toaster exception")
)
- build = models.ForeignKey(Build)
- task = models.ForeignKey(Task, blank = True, null=True)
+ build = models.ForeignKey(Build, on_delete=models.CASCADE)
+ task = models.ForeignKey(Task, on_delete=models.CASCADE, blank = True, null=True)
level = models.IntegerField(choices=LOG_LEVEL, default=INFO)
message = models.TextField(blank=True, null=True)
pathname = models.FilePathField(max_length=255, blank=True)
@@ -1859,7 +1859,7 @@ class Distro(models.Model):
search_allowed_fields = ["name", "description", "layer_version__layer__name"]
up_date = models.DateTimeField(null = True, default = None)
- layer_version = models.ForeignKey('Layer_Version')
+ layer_version = models.ForeignKey('Layer_Version', on_delete=models.CASCADE)
name = models.CharField(max_length=255)
description = models.CharField(max_length=255)
diff --git a/poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py b/poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py
index 6c94684e8..644d45fe5 100644
--- a/poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py
+++ b/poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py
@@ -19,7 +19,6 @@ import os
import time
import unittest
-from django.contrib.staticfiles.testing import StaticLiveServerTestCase
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_all_builds_page.py b/poky/bitbake/lib/toaster/tests/browser/test_all_builds_page.py
index fba627bd2..8423d3dab 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_all_builds_page.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_all_builds_page.py
@@ -9,7 +9,7 @@
import re
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from django.utils import timezone
from tests.browser.selenium_helpers import SeleniumTestCase
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_all_projects_page.py b/poky/bitbake/lib/toaster/tests/browser/test_all_projects_page.py
index afd2d3566..15b03400f 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_all_projects_page.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_all_projects_page.py
@@ -9,7 +9,7 @@
import re
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from django.utils import timezone
from tests.browser.selenium_helpers import SeleniumTestCase
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py b/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py
index d972aff1b..efcd89b34 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py
@@ -7,7 +7,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from django.utils import timezone
from tests.browser.selenium_helpers import SeleniumTestCase
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_artifacts.py b/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_artifacts.py
index e2623e8ad..c6226d60e 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_artifacts.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_artifacts.py
@@ -7,7 +7,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from django.utils import timezone
from tests.browser.selenium_helpers import SeleniumTestCase
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_recipes.py b/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_recipes.py
index c542d45f1..9d85ba990 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_recipes.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_recipes.py
@@ -7,7 +7,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from django.utils import timezone
from tests.browser.selenium_helpers import SeleniumTestCase
from orm.models import Project, Build, Recipe, Task, Layer, Layer_Version
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_tasks.py b/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_tasks.py
index 22acb470a..7fdf75d0a 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_tasks.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_tasks.py
@@ -7,7 +7,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from django.utils import timezone
from tests.browser.selenium_helpers import SeleniumTestCase
from orm.models import Project, Build, Recipe, Task, Layer, Layer_Version
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py b/poky/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py
index e8b4295b8..e6163bb3b 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py
@@ -11,7 +11,7 @@
Run the js unit tests
"""
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from tests.browser.selenium_helpers import SeleniumTestCase
import logging
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_landing_page.py b/poky/bitbake/lib/toaster/tests/browser/test_landing_page.py
index 07901989d..8bb64b9f3 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_landing_page.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_landing_page.py
@@ -7,7 +7,7 @@
# Copyright (C) 2013-2016 Intel Corporation
#
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from django.utils import timezone
from tests.browser.selenium_helpers import SeleniumTestCase
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py b/poky/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py
index f81e696a2..71bdd2aaf 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py
@@ -7,7 +7,7 @@
# Copyright (C) 2013-2016 Intel Corporation
#
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from tests.browser.selenium_helpers import SeleniumTestCase
from orm.models import Layer, Layer_Version, Project, LayerSource, Release
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_most_recent_builds_states.py b/poky/bitbake/lib/toaster/tests/browser/test_most_recent_builds_states.py
index 15d25dc3a..7844aaa39 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_most_recent_builds_states.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_most_recent_builds_states.py
@@ -7,7 +7,7 @@
# Copyright (C) 2013-2016 Intel Corporation
#
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from django.utils import timezone
from tests.browser.selenium_helpers import SeleniumTestCase
from tests.browser.selenium_helpers_base import Wait
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py b/poky/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py
index 0aa3b7a77..9906ae42a 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py
@@ -7,7 +7,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from tests.browser.selenium_helpers import SeleniumTestCase
from orm.models import BitbakeVersion, Release, Project, ProjectLayer, Layer
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_new_project_page.py b/poky/bitbake/lib/toaster/tests/browser/test_new_project_page.py
index 8e56bb043..e20a1f686 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_new_project_page.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_new_project_page.py
@@ -7,7 +7,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from tests.browser.selenium_helpers import SeleniumTestCase
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import InvalidElementStateException
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_project_builds_page.py b/poky/bitbake/lib/toaster/tests/browser/test_project_builds_page.py
index 47fb10b26..51717e72d 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_project_builds_page.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_project_builds_page.py
@@ -9,7 +9,7 @@
import re
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from django.utils import timezone
from tests.browser.selenium_helpers import SeleniumTestCase
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_project_config_page.py b/poky/bitbake/lib/toaster/tests/browser/test_project_config_page.py
index 2816eb907..944bcb263 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_project_config_page.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_project_config_page.py
@@ -7,10 +7,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-import re
-
-from django.core.urlresolvers import reverse
-from django.utils import timezone
+from django.urls import reverse
from tests.browser.selenium_helpers import SeleniumTestCase
from orm.models import BitbakeVersion, Release, Project, ProjectVariable
@@ -216,4 +213,5 @@ class TestProjectConfigsPage(SeleniumTestCase):
hidden_element = self.driver.find_element_by_id('hintError-sstate_dir')
self.assertEqual(hidden_element.is_displayed(), False,
- 'sstate directory path valid but treated as invalid') \ No newline at end of file
+ 'sstate directory path valid but treated as invalid')
+
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_project_page.py b/poky/bitbake/lib/toaster/tests/browser/test_project_page.py
index 8b5e1b673..546293f1e 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_project_page.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_project_page.py
@@ -7,7 +7,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from django.utils import timezone
from tests.browser.selenium_helpers import SeleniumTestCase
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_sample.py b/poky/bitbake/lib/toaster/tests/browser/test_sample.py
index f4ad670a3..b0067c21c 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_sample.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_sample.py
@@ -16,7 +16,7 @@ New test files should follow this structure, should be named "test_*.py",
and should be in the same directory as this sample.
"""
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from tests.browser.selenium_helpers import SeleniumTestCase
class TestSample(SeleniumTestCase):
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_task_page.py b/poky/bitbake/lib/toaster/tests/browser/test_task_page.py
index 26f3dca83..011b5854a 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_task_page.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_task_page.py
@@ -7,7 +7,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from django.utils import timezone
from tests.browser.selenium_helpers import SeleniumTestCase
from orm.models import Project, Build, Layer, Layer_Version, Recipe, Target
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_toastertable_ui.py b/poky/bitbake/lib/toaster/tests/browser/test_toastertable_ui.py
index ef78cbb1e..e82d5ec65 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_toastertable_ui.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_toastertable_ui.py
@@ -9,7 +9,7 @@
from datetime import datetime
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from django.utils import timezone
from tests.browser.selenium_helpers import SeleniumTestCase
from orm.models import BitbakeVersion, Release, Project, Build
diff --git a/poky/bitbake/lib/toaster/tests/functional/test_functional_basic.py b/poky/bitbake/lib/toaster/tests/functional/test_functional_basic.py
index 56c84fba8..5683e3873 100644
--- a/poky/bitbake/lib/toaster/tests/functional/test_functional_basic.py
+++ b/poky/bitbake/lib/toaster/tests/functional/test_functional_basic.py
@@ -7,7 +7,6 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-import time
import re
from tests.functional.functional_helpers import SeleniumFunctionalTestCase
from orm.models import Project
diff --git a/poky/bitbake/lib/toaster/tests/views/test_views.py b/poky/bitbake/lib/toaster/tests/views/test_views.py
index 68d9e9de1..735d596bc 100644
--- a/poky/bitbake/lib/toaster/tests/views/test_views.py
+++ b/poky/bitbake/lib/toaster/tests/views/test_views.py
@@ -11,7 +11,7 @@
from django.test import TestCase
from django.test.client import RequestFactory
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from django.db.models import Q
from orm.models import Project, Package
diff --git a/poky/bitbake/lib/toaster/toastergui/api.py b/poky/bitbake/lib/toaster/toastergui/api.py
index 8b49b3ee3..b4cdc335e 100644
--- a/poky/bitbake/lib/toaster/toastergui/api.py
+++ b/poky/bitbake/lib/toaster/toastergui/api.py
@@ -13,7 +13,6 @@ import logging
import json
import subprocess
from collections import Counter
-from shutil import copyfile
from orm.models import Project, ProjectTarget, Build, Layer_Version
from orm.models import LayerVersionDependency, LayerSource, ProjectLayer
@@ -25,12 +24,10 @@ from bldcontrol import bbcontroller
from django.http import HttpResponse, JsonResponse
from django.views.generic import View
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from django.db.models import Q, F
from django.db import Error
from toastergui.templatetags.projecttags import filtered_filesizeformat
-from django.utils import timezone
-import pytz
# development/debugging support
verbose = 2
diff --git a/poky/bitbake/lib/toaster/toastergui/tables.py b/poky/bitbake/lib/toaster/toastergui/tables.py
index b3ea2227e..528dd32b0 100644
--- a/poky/bitbake/lib/toaster/toastergui/tables.py
+++ b/poky/bitbake/lib/toaster/toastergui/tables.py
@@ -7,15 +7,10 @@
#
from toastergui.widgets import ToasterTable
-from orm.models import Recipe, ProjectLayer, Layer_Version, Machine, Project
+from orm.models import Recipe, ProjectLayer, Layer_Version, Project
from orm.models import CustomImageRecipe, Package, Target, Build, LogMessage, Task
from orm.models import CustomImagePackage, Package_DependencyManager
-from orm.models import Distro
-from django.db.models import Q, Max, Sum, Count, When, Case, Value, IntegerField
-from django.conf.urls import url
-from django.core.urlresolvers import reverse, resolve
-from django.http import HttpResponse
-from django.views.generic import TemplateView
+from django.db.models import Q, Sum, Count, When, Case, Value, IntegerField
from toastergui.tablefilter import TableFilter
from toastergui.tablefilter import TableFilterActionToggle
diff --git a/poky/bitbake/lib/toaster/toastergui/templatetags/objects_to_dictionaries_filter.py b/poky/bitbake/lib/toaster/toastergui/templatetags/objects_to_dictionaries_filter.py
index 048d53387..e242234bf 100644
--- a/poky/bitbake/lib/toaster/toastergui/templatetags/objects_to_dictionaries_filter.py
+++ b/poky/bitbake/lib/toaster/toastergui/templatetags/objects_to_dictionaries_filter.py
@@ -3,7 +3,6 @@
#
from django import template
-import json
register = template.Library()
diff --git a/poky/bitbake/lib/toaster/toastergui/templatetags/project_url_tag.py b/poky/bitbake/lib/toaster/toastergui/templatetags/project_url_tag.py
index 71e092578..7b6f15b2c 100644
--- a/poky/bitbake/lib/toaster/toastergui/templatetags/project_url_tag.py
+++ b/poky/bitbake/lib/toaster/toastergui/templatetags/project_url_tag.py
@@ -3,7 +3,7 @@
#
from django import template
-from django.core.urlresolvers import reverse
+from django.urls import reverse
register = template.Library()
diff --git a/poky/bitbake/lib/toaster/toastergui/templatetags/projecttags.py b/poky/bitbake/lib/toaster/toastergui/templatetags/projecttags.py
index 1dbab3bdb..c432f59a7 100644
--- a/poky/bitbake/lib/toaster/toastergui/templatetags/projecttags.py
+++ b/poky/bitbake/lib/toaster/toastergui/templatetags/projecttags.py
@@ -6,7 +6,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-from datetime import datetime, timedelta
+from datetime import timedelta
from os.path import relpath
import re
from django import template
@@ -44,7 +44,7 @@ def json(value, default = None):
# it manually here
return mark_safe(JsonLib.dumps(value, indent=2, default = default, ensure_ascii=False).replace('</', '<\\/'))
-@register.assignment_tag
+@register.simple_tag
def query(qs, **kwargs):
""" template tag which allows queryset filtering. Usage:
{% query books author=author as mybooks %}
@@ -83,7 +83,7 @@ def divide(value, arg):
def multiply(value, arg):
return int(value) * int(arg)
-@register.assignment_tag
+@register.simple_tag
def datecompute(delta, start = timezone.now()):
return start + timedelta(delta)
@@ -212,7 +212,7 @@ def filtered_installedsize(size, installed_size):
"""If package.installed_size not null and not empty return it,
else return package.size
"""
- return size if (installed_size == 0) or (installed_size == "") or (installed_size == None) else installed_size
+ return size if (installed_size == 0) or (installed_size == "") or (installed_size is None) else installed_size
@register.filter
def filtered_packageversion(version, revision):
@@ -228,7 +228,7 @@ def filter_sizeovertotal(package_object, total_size):
formatted nicely.
"""
size = package_object.installed_size
- if size == None or size == '':
+ if size is None or size == '':
size = package_object.size
return '{:.1%}'.format(float(size)/float(total_size))
diff --git a/poky/bitbake/lib/toaster/toastergui/typeaheads.py b/poky/bitbake/lib/toaster/toastergui/typeaheads.py
index fd750ffb7..a1e6fe90f 100644
--- a/poky/bitbake/lib/toaster/toastergui/typeaheads.py
+++ b/poky/bitbake/lib/toaster/toastergui/typeaheads.py
@@ -10,7 +10,7 @@ import subprocess
from toastergui.widgets import ToasterTypeAhead
from orm.models import Project
-from django.core.urlresolvers import reverse
+from django.urls import reverse
from django.core.cache import cache
diff --git a/poky/bitbake/lib/toaster/toastergui/urls.py b/poky/bitbake/lib/toaster/toastergui/urls.py
index 673d9ae96..d2df4e604 100644
--- a/poky/bitbake/lib/toaster/toastergui/urls.py
+++ b/poky/bitbake/lib/toaster/toastergui/urls.py
@@ -6,10 +6,9 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-from django.conf.urls import include, url
-from django.views.generic import RedirectView, TemplateView
+from django.conf.urls import url
+from django.views.generic import RedirectView
-from django.http import HttpResponseBadRequest
from toastergui import tables
from toastergui import buildtables
from toastergui import typeaheads
diff --git a/poky/bitbake/lib/toaster/toastergui/views.py b/poky/bitbake/lib/toaster/toastergui/views.py
index d7acaff89..9a5e48e3b 100644
--- a/poky/bitbake/lib/toaster/toastergui/views.py
+++ b/poky/bitbake/lib/toaster/toastergui/views.py
@@ -19,8 +19,8 @@ from orm.models import Target_Installed_Package, Target_File
from orm.models import TargetKernelFile, TargetSDKFile, Target_Image_File
from orm.models import BitbakeVersion, CustomImageRecipe
-from django.core.urlresolvers import reverse, resolve
-from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
+from django.urls import reverse, resolve
+from django.core.exceptions import ObjectDoesNotExist
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.http import HttpResponseNotFound, JsonResponse
from django.utils import timezone
@@ -51,7 +51,7 @@ class MimeTypeFinder(object):
def get_mimetype(self, path):
guess = mimetypes.guess_type(path, self._strict)
guessed_type = guess[0]
- if guessed_type == None:
+ if guessed_type is None:
guessed_type = 'application/octet-stream'
return guessed_type
@@ -126,7 +126,7 @@ def _lv_to_dict(prj, x = None):
return {"id": x.pk,
"name": x.layer.name,
"tooltip": "%s | %s" % (x.layer.vcs_url,x.get_vcs_reference()),
- "detail": "(%s" % x.layer.vcs_url + (")" if x.release == None else " | "+x.get_vcs_reference()+")"),
+ "detail": "(%s" % x.layer.vcs_url + (")" if x.release is None else " | "+x.get_vcs_reference()+")"),
"giturl": x.layer.vcs_url,
"layerdetailurl" : reverse('layerdetails', args=(prj.id,x.pk)),
"revision" : x.get_vcs_reference(),
@@ -352,7 +352,7 @@ def _get_parameters_values(request, default_count, default_order):
# set cookies for parameters. this is usefull in case parameters are set
# manually from the GET values of the link
def _set_parameters_values(pagesize, orderby, request):
- from django.core.urlresolvers import resolve
+ from django.urls import resolve
current_url = resolve(request.path_info).url_name
request.session['%s_count' % current_url] = pagesize
request.session['%s_orderby' % current_url] =orderby
@@ -664,7 +664,6 @@ def recipe_packages(request, build_id, recipe_id):
_set_parameters_values(pagesize, orderby, request)
return response
-from django.core.serializers.json import DjangoJSONEncoder
from django.http import HttpResponse
def xhr_dirinfo(request, build_id, target_id):
top = request.GET.get('start', '/')
@@ -719,7 +718,7 @@ def _get_dir_entries(build_id, target_id, start):
resolved_id = o.sym_target_id
resolved_path = o.path
if target_packages.count():
- while resolved_id != "" and resolved_id != None:
+ while resolved_id != "" and resolved_id is not None:
tf = Target_File.objects.get(pk=resolved_id)
resolved_path = tf.path
resolved_id = tf.sym_target_id
@@ -731,10 +730,10 @@ def _get_dir_entries(build_id, target_id, start):
entry['package_id'] = str(p.id)
entry['package'] = p.name
# don't use resolved path from above, show immediate link-to
- if o.sym_target_id != "" and o.sym_target_id != None:
+ if o.sym_target_id != "" and o.sym_target_id is not None:
entry['link_to'] = Target_File.objects.get(pk=o.sym_target_id).path
entry['size'] = filtered_filesizeformat(o.size)
- if entry['link_to'] != None:
+ if entry['link_to'] is not None:
entry['permission'] = node_str[o.inodetype] + o.permission
else:
entry['permission'] = node_str[o.inodetype] + o.permission
@@ -756,7 +755,7 @@ def dirinfo(request, build_id, target_id, file_path=None):
objects = _get_dir_entries(build_id, target_id, '/')
packages_sum = Package.objects.filter(id__in=Target_Installed_Package.objects.filter(target_id=target_id).values('package_id')).aggregate(Sum('installed_size'))
dir_list = None
- if file_path != None:
+ if file_path is not None:
"""
Link from the included package detail file list page and is
requesting opening the dir info to a specific file path.
@@ -1030,15 +1029,15 @@ def _get_package_dependency_count(package, target_id, is_installed):
def _get_package_alias(package):
alias = package.installed_name
- if alias != None and alias != '' and alias != package.name:
+ if alias is not None and alias != '' and alias != package.name:
return alias
else:
return ''
def _get_fullpackagespec(package):
r = package.name
- version_good = package.version != None and package.version != ''
- revision_good = package.revision != None and package.revision != ''
+ version_good = package.version is not None and package.version != ''
+ revision_good = package.revision is not None and package.revision != ''
if version_good or revision_good:
r += '_'
if version_good:
@@ -1192,7 +1191,7 @@ def package_included_reverse_dependencies(request, build_id, target_id, package_
return _redirect_parameters( 'package_included_reverse_dependencies', request.GET, mandatory_parameters, build_id = build_id, target_id = target_id, package_id = package_id)
(filter_string, search_term, ordering_string) = _search_tuple(request, Package_File)
- queryset = Package_Dependency.objects.select_related('depends_on__name', 'depends_on__size').filter(depends_on=package_id, target_id=target_id, dep_type=Package_Dependency.TYPE_TRDEPENDS)
+ queryset = Package_Dependency.objects.select_related('depends_on').filter(depends_on=package_id, target_id=target_id, dep_type=Package_Dependency.TYPE_TRDEPENDS)
objects = _get_queryset(Package_Dependency, queryset, filter_string, search_term, ordering_string, 'package__name')
package = Package.objects.get(pk=package_id)
@@ -1340,7 +1339,7 @@ def json_build(request,build_id):
import toastermain.settings
-from orm.models import Project, ProjectLayer, ProjectTarget, ProjectVariable
+from orm.models import Project, ProjectLayer, ProjectVariable
from bldcontrol.models import BuildEnvironment
# we have a set of functions if we're in managed mode, or
@@ -1349,10 +1348,8 @@ from bldcontrol.models import BuildEnvironment
if True:
from django.contrib.auth.models import User
from django.contrib.auth import authenticate, login
- from django.contrib.auth.decorators import login_required
- from orm.models import LayerSource, ToasterSetting, Release, Machine, LayerVersionDependency
- from bldcontrol.models import BuildRequest
+ from orm.models import LayerSource, ToasterSetting, Release
import traceback
@@ -1367,8 +1364,8 @@ if True:
template = "newproject.html"
context = {
- 'email': request.user.email if request.user.is_authenticated() else '',
- 'username': request.user.username if request.user.is_authenticated() else '',
+ 'email': request.user.email if request.user.is_authenticated else '',
+ 'username': request.user.username if request.user.is_authenticated else '',
'releases': Release.objects.order_by("description"),
}
@@ -1394,7 +1391,7 @@ if True:
# set alert for missing fields
raise BadParameterException("Fields missing: %s" % ", ".join(missing))
- if not request.user.is_authenticated():
+ if not request.user.is_authenticated:
user = authenticate(username = request.POST.get('username', '_anonuser'), password = 'nopass')
if user is None:
user = User.objects.create_user(username = request.POST.get('username', '_anonuser'), email = request.POST.get('email', ''), password = "nopass")
@@ -1441,8 +1438,8 @@ if True:
project = Project.objects.get(pk=pid)
template = "newproject_specific.html"
context = {
- 'email': request.user.email if request.user.is_authenticated() else '',
- 'username': request.user.username if request.user.is_authenticated() else '',
+ 'email': request.user.email if request.user.is_authenticated else '',
+ 'username': request.user.username if request.user.is_authenticated else '',
'releases': Release.objects.order_by("description"),
'projectname': project.name,
'project_pk': project.pk,
@@ -1472,7 +1469,7 @@ if True:
# set alert for missing fields
raise BadParameterException("Fields missing: %s" % ", ".join(missing))
- if not request.user.is_authenticated():
+ if not request.user.is_authenticated:
user = authenticate(username = request.POST.get('username', '_anonuser'), password = 'nopass')
if user is None:
user = User.objects.create_user(username = request.POST.get('username', '_anonuser'), email = request.POST.get('email', ''), password = "nopass")
diff --git a/poky/bitbake/lib/toaster/toastergui/widgets.py b/poky/bitbake/lib/toaster/toastergui/widgets.py
index 645f4587e..ceff52942 100644
--- a/poky/bitbake/lib/toaster/toastergui/widgets.py
+++ b/poky/bitbake/lib/toaster/toastergui/widgets.py
@@ -22,7 +22,7 @@ from django.utils import timezone
from toastergui.templatetags.projecttags import sectohms, get_tasks
from toastergui.templatetags.projecttags import json as template_json
from django.http import JsonResponse
-from django.core.urlresolvers import reverse
+from django.urls import reverse
import types
import json
diff --git a/poky/bitbake/lib/toaster/toastermain/management/commands/builddelete.py b/poky/bitbake/lib/toaster/toastermain/management/commands/builddelete.py
index c2d773a57..93919dec2 100644
--- a/poky/bitbake/lib/toaster/toastermain/management/commands/builddelete.py
+++ b/poky/bitbake/lib/toaster/toastermain/management/commands/builddelete.py
@@ -2,12 +2,10 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-from django.core.management.base import BaseCommand, CommandError
+from django.core.management.base import BaseCommand
from django.core.exceptions import ObjectDoesNotExist
from orm.models import Build
from django.db import OperationalError
-import os
-
class Command(BaseCommand):
diff --git a/poky/bitbake/lib/toaster/toastermain/management/commands/buildimport.py b/poky/bitbake/lib/toaster/toastermain/management/commands/buildimport.py
index 408ad44e6..59da6ff7a 100644
--- a/poky/bitbake/lib/toaster/toastermain/management/commands/buildimport.py
+++ b/poky/bitbake/lib/toaster/toastermain/management/commands/buildimport.py
@@ -31,12 +31,10 @@
# ../bitbake/lib/toaster/manage.py buildimport --name=test --path=`pwd` --callback="" --command=import
-from django.core.management.base import BaseCommand, CommandError
-from django.core.exceptions import ObjectDoesNotExist
-from orm.models import ProjectManager, Project, Release, ProjectVariable
+from django.core.management.base import BaseCommand
+from orm.models import Project, Release, ProjectVariable
from orm.models import Layer, Layer_Version, LayerSource, ProjectLayer
from toastergui.api import scan_layer_content
-from django.db import OperationalError
import os
import re
@@ -116,6 +114,15 @@ class Command(BaseCommand):
help='command (configure,reconfigure,import)',
)
+ def get_var(self, varname):
+ value = self.vars.get(varname, '')
+ if value:
+ varrefs = re.findall('\${([^}]*)}', value)
+ for ref in varrefs:
+ if ref in self.vars:
+ value = value.replace('${%s}' % ref, self.vars[ref])
+ return value
+
# Extract the bb variables from a conf file
def scan_conf(self,fn):
vars = self.vars
@@ -243,7 +250,7 @@ class Command(BaseCommand):
# Apply table of all layer versions
def extract_bblayers(self):
# set up the constants
- bblayer_str = self.vars['BBLAYERS']
+ bblayer_str = self.get_var('BBLAYERS')
TOASTER_DIR = os.environ.get('TOASTER_DIR')
INSTALL_CLONE_PREFIX = os.path.dirname(TOASTER_DIR) + "/"
TOASTER_CLONE_PREFIX = TOASTER_DIR + "/_toaster_clones/"
@@ -423,6 +430,7 @@ class Command(BaseCommand):
# Scan the project's conf files (if any)
def scan_conf_variables(self,project_path):
+ self.vars['TOPDIR'] = project_path
# scan the project's settings, add any new layers or variables
if os.path.isfile("%s/conf/local.conf" % project_path):
self.scan_conf("%s/conf/local.conf" % project_path)
@@ -468,7 +476,6 @@ class Command(BaseCommand):
release_name = 'None' if not pl.layercommit.release else pl.layercommit.release.name
print(" AFTER :ProjectLayer=%s,%s,%s,%s" % (pl.layercommit.layer.name,release_name,pl.layercommit.branch,pl.layercommit.commit))
-
def handle(self, *args, **options):
project_name = options['name']
project_path = options['path']
@@ -507,7 +514,7 @@ class Command(BaseCommand):
default_release = Release.objects.get(id=1)
# SANITY: if 'reconfig' but project does not exist (deleted externally), switch to 'import'
- if ("reconfigure" == options['command']) and (None == project):
+ if ("reconfigure" == options['command']) and project is None:
options['command'] = 'import'
# 'Configure':
@@ -553,6 +560,7 @@ class Command(BaseCommand):
# preset the mode and default image recipe
project.set_variable(Project.PROJECT_SPECIFIC_ISNEW,Project.PROJECT_SPECIFIC_NEW)
project.set_variable(Project.PROJECT_SPECIFIC_DEFAULTIMAGE,"core-image-minimal")
+
# Assert any extended/custom actions or variables for new non-Toaster projects
if not len(self.toaster_vars):
pass
diff --git a/poky/bitbake/lib/toaster/toastermain/management/commands/buildslist.py b/poky/bitbake/lib/toaster/toastermain/management/commands/buildslist.py
index 1ed20224d..3ad5289c5 100644
--- a/poky/bitbake/lib/toaster/toastermain/management/commands/buildslist.py
+++ b/poky/bitbake/lib/toaster/toastermain/management/commands/buildslist.py
@@ -2,9 +2,8 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-from django.core.management.base import BaseCommand, CommandError
+from django.core.management.base import BaseCommand
from orm.models import Build
-import os
diff --git a/poky/bitbake/lib/toaster/toastermain/settings.py b/poky/bitbake/lib/toaster/toastermain/settings.py
index 74501fa26..a4b370c8d 100644
--- a/poky/bitbake/lib/toaster/toastermain/settings.py
+++ b/poky/bitbake/lib/toaster/toastermain/settings.py
@@ -189,15 +189,16 @@ TEMPLATES = [
},
]
-MIDDLEWARE_CLASSES = (
+MIDDLEWARE = [
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
- # Uncomment the next line for simple clickjacking protection:
- # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
-)
+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
+ 'django.contrib.messages.middleware.MessageMiddleware',
+ 'django.contrib.sessions.middleware.SessionMiddleware',
+]
CACHES = {
# 'default': {
@@ -248,7 +249,7 @@ FRESH_ENABLED = False
if os.environ.get('TOASTER_DEVEL', None) is not None:
try:
import fresh
- MIDDLEWARE_CLASSES = ("fresh.middleware.FreshMiddleware",) + MIDDLEWARE_CLASSES
+ MIDDLEWARE = ["fresh.middleware.FreshMiddleware",] + MIDDLEWARE
INSTALLED_APPS = INSTALLED_APPS + ('fresh',)
FRESH_ENABLED = True
except:
@@ -258,8 +259,8 @@ DEBUG_PANEL_ENABLED = False
if os.environ.get('TOASTER_DEVEL', None) is not None:
try:
import debug_toolbar, debug_panel
- MIDDLEWARE_CLASSES = ('debug_panel.middleware.DebugPanelMiddleware',) + MIDDLEWARE_CLASSES
- #MIDDLEWARE_CLASSES = MIDDLEWARE_CLASSES + ('debug_toolbar.middleware.DebugToolbarMiddleware',)
+ MIDDLEWARE = ['debug_panel.middleware.DebugPanelMiddleware',] + MIDDLEWARE
+ #MIDDLEWARE = MIDDLEWARE + ['debug_toolbar.middleware.DebugToolbarMiddleware',]
INSTALLED_APPS = INSTALLED_APPS + ('debug_toolbar','debug_panel',)
DEBUG_PANEL_ENABLED = True
@@ -352,5 +353,3 @@ def activate_synchronous_off(sender, connection, **kwargs):
connection_created.connect(activate_synchronous_off)
#
-
-
diff --git a/poky/bitbake/lib/toaster/toastermain/urls.py b/poky/bitbake/lib/toaster/toastermain/urls.py
index ac77bc363..5fb520b38 100644
--- a/poky/bitbake/lib/toaster/toastermain/urls.py
+++ b/poky/bitbake/lib/toaster/toastermain/urls.py
@@ -51,7 +51,7 @@ if toastermain.settings.DEBUG_PANEL_ENABLED:
urlpatterns = [
# Uncomment the next line to enable the admin:
- url(r'^admin/', include(admin.site.urls)),
+ url(r'^admin/', admin.site.urls),
] + urlpatterns
# Automatically discover urls.py in various apps, beside our own
@@ -69,7 +69,7 @@ for t in os.walk(os.path.dirname(currentdir)):
# make sure we don't have this module name in
conflict = False
for p in urlpatterns:
- if p.regex.pattern == '^' + modulename + '/':
+ if p.pattern.regex.pattern == '^' + modulename + '/':
conflict = True
if not conflict:
urlpatterns.insert(0, url(r'^' + modulename + '/', include ( modulename + '.urls')))