On 11/06/2017 10:23 AM, Michał Górny wrote:
> W dniu pon, 06.11.2017 o godzinie 08∶52 -0800, użytkownik Zac Medico
> napisał:
>> On 11/06/2017 08:47 AM, Michał Górny wrote:
>>> W dniu pon, 06.11.2017 o godzinie 08∶44 -0800, użytkownik Zac Medico
>>> napisał:
>>>> On 11/06/2017 07:27 AM, Michał Górny wrote:
>>>>> @@ -148,15 +147,21 @@ class Manifest(object):
>>>>>           self.pkgdir = _unicode_decode(pkgdir).rstrip(os.sep) + os.sep
>>>>>           self.fhashdict = {}
>>>>>           self.hashes = set()
>>>>> +         self.required_hashes = set()
>>>>>  
>>>>>           if hashes is None:
>>>>>                   hashes = MANIFEST2_HASH_DEFAULTS
>>>>> +         if required_hashes is None:
>>>>> +                 required_hashes = hashes
>>>>>  
>>>>>           self.hashes.update(hashes)
>>>>>           self.hashes.difference_update(hashname for hashname in \
>>>>>                   list(self.hashes) if hashname not in 
>>>>> get_valid_checksum_keys())
>>>>>           self.hashes.add("size")
>>>>> -         self.hashes.add(MANIFEST2_REQUIRED_HASH)
>>>>> +
>>>>> +         self.required_hashes.update(required_hashes)
>>>>> +         self.required_hashes.intersection_update(self.hashes)
>>>>> +
>>>>
>>>> Requiring that presence of digests for all manifest-hashes can be
>>>> problematic, because when we extend manifest-hashes it means that nobody
>>>> can regenerate a particular manifest without fetching *all* distfiles
>>>> referenced in the Manifest. It's much more friendly if we generate the
>>>> missing digests when the distfiles happen to be available in DISTDIR,
>>>> which is how the portage currently behaves.
>>>
>>> This doesn't change. The intersection only strips away hashes that are
>>> not in 'self.hashes'.
>>
>> Then the bug must have been introduced by changes to behavior of
>> digestgen in the same patch. Try adding MD5 to manifest-hashes, and then
>> try generating a manifest with no internet connection and DISTDIR set to
>> an empty directory. You'll see that it fails with the patch, but
>> succeeds with the current master branch.
> 
> You're suppose to add 'manifest-required-hashes' to layout.conf if you
> want to introduce the partial fetching behavior.

Ah, ok, that works for me. Please add a description of
manifest-required-hashes after manifest\-hashes in man/portage.5.
-- 
Thanks,
Zac

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to