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

Emil Velikov emil.l.velikov at gmail.com
Thu Jun 23 13:25:22 UTC 2016


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 page linked looks like a policy/guidelines one and I'm struggling
to see any examples of how things were resolved for project X or Y :-\

>
> 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.

A couple of humble requests a) can you get some very rough measurement
how long all the hashing takes, b) please try to avoid adding extra
external dependencies (not sure how many people will like that).

Thanks
Emil


More information about the mesa-dev mailing list