# fetches when sufficient digests already exist. To ease transition
# while Manifest 1 is being removed, only require hashes that will
# exist before and after the transition.
- required_hash_types = set(portage.const.MANIFEST1_HASH_FUNCTIONS
- ).intersection(portage.const.MANIFEST2_HASH_FUNCTIONS)
- required_hash_types.add(portage.const.MANIFEST2_REQUIRED_HASH)
+ required_hash_types = set()
required_hash_types.add("size")
+ required_hash_types.add(portage.const.MANIFEST2_REQUIRED_HASH)
dist_hashes = mf.fhashdict.get("DIST", {})
missing_hashes = set()
for myfile in distfiles_map:
# Skip files that we already have digests for.
mf = Manifest(mysettings["O"], mysettings["DISTDIR"])
mydigests = mf.getTypeDigests("DIST")
+ required_hash_types = set()
+ required_hash_types.add("size")
+ required_hash_types.add(portage.const.MANIFEST2_REQUIRED_HASH)
for filename, hashes in mydigests.iteritems():
- if len(hashes) == len(mf.hashes):
+ if not required_hash_types.difference(hashes):
checkme = [i for i in checkme if i != filename]
fetchme = [i for i in fetchme \
if os.path.basename(i) != filename]
# repoman passes in an empty list, which implies that all distfiles
# are required.
requiredDistfiles = distlist.copy()
+ required_hash_types = set()
+ required_hash_types.add("size")
+ required_hash_types.add(portage.const.MANIFEST2_REQUIRED_HASH)
for f in distlist:
fname = os.path.join(self.distdir, f)
mystat = None
(assumeDistHashesAlways and mystat is not None and \
len(distfilehashes[f]) == len(self.hashes) and \
distfilehashes[f]["size"] == mystat.st_size)) and \
- portage.const.MANIFEST2_REQUIRED_HASH in distfilehashes[f].keys():
+ not required_hash_types.difference(distfilehashes[f]):
self.fhashdict["DIST"][f] = distfilehashes[f]
else:
try: