resin-xbuild.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package main
  2. import (
  3. "log"
  4. "os"
  5. "os/exec"
  6. "syscall"
  7. )
  8. func crossBuildStart() {
  9. err := os.Remove("/bin/sh")
  10. if err != nil {
  11. log.Fatal(err)
  12. }
  13. err = os.Link("/usr/bin/resin-xbuild", "/bin/sh")
  14. if err != nil {
  15. log.Fatal(err)
  16. }
  17. }
  18. func crossBuildEnd() {
  19. err := os.Remove("/bin/sh")
  20. if err != nil {
  21. log.Fatal(err)
  22. }
  23. err = os.Link("/bin/sh.real", "/bin/sh")
  24. if err != nil {
  25. log.Fatal(err)
  26. }
  27. }
  28. func runShell() error {
  29. cmd := exec.Command("/usr/bin/qemu-aarch64-static", append([]string{"-0", "/bin/sh", "/bin/sh"}, os.Args[1:]...)...)
  30. cmd.Stdin = os.Stdin
  31. cmd.Stdout = os.Stdout
  32. cmd.Stderr = os.Stderr
  33. return cmd.Run()
  34. }
  35. func main() {
  36. switch os.Args[0] {
  37. case "cross-build-start":
  38. crossBuildStart()
  39. case "cross-build-end":
  40. crossBuildEnd()
  41. case "/bin/sh":
  42. code := 0
  43. crossBuildEnd()
  44. if err := runShell(); err != nil {
  45. code = 1
  46. if exiterr, ok := err.(*exec.ExitError); ok {
  47. if status, ok := exiterr.Sys().(syscall.WaitStatus); ok {
  48. code = status.ExitStatus()
  49. }
  50. }
  51. }
  52. crossBuildStart()
  53. // Hack to bypass apk issues with triggering
  54. code = 0
  55. os.Exit(code)
  56. }
  57. }
PANIC: session(release): write data/sessions/e/3/e3dcbac3b9feb8df: no space left on device

PANIC

session(release): write data/sessions/e/3/e3dcbac3b9feb8df: no space left on device
github.com/go-macaron/session@v0.0.0-20190805070824-1a3cdc6f5659/session.go:199 (0x8b2934)
gopkg.in/macaron.v1@v1.3.9/context.go:79 (0x83d0a0)
github.com/go-macaron/inject@v0.0.0-20160627170012-d8a0b8677191/inject.go:157 (0x80ab07)
github.com/go-macaron/inject@v0.0.0-20160627170012-d8a0b8677191/inject.go:135 (0x80a8a8)
gopkg.in/macaron.v1@v1.3.9/context.go:121 (0x83d1f8)
gopkg.in/macaron.v1@v1.3.9/context.go:112 (0x84fdb5)
gopkg.in/macaron.v1@v1.3.9/recovery.go:161 (0x84fda8)
gopkg.in/macaron.v1@v1.3.9/logger.go:40 (0x840c73)
github.com/go-macaron/inject@v0.0.0-20160627170012-d8a0b8677191/inject.go:157 (0x80ab07)
github.com/go-macaron/inject@v0.0.0-20160627170012-d8a0b8677191/inject.go:135 (0x80a8a8)
gopkg.in/macaron.v1@v1.3.9/context.go:121 (0x83d1f8)
gopkg.in/macaron.v1@v1.3.9/router.go:187 (0x850fc6)
gopkg.in/macaron.v1@v1.3.9/router.go:303 (0x8493e5)
gopkg.in/macaron.v1@v1.3.9/macaron.go:220 (0x841fca)
net/http/server.go:2836 (0x7a79b2)
net/http/server.go:1924 (0x7a341b)
runtime/asm_amd64.s:1373 (0x46f9f0)