WIP: Windows support #925
No reviewers
Labels
No labels
action
check-aws
action
discussion-needed
action
for-external-contributors
action
for-newcomers
action
more-info-needed
action
need-funding
action
triage-required
kind
correctness
kind/experimental
kind
ideas
kind
improvement
kind
performance
kind
testing
kind
usability
kind
wrong-behavior
prio
critical
prio
low
scope
admin-api
scope
admin-sdk
scope
background-healing
scope
build
scope
documentation
scope
k8s
scope
layout
scope
metadata
scope
ops
scope
rpc
scope
s3-api
scope
security
scope
telemetry
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Deuxfleurs/garage#925
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "mediocregopher/garage:windows-v1"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
I'll be clear up front that I'm not really expecting to get this merged as it is. But I saw that others are interested in windows support (#536), so I thought I'd contribute my work back. What I did here on the rust side overlaps a bit with #891, but I've gone further and gotten cross-compiling from linux to windows apparently working. I say "apparently" because I haven't fully tested it yet, but it does compile and the binary does work in a VM.
Performing the actual cross-compilation cannot be done via
flake.nix
ordefault.nix
. Thedefault.nix
is broken anyway, andflake.nix
wants to build a full release binary, but not all features are currently supported, only the base ones, so this fails. To test this you have to do something like:In the next few weeks I'll be working on testing this more thoroughly, but in the meantime any feedback would be great.
I've updated this MR to account for the build system changes in
1.1.0
. The move to crane is a great move, btw, really simplifies everything :)This MR still requires manually calling
compile.nix
with the correcttarget
. I could easily add accessible release targets for windows toflake.nix
anddefault.nix
, but the release naming in those currently only specifies the CPU architecture and assumes the OS is Linux (I guess). I could add the release name asx86_64-windows
, but maybe it'd be better add the OS to the other release names as well for consistency?View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.