]> granicus.if.org Git - shadow/commit
Make the sp_lstchg shadow field reproducible.
authorChris Lamb <lamby@debian.org>
Wed, 15 Mar 2017 10:36:21 +0000 (10:36 +0000)
committerChris Lamb <chris@chris-lamb.co.uk>
Mon, 10 Apr 2017 21:29:21 +0000 (22:29 +0100)
commitcb610d54b47ea2fc3da5a1b7c5a71274ada91371
tree4cc1cc2ab71e9510e0957305edbcf6091086ca98
parent2f36da520114904c5001ab2f5b1c96e30932d3ad
Make the sp_lstchg shadow field reproducible.

The third field in the /etc/shadow file (sp_lstchg) contains the date of
the last password change expressed as the number of days since Jan 1, 1970.
As this is a relative time, creating a user today will result in:

   username:17238:0:99999:7:::

whilst creating the same user tomorrow will result in:

    username:17239:0:99999:7:::

This has an impact for the Reproducible Builds[0] project where we aim to
be independent of as many elements the build environment as possible,
including the current date.

This patch changes the behaviour to use the SOURCE_DATE_EPOCH[1]
environment variable (instead of Jan 1, 1970) if valid.

 [0] https://reproducible-builds.org/
 [1] https://reproducible-builds.org/specs/source-date-epoch/

Signed-off-by: Chris Lamb <lamby@debian.org>
lib/prototypes.h
libmisc/Makefile.am
libmisc/gettime.c [new file with mode: 0644]
src/chpasswd.c
src/newusers.c
src/passwd.c
src/useradd.c
src/usermod.c