feat: Linux packaging, SDK v0.7.1, fix rawmode conflict

- go.mod: SDK pseudo-version -> v0.7.1 (remote tag), go.sum updated
- cmd/waiter/rawmode_linux.go: remove (conflicts with raw_unix.go)
- cmd/gui/package.json: add rpm/AppImage Linux targets
- package/package-linux.sh: cross-distro packaging script (deb/tar.gz/rpm)
- package/linux/: DEBIAN control files, postinst/prerm, RPM spec
This commit is contained in:
2026-07-20 11:03:43 +08:00
parent 5002f00bb7
commit 4b0f2f332a
11 changed files with 588 additions and 29 deletions

View File

@ -1,25 +0,0 @@
//go:build linux
package main
import (
"syscall"
"unsafe"
)
func setRawMode(fd int) (func(), error) {
var old termios
if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, uintptr(fd), TCGETS, uintptr(unsafe.Pointer(&old))); err != 0 {
return func() {}, err
}
new := old
new.Lflag &^= ICANON | ECHO | ISIG
new.Cc[VMIN] = 1
new.Cc[VTIME] = 0
if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, uintptr(fd), TCSETS, uintptr(unsafe.Pointer(&new))); err != 0 {
return func() {}, err
}
return func() {
syscall.Syscall(syscall.SYS_IOCTL, uintptr(fd), TCSETS, uintptr(unsafe.Pointer(&old)))
}, nil
}