From 0e408df69fd7a380d96501f13e81976eaea26fa4 Mon Sep 17 00:00:00 2001 From: Tyler Hall Date: Wed, 19 Dec 2012 18:26:50 -0500 Subject: bitbake: fetch2: Sort file checksums by value, not path Changing the path to a file could change the task hash even if the file still has the same checksum. This occurs when the task depends on multiple files and the sort order of their paths changes. Usually the sorting is consistent because layers tend to have the same relative paths, but this should take care of other configuations. The problem arose when using a .bbappend to add files to a recipe in another layer. If the layer is located alongside the other layers and their parent directory is moved, the hash does not change. However, moving the .bbappend layer outside of the common directory can change the path sort order and the task hash. (Bitbake rev: 22bd19d208f0251f5a1f9b98f3cac66181f3fc07) Signed-off-by: Tyler Hall Signed-off-by: Richard Purdie --- bitbake/lib/bb/fetch2/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'bitbake/lib/bb/fetch2') diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index 150dc3c18f..47463561e3 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/lib/bb/fetch2/__init__.py @@ -30,6 +30,7 @@ from __future__ import print_function import os, re import logging import urllib +import operator import bb.persist_data, bb.utils import bb.checksum from bb import data @@ -729,7 +730,7 @@ def get_file_checksums(filelist, pn): if checksum: checksums.append((pth, checksum)) - checksums.sort() + checksums.sort(key=operator.itemgetter(1)) return checksums -- cgit v1.2.3-54-g00ecf