#961064 reprotest: should not default to vary time and date

Package:
reprotest
Source:
reprotest
Submitter:
James Valleroy
Date:
2023-01-28 00:51:05 UTC
Severity:
important
Tags:
#961064#5
Date:
2020-05-19 18:49:58 UTC
From:
To:
Dear Maintainer,

I am creating a package php-arthurhoaro-web-thumbnailer, and reprotest
is sometimes failing in the Salsa CI pipeline.

https://salsa.debian.org/php-team/pear/php-arthurhoaro-web-thumbnailer/-/jobs/751213

The failing test case creates a file representing a file in a
cache. It expects the modified time of the file to be within 1 hour of
current time.

I added some prints (cleaned up and commented version below) to help debug:

time(): 1631998736
touch($cacheFile);
clearstatcache();  // has no effect
filemtime($cacheFile): 1589907896
touch("debug-reprotest");  // a new file, see that it behaves the same way
filemtime("debug-reprotest"): 1589907896

The difference between time() and filemtime($cacheFile) is 487+ days,
the same value is shown passed to faketime in the log.

Please consider whether to change the default use of faketime.

#961064#10
Date:
2020-05-20 08:08:21 UTC
From:
To:
control: retitle -1 reprotest: should not default to vary time and date
thanks

Hi James,

thanks for your bug report!

I'm not sure if this is a bug in reprotest or faketime, however we know about
several scenarios where faketime breaks stuff, thus reprotest should not
vary time and date by default, so that reprotest can be run more easily
and more successfullly in CI tests.

Maybe it's worth to clone this bug and fix the underlying issue too, dunno.
------------------------------------------------------------------------------- holger@(debian|reproducible-builds|layer-acht).org PGP fingerprint: B8BF 5413 7B09 D35C F026 FE9D 091A B856 069A AA1C There are no jobs on a dead planet.
#961064#17
Date:
2022-06-01 11:29:46 UTC
From:
To:
merge 961064 1012035 993339
severity 961064 important
tags 961064 + help newcomer
thanks

indeed, merging with "#961064: reprotest: should not default to vary time and date"
and raising the severity and tagging help because reprotest is (almost) unmaintained
upstream, and tagging newcomer as the fix should be really easy, so if you are
looking for ways to start contributing to reproducible builds, please do! ;p :)

I'll certainly be happy to review, merge and upload.

#961064#28
Date:
2023-01-16 11:46:19 UTC
From:
To:
Hi,

Would you consider this too simplistic?

BR,
Gábor

#961064#33
Date:
2023-01-28 00:47:31 UTC
From:
To:
Given that the overwhelming majority of reproducible builds issues are
time related, and regressions happen all the time, disabling this would
fail to catch many issues, for what I believe to be a small minority of
affected packages.  I have personally run thousands of builds using
reprotest, and only rarely have come across this issue.

It typically causes issues with packages that patch files at build time,
such as applying debian/patches/ ... but most definitely not all
patches.

The salsa-ci pipelines document how to add custom arguments to reprotest:

https://salsa.debian.org/salsa-ci-team/pipeline#adding-extra-arguments-to-reprotest

So adding to your configuration:

  variables:
    SALSA_CI_REPROTEST_ARGS: --vary=-time

Might be good to update their documentation to use the --vary arguments
and include -time,-build_path ... I can maybe propose a patch to the
salsa-ci team for that.


live well,
  vagrant