mirror of
https://github.com/jmcorgan/fips.git
synced 2026-07-22 07:48:26 +00:00
Gate platform-specific code behind cfg attributes and add full Windows
support: TUN device via wintun, TCP control socket on localhost:21210,
Windows Service lifecycle (--install-service/--uninstall-service/--service),
CI build and test matrix, and packaging with ZIP builder and PowerShell
service management scripts.
Key changes:
- Cargo.toml: move tun/libc/rtnetlink behind cfg(unix); add wintun and
windows-service dependencies for Windows
- upper/tun.rs: wintun-based TUN implementation with netsh configuration
for IPv6 address, MTU, and fd00::/8 routing
- control/mod.rs: split into unix_impl/windows_impl; Windows uses TCP on
localhost:21210 with shared connection handler
- bin/fips.rs: refactor main() into run_daemon() accepting a shutdown
signal; add Windows Service support via windows-service crate
- transport/udp/socket.rs: platform-gated modules; Windows uses
tokio::net::UdpSocket (kernel drop count unavailable, returns 0)
- transport/ethernet: gate to cfg(unix); add Windows stub types
- config: platform-conditional default paths (socket, hosts) for Windows
- CI: add windows-latest to build matrix and test-windows job with
cargo-nextest
- packaging/windows: build-zip.ps1, install-service.ps1,
uninstall-service.ps1, and package-windows.yml workflow
- README/docs: Windows build instructions, service management, and
control socket platform differences
Linux and macOS behavior is unchanged.
44 lines
1.1 KiB
Makefile
44 lines
1.1 KiB
Makefile
# FIPS Packaging Makefile
|
|
#
|
|
# Builds release packages for supported target platforms.
|
|
# All outputs are placed in deploy/ at the project root.
|
|
#
|
|
# Usage:
|
|
# make deb Build a Debian/Ubuntu .deb package
|
|
# make tarball Build a systemd install tarball
|
|
# make ipk Build an OpenWrt .ipk package
|
|
# make aur Build fips-git AUR package and validate with namcap
|
|
# make pkg Build a macOS .pkg installer
|
|
# make zip Build a Windows .zip package
|
|
# make all Build deb and tarball (default)
|
|
# make clean Remove deploy/ directory
|
|
|
|
SHELL := /bin/bash
|
|
PACKAGING_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
|
|
PROJECT_ROOT := $(abspath $(PACKAGING_DIR)/..)
|
|
|
|
.PHONY: all deb tarball ipk aur pkg zip clean
|
|
|
|
all: deb tarball
|
|
|
|
deb:
|
|
@bash $(PACKAGING_DIR)/debian/build-deb.sh
|
|
|
|
tarball:
|
|
@bash $(PACKAGING_DIR)/systemd/build-tarball.sh
|
|
|
|
ipk:
|
|
@bash $(PACKAGING_DIR)/openwrt-ipk/build-ipk.sh
|
|
|
|
aur:
|
|
@bash $(PACKAGING_DIR)/aur/build-aur.sh
|
|
|
|
pkg:
|
|
@bash $(PACKAGING_DIR)/macos/build-pkg.sh
|
|
|
|
zip:
|
|
@powershell -File $(PACKAGING_DIR)/windows/build-zip.ps1
|
|
|
|
clean:
|
|
rm -rf $(PROJECT_ROOT)/deploy
|