aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/build
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-12-17 16:56:39 +0100
committerDmitry Vyukov <dvyukov@google.com>2018-12-17 19:09:10 +0100
commita9cc88c19f0c8907d7696b47a2b3b251a2ca06df (patch)
treeadedad6e0ff2a340c5b39bef617407f809a7e69e /pkg/build
parentb38da77e00c6c2fb3424224657e9f665e519ea2d (diff)
pkg/osutil: provide better Rename
os.Rename fails for cross-device renaming (e.g. to/from tmpfs). This is quite unpleasant. Provide own version that falls back to copying.
Diffstat (limited to 'pkg/build')
-rw-r--r--pkg/build/akaros.go2
-rw-r--r--pkg/build/linux.go2
2 files changed, 2 insertions, 2 deletions
diff --git a/pkg/build/akaros.go b/pkg/build/akaros.go
index 6ee3d774b..60750028f 100644
--- a/pkg/build/akaros.go
+++ b/pkg/build/akaros.go
@@ -52,7 +52,7 @@ func (ctx akaros) build(targetArch, vmType, kernelDir, outputDir, compiler, user
return err
}
targetKey := filepath.Join(kernelDir, "kern", "kfs", ".ssh", "authorized_keys")
- if err := os.Rename(sshkeyPub, targetKey); err != nil {
+ if err := osutil.Rename(sshkeyPub, targetKey); err != nil {
return err
}
const init = `#!/bin/bash
diff --git a/pkg/build/linux.go b/pkg/build/linux.go
index f2bc4e0fe..dbe9cfbb7 100644
--- a/pkg/build/linux.go
+++ b/pkg/build/linux.go
@@ -71,7 +71,7 @@ func (linux) buildKernel(kernelDir, outputDir, compiler string, config []byte) e
}
vmlinux := filepath.Join(kernelDir, "vmlinux")
outputVmlinux := filepath.Join(outputDir, "obj", "vmlinux")
- if err := os.Rename(vmlinux, outputVmlinux); err != nil {
+ if err := osutil.Rename(vmlinux, outputVmlinux); err != nil {
return fmt.Errorf("failed to rename vmlinux: %v", err)
}
return nil