mirror of
https://github.com/sipeed/NanoKVM.git
synced 2026-09-11 00:22:56 -05:00
- H.264 WebRTC: Refactored to significantly reduce video latency - H.264 Direct: Optimized data transmission; data parsing now continues correctly even when the tab is in the background - MJPEG: Refactored to ensure the correct data length is sent Bug Fixes - Fixed an issue where certain keyboard modifier keys were not recognized - Fixed vertical mouse cursor drift when the page is zoomed in or out Optimizations - Optimized HID write logic and updated the HID reset mechanism - Added support for deleting images - Added a Swap Memory option to the Tailscale page - Added a confirmation dialog when uninstalling Tailscale to prevent accidental removal - Improved the logic for updating the web page title - Improved the UI for the Clipboard, Settings, Image Mounting, and App Update pages Security - Added a mandatory delay after failed login attempts to prevent brute-force attacks - Updated dependencies to patch known security vulnerabilities
65 lines
2.0 KiB
Bash
Executable File
65 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
# Configuration Variables
|
|
BINARY_NAME="NanoKVM-Server"
|
|
CC_COMPILER="riscv64-unknown-linux-musl-gcc"
|
|
CGO_CFLAGS_OPTS="-mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d"
|
|
|
|
# Define colors for output
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Helper function to check if a command exists
|
|
check_dependency() {
|
|
if ! command -v "$1" &> /dev/null; then
|
|
echo -e "${RED}[ERROR] Required command '$1' not found.${NC}"
|
|
echo "Please install it or ensure it is in your PATH."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Step 1: Check Prerequisites
|
|
# ------------------------------------------------------------------------------
|
|
echo -e "${YELLOW}[INFO] Checking build environment...${NC}"
|
|
|
|
check_dependency "go"
|
|
check_dependency "patchelf"
|
|
check_dependency "$CC_COMPILER"
|
|
|
|
echo -e "${GREEN}[OK] All dependencies found.${NC}"
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Step 2: Build the Binary
|
|
# ------------------------------------------------------------------------------
|
|
echo -e "${YELLOW}[INFO] Starting cross-compilation for RISC-V 64-bit (BoringCrypto enabled)...${NC}"
|
|
|
|
export CGO_ENABLED=1
|
|
export GOOS=linux
|
|
export GOARCH=riscv64
|
|
export GOEXPERIMENT=boringcrypto
|
|
export CC="$CC_COMPILER"
|
|
export CGO_CFLAGS="$CGO_CFLAGS_OPTS"
|
|
|
|
go build -o "$BINARY_NAME" -v
|
|
|
|
if [ -f "$BINARY_NAME" ]; then
|
|
echo -e "${GREEN}[SUCCESS] Binary '$BINARY_NAME' created successfully.${NC}"
|
|
else
|
|
echo -e "${RED}[ERROR] Build failed. Binary not found.${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Step 3: Patch RPATH
|
|
# ------------------------------------------------------------------------------
|
|
echo -e "${YELLOW}[INFO] Patching RPATH with patchelf...${NC}"
|
|
|
|
patchelf --add-rpath '$ORIGIN/dl_lib' "$BINARY_NAME"
|
|
|
|
echo -e "${GREEN}[DONE] Build script completed successfully!${NC}"
|