build: introduce SOURCE_DATE_EPOCH variable
SOURCE_DATE_EPOCH is the date of the last modified file using git/svn as date source. See https://reproducible-builds.org/specs/source-date-epoch/ Signed-off-by: Alexander Couzens <lynxis@fe80.eu> Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 48584
This commit is contained in:
		@@ -24,6 +24,7 @@ export RELEASE
 | 
				
			|||||||
export REVISION
 | 
					export REVISION
 | 
				
			||||||
export GIT_CONFIG_PARAMETERS='core.autocrlf=false'
 | 
					export GIT_CONFIG_PARAMETERS='core.autocrlf=false'
 | 
				
			||||||
export MAKE_JOBSERVER=$(filter --jobserver%,$(MAKEFLAGS))
 | 
					export MAKE_JOBSERVER=$(filter --jobserver%,$(MAKEFLAGS))
 | 
				
			||||||
 | 
					export SOURCE_DATE_EPOCH:=$(shell $(TOPDIR)/scripts/get_source_date_epoch.sh)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# prevent perforce from messing with the patch utility
 | 
					# prevent perforce from messing with the patch utility
 | 
				
			||||||
unexport P4PORT P4USER P4CONFIG P4CLIENT
 | 
					unexport P4PORT P4USER P4CONFIG P4CLIENT
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										31
									
								
								scripts/get_source_date_epoch.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										31
									
								
								scripts/get_source_date_epoch.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					export LANG=C
 | 
				
			||||||
 | 
					export LC_ALL=C
 | 
				
			||||||
 | 
					[ -n "$TOPDIR" ] && cd $TOPDIR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					try_version() {
 | 
				
			||||||
 | 
						[ -f version.date ] || return 1
 | 
				
			||||||
 | 
						SOURCE_DATE_EPOCH="$(cat version.date)"
 | 
				
			||||||
 | 
						[ -n "$SOURCE_DATE_EPOCH" ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					try_svn() {
 | 
				
			||||||
 | 
						[ -d .svn ] || return 1
 | 
				
			||||||
 | 
						SOURCE_DATE_EPOCH="$(./scripts/portable_date.sh "$(svn info --show-item last-changed-date)" +%s)"
 | 
				
			||||||
 | 
						[ -n "$SOURCE_DATE_EPOCH" ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					try_git() {
 | 
				
			||||||
 | 
						[ -e .git ] || return 1
 | 
				
			||||||
 | 
						SOURCE_DATE_EPOCH="$(git log -1 --format=format:%ct)"
 | 
				
			||||||
 | 
						[ -n "$SOURCE_DATE_EPOCH" ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					try_hg() {
 | 
				
			||||||
 | 
						[ -d .hg ] || return 1
 | 
				
			||||||
 | 
						SOURCE_DATE_EPOCH=""
 | 
				
			||||||
 | 
						[ -n "$SOURCE_DATE_EPOCH" ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					try_version || try_svn || try_git || try_hg || SOURCE_DATE_EPOCH=""
 | 
				
			||||||
 | 
					echo "$SOURCE_DATE_EPOCH"
 | 
				
			||||||
		Reference in New Issue
	
	Block a user