Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC] set timestamps in a package only for files newer than commit date #32638

Closed
tornaria opened this issue Aug 22, 2021 · 4 comments
Closed
Labels
xbps-src xbps-src related

Comments

@tornaria
Copy link
Contributor

The hook pre-pkg/90-set-timestamps.sh touches all files in a pkg to set the mtimes to the commit date. When a package installs files verbatim from its source, it might make sense to keep the original timestamp. This could be acomplished by using find predicate -newermt as in:

--- a/common/hooks/pre-pkg/90-set-timestamps.sh
+++ b/common/hooks/pre-pkg/90-set-timestamps.sh
@@ -5,6 +5,6 @@ hook() {
        # If SOURCE_DATE_EPOCH is set, set mtimes to that timestamp.
        if [ -n "$SOURCE_DATE_EPOCH" ]; then
                msg_normal "$pkgver: setting mtimes to %s\n" "$(date --date "@$SOURCE_DATE_EPOCH")"
-               find $PKGDESTDIR -print0 | xargs -0 touch -h --date "@$SOURCE_DATE_EPOCH"
+               find $PKGDESTDIR -newermt "@$SOURCE_DATE_EPOCH" -print0 | xargs -0 touch -h --date "@$SOURCE_DATE_EPOCH"
        fi
 }

I am thinking on a package like pari-elldata which ships only data files from its source. The alternative I found is to set XBPS_USE_BUILD_MTIME=no in the template, but (a) that is only good for this pkg because I know all the files in the package have a deterministic timestamp and (b) xlint complains when using this variable.

Rationale: the timestamp of the original files in the source is more canonical than the commit date.

@Chocimier
Copy link
Member

Using commit date is not for canonicality but reproducibility. Time should be adjusted even when build machine clock is set eariler than commit date.

Are there any problems with pari-elldata files having build date?

@paper42 paper42 added the xbps-src xbps-src related label Aug 23, 2021
@tornaria
Copy link
Contributor Author

Using commit date is not for canonicality but reproducibility. Time should be adjusted even when build machine clock is set eariler than commit date.

I wouldn't know how to avoid that in a simple way, is that a normal issue? Maybe the current date can be compared with the commit date and fail if it's older?

Are there any problems with pari-elldata files having build date?

Not really. It just seemed a good idea to ship unmodified files with their original dates. Maybe I'm overthinking it. For the packages in question (PR #32641) I set XBPS_USE_BUILD_MTIME=no. Nothing breaks without this.

@ericonr
Copy link
Member

ericonr commented Aug 23, 2021

XBPS_USE_BUILD_MTIME=no

I don't think it's good style to poke at such bits. It's not xbps-src "API".

@tornaria
Copy link
Contributor Author

XBPS_USE_BUILD_MTIME=no

I don't think it's good style to poke at such bits. It's not xbps-src "API".

Ok, I removed that in #32641, and I'm closing this now. Thanks for your feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
xbps-src xbps-src related
Projects
None yet
Development

No branches or pull requests

4 participants