[Mesa-dev] [PATCH 2/4] anv: use cache uuid based on the build timestamp.

Michel Dänzer michel at daenzer.net
Mon Jun 27 06:34:16 UTC 2016


On 24.06.2016 19:21, Emil Velikov wrote:
> On 24 June 2016 at 03:32, Michel Dänzer <michel at daenzer.net> wrote:
>> On 23.06.2016 22:25, Emil Velikov wrote:
>>> On 23 June 2016 at 03:49, Michel Dänzer <michel at daenzer.net> wrote:
>>>> On 22.06.2016 21:04, Emil Velikov wrote:
>>>>> From: Emil Velikov <emil.velikov at collabora.com>
>>>>>
>>>>> Do not rely on the git sha1:
>>>>>  - its current truncated form makes it less unique
>>>>>  - it does not attribute for local (Vulkand or otherwise) changes
>>>>>
>>>>> Use a timestamp produced at the time of build. It's perfectly unique,
>>>>> unless someone explicitly thinkers with their system clock. Even then
>>>>> chances of producing the exact same one are very small, if not zero.
>>>>>
>>>>> Cc: Jason Ekstrand <jason at jlekstrand.net>
>>>>> Cc: mesa-stable at lists.freedesktop.org
>>>>> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
>>>>> ---
>>>>> Current approach uses seconds since Epoch, but if people prefer we
>>>>> can use nano seconds, combination of the two and/or other.
>>>>> ---
>>>>>  src/intel/vulkan/.gitignore   |  2 ++
>>>>>  src/intel/vulkan/Makefile.am  | 15 ++++++++++++++-
>>>>>  src/intel/vulkan/anv_device.c |  4 ++--
>>>>>  3 files changed, 18 insertions(+), 3 deletions(-)
>>>>>
>>>>> diff --git a/src/intel/vulkan/.gitignore b/src/intel/vulkan/.gitignore
>>>>> index a496146..7ef6a48 100644
>>>>> --- a/src/intel/vulkan/.gitignore
>>>>> +++ b/src/intel/vulkan/.gitignore
>>>>> @@ -2,3 +2,5 @@
>>>>>  /anv_entrypoints.c
>>>>>  /anv_entrypoints.h
>>>>>  /dev_icd.json
>>>>> +/anv_timestamp.h.tmp
>>>>> +/anv_timestamp.h
>>>>> diff --git a/src/intel/vulkan/Makefile.am b/src/intel/vulkan/Makefile.am
>>>>> index 4d9ff90..8332ae5 100644
>>>>> --- a/src/intel/vulkan/Makefile.am
>>>>> +++ b/src/intel/vulkan/Makefile.am
>>>>> @@ -131,7 +131,20 @@ anv_entrypoints.c : anv_entrypoints_gen.py $(vulkan_include_HEADERS)
>>>>>       $(AM_V_GEN) cat $(vulkan_include_HEADERS) |\
>>>>>       $(PYTHON2) $(srcdir)/anv_entrypoints_gen.py code > $@
>>>>>
>>>>> -BUILT_SOURCES = $(VULKAN_GENERATED_FILES)
>>>>> +
>>>>> +.PHONY: anv_timestamp.h.tmp
>>>>> +anv_timestamp.h.tmp:
>>>>> +     $(AM_V_GEN) echo "#define ANV_TIMESTAMP `date +%s`" > $@
>>>>
>>>> This conflicts with efforts to make builds reproducible, see e.g.
>>>> https://wiki.debian.org/ReproducibleBuilds . One technique used by such
>>>> efforts is to replace any timestamps with all 0s.
>>>>
>>> Thanks to letting me know before things got swapped with 0s. Is there
>>> a way to contact/check how other projects have handled/resolved this ?
>>
>> The wiki page above has a link to
>> https://wiki.debian.org/ReproducibleBuilds/Contribute which lists
>> several ways to get in touch with people working on this.
>>
> Sweet, thanks.
> 
>>
>>>> Would it be possible to generate a hash over all source files listed in
>>>> any Makefile.sources, or something like that?
>>>>
>>> If you want to pursue that task please do.
>>
>> I'm not going to work on this, I merely suggested a possible alternative.
>>
> JFYI Pekka did mention the exact same alternative, and the above
> mentioned 'limitations' came to play. Would be great if we didn't have
> to care for either one, but I suspect that there's at least dozen of
> people who do.
> 
> I'll check with the people leading the initiative for other ways,
> meanwhile do you feel strongly against the patch ?

Yes, I agree with Dave that this approach is a dead end due to the above
conflict.


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the mesa-dev mailing list