Skip to content

Commit 53f51af

Browse files
heschigopherbot
authored andcommitted
Revert "internal/relui: improve reproducibility of signed tarballs"
This reverts CL 511759. Reason for revert: Taking a different approach. Change-Id: I7e8f95910cd9ce224d89dc29a235701dfbc54b5b Reviewed-on: https://go-review.googlesource.com/c/build/+/512436 TryBot-Result: Gopher Robot <[email protected]> Auto-Submit: Heschi Kreinick <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]> Run-TryBot: Heschi Kreinick <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]>
1 parent c9aa849 commit 53f51af

File tree

2 files changed

+13
-40
lines changed

2 files changed

+13
-40
lines changed

internal/relui/workflows.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,7 @@ func (tasks *BuildReleaseTasks) addBuildTasks(wd *wf.Definition, major int, vers
524524
case "darwin":
525525
pkg := wf.Task2(wd, "Build PKG installer", tasks.buildDarwinPKG, version, tar)
526526
signedPKG := wf.Task2(wd, "Sign PKG installer", tasks.signArtifact, pkg, wf.Const(sign.BuildMacOS))
527-
signedTGZ := wf.Task2(wd, "Convert to .tgz", tasks.convertPKGToTGZ, timestamp, signedPKG)
527+
signedTGZ := wf.Task1(wd, "Convert to .tgz", tasks.convertPKGToTGZ, signedPKG)
528528
mod = wf.Task4(wd, "Merge signed files into module zip", tasks.mergeSignedToModule, version, timestamp, mod, signedTGZ)
529529
artifacts = append(artifacts, signedPKG, signedTGZ)
530530
case "windows":
@@ -889,10 +889,10 @@ func (b *BuildReleaseTasks) buildDarwinPKG(ctx *wf.TaskContext, version string,
889889
return bs.BuildDarwinPKG(ctx, r, version, w)
890890
})
891891
}
892-
func (b *BuildReleaseTasks) convertPKGToTGZ(ctx *wf.TaskContext, timestamp time.Time, pkg artifact) (tgz artifact, _ error) {
892+
func (b *BuildReleaseTasks) convertPKGToTGZ(ctx *wf.TaskContext, pkg artifact) (tgz artifact, _ error) {
893893
bc := dashboard.Builders[pkg.Target.Builder]
894894
return b.runBuildStep(ctx, pkg.Target, bc, pkg, "tar.gz", func(bs *task.BuildletStep, r io.Reader, w io.Writer) error {
895-
return bs.ConvertPKGToTGZ(ctx, r, timestamp, w)
895+
return bs.ConvertPKGToTGZ(ctx, r, w)
896896
})
897897
}
898898

internal/task/buildrelease.go

Lines changed: 10 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,14 @@ func adjustTar(reader *tar.Reader, writer *tar.Writer, prefixDir string, adjusts
8787
if !strings.HasSuffix(prefixDir, "/") {
8888
return fmt.Errorf("prefix dir %q must have a trailing /", prefixDir)
8989
}
90-
90+
writer.WriteHeader(&tar.Header{
91+
Name: prefixDir,
92+
Typeflag: tar.TypeDir,
93+
Mode: 0755,
94+
ModTime: time.Now(),
95+
AccessTime: time.Now(),
96+
ChangeTime: time.Now(),
97+
})
9198
file:
9299
for {
93100
header, err := reader.Next()
@@ -203,36 +210,6 @@ func fixupCrossCompile(target *releasetargets.Target) adjustFunc {
203210
}
204211
}
205212

206-
// dropDirs drops all directory entries.
207-
func dropDirs() adjustFunc {
208-
return func(h *tar.Header) *tar.Header {
209-
if h.Typeflag == tar.TypeDir {
210-
return nil
211-
}
212-
return h
213-
}
214-
}
215-
216-
// clearUserFields empties out all user and group fields.
217-
func clearUserFields() adjustFunc {
218-
return func(h *tar.Header) *tar.Header {
219-
h.Uid, h.Gid, h.Uname, h.Gname = 0, 0, "", ""
220-
return h
221-
}
222-
}
223-
224-
// setTimes sets all timestamps to t.
225-
func setTimes(t time.Time) adjustFunc {
226-
return func(h *tar.Header) *tar.Header {
227-
h.ModTime = t
228-
// Access/ChangeTime are only supported on PAX and GNU tar.
229-
if h.Format != tar.FormatUSTAR {
230-
h.AccessTime, h.ChangeTime = t, t
231-
}
232-
return h
233-
}
234-
}
235-
236213
const (
237214
goDir = "go"
238215
go14 = "go1.4"
@@ -483,7 +460,7 @@ type darwinDistData struct {
483460
}
484461

485462
// ConvertPKGToTGZ converts a macOS installer (.pkg) to a .tar.gz tarball.
486-
func (b *BuildletStep) ConvertPKGToTGZ(ctx *workflow.TaskContext, in io.Reader, timestamp time.Time, out io.Writer) error {
463+
func (b *BuildletStep) ConvertPKGToTGZ(ctx *workflow.TaskContext, in io.Reader, out io.Writer) error {
487464
if err := b.Buildlet.Put(ctx, in, "go.pkg", 0400); err != nil {
488465
return err
489466
}
@@ -508,11 +485,7 @@ func (b *BuildletStep) ConvertPKGToTGZ(ctx *workflow.TaskContext, in io.Reader,
508485
reader := tar.NewReader(gzReader)
509486
gzWriter := gzip.NewWriter(out)
510487
writer := tar.NewWriter(gzWriter)
511-
if err := adjustTar(reader, writer, "go/", []adjustFunc{
512-
dropDirs(),
513-
clearUserFields(),
514-
setTimes(timestamp),
515-
}); err != nil {
488+
if err := adjustTar(reader, writer, "go/", nil); err != nil {
516489
return err
517490
}
518491
if err := writer.Close(); err != nil {

0 commit comments

Comments
 (0)