[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Using 'libfaketime' for reproducible builds
From: |
Werner LEMBERG |
Subject: |
Re: Using 'libfaketime' for reproducible builds |
Date: |
Mon, 28 Dec 2020 11:53:04 +0100 (CET) |
>> I definitely consider intercepting various syscalls by means of
>> LD_PRELOADing more intrusive than setting a single environment
>> variable that was invented for the purpose of setting timestamps.
>> Just think of a new shiny syscall that might add a new source of
>> non-reproducibility.
>
> I agree with Jonas. As a further argument, LD_PRELOAD is also
> dependent on the platform; I think it wouldn't work on OSX, for
> example.
'libfaketime' works on OSX, too. According to the documentation, you
have to do
export DYLD_FORCE_FLAT_NAMESPACE=1
export DYLD_INSERT_LIBRARIES=/path/to/libfaketime.1.dylib
export FAKETIME="2020-12-24 00:00:00"
My final conclusion is that 'libfaketime' offers a nice route to get
reproducible builds with minimum effort. `SOURCE_DATE_EPOCH` fails
miserably with gs, and making gs do what we want is hard, if not
impossible, as discussed in a previous mail.
If people want to work more on gs reproducibility issues, please do!
I won't.
Werner