Re: [08/34] initramfs: Use KBUILD_BUILD_TIMESTAMP for generated entries

Milton Miller
2011-04-05T17:31:58Z

On Tue, 05 Apr 2011 about 14:58:55 -0000, Michal Marek wrote:
>
> gen_init_cpio uses the current time for symlinks, special files and
> directories.

gen_init_cpio gets the current time and uses it for each symlink,
special file, and directory.

Grab the current time once, and ...

> Make it possible to override this with the
(s/this/it/)
> KBUILD_BUILD_TIMESTAMP variable for reproducible builds.
>
> Signed-off-by: Michal Marek <mmarek@suse.cz>
>
> ---
> scripts/gen_initramfs_list.sh | 4 ++++
> usr/gen_init_cpio.c | 17 +++++++++++------
> 2 files changed, 15 insertions(+), 6 deletions(-)
>
> diff --git a/scripts/gen_initramfs_list.sh b/scripts/gen_initramfs_list.sh
snip
> diff --git a/usr/gen_init_cpio.c b/usr/gen_init_cpio.c
> index 7f06884..11f604d 100644
> --- a/usr/gen_init_cpio.c
> +++ b/usr/gen_init_cpio.c
snip
> @@ -529,6 +527,7 @@ int main (int argc, char *argv[])
> char *args, *type;
> int ec = 0;
> int line_nr = 0;
> + const char *env;
>
> if (2 != argc) {
> usage(argv[0]);
> @@ -544,6 +543,12 @@ int main (int argc, char *argv[])
> exit(1);
> }
>
> + env = getenv("CPIO_TIMESTAMP");
> + if (env)
> + default_mtime = atol(env);
> + if (!default_mtime)
> + default_mtime = time(NULL);
> +

Please pass it via an explicit flag in argv instead of magic env variables.

The other current use of the environment (the expansion of variables
in the location name) is via explicit reference in the input file.

Also, please use strol and check that the whole string is consumed.

milton