@@ -35,7 +35,7 @@ def info(str)
35
35
puts str unless @options [ :quiet ]
36
36
end
37
37
38
- def build_one_configuration ( suite , arch , build_desc , reference_datetime )
38
+ def build_one_configuration ( suite , arch , build_desc )
39
39
FileUtils . rm_f ( "var/build.log" )
40
40
41
41
bits = @bitness [ arch ] or raise "unknown architecture ${arch}"
@@ -119,16 +119,24 @@ def build_one_configuration(suite, arch, build_desc, reference_datetime)
119
119
script . puts "GBUILD_COMMON_CACHE=$HOME/cache/common"
120
120
end
121
121
script . puts "MAKEOPTS=(-j#{ @options [ :num_procs ] } )"
122
- ( ref_date , ref_time ) = reference_datetime . split
123
- script . puts "REFERENCE_DATETIME='#{ reference_datetime } '"
124
- script . puts "REFERENCE_DATE='#{ ref_date } '"
125
- script . puts "REFERENCE_TIME='#{ ref_time } '"
126
122
script . puts
123
+ author_date = nil
127
124
build_desc [ "remotes" ] . each do |remote |
128
125
dir = sanitize ( remote [ "dir" ] , remote [ "dir" ] )
126
+
127
+ author_date = `cd inputs/#{ dir } && git log --format=@%at -1 | date +"%F %T" -u -f -` . strip
128
+ raise "error looking up author date in #{ dir } " unless $?. exitstatus == 0
129
+
129
130
system! "copy-to-target #{ @quiet_flag } inputs/#{ dir } build/"
130
131
script . puts "(cd build/#{ dir } && git reset -q --hard && git clean -q -f -d)"
131
132
end
133
+ script . puts
134
+ ref_datetime = build_desc [ "reference_datetime" ] || author_date
135
+ ( ref_date , ref_time ) = ref_datetime . split
136
+ script . puts "REFERENCE_DATETIME='#{ ref_datetime } '"
137
+ script . puts "REFERENCE_DATE='#{ ref_date } '"
138
+ script . puts "REFERENCE_TIME='#{ ref_time } '"
139
+ script . puts
132
140
script . puts "cd build"
133
141
script . puts build_desc [ "script" ]
134
142
end
207
215
distro = build_desc [ "distro" ] || "ubuntu"
208
216
suites = build_desc [ "suites" ] or raise "must supply suites"
209
217
archs = build_desc [ "architectures" ] or raise "must supply architectures"
210
- reference_datetime = build_desc [ "reference_datetime" ] or raise "must supply reference_datetime"
218
+ build_desc [ " reference_datetime" ] or build_desc [ "remotes" ] . size > 0 or raise "must supply ` reference_datetime` or `remotes` "
211
219
212
220
ENV [ 'DISTRO' ] = distro
213
221
@@ -267,7 +275,7 @@ suites.each do |suite|
267
275
arch = sanitize ( arch , "architecture" )
268
276
269
277
# Build!
270
- build_one_configuration ( suite , arch , build_desc , reference_datetime )
278
+ build_one_configuration ( suite , arch , build_desc )
271
279
272
280
info "Grabbing results from target"
273
281
system! "copy-from-target #{ @quiet_flag } out #{ build_dir } "
0 commit comments