MatthewCroughan / NixThePlanet

Run macOS, Windows and more via a single Nix command, or simple nixosModules
MIT License
534 stars 12 forks source link

Implement makeWin2kImage #11

Open io12 opened 8 months ago

io12 commented 8 months ago

I think this can be done without vncdotool, tesseract, or expect with Windows 2000's unattended installation feature, and this also makes it easier to configure the install from Nix. I just need to figure out how many times to restart dosbox for the install to finish. And also maybe there's a better way to specify answerFile than a path that is usually created with writeText "answers.ini" (lib.generators.toINI { } { ... })? Having answerFile be the set directly might be easier for the user to specify but less flexible.

MatthewCroughan commented 8 months ago

I see you're removing some comments like the link to some blog post you found in the process of making this, but I'd prefer to keep them since they're valuable, please do! :smile_cat:

io12 commented 8 months ago

I see you're removing some comments like the link to some blog post you found in the process of making this, but I'd prefer to keep them since they're valuable, please do! 😸

I deleted that link because I'm using a different approach now, but I guess I can add it back and say that in the comment.

MatthewCroughan commented 8 months ago

Very impressive, this just works completely due to the unattended installation. I think we should probably still do tesseract OCR just to provide a log, since the installation takes so long.

Luflosi commented 1 month ago

What's the status of this PR?

io12 commented 1 month ago

What's the status of this PR?

It worked on the latest commit when I last tested it. I don't know if there is anything blocking merging.

MatthewCroughan commented 1 month ago

Nothing really, I was just bike shedding on making docs and making the drvs more reliable, since there is an error rate for all of the Windows derivations that increases as you increase in Windows version.

So dos is pretty reliable, then win 3.1 is also reliable, but it gets bad after that. Some of that is related to dosbox instability in my testing.

Did you see https://github.com/ptitSeb/box86 is being maintained a lot lately? Maybe we could write a "NixThePlanet driver" for that, and get rid of dosbox as the builder.

io12 commented 1 month ago

I've used box86 in the past. I think it doesn't do full-system emulation and is closer to qemu-user for emulating x86 linux executeables directly. It also can translate library calls so that the emulated program can call native ARM libraries, which is really cool.