-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
qemu: backport 9p-darwin to v6.2.0 #162243
Conversation
nixpkgs-review is giving me all kinds of noisy errors because of other upstream stuff, but: macOS:
NixOS:
And from the
|
Result of 11 packages marked as broken and skipped:
1 package failed to build:
8 packages built:
|
Result of 8 packages marked as broken and skipped:
1 package blacklisted:
48 packages built:
|
Builds for me, macos 10.15, along with the passthru test. Don't really know how to test this feature though. Any suggestions? |
This is one piece of a many-part puzzle to solve various other issues, so you're right to ask how to test it. For nix users, #108984 is the most relevant set of use cases, but this only solves one of multiple set of issues (finally merging all the random QEMU patches and forks mentioned there into nixpkgs). To test a smaller use case of whether this version of QEMU integrates 9p correctly, containers/podman#13256 is probably your best bet. Unfortunately, it still requires fixing podman on nixpkgs. You can probably test it for now if you use homebrew's podman and nix's QEMU. |
@risicle if you rebase qowoz's podman4-gvproxy from #161130 on top of my qemu branch from this PR and build that version of podman on top of this qemu:
You should be able to see your home directory from there! |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/performant-graphical-vm-via-qemu/17895/3 |
With #122420 (comment), I think we can consider this feature-complete enough to safely merge v9 as a backport. @alyssais and @domenkozar let me know what you both think! |
Hah.. Thanks for your detailed instructions @willcohen but after half an hour of messing around with it I realized of course it's not going to work on the mac I'm currently working on - it's virtualized itself. Anyway, builds & unit tests still pass as far as I can test 👍 |
Seems to work fine, previously
|
@ofborg build qemu |
This worked for me, on macos 12.2.1, with this branch's qemu and the podman on master (thanks to #161130). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Excellent work, thank you so much. I've been following it on the mailing list, and I've been hugely impressed with your dedication getting this through 9 rounds of review. As promised, I'm happy for this to be backported now that it's queued upstream. Thanks so much!
I could successfully mount volumes natively using this backport and the Podman branch from containers/podman#13409 on my m1 mac. Amazing stuff:+1:. |
99a306d
to
f1754e5
Compare
Just force-pushed some changes.
This can either be merged as is (and then I can prepare a smaller subsequent PR to point the nine patches to QEMU upstream), or we can wait till whenever it gets merged and I'll force push one more time. I'm not sure on timeline for when that merge would happen. The 9p maintainer submitted this latest pull request incorporating these changes this morning. |
f1754e5
to
8fc669a
Compare
@alyssais |
Result of 1 package marked as broken and skipped:
1 package failed to build:
8 packages built:
|
@willcohen sorry to put you through another round of this, but could we apply the patches unconditionally? It makes maintenance easier, because it means I'll notice e.g. patches that fail to apply immediately when updating from Linux. |
Of course. Will revise. |
@alyssais oh wait, I remember why I did this now. If I try to apply these patches on top of
Is that patch going to keep being needed? If so, it's going to break with 7.0 too based on |
Let me have a look into it. I'll try to get you an answer tonight. |
More specifically, this is why it conflicts: https://gitlab.com/qemu-project/qemu/-/commit/67a71e3b71a2834d028031a92e76eb9444e423c6
|
Upon a non-exhaustive search, I'm not currently seeing that that patch ever got finalized into the kernel, though it's extremely possible that I missed it. That said, as I'm not familiar with the NixOS tests in question, I can't tell if it's still applicable anymore either. |
8fc669a
to
acd6320
Compare
@alyssais I can't figure out why the patch WOULDN'T still be needed, so I went ahead and updated it to work on a post |
Result of 1 package marked as broken and skipped:
1 package failed to build:
8 packages built:
|
My initial testing implies that the patch isn't needed any more, but I need to investigate to be sure. But since you've done the work anyway to rebase it, there's no reason to make you wait while I investigate. Thanks so much! |
Thanks! |
Motivation for this change
Backports 9p-darwin functionality from upstream v9 patchset (https://lists.gnu.org/archive/html/qemu-devel/2022-02/msg05978.html) to v6.2.0.
Please note that the final commit in the backported patchset includes a utimensat fallback, which will be needed until macOS SDK reaches 10.13 (#101229). I'll be more than happy to rebase/edit that particular final patch as needed once 7.0-rc hits, to ease that upgrade.
Addresses changes proposed by #122420.
@domenkozar @alyssais
Things done
sandbox = true
set innix.conf
? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)nixos/doc/manual/md-to-db.sh
to update generated release notes