help-tar
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-tar] [PATCH] Add --clamp-mtime option


From: Jérémy Bobbio
Subject: Re: [Help-tar] [PATCH] Add --clamp-mtime option
Date: Thu, 4 Jun 2015 17:59:11 +0200
User-agent: Mutt/1.5.23 (2014-03-12)

Hi!

Paul, Thanks for your quick reply. :)

Paul Eggert:
> An option along these lines sounds like it would be useful, thanks.  But I
> have some confusions and/or problems with the suggestion.
> 
> First, the patch doesn't alter the documentation, which is typically the
> hardest part of any change like this.  The documentation should give an
> example of how the new option would be useful.

Indeed. I have only changed `--help` output so far:

    --clamp-mtime     only set time when the file is more recent
                      than what was given with --mtime

If you feel it's a worthwile addition to `tar`, I shall update the rest
of the documentation.

> Second, I'm having trouble seeing how to use the option (and this is
> probably because of the first item...).  How does the maintainer keep track
> of a clamped mtime?  Isn't that a hassle to maintain?  Can't 'tar' do this
> for you, instead of your having to do it?

I am not sure who is the “maintainer” you are referring to.

To give a concrete example, to get reproducible mtimes in a tar file,
you can currently do the following:

    BUILD_DATE="Mon, 01 Jun 2015 18:11:50 +0200"

    tar -cf archive.tar --mtime="$BUILD_DATE" "$DIR"

You can get the same result by doing:

    find "$DIR" -print0 | xargs -0r touch --no-dereference --date="$BUILD_DATE"
    tar -cf archive.tar "$DIR"

But this makes every timestamps equal. Instead, to keep some
information about the original files, we currently do:

    find "$DIR" -newermt "$BUILD_DATE' -print0 | \
        xargs -0r touch --no-dereference --date="$BUILD_DATE"
    tar -cf archive.tar "$DIR"

And with the `--clamp-mtime` option, we could replace the last lines by:

    tar -cf archive.tar --mtime="$BUILD_DATE" --clamp-mtime "$DIR"

Bonus: actual file metadata are not altered.

(This leaves aside other issues I have previously mentioned, focusing
only on timestamps. This would already help us tackle the issue of
the mtimes of the tarballs inside .deb).

In the context of Debian packages, we can set BUILD_DATE to the value of
`dpkg-parsechangelog -S Date`. So no further changes would be required.

-- 
Lunar                                .''`. 
address@hidden                    : :Ⓐ  :  # apt-get install anarchism
                                    `. `'` 
                                      `-   

Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]