Bug 34203

Summary: Add SOURCE_DATE_EPOCH support
Product: Sisyphus Reporter: Dmitry V. Levin <ldv>
Component: gearAssignee: Dmitry V. Levin <ldv>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P3 CC: glebfm, ldv, legion, placeholder, vseleznv
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 34214, 34105    

Description Dmitry V. Levin 2017-11-16 06:51:50 MSK
When gear executes a command and passes it a pkg.tar generated from a tag object,
it should pass to this command a SOURCE_DATE_EPOCH environment variable initialized from the tag object: if the tag object is signed, SOURCE_DATE_EPOCH should be defined to the signature time, otherwise to the time saved in tagger entry.
Comment 1 Dmitry V. Levin 2017-11-20 16:37:05 MSK
Alternatively, when given a tag object, gear can ignore the signature time and always use the time saved in tagger entry, assuming that in signed tags the time saved in tagger entry is also signed.

In addition, when given a commit object, gear can use the time saved in committer entry.
Comment 2 Dmitry V. Levin 2017-11-20 18:39:40 MSK
I'm going to implement the following change:

When gear extracts from a tag object, it would set $SOURCE_DATE_EPOCH
to the tagger timestamp before invoking an external command.
Likewise, when gear extracts from a commit object, it would set $SOURCE_DATE_EPOCH
to the committer timestamp before invoking an external command.

When $SOURCE_DATE_EPOCH is set, gear-command-tar would specify tar --mtime option,
thus setting mtime of files in the pkg.tar to $SOURCE_DATE_EPOCH.
Comment 3 Repository Robot 2017-11-20 19:32:48 MSK
gear-2.1.1-alt1 -> sisyphus:

Mon Nov 20 2017 Dmitry V. Levin <ldv@altlinux> 2.1.1-alt1
- Applied bash4 compatibility workaround (closes: #32147).
- Added SOURCE_DATE_EPOCH support (closes: #34203).