Pārlūkot izejas kodu

build: updated SPICE dependencies

osy 9 mēneši atpakaļ
vecāks
revīzija
38521a32e7

+ 36 - 18
UTM.xcodeproj/project.pbxproj

@@ -344,7 +344,7 @@
 		CE0B6ECC24AD677200FE012D /* gstriff-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63DE22653C7400FC7E63 /* gstriff-1.0.0.framework */; };
 		CE0B6ECC24AD677200FE012D /* gstriff-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63DE22653C7400FC7E63 /* gstriff-1.0.0.framework */; };
 		CE0B6ECD24AD677200FE012D /* gsttag-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63F622653C7400FC7E63 /* gsttag-1.0.0.framework */; };
 		CE0B6ECD24AD677200FE012D /* gsttag-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63F622653C7400FC7E63 /* gsttag-1.0.0.framework */; };
 		CE0B6ECF24AD677200FE012D /* gstrtp-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63DD22653C7400FC7E63 /* gstrtp-1.0.0.framework */; };
 		CE0B6ECF24AD677200FE012D /* gstrtp-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63DD22653C7400FC7E63 /* gstrtp-1.0.0.framework */; };
-		CE0B6ED124AD677200FE012D /* phodav-2.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE059DC0243BD67100338317 /* phodav-2.0.0.framework */; };
+		CE0B6ED124AD677200FE012D /* phodav-3.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE059DC0243BD67100338317 /* phodav-3.0.0.framework */; };
 		CE0B6ED324AD677200FE012D /* libgstvideoconvert.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE9D19542265425900355E14 /* libgstvideoconvert.a */; };
 		CE0B6ED324AD677200FE012D /* libgstvideoconvert.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE9D19542265425900355E14 /* libgstvideoconvert.a */; };
 		CE0B6ED724AD677200FE012D /* gstaudio-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63EF22653C7400FC7E63 /* gstaudio-1.0.0.framework */; };
 		CE0B6ED724AD677200FE012D /* gstaudio-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63EF22653C7400FC7E63 /* gstaudio-1.0.0.framework */; };
 		CE0B6EDC24AD677200FE012D /* libgstapp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE9D19612265425900355E14 /* libgstapp.a */; };
 		CE0B6EDC24AD677200FE012D /* libgstapp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE9D19612265425900355E14 /* libgstapp.a */; };
@@ -390,7 +390,7 @@
 		CE0B6F2924AD67AD00FE012D /* gsttag-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63F622653C7400FC7E63 /* gsttag-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE0B6F2924AD67AD00FE012D /* gsttag-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63F622653C7400FC7E63 /* gsttag-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE0B6F2A24AD67AF00FE012D /* gstvideo-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63F922653C7400FC7E63 /* gstvideo-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE0B6F2A24AD67AF00FE012D /* gstvideo-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63F922653C7400FC7E63 /* gstvideo-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE0B6F2F24AD67BE00FE012D /* json-glib-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63E222653C7400FC7E63 /* json-glib-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE0B6F2F24AD67BE00FE012D /* json-glib-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63E222653C7400FC7E63 /* json-glib-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
-		CE0B6F3124AD67C100FE012D /* phodav-2.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE059DC0243BD67100338317 /* phodav-2.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
+		CE0B6F3124AD67C100FE012D /* phodav-3.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE059DC0243BD67100338317 /* phodav-3.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE0B6F5424AD67FA00FE012D /* spice-client-glib-2.0.8.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63FE22653C7500FC7E63 /* spice-client-glib-2.0.8.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE0B6F5424AD67FA00FE012D /* spice-client-glib-2.0.8.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63FE22653C7500FC7E63 /* spice-client-glib-2.0.8.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE0DF19425A83C1700A51894 /* qemu-aarch64-softmmu.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63FD22653C7500FC7E63 /* qemu-aarch64-softmmu.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE0DF19425A83C1700A51894 /* qemu-aarch64-softmmu.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63FD22653C7500FC7E63 /* qemu-aarch64-softmmu.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE0DF19525A83C1700A51894 /* qemu-alpha-softmmu.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D641322653C7500FC7E63 /* qemu-alpha-softmmu.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE0DF19525A83C1700A51894 /* qemu-alpha-softmmu.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D641322653C7500FC7E63 /* qemu-alpha-softmmu.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
@@ -495,7 +495,7 @@
 		CE2D934C24AD46670059923A /* ffi.7.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63E322653C7400FC7E63 /* ffi.7.framework */; };
 		CE2D934C24AD46670059923A /* ffi.7.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63E322653C7400FC7E63 /* ffi.7.framework */; };
 		CE2D934D24AD46670059923A /* gstnet-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63E522653C7400FC7E63 /* gstnet-1.0.0.framework */; };
 		CE2D934D24AD46670059923A /* gstnet-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63E522653C7400FC7E63 /* gstnet-1.0.0.framework */; };
 		CE2D934E24AD46670059923A /* gstbase-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63E822653C7400FC7E63 /* gstbase-1.0.0.framework */; };
 		CE2D934E24AD46670059923A /* gstbase-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63E822653C7400FC7E63 /* gstbase-1.0.0.framework */; };
-		CE2D934F24AD46670059923A /* phodav-2.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE059DC0243BD67100338317 /* phodav-2.0.0.framework */; };
+		CE2D934F24AD46670059923A /* phodav-3.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE059DC0243BD67100338317 /* phodav-3.0.0.framework */; };
 		CE2D935024AD46670059923A /* gstcontroller-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63EE22653C7400FC7E63 /* gstcontroller-1.0.0.framework */; };
 		CE2D935024AD46670059923A /* gstcontroller-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63EE22653C7400FC7E63 /* gstcontroller-1.0.0.framework */; };
 		CE2D935124AD46670059923A /* gstaudio-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63EF22653C7400FC7E63 /* gstaudio-1.0.0.framework */; };
 		CE2D935124AD46670059923A /* gstaudio-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63EF22653C7400FC7E63 /* gstaudio-1.0.0.framework */; };
 		CE2D935224AD46670059923A /* gpg-error.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63F122653C7400FC7E63 /* gpg-error.0.framework */; };
 		CE2D935224AD46670059923A /* gpg-error.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63F122653C7400FC7E63 /* gpg-error.0.framework */; };
@@ -543,7 +543,7 @@
 		CE2D938A24AD46670059923A /* gstrtp-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63DD22653C7400FC7E63 /* gstrtp-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE2D938A24AD46670059923A /* gstrtp-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63DD22653C7400FC7E63 /* gstrtp-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE2D938B24AD46670059923A /* gstriff-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63DE22653C7400FC7E63 /* gstriff-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE2D938B24AD46670059923A /* gstriff-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63DE22653C7400FC7E63 /* gstriff-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE2D938C24AD46670059923A /* qemu-ppc-softmmu.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63E722653C7400FC7E63 /* qemu-ppc-softmmu.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE2D938C24AD46670059923A /* qemu-ppc-softmmu.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63E722653C7400FC7E63 /* qemu-ppc-softmmu.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
-		CE2D938D24AD46670059923A /* phodav-2.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE059DC0243BD67100338317 /* phodav-2.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
+		CE2D938D24AD46670059923A /* phodav-3.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE059DC0243BD67100338317 /* phodav-3.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE2D938E24AD46670059923A /* gthread-2.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63DC22653C7300FC7E63 /* gthread-2.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE2D938E24AD46670059923A /* gthread-2.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63DC22653C7300FC7E63 /* gthread-2.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE2D938F24AD46670059923A /* qemu-aarch64-softmmu.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63FD22653C7500FC7E63 /* qemu-aarch64-softmmu.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE2D938F24AD46670059923A /* qemu-aarch64-softmmu.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63FD22653C7500FC7E63 /* qemu-aarch64-softmmu.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE2D939024AD46670059923A /* qemu-mips-softmmu.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63FF22653C7500FC7E63 /* qemu-mips-softmmu.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CE2D939024AD46670059923A /* qemu-mips-softmmu.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63FF22653C7500FC7E63 /* qemu-mips-softmmu.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
@@ -770,7 +770,7 @@
 		CEA45F44263519B5002FA97D /* gstnet-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63E522653C7400FC7E63 /* gstnet-1.0.0.framework */; };
 		CEA45F44263519B5002FA97D /* gstnet-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63E522653C7400FC7E63 /* gstnet-1.0.0.framework */; };
 		CEA45F45263519B5002FA97D /* gstbase-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63E822653C7400FC7E63 /* gstbase-1.0.0.framework */; };
 		CEA45F45263519B5002FA97D /* gstbase-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63E822653C7400FC7E63 /* gstbase-1.0.0.framework */; };
 		CEA45F46263519B5002FA97D /* Logging in Frameworks */ = {isa = PBXBuildFile; productRef = CEA45E20263519B5002FA97D /* Logging */; };
 		CEA45F46263519B5002FA97D /* Logging in Frameworks */ = {isa = PBXBuildFile; productRef = CEA45E20263519B5002FA97D /* Logging */; };
-		CEA45F47263519B5002FA97D /* phodav-2.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE059DC0243BD67100338317 /* phodav-2.0.0.framework */; };
+		CEA45F47263519B5002FA97D /* phodav-3.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE059DC0243BD67100338317 /* phodav-3.0.0.framework */; };
 		CEA45F49263519B5002FA97D /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE0E9B86252FD06B0026E02B /* SwiftUI.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
 		CEA45F49263519B5002FA97D /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE0E9B86252FD06B0026E02B /* SwiftUI.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
 		CEA45F4A263519B5002FA97D /* gstcontroller-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63EE22653C7400FC7E63 /* gstcontroller-1.0.0.framework */; };
 		CEA45F4A263519B5002FA97D /* gstcontroller-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63EE22653C7400FC7E63 /* gstcontroller-1.0.0.framework */; };
 		CEA45F4B263519B5002FA97D /* gstaudio-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63EF22653C7400FC7E63 /* gstaudio-1.0.0.framework */; };
 		CEA45F4B263519B5002FA97D /* gstaudio-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63EF22653C7400FC7E63 /* gstaudio-1.0.0.framework */; };
@@ -816,7 +816,7 @@
 		CEA45F86263519B5002FA97D /* gstrtp-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63DD22653C7400FC7E63 /* gstrtp-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEA45F86263519B5002FA97D /* gstrtp-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63DD22653C7400FC7E63 /* gstrtp-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEA45F87263519B5002FA97D /* gstriff-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63DE22653C7400FC7E63 /* gstriff-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEA45F87263519B5002FA97D /* gstriff-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63DE22653C7400FC7E63 /* gstriff-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEA45F88263519B5002FA97D /* qemu-ppc-softmmu.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63E722653C7400FC7E63 /* qemu-ppc-softmmu.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEA45F88263519B5002FA97D /* qemu-ppc-softmmu.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63E722653C7400FC7E63 /* qemu-ppc-softmmu.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
-		CEA45F89263519B5002FA97D /* phodav-2.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE059DC0243BD67100338317 /* phodav-2.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
+		CEA45F89263519B5002FA97D /* phodav-3.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE059DC0243BD67100338317 /* phodav-3.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEA45F8A263519B5002FA97D /* gthread-2.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63DC22653C7300FC7E63 /* gthread-2.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEA45F8A263519B5002FA97D /* gthread-2.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63DC22653C7300FC7E63 /* gthread-2.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEA45F8B263519B5002FA97D /* qemu-aarch64-softmmu.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63FD22653C7500FC7E63 /* qemu-aarch64-softmmu.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEA45F8B263519B5002FA97D /* qemu-aarch64-softmmu.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63FD22653C7500FC7E63 /* qemu-aarch64-softmmu.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEA45F8F263519B5002FA97D /* gobject-2.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63F522653C7400FC7E63 /* gobject-2.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEA45F8F263519B5002FA97D /* gobject-2.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63F522653C7400FC7E63 /* gobject-2.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
@@ -890,6 +890,14 @@
 		CEC794BD2949663C00121A9F /* UTMScripting.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEC794BB2949663C00121A9F /* UTMScripting.swift */; };
 		CEC794BD2949663C00121A9F /* UTMScripting.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEC794BB2949663C00121A9F /* UTMScripting.swift */; };
 		CED234ED254796E500ED0A57 /* NumberTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = CED234EC254796E500ED0A57 /* NumberTextField.swift */; };
 		CED234ED254796E500ED0A57 /* NumberTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = CED234EC254796E500ED0A57 /* NumberTextField.swift */; };
 		CED234EE254796E500ED0A57 /* NumberTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = CED234EC254796E500ED0A57 /* NumberTextField.swift */; };
 		CED234EE254796E500ED0A57 /* NumberTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = CED234EC254796E500ED0A57 /* NumberTextField.swift */; };
+		CED297142CE425CB00F1E3EB /* soup-3.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CED297132CE425CA00F1E3EB /* soup-3.0.0.framework */; };
+		CED297152CE425CB00F1E3EB /* soup-3.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CED297132CE425CA00F1E3EB /* soup-3.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+		CED297192CE4263100F1E3EB /* soup-3.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CED297132CE425CA00F1E3EB /* soup-3.0.0.framework */; };
+		CED2971A2CE4263100F1E3EB /* soup-3.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CED297132CE425CA00F1E3EB /* soup-3.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+		CED2971B2CE4263600F1E3EB /* soup-3.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CED297132CE425CA00F1E3EB /* soup-3.0.0.framework */; };
+		CED2971C2CE4263600F1E3EB /* soup-3.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CED297132CE425CA00F1E3EB /* soup-3.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+		CED2971D2CE4263A00F1E3EB /* soup-3.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CED297132CE425CA00F1E3EB /* soup-3.0.0.framework */; };
+		CED2971E2CE4263A00F1E3EB /* soup-3.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CED297132CE425CA00F1E3EB /* soup-3.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
 		CED779E52C78C82A00EB82AE /* UTMTips.swift in Sources */ = {isa = PBXBuildFile; fileRef = CED779E42C78C82A00EB82AE /* UTMTips.swift */; };
 		CED779E52C78C82A00EB82AE /* UTMTips.swift in Sources */ = {isa = PBXBuildFile; fileRef = CED779E42C78C82A00EB82AE /* UTMTips.swift */; };
 		CED779E62C78C82A00EB82AE /* UTMTips.swift in Sources */ = {isa = PBXBuildFile; fileRef = CED779E42C78C82A00EB82AE /* UTMTips.swift */; };
 		CED779E62C78C82A00EB82AE /* UTMTips.swift in Sources */ = {isa = PBXBuildFile; fileRef = CED779E42C78C82A00EB82AE /* UTMTips.swift */; };
 		CED779E72C78C82A00EB82AE /* UTMTips.swift in Sources */ = {isa = PBXBuildFile; fileRef = CED779E42C78C82A00EB82AE /* UTMTips.swift */; };
 		CED779E72C78C82A00EB82AE /* UTMTips.swift in Sources */ = {isa = PBXBuildFile; fileRef = CED779E42C78C82A00EB82AE /* UTMTips.swift */; };
@@ -1134,7 +1142,7 @@
 		CEF7F6562AEEDCC400E34952 /* gstbase-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63E822653C7400FC7E63 /* gstbase-1.0.0.framework */; };
 		CEF7F6562AEEDCC400E34952 /* gstbase-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63E822653C7400FC7E63 /* gstbase-1.0.0.framework */; };
 		CEF7F6572AEEDCC400E34952 /* Logging in Frameworks */ = {isa = PBXBuildFile; productRef = CEF7F5842AEEDCC400E34952 /* Logging */; };
 		CEF7F6572AEEDCC400E34952 /* Logging in Frameworks */ = {isa = PBXBuildFile; productRef = CEF7F5842AEEDCC400E34952 /* Logging */; };
 		CEF7F6582AEEDCC400E34952 /* SwiftTerm in Frameworks */ = {isa = PBXBuildFile; productRef = CEF7F58E2AEEDCC400E34952 /* SwiftTerm */; };
 		CEF7F6582AEEDCC400E34952 /* SwiftTerm in Frameworks */ = {isa = PBXBuildFile; productRef = CEF7F58E2AEEDCC400E34952 /* SwiftTerm */; };
-		CEF7F65A2AEEDCC400E34952 /* phodav-2.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE059DC0243BD67100338317 /* phodav-2.0.0.framework */; };
+		CEF7F65A2AEEDCC400E34952 /* phodav-3.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE059DC0243BD67100338317 /* phodav-3.0.0.framework */; };
 		CEF7F65C2AEEDCC400E34952 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE0E9B86252FD06B0026E02B /* SwiftUI.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
 		CEF7F65C2AEEDCC400E34952 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE0E9B86252FD06B0026E02B /* SwiftUI.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
 		CEF7F65D2AEEDCC400E34952 /* gstcontroller-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63EE22653C7400FC7E63 /* gstcontroller-1.0.0.framework */; };
 		CEF7F65D2AEEDCC400E34952 /* gstcontroller-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63EE22653C7400FC7E63 /* gstcontroller-1.0.0.framework */; };
 		CEF7F65E2AEEDCC400E34952 /* gstaudio-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63EF22653C7400FC7E63 /* gstaudio-1.0.0.framework */; };
 		CEF7F65E2AEEDCC400E34952 /* gstaudio-1.0.0.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2D63EF22653C7400FC7E63 /* gstaudio-1.0.0.framework */; };
@@ -1180,7 +1188,7 @@
 		CEF7F6962AEEDCC400E34952 /* gsttag-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63F622653C7400FC7E63 /* gsttag-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEF7F6962AEEDCC400E34952 /* gsttag-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63F622653C7400FC7E63 /* gsttag-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEF7F6982AEEDCC400E34952 /* gstrtp-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63DD22653C7400FC7E63 /* gstrtp-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEF7F6982AEEDCC400E34952 /* gstrtp-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63DD22653C7400FC7E63 /* gstrtp-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEF7F6992AEEDCC400E34952 /* gstriff-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63DE22653C7400FC7E63 /* gstriff-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEF7F6992AEEDCC400E34952 /* gstriff-1.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63DE22653C7400FC7E63 /* gstriff-1.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
-		CEF7F69C2AEEDCC400E34952 /* phodav-2.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE059DC0243BD67100338317 /* phodav-2.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
+		CEF7F69C2AEEDCC400E34952 /* phodav-3.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE059DC0243BD67100338317 /* phodav-3.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEF7F69D2AEEDCC400E34952 /* gthread-2.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63DC22653C7300FC7E63 /* gthread-2.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEF7F69D2AEEDCC400E34952 /* gthread-2.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63DC22653C7300FC7E63 /* gthread-2.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEF7F6A22AEEDCC400E34952 /* gobject-2.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63F522653C7400FC7E63 /* gobject-2.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEF7F6A22AEEDCC400E34952 /* gobject-2.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63F522653C7400FC7E63 /* gobject-2.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEF7F6A32AEEDCC400E34952 /* gmodule-2.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63D822653C7300FC7E63 /* gmodule-2.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		CEF7F6A32AEEDCC400E34952 /* gmodule-2.0.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE2D63D822653C7300FC7E63 /* gmodule-2.0.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
@@ -1288,6 +1296,7 @@
 				CE0B6F1F24AD679E00FE012D /* gstcontroller-1.0.0.framework in Embed Libraries */,
 				CE0B6F1F24AD679E00FE012D /* gstcontroller-1.0.0.framework in Embed Libraries */,
 				CEF83F8E250094EC00557D15 /* gpg-error.0.framework in Embed Libraries */,
 				CEF83F8E250094EC00557D15 /* gpg-error.0.framework in Embed Libraries */,
 				CE0B6F1A24AD679500FE012D /* gstallocators-1.0.0.framework in Embed Libraries */,
 				CE0B6F1A24AD679500FE012D /* gstallocators-1.0.0.framework in Embed Libraries */,
+				CED297152CE425CB00F1E3EB /* soup-3.0.0.framework in Embed Libraries */,
 				CE03D08F24D9124200F76B84 /* gobject-2.0.0.framework in Embed Libraries */,
 				CE03D08F24D9124200F76B84 /* gobject-2.0.0.framework in Embed Libraries */,
 				CE0B6F1D24AD679B00FE012D /* gstbase-1.0.0.framework in Embed Libraries */,
 				CE0B6F1D24AD679B00FE012D /* gstbase-1.0.0.framework in Embed Libraries */,
 				CE0B6F2224AD67A200FE012D /* gstnet-1.0.0.framework in Embed Libraries */,
 				CE0B6F2224AD67A200FE012D /* gstnet-1.0.0.framework in Embed Libraries */,
@@ -1299,7 +1308,7 @@
 				CEF83F8B250094D700557D15 /* spice-server.1.framework in Embed Libraries */,
 				CEF83F8B250094D700557D15 /* spice-server.1.framework in Embed Libraries */,
 				CE0B6F1B24AD679700FE012D /* gstapp-1.0.0.framework in Embed Libraries */,
 				CE0B6F1B24AD679700FE012D /* gstapp-1.0.0.framework in Embed Libraries */,
 				CE0B6F2924AD67AD00FE012D /* gsttag-1.0.0.framework in Embed Libraries */,
 				CE0B6F2924AD67AD00FE012D /* gsttag-1.0.0.framework in Embed Libraries */,
-				CE0B6F3124AD67C100FE012D /* phodav-2.0.0.framework in Embed Libraries */,
+				CE0B6F3124AD67C100FE012D /* phodav-3.0.0.framework in Embed Libraries */,
 				CE0B6F2624AD67A900FE012D /* gstrtp-1.0.0.framework in Embed Libraries */,
 				CE0B6F2624AD67A900FE012D /* gstrtp-1.0.0.framework in Embed Libraries */,
 				CE0B6F2524AD67A700FE012D /* gstriff-1.0.0.framework in Embed Libraries */,
 				CE0B6F2524AD67A700FE012D /* gstriff-1.0.0.framework in Embed Libraries */,
 				CE0B6F2424AD67A600FE012D /* gstreamer-1.0.0.framework in Embed Libraries */,
 				CE0B6F2424AD67A600FE012D /* gstreamer-1.0.0.framework in Embed Libraries */,
@@ -1395,7 +1404,7 @@
 				CE2D938B24AD46670059923A /* gstriff-1.0.0.framework in Embed Libraries */,
 				CE2D938B24AD46670059923A /* gstriff-1.0.0.framework in Embed Libraries */,
 				CE2D938C24AD46670059923A /* qemu-ppc-softmmu.framework in Embed Libraries */,
 				CE2D938C24AD46670059923A /* qemu-ppc-softmmu.framework in Embed Libraries */,
 				84C5068728CA5702007CE8FF /* Hypervisor.framework in Embed Libraries */,
 				84C5068728CA5702007CE8FF /* Hypervisor.framework in Embed Libraries */,
-				CE2D938D24AD46670059923A /* phodav-2.0.0.framework in Embed Libraries */,
+				CE2D938D24AD46670059923A /* phodav-3.0.0.framework in Embed Libraries */,
 				CE2D938E24AD46670059923A /* gthread-2.0.0.framework in Embed Libraries */,
 				CE2D938E24AD46670059923A /* gthread-2.0.0.framework in Embed Libraries */,
 				CE2D938F24AD46670059923A /* qemu-aarch64-softmmu.framework in Embed Libraries */,
 				CE2D938F24AD46670059923A /* qemu-aarch64-softmmu.framework in Embed Libraries */,
 				CEA9059225FC6A3500801E7C /* usbredirparser.1.framework in Embed Libraries */,
 				CEA9059225FC6A3500801E7C /* usbredirparser.1.framework in Embed Libraries */,
@@ -1425,6 +1434,7 @@
 				CE2D93A324AD46670059923A /* gstvideo-1.0.0.framework in Embed Libraries */,
 				CE2D93A324AD46670059923A /* gstvideo-1.0.0.framework in Embed Libraries */,
 				CE2D93A424AD46670059923A /* json-glib-1.0.0.framework in Embed Libraries */,
 				CE2D93A424AD46670059923A /* json-glib-1.0.0.framework in Embed Libraries */,
 				CE2D93A524AD46670059923A /* pixman-1.0.framework in Embed Libraries */,
 				CE2D93A524AD46670059923A /* pixman-1.0.framework in Embed Libraries */,
+				CED2971A2CE4263100F1E3EB /* soup-3.0.0.framework in Embed Libraries */,
 				CE2D93A624AD46670059923A /* jpeg.62.framework in Embed Libraries */,
 				CE2D93A624AD46670059923A /* jpeg.62.framework in Embed Libraries */,
 				CE2D93A724AD46670059923A /* qemu-microblazeel-softmmu.framework in Embed Libraries */,
 				CE2D93A724AD46670059923A /* qemu-microblazeel-softmmu.framework in Embed Libraries */,
 				CE2D93A824AD46670059923A /* qemu-hppa-softmmu.framework in Embed Libraries */,
 				CE2D93A824AD46670059923A /* qemu-hppa-softmmu.framework in Embed Libraries */,
@@ -1478,12 +1488,13 @@
 				CEA45F7C263519B5002FA97D /* gstnet-1.0.0.framework in Embed Libraries */,
 				CEA45F7C263519B5002FA97D /* gstnet-1.0.0.framework in Embed Libraries */,
 				CEA45F7E263519B5002FA97D /* crypto.1.1.framework in Embed Libraries */,
 				CEA45F7E263519B5002FA97D /* crypto.1.1.framework in Embed Libraries */,
 				CEA45F7F263519B5002FA97D /* qemu-riscv64-softmmu.framework in Embed Libraries */,
 				CEA45F7F263519B5002FA97D /* qemu-riscv64-softmmu.framework in Embed Libraries */,
+				CED2971C2CE4263600F1E3EB /* soup-3.0.0.framework in Embed Libraries */,
 				CEA45F80263519B5002FA97D /* gstapp-1.0.0.framework in Embed Libraries */,
 				CEA45F80263519B5002FA97D /* gstapp-1.0.0.framework in Embed Libraries */,
 				CEA45F84263519B5002FA97D /* gsttag-1.0.0.framework in Embed Libraries */,
 				CEA45F84263519B5002FA97D /* gsttag-1.0.0.framework in Embed Libraries */,
 				CEA45F86263519B5002FA97D /* gstrtp-1.0.0.framework in Embed Libraries */,
 				CEA45F86263519B5002FA97D /* gstrtp-1.0.0.framework in Embed Libraries */,
 				CEA45F87263519B5002FA97D /* gstriff-1.0.0.framework in Embed Libraries */,
 				CEA45F87263519B5002FA97D /* gstriff-1.0.0.framework in Embed Libraries */,
 				CEA45F88263519B5002FA97D /* qemu-ppc-softmmu.framework in Embed Libraries */,
 				CEA45F88263519B5002FA97D /* qemu-ppc-softmmu.framework in Embed Libraries */,
-				CEA45F89263519B5002FA97D /* phodav-2.0.0.framework in Embed Libraries */,
+				CEA45F89263519B5002FA97D /* phodav-3.0.0.framework in Embed Libraries */,
 				CEA45F8A263519B5002FA97D /* gthread-2.0.0.framework in Embed Libraries */,
 				CEA45F8A263519B5002FA97D /* gthread-2.0.0.framework in Embed Libraries */,
 				84937F20289767F0003148F4 /* zstd.1.framework in Embed Libraries */,
 				84937F20289767F0003148F4 /* zstd.1.framework in Embed Libraries */,
 				CEA45F8B263519B5002FA97D /* qemu-aarch64-softmmu.framework in Embed Libraries */,
 				CEA45F8B263519B5002FA97D /* qemu-aarch64-softmmu.framework in Embed Libraries */,
@@ -1542,6 +1553,7 @@
 				CEF7F6832AEEDCC400E34952 /* gpg-error.0.framework in Embed Libraries */,
 				CEF7F6832AEEDCC400E34952 /* gpg-error.0.framework in Embed Libraries */,
 				CEF7F6852AEEDCC400E34952 /* gstcontroller-1.0.0.framework in Embed Libraries */,
 				CEF7F6852AEEDCC400E34952 /* gstcontroller-1.0.0.framework in Embed Libraries */,
 				CEF7F6862AEEDCC400E34952 /* gstallocators-1.0.0.framework in Embed Libraries */,
 				CEF7F6862AEEDCC400E34952 /* gstallocators-1.0.0.framework in Embed Libraries */,
+				CED2971E2CE4263A00F1E3EB /* soup-3.0.0.framework in Embed Libraries */,
 				CEF7F6872AEEDCC400E34952 /* gstbase-1.0.0.framework in Embed Libraries */,
 				CEF7F6872AEEDCC400E34952 /* gstbase-1.0.0.framework in Embed Libraries */,
 				CEF7F6882AEEDCC400E34952 /* ffi.7.framework in Embed Libraries */,
 				CEF7F6882AEEDCC400E34952 /* ffi.7.framework in Embed Libraries */,
 				CEF7F6892AEEDCC400E34952 /* ssl.1.1.framework in Embed Libraries */,
 				CEF7F6892AEEDCC400E34952 /* ssl.1.1.framework in Embed Libraries */,
@@ -1553,7 +1565,7 @@
 				CEF7F6962AEEDCC400E34952 /* gsttag-1.0.0.framework in Embed Libraries */,
 				CEF7F6962AEEDCC400E34952 /* gsttag-1.0.0.framework in Embed Libraries */,
 				CEF7F6982AEEDCC400E34952 /* gstrtp-1.0.0.framework in Embed Libraries */,
 				CEF7F6982AEEDCC400E34952 /* gstrtp-1.0.0.framework in Embed Libraries */,
 				CEF7F6992AEEDCC400E34952 /* gstriff-1.0.0.framework in Embed Libraries */,
 				CEF7F6992AEEDCC400E34952 /* gstriff-1.0.0.framework in Embed Libraries */,
-				CEF7F69C2AEEDCC400E34952 /* phodav-2.0.0.framework in Embed Libraries */,
+				CEF7F69C2AEEDCC400E34952 /* phodav-3.0.0.framework in Embed Libraries */,
 				CEF7F69D2AEEDCC400E34952 /* gthread-2.0.0.framework in Embed Libraries */,
 				CEF7F69D2AEEDCC400E34952 /* gthread-2.0.0.framework in Embed Libraries */,
 				CEF7F6A22AEEDCC400E34952 /* gobject-2.0.0.framework in Embed Libraries */,
 				CEF7F6A22AEEDCC400E34952 /* gobject-2.0.0.framework in Embed Libraries */,
 				CEF7F6A32AEEDCC400E34952 /* gmodule-2.0.0.framework in Embed Libraries */,
 				CEF7F6A32AEEDCC400E34952 /* gmodule-2.0.0.framework in Embed Libraries */,
@@ -1774,7 +1786,7 @@
 		CE03D0D324DCF6DD00F76B84 /* VMMetalViewInputDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VMMetalViewInputDelegate.swift; sourceTree = "<group>"; };
 		CE03D0D324DCF6DD00F76B84 /* VMMetalViewInputDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VMMetalViewInputDelegate.swift; sourceTree = "<group>"; };
 		CE056CA4242454100004B68A /* VMDisplayMetalViewController+Touch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "VMDisplayMetalViewController+Touch.h"; sourceTree = "<group>"; };
 		CE056CA4242454100004B68A /* VMDisplayMetalViewController+Touch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "VMDisplayMetalViewController+Touch.h"; sourceTree = "<group>"; };
 		CE056CA5242454100004B68A /* VMDisplayMetalViewController+Touch.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "VMDisplayMetalViewController+Touch.m"; sourceTree = "<group>"; };
 		CE056CA5242454100004B68A /* VMDisplayMetalViewController+Touch.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "VMDisplayMetalViewController+Touch.m"; sourceTree = "<group>"; };
-		CE059DC0243BD67100338317 /* phodav-2.0.0.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "phodav-2.0.0.framework"; path = "$(SYSROOT_DIR)/Frameworks/phodav-2.0.0.framework"; sourceTree = "<group>"; };
+		CE059DC0243BD67100338317 /* phodav-3.0.0.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "phodav-3.0.0.framework"; path = "$(SYSROOT_DIR)/Frameworks/phodav-3.0.0.framework"; sourceTree = "<group>"; };
 		CE059DC3243BFA3200338317 /* UTMLegacyQemuConfiguration+Sharing.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UTMLegacyQemuConfiguration+Sharing.h"; sourceTree = "<group>"; };
 		CE059DC3243BFA3200338317 /* UTMLegacyQemuConfiguration+Sharing.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UTMLegacyQemuConfiguration+Sharing.h"; sourceTree = "<group>"; };
 		CE059DC4243BFA3200338317 /* UTMLegacyQemuConfiguration+Sharing.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UTMLegacyQemuConfiguration+Sharing.m"; sourceTree = "<group>"; };
 		CE059DC4243BFA3200338317 /* UTMLegacyQemuConfiguration+Sharing.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UTMLegacyQemuConfiguration+Sharing.m"; sourceTree = "<group>"; };
 		CE059DC6243E9E3400338317 /* UTMLocationManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UTMLocationManager.h; sourceTree = "<group>"; };
 		CE059DC6243E9E3400338317 /* UTMLocationManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UTMLocationManager.h; sourceTree = "<group>"; };
@@ -2015,6 +2027,7 @@
 		CECF02562B706ADD00409FC0 /* UTMRemoteConnectInterface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UTMRemoteConnectInterface.h; sourceTree = "<group>"; };
 		CECF02562B706ADD00409FC0 /* UTMRemoteConnectInterface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UTMRemoteConnectInterface.h; sourceTree = "<group>"; };
 		CECF02572B70909900409FC0 /* Info-Remote.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-Remote.plist"; sourceTree = "<group>"; };
 		CECF02572B70909900409FC0 /* Info-Remote.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-Remote.plist"; sourceTree = "<group>"; };
 		CED234EC254796E500ED0A57 /* NumberTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NumberTextField.swift; sourceTree = "<group>"; };
 		CED234EC254796E500ED0A57 /* NumberTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NumberTextField.swift; sourceTree = "<group>"; };
+		CED297132CE425CA00F1E3EB /* soup-3.0.0.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "soup-3.0.0.framework"; path = "$(SYSROOT_DIR)/Frameworks/soup-3.0.0.framework"; sourceTree = "<group>"; };
 		CED779E42C78C82A00EB82AE /* UTMTips.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UTMTips.swift; sourceTree = "<group>"; };
 		CED779E42C78C82A00EB82AE /* UTMTips.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UTMTips.swift; sourceTree = "<group>"; };
 		CED779E92C7938D500EB82AE /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = "<group>"; };
 		CED779E92C7938D500EB82AE /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = "<group>"; };
 		CED814E824C79F070042F0F1 /* VMConfigDriveCreateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VMConfigDriveCreateView.swift; sourceTree = "<group>"; };
 		CED814E824C79F070042F0F1 /* VMConfigDriveCreateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VMConfigDriveCreateView.swift; sourceTree = "<group>"; };
@@ -2128,6 +2141,7 @@
 				CE2D933224AD46670059923A /* libgstvolume.a in Frameworks */,
 				CE2D933224AD46670059923A /* libgstvolume.a in Frameworks */,
 				CE2D933324AD46670059923A /* libgstcoreelements.a in Frameworks */,
 				CE2D933324AD46670059923A /* libgstcoreelements.a in Frameworks */,
 				CE2D933424AD46670059923A /* libgstvideorate.a in Frameworks */,
 				CE2D933424AD46670059923A /* libgstvideorate.a in Frameworks */,
+				CED297192CE4263100F1E3EB /* soup-3.0.0.framework in Frameworks */,
 				CE2D933524AD46670059923A /* libgstjpeg.a in Frameworks */,
 				CE2D933524AD46670059923A /* libgstjpeg.a in Frameworks */,
 				CE2D933624AD46670059923A /* libgstaudioresample.a in Frameworks */,
 				CE2D933624AD46670059923A /* libgstaudioresample.a in Frameworks */,
 				CE2D933724AD46670059923A /* libgstplayback.a in Frameworks */,
 				CE2D933724AD46670059923A /* libgstplayback.a in Frameworks */,
@@ -2163,7 +2177,7 @@
 				CE020BA724AEDEF000B44AB6 /* Logging in Frameworks */,
 				CE020BA724AEDEF000B44AB6 /* Logging in Frameworks */,
 				8401865A2887AFD50050AC51 /* SwiftTerm in Frameworks */,
 				8401865A2887AFD50050AC51 /* SwiftTerm in Frameworks */,
 				CE02C8AC294EE4EC006DFE48 /* slirp.0.framework in Frameworks */,
 				CE02C8AC294EE4EC006DFE48 /* slirp.0.framework in Frameworks */,
-				CE2D934F24AD46670059923A /* phodav-2.0.0.framework in Frameworks */,
+				CE2D934F24AD46670059923A /* phodav-3.0.0.framework in Frameworks */,
 				CEA9059025FC6A1700801E7C /* usbredirparser.1.framework in Frameworks */,
 				CEA9059025FC6A1700801E7C /* usbredirparser.1.framework in Frameworks */,
 				CE0E9B87252FD06B0026E02B /* SwiftUI.framework in Frameworks */,
 				CE0E9B87252FD06B0026E02B /* SwiftUI.framework in Frameworks */,
 				CE2D935024AD46670059923A /* gstcontroller-1.0.0.framework in Frameworks */,
 				CE2D935024AD46670059923A /* gstcontroller-1.0.0.framework in Frameworks */,
@@ -2230,7 +2244,7 @@
 				CE0B6EF124AD677200FE012D /* libgstplayback.a in Frameworks */,
 				CE0B6EF124AD677200FE012D /* libgstplayback.a in Frameworks */,
 				CE0B6EF424AD677200FE012D /* json-glib-1.0.0.framework in Frameworks */,
 				CE0B6EF424AD677200FE012D /* json-glib-1.0.0.framework in Frameworks */,
 				CEDD11C12B7C74D7004DDAC6 /* SwiftPortmap in Frameworks */,
 				CEDD11C12B7C74D7004DDAC6 /* SwiftPortmap in Frameworks */,
-				CE0B6ED124AD677200FE012D /* phodav-2.0.0.framework in Frameworks */,
+				CE0B6ED124AD677200FE012D /* phodav-3.0.0.framework in Frameworks */,
 				CEF83F862500947D00557D15 /* gcrypt.20.framework in Frameworks */,
 				CEF83F862500947D00557D15 /* gcrypt.20.framework in Frameworks */,
 				CE0B6ECB24AD677200FE012D /* gstcheck-1.0.0.framework in Frameworks */,
 				CE0B6ECB24AD677200FE012D /* gstcheck-1.0.0.framework in Frameworks */,
 				CE0B6F0724AD677200FE012D /* libgstvolume.a in Frameworks */,
 				CE0B6F0724AD677200FE012D /* libgstvolume.a in Frameworks */,
@@ -2256,6 +2270,7 @@
 				84937EFF28960789003148F4 /* zstd.1.framework in Frameworks */,
 				84937EFF28960789003148F4 /* zstd.1.framework in Frameworks */,
 				CE0B6EE224AD677200FE012D /* gstnet-1.0.0.framework in Frameworks */,
 				CE0B6EE224AD677200FE012D /* gstnet-1.0.0.framework in Frameworks */,
 				CE03D08624D90F0700F76B84 /* gmodule-2.0.0.framework in Frameworks */,
 				CE03D08624D90F0700F76B84 /* gmodule-2.0.0.framework in Frameworks */,
+				CED297142CE425CB00F1E3EB /* soup-3.0.0.framework in Frameworks */,
 				CE03D0CA24D9142000F76B84 /* ssl.1.1.framework in Frameworks */,
 				CE03D0CA24D9142000F76B84 /* ssl.1.1.framework in Frameworks */,
 				CE0B6EC624AD677200FE012D /* gstfft-1.0.0.framework in Frameworks */,
 				CE0B6EC624AD677200FE012D /* gstfft-1.0.0.framework in Frameworks */,
 				CE0B6EE624AD677200FE012D /* libgstaudiorate.a in Frameworks */,
 				CE0B6EE624AD677200FE012D /* libgstaudiorate.a in Frameworks */,
@@ -2295,6 +2310,7 @@
 				CEA45F2A263519B5002FA97D /* MetalKit.framework in Frameworks */,
 				CEA45F2A263519B5002FA97D /* MetalKit.framework in Frameworks */,
 				84CF5DF3288E433F00D01721 /* SwiftUIVisualEffects in Frameworks */,
 				84CF5DF3288E433F00D01721 /* SwiftUIVisualEffects in Frameworks */,
 				84818C0D2898A07F009EDB67 /* AVFAudio.framework in Frameworks */,
 				84818C0D2898A07F009EDB67 /* AVFAudio.framework in Frameworks */,
+				CED2971B2CE4263600F1E3EB /* soup-3.0.0.framework in Frameworks */,
 				CEA45F2B263519B5002FA97D /* libgstvolume.a in Frameworks */,
 				CEA45F2B263519B5002FA97D /* libgstvolume.a in Frameworks */,
 				CEA45F2C263519B5002FA97D /* libgstcoreelements.a in Frameworks */,
 				CEA45F2C263519B5002FA97D /* libgstcoreelements.a in Frameworks */,
 				CEA45F2D263519B5002FA97D /* libgstvideorate.a in Frameworks */,
 				CEA45F2D263519B5002FA97D /* libgstvideorate.a in Frameworks */,
@@ -2326,7 +2342,7 @@
 				CEA45F45263519B5002FA97D /* gstbase-1.0.0.framework in Frameworks */,
 				CEA45F45263519B5002FA97D /* gstbase-1.0.0.framework in Frameworks */,
 				CEA45F46263519B5002FA97D /* Logging in Frameworks */,
 				CEA45F46263519B5002FA97D /* Logging in Frameworks */,
 				84A0A88C2A47D5D70038F329 /* QEMUKit in Frameworks */,
 				84A0A88C2A47D5D70038F329 /* QEMUKit in Frameworks */,
-				CEA45F47263519B5002FA97D /* phodav-2.0.0.framework in Frameworks */,
+				CEA45F47263519B5002FA97D /* phodav-3.0.0.framework in Frameworks */,
 				CEA45F49263519B5002FA97D /* SwiftUI.framework in Frameworks */,
 				CEA45F49263519B5002FA97D /* SwiftUI.framework in Frameworks */,
 				CEA45F4A263519B5002FA97D /* gstcontroller-1.0.0.framework in Frameworks */,
 				CEA45F4A263519B5002FA97D /* gstcontroller-1.0.0.framework in Frameworks */,
 				CEA45F4B263519B5002FA97D /* gstaudio-1.0.0.framework in Frameworks */,
 				CEA45F4B263519B5002FA97D /* gstaudio-1.0.0.framework in Frameworks */,
@@ -2408,7 +2424,8 @@
 				CEF7F6562AEEDCC400E34952 /* gstbase-1.0.0.framework in Frameworks */,
 				CEF7F6562AEEDCC400E34952 /* gstbase-1.0.0.framework in Frameworks */,
 				CEF7F6572AEEDCC400E34952 /* Logging in Frameworks */,
 				CEF7F6572AEEDCC400E34952 /* Logging in Frameworks */,
 				CEF7F6582AEEDCC400E34952 /* SwiftTerm in Frameworks */,
 				CEF7F6582AEEDCC400E34952 /* SwiftTerm in Frameworks */,
-				CEF7F65A2AEEDCC400E34952 /* phodav-2.0.0.framework in Frameworks */,
+				CED2971D2CE4263A00F1E3EB /* soup-3.0.0.framework in Frameworks */,
+				CEF7F65A2AEEDCC400E34952 /* phodav-3.0.0.framework in Frameworks */,
 				CEF7F65C2AEEDCC400E34952 /* SwiftUI.framework in Frameworks */,
 				CEF7F65C2AEEDCC400E34952 /* SwiftUI.framework in Frameworks */,
 				CEF7F65D2AEEDCC400E34952 /* gstcontroller-1.0.0.framework in Frameworks */,
 				CEF7F65D2AEEDCC400E34952 /* gstcontroller-1.0.0.framework in Frameworks */,
 				CEF7F65E2AEEDCC400E34952 /* gstaudio-1.0.0.framework in Frameworks */,
 				CEF7F65E2AEEDCC400E34952 /* gstaudio-1.0.0.framework in Frameworks */,
@@ -2511,6 +2528,7 @@
 		CE2D63D622653C7300FC7E63 /* Frameworks */ = {
 		CE2D63D622653C7300FC7E63 /* Frameworks */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
+				CED297132CE425CA00F1E3EB /* soup-3.0.0.framework */,
 				CE064C642A563F4A003C833D /* swtpm.0.framework */,
 				CE064C642A563F4A003C833D /* swtpm.0.framework */,
 				CE02C8A8294EE4EA006DFE48 /* qemu-loongarch64-softmmu.framework */,
 				CE02C8A8294EE4EA006DFE48 /* qemu-loongarch64-softmmu.framework */,
 				CE02C8A9294EE4EB006DFE48 /* slirp.0.framework */,
 				CE02C8A9294EE4EB006DFE48 /* slirp.0.framework */,
@@ -2527,7 +2545,7 @@
 				CEA9058825FC69D100801E7C /* usbredirparser.1.framework */,
 				CEA9058825FC69D100801E7C /* usbredirparser.1.framework */,
 				CEA9053725F981E900801E7C /* usb-1.0.0.framework */,
 				CEA9053725F981E900801E7C /* usb-1.0.0.framework */,
 				CE0E9B86252FD06B0026E02B /* SwiftUI.framework */,
 				CE0E9B86252FD06B0026E02B /* SwiftUI.framework */,
-				CE059DC0243BD67100338317 /* phodav-2.0.0.framework */,
+				CE059DC0243BD67100338317 /* phodav-3.0.0.framework */,
 				CE66450C2269313200B0849A /* MetalKit.framework */,
 				CE66450C2269313200B0849A /* MetalKit.framework */,
 				CE9D195D2265425900355E14 /* libgstadder.a */,
 				CE9D195D2265425900355E14 /* libgstadder.a */,
 				CE9D19612265425900355E14 /* libgstapp.a */,
 				CE9D19612265425900355E14 /* libgstapp.a */,

+ 0 - 114
patches/libsoup-2.74.2.patch

@@ -1,114 +0,0 @@
-From 119abc03aac8c5cf1af0845a0e64b3027ce1fa78 Mon Sep 17 00:00:00 2001
-From: osy <50960678+osy@users.noreply.github.com>
-Date: Sat, 5 Mar 2022 17:02:38 -0800
-Subject: [PATCH] soup-tld: disabled when libpsl is optional
-
-When building without libpsl, we no longer have soup-tld.c. As a result,
-we do not provide those APIs in the built library and additionally the
-following change is made to soup_cookie_jar_add_cookie_full()
-
-1. We no longer reject cookies for public domains
-2. If the accept policy is not SOUP_COOKIE_JAR_ACCEPT_ALWAYS we assume
-   all incoming cookie is third party and reject it.
----
- libsoup/meson.build       | 4 +++-
- libsoup/soup-cookie-jar.c | 6 ++++++
- meson.build               | 5 ++++-
- tests/meson.build         | 7 ++++++-
- 4 files changed, 19 insertions(+), 3 deletions(-)
-
-diff --git a/libsoup/meson.build b/libsoup/meson.build
-index e585b3fe..ec0aca23 100644
---- a/libsoup/meson.build
-+++ b/libsoup/meson.build
-@@ -76,7 +76,6 @@ soup_sources = [
-   'soup-socket.c',
-   'soup-socket-properties.c',
-   'soup-status.c',
--  'soup-tld.c',
-   'soup-uri.c',
-   'soup-value-utils.c',
-   'soup-version.c',
-@@ -208,6 +207,9 @@ if brotlidec_dep.found()
-   soup_headers += 'soup-brotli-decompressor.h'
- endif
- 
-+if libpsl_dep.found()
-+  soup_sources += 'soup-tld.c'
-+endif
- 
- includedir = join_paths(libsoup_api_name, meson.project_name())
- install_headers(soup_installed_headers, subdir : includedir)
-diff --git a/libsoup/soup-cookie-jar.c b/libsoup/soup-cookie-jar.c
-index c8231f0e..5e35e135 100644
---- a/libsoup/soup-cookie-jar.c
-+++ b/libsoup/soup-cookie-jar.c
-@@ -595,18 +595,24 @@ soup_cookie_jar_add_cookie_full (SoupCookieJar *jar, SoupCookie *cookie, SoupURI
- 	g_return_if_fail (SOUP_IS_COOKIE_JAR (jar));
- 	g_return_if_fail (cookie != NULL);
- 
-+#ifdef HAVE_TLD
- 	/* Never accept cookies for public domains. */
- 	if (!g_hostname_is_ip_address (cookie->domain) &&
- 	    soup_tld_domain_is_public_suffix (cookie->domain)) {
- 		soup_cookie_free (cookie);
- 		return;
- 	}
-+#endif
- 
- 	priv = soup_cookie_jar_get_instance_private (jar);
- 
-         if (first_party != NULL) {
-+#ifdef HAVE_TLD
-                 if (priv->accept_policy == SOUP_COOKIE_JAR_ACCEPT_NEVER ||
-                     incoming_cookie_is_third_party (jar, cookie, first_party, priv->accept_policy)) {
-+#else // no TLD, assume every cookie is third-party
-+                if (priv->accept_policy != SOUP_COOKIE_JAR_ACCEPT_ALWAYS) {
-+#endif
-                         soup_cookie_free (cookie);
-                         return;
-                 }
-diff --git a/meson.build b/meson.build
-index 3cc56fb9..5865dfc7 100644
---- a/meson.build
-+++ b/meson.build
-@@ -148,7 +148,10 @@ endif
- 
- libpsl_required_version = '>= 0.20'
- libpsl_dep = dependency('libpsl', version : libpsl_required_version,
--  fallback : ['libpsl', 'libpsl_dep'])
-+  fallback : ['libpsl', 'libpsl_dep'], required : false)
-+if libpsl_dep.found()
-+    cdata.set('HAVE_TLD', '1')
-+endif
- 
- if cc.has_function('gmtime_r', prefix : '#include <time.h>', args : default_source_flag)
-     cdata.set('HAVE_GMTIME_R', '1')
-diff --git a/tests/meson.build b/tests/meson.build
-index 5482aa86..d5b32a12 100644
---- a/tests/meson.build
-+++ b/tests/meson.build
-@@ -62,7 +62,6 @@ tests = [
-   ['ssl', true, []],
-   ['streaming', true, []],
-   ['timeout', true, []],
--  ['tld', true, []],
-   ['uri-parsing', true, []],
-   ['websocket', true, [libz_dep]]
- ]
-@@ -82,6 +81,12 @@ if brotlidec_dep.found()
-   endif
- endif
- 
-+if libpsl_dep.found()
-+  tests += [
-+    ['tld', true, []],
-+  ]
-+endif
-+
- if have_apache
-   tests += [
-     ['auth', false, []],
--- 
-2.32.0 (Apple Git-132)
-

+ 255 - 0
patches/libsoup-3.6.0.patch

@@ -0,0 +1,255 @@
+From 95102597efaddede487bd03c191fa0a08b70e3b6 Mon Sep 17 00:00:00 2001
+From: osy <osy@turing.llc>
+Date: Mon, 11 Nov 2024 14:47:39 -0800
+Subject: [PATCH 1/2] soup-tld: disabled when libpsl is optional
+
+When building without libpsl, we no longer have soup-tld.c. As a result,
+we do not provide those APIs in the built library and additionally the
+following change is made to soup_cookie_jar_add_cookie_full()
+
+1. We no longer reject cookies for public domains
+2. If the accept policy is not SOUP_COOKIE_JAR_ACCEPT_ALWAYS we assume
+   all incoming cookie is third party and reject it.
+---
+ libsoup/cookies/soup-cookie-jar.c | 15 +++++++++++++++
+ libsoup/meson.build               |  5 ++++-
+ meson.build                       |  5 ++++-
+ tests/meson.build                 |  5 ++++-
+ 4 files changed, 27 insertions(+), 3 deletions(-)
+
+diff --git a/libsoup/cookies/soup-cookie-jar.c b/libsoup/cookies/soup-cookie-jar.c
+index bdb6697a..753c36b5 100644
+--- a/libsoup/cookies/soup-cookie-jar.c
++++ b/libsoup/cookies/soup-cookie-jar.c
+@@ -511,6 +511,7 @@ normalize_cookie_domain (const char *domain)
+ 	return domain;
+ }
+ 
++#ifdef HAVE_TLD
+ static gboolean
+ incoming_cookie_is_third_party (SoupCookieJar            *jar,
+ 				SoupCookie               *cookie,
+@@ -563,6 +564,16 @@ incoming_cookie_is_third_party (SoupCookieJar            *jar,
+ 
+         return retval;
+ }
++#else
++static gboolean
++incoming_cookie_is_third_party (SoupCookieJar            *jar,
++				SoupCookie               *cookie,
++				GUri                     *first_party,
++				SoupCookieJarAcceptPolicy policy)
++{
++	return TRUE;
++}
++#endif
+ 
+ static gboolean
+ string_contains_ctrlcode (const char *s)
+@@ -612,7 +623,11 @@ soup_cookie_jar_add_cookie_full (SoupCookieJar *jar, SoupCookie *cookie, GUri *u
+ 
+ 	/* Never accept cookies for public domains. */
+ 	if (!g_hostname_is_ip_address (soup_cookie_get_domain (cookie)) &&
++#ifdef HAVE_TLD
+ 	    soup_tld_domain_is_public_suffix (soup_cookie_get_domain (cookie))) {
++#else
++	    priv->accept_policy != SOUP_COOKIE_JAR_ACCEPT_ALWAYS){
++#endif
+ 		soup_cookie_free (cookie);
+ 		return;
+ 	}
+diff --git a/libsoup/meson.build b/libsoup/meson.build
+index d920b522..b889931d 100644
+--- a/libsoup/meson.build
++++ b/libsoup/meson.build
+@@ -87,11 +87,14 @@ soup_sources = [
+   'soup-session-feature.c',
+   'soup-socket-properties.c',
+   'soup-status.c',
+-  'soup-tld.c',
+   'soup-uri-utils.c',
+   'soup-version.c',
+ ]
+ 
++if libpsl_dep.found()
++  soup_sources += 'soup-tld.c'
++endif
++
+ soup_private_enum_headers = [
+   'soup-connection.h',
+ ]
+diff --git a/meson.build b/meson.build
+index f7c63389..50ca7b91 100644
+--- a/meson.build
++++ b/meson.build
+@@ -155,7 +155,10 @@ endif
+ 
+ libpsl_required_version = '>= 0.20'
+ libpsl_dep = dependency('libpsl', version : libpsl_required_version,
+-  fallback : ['libpsl', 'libpsl_dep'])
++  fallback : ['libpsl', 'libpsl_dep'], required : false)
++if libnghttp2_dep.found()
++  cdata.set('HAVE_TLD', true)
++endif
+ 
+ if cc.has_function('gmtime_r', prefix : '#include <time.h>', args : default_source_flag)
+     cdata.set('HAVE_GMTIME_R', '1')
+diff --git a/tests/meson.build b/tests/meson.build
+index 01a0c63f..cf24ef97 100644
+--- a/tests/meson.build
++++ b/tests/meson.build
+@@ -102,12 +102,15 @@ tests = [
+   },
+   {'name': 'streaming'},
+   {'name': 'timeout'},
+-  {'name': 'tld'},
+   {'name': 'uri-parsing'},
+   {'name': 'websocket',
+    'dependencies': [libz_dep]},
+ ]
+ 
++if libpsl_dep.found()
++  tests += [{'name': 'tld'}]
++endif
++
+ if brotlidec_dep.found()
+   tests += [{'name': 'brotli-decompressor'}]
+ 
+-- 
+2.41.0
+
+From e4ce620a7db4d2f1a581a8095fea32a182b353aa Mon Sep 17 00:00:00 2001
+From: osy <osy@turing.llc>
+Date: Mon, 11 Nov 2024 14:48:15 -0800
+Subject: [PATCH 2/2] build: make HTTP2 optional
+
+---
+ libsoup/meson.build                     | 13 ++++++++-----
+ libsoup/server/soup-server-connection.c |  4 ++++
+ libsoup/soup-connection.c               |  4 ++++
+ meson.build                             |  9 ++++++---
+ tests/meson.build                       |  7 +++++--
+ 5 files changed, 27 insertions(+), 10 deletions(-)
+
+diff --git a/libsoup/meson.build b/libsoup/meson.build
+index b889931d..f2f4a0d7 100644
+--- a/libsoup/meson.build
++++ b/libsoup/meson.build
+@@ -39,11 +39,7 @@ soup_sources = [
+   'http1/soup-message-io-data.c',
+   'http1/soup-message-io-source.c',
+ 
+-  'http2/soup-client-message-io-http2.c',
+-  'http2/soup-body-input-stream-http2.c',
+-
+   'server/http1/soup-server-message-io-http1.c',
+-  'server/http2/soup-server-message-io-http2.c',
+   'server/soup-auth-domain.c',
+   'server/soup-auth-domain-basic.c',
+   'server/soup-auth-domain-digest.c',
+@@ -70,7 +66,6 @@ soup_sources = [
+   'soup-form.c',
+   'soup-headers.c',
+   'soup-header-names.c',
+-  'soup-http2-utils.c',
+   'soup-init.c',
+   'soup-io-stream.c',
+   'soup-logger.c',
+@@ -95,6 +90,14 @@ if libpsl_dep.found()
+   soup_sources += 'soup-tld.c'
+ endif
+ 
++if libnghttp2_dep.found()
++  soup_sources += 'http2/soup-client-message-io-http2.c'
++  soup_sources += 'http2/soup-body-input-stream-http2.c'
++  soup_sources += 'server/http2/soup-server-message-io-http2.c'
++  soup_sources += 'soup-http2-utils.c'
++endif
++
++
+ soup_private_enum_headers = [
+   'soup-connection.h',
+ ]
+diff --git a/libsoup/server/soup-server-connection.c b/libsoup/server/soup-server-connection.c
+index cac4eaa7..02fdb497 100644
+--- a/libsoup/server/soup-server-connection.c
++++ b/libsoup/server/soup-server-connection.c
+@@ -395,10 +395,14 @@ soup_server_connection_connected (SoupServerConnection *conn)
+                                                                   conn);
+                 break;
+         case SOUP_HTTP_2_0:
++#ifdef WITH_HTTP2
+                 priv->io_data = soup_server_message_io_http2_new (conn,
+                                                                   g_steal_pointer (&priv->initial_msg),
+                                                                   (SoupMessageIOStartedFn)request_started_cb,
+                                                                   conn);
++#else
++                g_assert_not_reached();
++#endif
+                 break;
+         }
+         g_signal_emit (conn, signals[CONNECTED], 0);
+diff --git a/libsoup/soup-connection.c b/libsoup/soup-connection.c
+index 9100f8c9..fc28cd22 100644
+--- a/libsoup/soup-connection.c
++++ b/libsoup/soup-connection.c
+@@ -504,7 +504,11 @@ soup_connection_create_io_data (SoupConnection *conn)
+                 priv->io_data = soup_client_message_io_http1_new (conn);
+                 break;
+         case SOUP_HTTP_2_0:
++#ifdef WITH_HTTP2
+                 priv->io_data = soup_client_message_io_http2_new (conn);
++#else
++                g_assert_not_reached();
++#endif
+                 break;
+         }
+ }
+diff --git a/meson.build b/meson.build
+index 50ca7b91..1ec35873 100644
+--- a/meson.build
++++ b/meson.build
+@@ -112,9 +112,12 @@ glib_deps = [glib_dep, gmodule_dep, gobject_dep, gio_dep]
+ 
+ cdata = configuration_data()
+ 
+-libnghttp2_dep = dependency('libnghttp2')
+-if (libnghttp2_dep.version() == 'unknown' and (libnghttp2_dep.type_name() == 'internal' or cc.has_function('nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation', prefix : '#include <nghttp2/nghttp2.h>', dependencies : libnghttp2_dep))) or libnghttp2_dep.version().version_compare('>=1.50')
+-    cdata.set('HAVE_NGHTTP2_OPTION_SET_NO_RFC9113_LEADING_AND_TRAILING_WS_VALIDATION', '1')
++libnghttp2_dep = dependency('libnghttp2', required : false)
++if libnghttp2_dep.found()
++  cdata.set('WITH_HTTP2', true)
++  if (libnghttp2_dep.version() == 'unknown' and (libnghttp2_dep.type_name() == 'internal' or cc.has_function('nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation', prefix : '#include <nghttp2/nghttp2.h>', dependencies : libnghttp2_dep))) or libnghttp2_dep.version().version_compare('>=1.50')
++      cdata.set('HAVE_NGHTTP2_OPTION_SET_NO_RFC9113_LEADING_AND_TRAILING_WS_VALIDATION', '1')
++  endif
+ endif
+ 
+ sqlite_dep = dependency('sqlite3', required: false)
+diff --git a/tests/meson.build b/tests/meson.build
+index cf24ef97..6bd68868 100644
+--- a/tests/meson.build
++++ b/tests/meson.build
+@@ -78,8 +78,6 @@ tests = [
+   {'name': 'date'},
+   {'name': 'forms'},
+   {'name': 'header-parsing'},
+-  {'name': 'http2'},
+-  {'name': 'http2-body-stream'},
+   {'name': 'hsts'},
+   {'name': 'hsts-db'},
+   {'name': 'logger'},
+@@ -111,6 +109,11 @@ if libpsl_dep.found()
+   tests += [{'name': 'tld'}]
+ endif
+ 
++if libnghttp2_dep.found()
++  tests += [{'name': 'http2'}]
++  tests += [{'name': 'http2-body-stream'}]
++endif
++
+ if brotlidec_dep.found()
+   tests += [{'name': 'brotli-decompressor'}]
+ 
+-- 
+2.41.0
+

+ 0 - 135
patches/phodav-2.5.patch

@@ -1,135 +0,0 @@
-From c0d495a77c7934e982d280a33deaaa9f6595785e Mon Sep 17 00:00:00 2001
-From: osy <50960678+osy@users.noreply.github.com>
-Date: Sat, 5 Mar 2022 17:40:07 -0800
-Subject: [PATCH 1/4] method: fix compile on Darwin
-
-On Darwin systems, removexattr() is defined with 3 arguments.
----
- libphodav/phodav-method-proppatch.c | 4 ++++
- tests/meson.build                   | 2 +-
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/libphodav/phodav-method-proppatch.c b/libphodav/phodav-method-proppatch.c
-index 4cd8211..3421e32 100644
---- a/libphodav/phodav-method-proppatch.c
-+++ b/libphodav/phodav-method-proppatch.c
-@@ -59,7 +59,11 @@ set_attr (GFile *file, xmlNodePtr attrnode,
-         return SOUP_STATUS_FORBIDDEN;
-       gchar *path = g_file_get_path (file);
- #ifdef HAVE_SYS_XATTR_H
-+#ifdef __APPLE__
-+      removexattr (path, attrname, 0);
-+#else
-       removexattr (path, attrname);
-+#endif
- #else
-       g_debug ("cannot remove xattr from %s, not supported", path); /* FIXME? */
- #endif
-diff --git a/tests/meson.build b/tests/meson.build
-index aeb48e3..43e9a13 100644
---- a/tests/meson.build
-+++ b/tests/meson.build
-@@ -1,6 +1,6 @@
- tests_sources = []
- 
--if host_machine.system() != 'windows'
-+if host_machine.system() not in ['darwin', 'ios', 'windows']
-   tests_sources += 'virtual-dir.c'
- endif
- 
--- 
-2.32.0 (Apple Git-132)
-
-From 8060e63fb82baba60dee6f3360780c6e83d16472 Mon Sep 17 00:00:00 2001
-From: osy <50960678+osy@users.noreply.github.com>
-Date: Sat, 5 Mar 2022 17:41:18 -0800
-Subject: [PATCH 2/4] meson: fix build on unsupported --no-undefined
-
-Clang on Darwin systems do not support this flag.
----
- libphodav/meson.build | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/libphodav/meson.build b/libphodav/meson.build
-index 5443ce0..4ab6821 100644
---- a/libphodav/meson.build
-+++ b/libphodav/meson.build
-@@ -30,7 +30,10 @@ if not dependency('glib-2.0', version : '>= 2.51.2', required: false).found()
- endif
- 
- mapfile = 'libphodav.syms'
--vflag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), mapfile)
-+vflag = compiler.get_supported_link_arguments(
-+  '-Wl,--no-undefined',
-+  '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), mapfile)
-+)
- 
- libphodav = library(
-   'phodav-2.0',
-@@ -38,7 +41,7 @@ libphodav = library(
-   c_args : [ '-DG_LOG_DOMAIN="phodav"' ],
-   include_directories : incdir,
-   version: '0.0.0',
--  link_args : [ '-Wl,--no-undefined', vflag ],
-+  link_args : vflag,
-   link_depends : mapfile,
-   dependencies : deps,
-   install : true,
--- 
-2.32.0 (Apple Git-132)
-
-From 450361cefca48f6b8ca191a7024cad29beaa0825 Mon Sep 17 00:00:00 2001
-From: osy <50960678+osy@users.noreply.github.com>
-Date: Sat, 5 Mar 2022 17:49:26 -0800
-Subject: [PATCH 3/4] spice-webdavd: support macOS port
-
----
- bin/spice-webdavd.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/bin/spice-webdavd.c b/bin/spice-webdavd.c
-index ee713bd..b9453ff 100644
---- a/bin/spice-webdavd.c
-+++ b/bin/spice-webdavd.c
-@@ -655,7 +655,11 @@ run_service (ServiceData *service_data)
- 
-   loop = g_main_loop_new (NULL, TRUE);
- #ifdef G_OS_UNIX
-+#ifdef __APPLE__
-+  open_mux_path ("/dev/tty.org.spice-space.webdav.0");
-+#else
-   open_mux_path ("/dev/virtio-ports/org.spice-space.webdav.0");
-+#endif
- #else
-   open_mux_path ("\\\\.\\Global\\org.spice-space.webdav.0");
- #endif
--- 
-2.32.0 (Apple Git-132)
-
-From f5c7f192644d8f30817ab23a98425e3179a0021d Mon Sep 17 00:00:00 2001
-From: osy <50960678+osy@users.noreply.github.com>
-Date: Sat, 5 Mar 2022 23:40:27 -0800
-Subject: [PATCH 4/4] meson: link statically with libsoup and libxml
-
----
- meson.build | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index b8ff125..7ab6da1 100644
---- a/meson.build
-+++ b/meson.build
-@@ -34,8 +34,8 @@ else
-   deps += dependency('gio-unix-2.0', version : '>= 2.44')
- endif
- 
--deps += dependency('libsoup-2.4', version : '>= 2.48.0')
--deps += dependency('libxml-2.0')
-+deps += dependency('libsoup-2.4', version : '>= 2.48.0', static : true)
-+deps += dependency('libxml-2.0', static : true)
- 
- d1 = dependency('avahi-gobject', required : get_option('avahi'))
- d2 = dependency('avahi-client', required : get_option('avahi'))
--- 
-2.32.0 (Apple Git-132)
-

+ 27 - 0
patches/phodav-3.0.patch

@@ -0,0 +1,27 @@
+From ddca2a3c7a5cabf19ae94e4a6482457cb5fa1b30 Mon Sep 17 00:00:00 2001
+From: osy <osy@turing.llc>
+Date: Tue, 12 Nov 2024 08:51:07 -0800
+Subject: [PATCH] meson: link statically with libsoup and libxml
+
+---
+ meson.build | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index ac84b94..c425839 100644
+--- a/meson.build
++++ b/meson.build
+@@ -34,8 +34,8 @@ else
+   deps += dependency('gio-unix-2.0', version : '>= 2.44')
+ endif
+ 
+-deps += dependency('libsoup-3.0', version : '>= 3.0.0')
+-deps += dependency('libxml-2.0')
++deps += dependency('libsoup-3.0', version : '>= 3.0.0', static : true)
++deps += dependency('libxml-2.0', static : true)
+ 
+ d1 = dependency('avahi-gobject', required : get_option('avahi'))
+ d2 = dependency('avahi-client', required : get_option('avahi'))
+-- 
+2.41.0
+

+ 6 - 6
patches/sources

@@ -9,7 +9,7 @@ ICONV_SRC="https://ftp.gnu.org/gnu/libiconv/libiconv-1.16.tar.gz"
 GETTEXT_SRC="https://ftp.gnu.org/gnu/gettext/gettext-0.22.5.tar.gz"
 GETTEXT_SRC="https://ftp.gnu.org/gnu/gettext/gettext-0.22.5.tar.gz"
 PNG_SRC="https://ftp.osuosl.org/pub/blfs/conglomeration/libpng/libpng-1.6.37.tar.xz"
 PNG_SRC="https://ftp.osuosl.org/pub/blfs/conglomeration/libpng/libpng-1.6.37.tar.xz"
 JPEG_TURBO_SRC="https://ftp.osuosl.org/pub/blfs/conglomeration/libjpeg-turbo/libjpeg-turbo-1.5.3.tar.gz"
 JPEG_TURBO_SRC="https://ftp.osuosl.org/pub/blfs/conglomeration/libjpeg-turbo/libjpeg-turbo-1.5.3.tar.gz"
-GLIB_SRC="https://download.gnome.org/sources/glib/2.69/glib-2.69.0.tar.xz"
+GLIB_SRC="https://download.gnome.org/sources/glib/2.83/glib-2.83.0.tar.xz"
 GPG_ERROR_SRC="https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.38.tar.gz"
 GPG_ERROR_SRC="https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.38.tar.gz"
 GCRYPT_SRC="https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.4.tar.gz"
 GCRYPT_SRC="https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.4.tar.gz"
 PIXMAN_SRC="https://www.cairographics.org/releases/pixman-0.38.0.tar.gz"
 PIXMAN_SRC="https://www.cairographics.org/releases/pixman-0.38.0.tar.gz"
@@ -21,19 +21,19 @@ ZSTD_SRC="https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.t
 SPICE_PROTOCOL_SRC="https://www.spice-space.org/download/releases/spice-protocol-0.14.4.tar.xz"
 SPICE_PROTOCOL_SRC="https://www.spice-space.org/download/releases/spice-protocol-0.14.4.tar.xz"
 SPICE_SERVER_SRC="https://www.spice-space.org/download/releases/spice-server/spice-0.14.3.tar.bz2"
 SPICE_SERVER_SRC="https://www.spice-space.org/download/releases/spice-server/spice-0.14.3.tar.bz2"
 USB_SRC="https://github.com/libusb/libusb/releases/download/v1.0.25/libusb-1.0.25.tar.bz2"
 USB_SRC="https://github.com/libusb/libusb/releases/download/v1.0.25/libusb-1.0.25.tar.bz2"
-USBREDIR_SRC="https://www.spice-space.org/download/usbredir/usbredir-0.13.0.tar.xz"
+USBREDIR_SRC="https://www.spice-space.org/download/usbredir/usbredir-0.14.0.tar.xz"
 SLIRP_SRC="https://gitlab.freedesktop.org/slirp/libslirp/-/archive/v4.7.0/libslirp-v4.7.0.tar.gz"
 SLIRP_SRC="https://gitlab.freedesktop.org/slirp/libslirp/-/archive/v4.7.0/libslirp-v4.7.0.tar.gz"
 QEMU_SRC="https://github.com/utmapp/qemu/releases/download/v9.1.0-utm/qemu-9.1.0-utm.tar.xz"
 QEMU_SRC="https://github.com/utmapp/qemu/releases/download/v9.1.0-utm/qemu-9.1.0-utm.tar.xz"
 
 
 # Source files for spice-client
 # Source files for spice-client
-JSON_GLIB_SRC="https://download.gnome.org/sources/json-glib/1.6/json-glib-1.6.6.tar.xz"
+JSON_GLIB_SRC="https://download.gnome.org/sources/json-glib/1.10/json-glib-1.10.0.tar.xz"
 GST_SRC="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.19.1.tar.xz"
 GST_SRC="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.19.1.tar.xz"
 GST_BASE_SRC="https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.19.1.tar.xz"
 GST_BASE_SRC="https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.19.1.tar.xz"
 GST_GOOD_SRC="https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.19.1.tar.xz"
 GST_GOOD_SRC="https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.19.1.tar.xz"
 XML2_SRC="http://xmlsoft.org/sources/libxml2-2.9.12.tar.gz"
 XML2_SRC="http://xmlsoft.org/sources/libxml2-2.9.12.tar.gz"
-SOUP_SRC="https://download.gnome.org/sources/libsoup/2.74/libsoup-2.74.2.tar.xz"
-PHODAV_SRC="https://download.gnome.org/sources/phodav/2.5/phodav-2.5.tar.xz"
-SPICE_CLIENT_SRC="https://www.spice-space.org/download/gtk/spice-gtk-0.40.tar.xz"
+SOUP_SRC="https://download.gnome.org/sources/libsoup/3.6/libsoup-3.6.0.tar.xz"
+PHODAV_SRC="https://download.gnome.org/sources/phodav/3.0/phodav-3.0.tar.xz"
+SPICE_CLIENT_SRC="https://www.spice-space.org/download/gtk/spice-gtk-0.42.tar.xz"
 LIBUCONTEXT_REPO="https://github.com/utmapp/libucontext.git"
 LIBUCONTEXT_REPO="https://github.com/utmapp/libucontext.git"
 LIBUCONTEXT_COMMIT="9b1d8f01a6e99166f9808c79966abe10786de8b6"
 LIBUCONTEXT_COMMIT="9b1d8f01a6e99166f9808c79966abe10786de8b6"
 
 

+ 14 - 548
patches/spice-gtk-0.40.patch → patches/spice-gtk-0.42.patch

@@ -1,134 +1,7 @@
-From 2f16f6d4b0d6dde0d1d518f61c01f5f972caa008 Mon Sep 17 00:00:00 2001
-From: osy <osy@turing.llc>
-Date: Fri, 4 Mar 2022 13:15:16 -0800
-Subject: [PATCH 1/8] meson: move cairo dependency to GTK build only
-
-Cairo is only used in SpiceDisplay which is part of the GTK client. If
-we are building the GLib only client, it should be optional.
----
- meson.build | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 11173fd..ecc9d6d 100644
---- a/meson.build
-+++ b/meson.build
-@@ -107,8 +107,8 @@ foreach dep, version : deps
- endforeach
- 
- # mandatory dependencies, without specific version requirement
--# TODO: specify minimum version for cairo, jpeg and zlib?
--deps = ['cairo', 'libjpeg', 'zlib', 'json-glib-1.0']
-+# TODO: specify minimum version for jpeg and zlib?
-+deps = ['libjpeg', 'zlib', 'json-glib-1.0']
- if host_machine.system() == 'windows'
-   deps += 'gio-windows-2.0'
- else
-@@ -149,6 +149,8 @@ d = dependency('gtk+-3.0', version : '>= @0@'.format(gtk_version_required),
- summary_info += {'gtk': d.found()}
- if d.found()
-   spice_gtk_deps += d
-+  # TODO: specify minimum version for cairo?
-+  spice_gtk_deps += dependency('cairo')
-   if host_machine.system() != 'windows'
-     spice_gtk_deps += dependency('epoxy')
-     spice_gtk_deps += dependency('x11')
--- 
-2.32.0 (Apple Git-132)
-
-From 312a1fc6cf4a8d839639dce411107537e1791045 Mon Sep 17 00:00:00 2001
-From: osy <osy@turing.llc>
-Date: Fri, 4 Mar 2022 15:52:48 -0800
-Subject: [PATCH 2/8] coroutine: add support for libucontext
-
-libucontext is a lightweight implementation of ucontext for platforms
-that do not have a built-in implementation. This allows us to use the
-same code to support libucontext as ucontext.
----
- meson.build        |  7 +++++++
- meson_options.txt  |  2 +-
- src/continuation.c | 12 +++++++++++-
- src/meson.build    |  2 +-
- 4 files changed, 20 insertions(+), 3 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index ecc9d6d..29615b1 100644
---- a/meson.build
-+++ b/meson.build
-@@ -319,6 +319,13 @@ if spice_gtk_coroutine == 'ucontext'
-   endif
-   endif
- 
-+if spice_gtk_coroutine == 'libucontext'
-+  d = dependency('libucontext')
-+  spice_glib_deps += d
-+  spice_gtk_config_data.set('WITH_UCONTEXT', '1')
-+  spice_gtk_config_data.set('HAVE_LIBUCONTEXT', '1')
-+endif
-+
- if spice_gtk_coroutine == 'gthread'
-   spice_gtk_config_data.set('WITH_GTHREAD', '1')
- endif
-diff --git a/meson_options.txt b/meson_options.txt
-index 3cbc7c6..5acfc9a 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -45,7 +45,7 @@ option('usb-ids-path',
- option('coroutine',
-     type : 'combo',
-     value : 'auto',
--    choices : ['auto', 'ucontext', 'gthread', 'winfiber'],
-+    choices : ['auto', 'ucontext', 'libucontext', 'gthread', 'winfiber'],
-     description : 'Use ucontext or GThread for coroutines')
- 
- option('introspection',
-diff --git a/src/continuation.c b/src/continuation.c
-index 65527ac..400169a 100644
---- a/src/continuation.c
-+++ b/src/continuation.c
-@@ -25,11 +25,21 @@
- #endif
- 
- #include <errno.h>
--#include <ucontext.h>
- #include <glib.h>
- 
- #include "continuation.h"
- 
-+#ifdef HAVE_LIBUCONTEXT
-+#include <libucontext/libucontext.h>
-+#define ucontext_t libucontext_ucontext_t
-+#define getcontext libucontext_getcontext
-+#define setcontext libucontext_setcontext
-+#define swapcontext libucontext_swapcontext
-+#define makecontext libucontext_makecontext
-+#else
-+#include <ucontext.h>
-+#endif
-+
- /*
-  * va_args to makecontext() must be type 'int', so passing
-  * the pointer we need may require several int args. This
-diff --git a/src/meson.build b/src/meson.build
-index a9dfc57..961779f 100644
---- a/src/meson.build
-+++ b/src/meson.build
-@@ -146,7 +146,7 @@ endif
- 
- if spice_gtk_coroutine == 'gthread'
-   spice_client_glib_sources += 'coroutine_gthread.c'
--elif spice_gtk_coroutine == 'ucontext'
-+elif spice_gtk_coroutine in ['ucontext', 'libucontext']
-   spice_client_glib_sources += ['continuation.c',
-                                 'continuation.h',
-                                 'coroutine_ucontext.c']
--- 
-2.32.0 (Apple Git-132)
-
-From fb47817a4963a6e64d76bccb562cf5dbe2f628c1 Mon Sep 17 00:00:00 2001
+From 07ba2d801b4a03125dee3f9d5f4a13cad8d62008 Mon Sep 17 00:00:00 2001
 From: osy <osy@turing.llc>
 From: osy <osy@turing.llc>
 Date: Fri, 4 Mar 2022 16:35:26 -0800
 Date: Fri, 4 Mar 2022 16:35:26 -0800
-Subject: [PATCH 3/8] spice-util: support for non-default GMainContext
+Subject: [PATCH 1/2] spice-util: support for non-default GMainContext
 
 
 When spice-gtk is used in an application with its own GMainContext, the
 When spice-gtk is used in an application with its own GMainContext, the
 wrong context will be used leading to various issues.
 wrong context will be used leading to various issues.
@@ -387,12 +260,12 @@ index 421b4b0..e161c83 100644
  #define SPICE_DEBUG(fmt, ...)                                   \
  #define SPICE_DEBUG(fmt, ...)                                   \
      do {                                                        \
      do {                                                        \
 -- 
 -- 
-2.32.0 (Apple Git-132)
+2.41.0
 
 
-From a02df4084ff43c5796f1ead29ab9d67da48dff1e Mon Sep 17 00:00:00 2001
+From 92ac46d9328afa036e2e3aebf0f7218ba5b2910f Mon Sep 17 00:00:00 2001
 From: osy <osy@turing.llc>
 From: osy <osy@turing.llc>
 Date: Fri, 4 Mar 2022 16:44:20 -0800
 Date: Fri, 4 Mar 2022 16:44:20 -0800
-Subject: [PATCH 4/8] spice-gtk: user specified GMainContext for events
+Subject: [PATCH 2/2] spice-gtk: user specified GMainContext for events
 
 
 Following the previous commit, this replaces all GLib calls that
 Following the previous commit, this replaces all GLib calls that
 implicitly uses the default main context with versions that can use the
 implicitly uses the default main context with versions that can use the
@@ -747,7 +620,7 @@ index bb97ad7..8cc2dd1 100644
  
  
      return id;
      return id;
 diff --git a/src/spice-channel.c b/src/spice-channel.c
 diff --git a/src/spice-channel.c b/src/spice-channel.c
-index d6199a5..d5070a9 100644
+index 3fd42c5..813923a 100644
 --- a/src/spice-channel.c
 --- a/src/spice-channel.c
 +++ b/src/spice-channel.c
 +++ b/src/spice-channel.c
 @@ -744,9 +744,9 @@ void spice_msg_out_send(SpiceMsgOut *out)
 @@ -744,9 +744,9 @@ void spice_msg_out_send(SpiceMsgOut *out)
@@ -763,7 +636,7 @@ index d6199a5..d5070a9 100644
      }
      }
  
  
  end:
  end:
-@@ -2703,7 +2703,7 @@ cleanup:
+@@ -2748,7 +2748,7 @@ cleanup:
          c->event = SPICE_CHANNEL_ERROR_CONNECT;
          c->event = SPICE_CHANNEL_ERROR_CONNECT;
      }
      }
  
  
@@ -772,7 +645,7 @@ index d6199a5..d5070a9 100644
      /* Co-routine exits now - the SpiceChannel object may no longer exist,
      /* Co-routine exits now - the SpiceChannel object may no longer exist,
         so don't do anything else now unless you like SEGVs */
         so don't do anything else now unless you like SEGVs */
      return NULL;
      return NULL;
-@@ -2762,7 +2762,7 @@ static gboolean channel_connect(SpiceChannel *channel, gboolean tls)
+@@ -2807,7 +2807,7 @@ static gboolean channel_connect(SpiceChannel *channel, gboolean tls)
      g_object_ref(G_OBJECT(channel)); /* Unref'd when co-routine exits */
      g_object_ref(G_OBJECT(channel)); /* Unref'd when co-routine exits */
  
  
      /* we connect in idle, to let previous coroutine exit, if present */
      /* we connect in idle, to let previous coroutine exit, if present */
@@ -781,7 +654,7 @@ index d6199a5..d5070a9 100644
  
  
      return true;
      return true;
  }
  }
-@@ -2828,7 +2828,7 @@ static void channel_reset(SpiceChannel *channel, gboolean migrating)
+@@ -2873,7 +2873,7 @@ static void channel_reset(SpiceChannel *channel, gboolean migrating)
  
  
      CHANNEL_DEBUG(channel, "channel reset");
      CHANNEL_DEBUG(channel, "channel reset");
      if (c->connect_delayed_id) {
      if (c->connect_delayed_id) {
@@ -790,7 +663,7 @@ index d6199a5..d5070a9 100644
          c->connect_delayed_id = 0;
          c->connect_delayed_id = 0;
      }
      }
  
  
-@@ -2860,7 +2860,7 @@ static void channel_reset(SpiceChannel *channel, gboolean migrating)
+@@ -2905,7 +2905,7 @@ static void channel_reset(SpiceChannel *channel, gboolean migrating)
      g_queue_foreach(&c->xmit_queue, (GFunc)spice_msg_out_unref, NULL);
      g_queue_foreach(&c->xmit_queue, (GFunc)spice_msg_out_unref, NULL);
      g_queue_clear(&c->xmit_queue);
      g_queue_clear(&c->xmit_queue);
      if (c->xmit_queue_wakeup_id) {
      if (c->xmit_queue_wakeup_id) {
@@ -922,7 +795,7 @@ index bb3c6cd..9d161ee 100644
      coroutine_yield(NULL);
      coroutine_yield(NULL);
  
  
 diff --git a/src/spice-widget.c b/src/spice-widget.c
 diff --git a/src/spice-widget.c b/src/spice-widget.c
-index 5f7c061..3e3fe05 100644
+index 6311115..19dff68 100644
 --- a/src/spice-widget.c
 --- a/src/spice-widget.c
 +++ b/src/spice-widget.c
 +++ b/src/spice-widget.c
 @@ -55,6 +55,7 @@
 @@ -55,6 +55,7 @@
@@ -1025,416 +898,9 @@ index e26b939..6054f3e 100644
          g_clear_object(&self->task);
          g_clear_object(&self->task);
      }
      }
 -- 
 -- 
-2.32.0 (Apple Git-132)
-
-From d24779edda0a889937131818b13e4f57a68a8169 Mon Sep 17 00:00:00 2001
-From: osy <osy@turing.llc>
-Date: Fri, 4 Mar 2022 21:23:51 -0800
-Subject: [PATCH 5/8] usb-device-cd: option to disable physical CD
-
-On iOS, there is no "sys/disk.h" header and cannot build the CD
-emulation code. This should not prevent the rest of USB redirection from
-working.
----
- meson.build         |  8 ++++++++
- meson_options.txt   |  4 ++++
- src/usb-device-cd.c | 36 +++++++++++++++++++++++++++++++++++-
- 3 files changed, 47 insertions(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index 29615b1..8c06666 100644
---- a/meson.build
-+++ b/meson.build
-@@ -228,11 +228,19 @@ if d1.found() and d2.found() and d3.found()
-     spice_glib_deps += [d1, d2, d3]
-     spice_gtk_config_data.set('USE_USBREDIR', '1')
-     spice_gtk_has_usbredir = true
-+    if get_option('physical-cd').allowed()
-+      spice_gtk_config_data.set('HAVE_PHYSICAL_CD', '1')
-+    endif
-   else
-     warning('USB redirection disabled on big endian machine as ' +
-             'usbredir only support little endian')
-   endif
- endif
-+summary_info += {'physical-cd': get_option('physical-cd')}
-+
-+if get_option('physical-cd').enabled() and not spice_gtk_has_usbredir
-+  error('Physical CD support cannot be enabled without USB redirection support!')
-+endif
- 
- d = dependency('libcap-ng', required : get_option('libcap-ng'))
- summary_info += {'libcap-ng': d.found()}
-diff --git a/meson_options.txt b/meson_options.txt
-index 5acfc9a..557ef6a 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -19,6 +19,10 @@ option('usbredir',
-     type : 'feature',
-     description : 'Enable usbredir support')
- 
-+option('physical-cd',
-+    type : 'feature',
-+    description : 'Enable support of physical CD drives')
-+
- option('libcap-ng',
-        type : 'feature',
-        description: 'Enable libcap-ng support for the USB acl helper')
-diff --git a/src/usb-device-cd.c b/src/usb-device-cd.c
-index 2bfeb3a..41d2e13 100644
---- a/src/usb-device-cd.c
-+++ b/src/usb-device-cd.c
-@@ -32,11 +32,14 @@
- 
- #ifdef G_OS_WIN32
- #include <windows.h>
-+#ifdef HAVE_PHYSICAL_CD
- #include <ntddcdrm.h>
- #include <ntddmmc.h>
-+#endif // HAVE_PHYSICAL_CD
- #else
- #include <sys/stat.h>
- #include <sys/ioctl.h>
-+#ifdef HAVE_PHYSICAL_CD
- #ifdef __APPLE__
- #include <sys/disk.h>
- #include <fcntl.h>
-@@ -44,6 +47,7 @@
- #include <linux/fs.h>
- #include <linux/cdrom.h>
- #endif
-+#endif // HAVE_PHYSICAL_CD
- #endif
- 
- #include "usb-emulation.h"
-@@ -120,6 +124,7 @@ static int cd_device_open_stream(SpiceCdLU *unit, const char *filename)
-     }
- 
-     struct stat file_stat = { 0 };
-+#ifdef HAVE_PHYSICAL_CD
-     if (fstat(fd, &file_stat) || file_stat.st_size == 0) {
-         file_stat.st_size = 0;
-         unit->device = 1;
-@@ -138,6 +143,12 @@ static int cd_device_open_stream(SpiceCdLU *unit, const char *filename)
-         }
- #endif
-     }
-+#else // HAVE_PHYSICAL_CD
-+    if (fstat(fd, &file_stat) != 0) {
-+        SPICE_DEBUG("%s: can't run stat on %s", __FUNCTION__, unit->filename);
-+        return -1;
-+    }
-+#endif
-     unit->size = file_stat.st_size;
-     close(fd);
-     if (unit->size) {
-@@ -153,6 +164,8 @@ static int cd_device_open_stream(SpiceCdLU *unit, const char *filename)
-     return 0;
- }
- 
-+#if defined HAVE_PHYSICAL_CD
-+
- static int cd_device_load(SpiceCdLU *unit, gboolean load)
- {
-     int error;
-@@ -214,7 +227,11 @@ static int cd_device_check(SpiceCdLU *unit)
-     return error;
- }
- 
--#else
-+#endif // HAVE_PHYSICAL_CD
-+
-+#else // G_OS_WIN32
-+
-+#ifdef HAVE_PHYSICAL_CD
- 
- static gboolean is_device_name(const char *filename)
- {
-@@ -261,6 +278,8 @@ static gboolean check_device(HANDLE h)
-                            &ret, NULL);
- }
- 
-+#endif // HAVE_PHYSICAL_CD
-+
- static int cd_device_open_stream(SpiceCdLU *unit, const char *filename)
- {
-     HANDLE h;
-@@ -275,8 +294,10 @@ static int cd_device_open_stream(SpiceCdLU *unit, const char *filename)
-     }
-     if (!filename) {
-         // reopening the stream on existing file name
-+#if defined HAVE_PHYSICAL_CD
-     } else if (is_device_name(filename)) {
-         unit->filename = g_strdup_printf("\\\\.\\%s", filename);
-+#endif
-     } else {
-         unit->filename = g_strdup(filename);
-     }
-@@ -287,6 +308,7 @@ static int cd_device_open_stream(SpiceCdLU *unit, const char *filename)
-     }
- 
-     LARGE_INTEGER size = { 0 };
-+#if defined HAVE_PHYSICAL_CD
-     if (!GetFileSizeEx(h, &size)) {
-         uint64_t buffer[256];
-         uint32_t res;
-@@ -304,6 +326,12 @@ static int cd_device_open_stream(SpiceCdLU *unit, const char *filename)
-                 __FUNCTION__, unit->filename, res);
-         }
-     }
-+#else
-+    if (!GetFileSizeEx(h, &size)) {
-+        SPICE_DEBUG("%s: can't get file size for %s", __FUNCTION__, unit->filename);
-+        return -1;
-+    }
-+#endif
-     unit->size = size.QuadPart;
-     CloseHandle(h);
-     if (unit->size) {
-@@ -318,6 +346,8 @@ static int cd_device_open_stream(SpiceCdLU *unit, const char *filename)
-     return 0;
- }
- 
-+#ifdef HAVE_PHYSICAL_CD
-+
- static int cd_device_load(SpiceCdLU *unit, gboolean load)
- {
-     int error = 0;
-@@ -363,6 +393,8 @@ static int cd_device_check(SpiceCdLU *unit)
-     return error;
- }
- 
-+#endif // HAVE_PHYSICAL_CD
-+
- #endif
- 
- static gboolean open_stream(SpiceCdLU *unit, const char *filename)
-@@ -380,6 +412,7 @@ static void close_stream(SpiceCdLU *unit)
- static gboolean load_lun(UsbCd *d, int unit, gboolean load)
- {
-     gboolean b = TRUE;
-+#ifdef HAVE_PHYSICAL_CD
-     if (load && d->units[unit].device) {
-         // there is one possible problem in case our backend is the
-         // local CD device and it is ejected
-@@ -389,6 +422,7 @@ static gboolean load_lun(UsbCd *d, int unit, gboolean load)
-             return FALSE;
-         }
-     }
-+#endif
- 
-     if (load) {
-         CdScsiMediaParameters media_params = { 0 };
--- 
-2.32.0 (Apple Git-132)
-
-From 7b572d38a2d4a32ecdd683cc4672abd00dcc07ff Mon Sep 17 00:00:00 2001
-From: osy <osy@turing.llc>
-Date: Sun, 6 Mar 2022 18:49:34 -0800
-Subject: [PATCH 6/8] gitlab-ci: test disable physical cd
-
----
- .gitlab-ci.yml | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
-index 3d4f533..cdd6575 100644
---- a/.gitlab-ci.yml
-+++ b/.gitlab-ci.yml
-@@ -36,7 +36,7 @@ fedora:
-     - ninja -C build-spice-protocol install
- 
-   script:
--    - meson --buildtype=release build-default --werror
-+    - meson --buildtype=release build-default --werror -Dphysical-cd=disabled
-     # Meson does not update submodules recursively
-     - git submodule update --init --recursive
-     # this fix an issue with Meson dist
-@@ -68,6 +68,6 @@ windows:
-   script:
-     - cd $CI_PROJECT_DIR
-     - mkdir build-win64 && cd build-win64
--    - mingw64-meson --buildtype=release -Dgtk_doc=disabled --werror
-+    - mingw64-meson --buildtype=release -Dgtk_doc=disabled --werror -Dphysical-cd=disabled
-     - ninja install
-     - (cd tests && DISPLAY= WINEPATH=/usr/x86_64-w64-mingw32/sys-root/mingw/bin wine test-coroutine.exe)
--- 
-2.32.0 (Apple Git-132)
-
-From 6069f4abaf26dadb2159ec67e7b362e2485d3652 Mon Sep 17 00:00:00 2001
-From: osy <osy@turing.llc>
-Date: Sun, 6 Mar 2022 18:55:14 -0800
-Subject: [PATCH 7/8] fix windows
-
----
- src/usb-device-cd.c | 6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/src/usb-device-cd.c b/src/usb-device-cd.c
-index 41d2e13..d0cac30 100644
---- a/src/usb-device-cd.c
-+++ b/src/usb-device-cd.c
-@@ -231,8 +231,6 @@ static int cd_device_check(SpiceCdLU *unit)
- 
- #else // G_OS_WIN32
- 
--#ifdef HAVE_PHYSICAL_CD
--
- static gboolean is_device_name(const char *filename)
- {
-     return g_ascii_isalpha(filename[0]) && filename[1] == ':' &&
-@@ -253,6 +251,8 @@ static HANDLE open_file(const char *filename)
-     return h;
- }
- 
-+#ifdef HAVE_PHYSICAL_CD
-+
- static uint32_t ioctl_out(HANDLE h, uint32_t code, void *out_buffer, uint32_t out_size)
- {
-     uint32_t error;
-@@ -294,10 +294,8 @@ static int cd_device_open_stream(SpiceCdLU *unit, const char *filename)
-     }
-     if (!filename) {
-         // reopening the stream on existing file name
--#if defined HAVE_PHYSICAL_CD
-     } else if (is_device_name(filename)) {
-         unit->filename = g_strdup_printf("\\\\.\\%s", filename);
--#endif
-     } else {
-         unit->filename = g_strdup(filename);
-     }
--- 
-2.32.0 (Apple Git-132)
-
-From 394ec4a8d5f1c4df2c21c335a64627ebe31e03b1 Mon Sep 17 00:00:00 2001
-From: osy <osy@turing.llc>
-Date: Fri, 20 May 2022 08:53:53 -0700
-Subject: [PATCH 8/8] usb-backend: remove incorrect logic for detecting root
- hub
-
-There are valid devices (on Darwin) with address 0x1 that were ignored.
----
- src/usb-backend.c | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/src/usb-backend.c b/src/usb-backend.c
-index 930ae4e..7c2df7f 100644
---- a/src/usb-backend.c
-+++ b/src/usb-backend.c
-@@ -121,9 +121,7 @@ static gboolean fill_usb_info(SpiceUsbDevice *dev)
-     UsbDeviceInformation *info = &dev->device_info;
-     get_usb_device_info_from_libusb_device(info, dev->libusb_device);
- 
--    if (info->address == 0xff || /* root hub (HCD) */
--        info->address <= 1 || /* root hub or bad address */
--        (info->class == LIBUSB_CLASS_HUB) /*hub*/) {
-+    if (info->class == LIBUSB_CLASS_HUB) /*hub*/ {
-         return FALSE;
-     }
-     return TRUE;
--- 
-2.32.0 (Apple Git-132)
-
-From b3eb04485cf4553b0e588a7ca78f7377e1c4f35e Mon Sep 17 00:00:00 2001
-From: Eli Schwartz <eschwartz93@gmail.com>
-Date: Mon, 27 Jun 2022 01:48:02 -0400
-Subject: [PATCH] fix invalid use of subprojects
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The keycodemapdb Meson subproject provides a program and a source input.
-Since it is a subproject, Meson wants to sandbox that and requires it to
-be explicitly exported. But this never happened -- instead, we manually
-poked at files using the actual string path "subprojects/......"
-
-This was always a Meson sandbox violation, but Meson 0.63.0 started
-noticing it and erroring out.
-
-Instead, do the right thing. Update the subproject to a version that has
-a meson.build with actually meaningful contents -- namely, a files
-variable and a found program. Then use these in order to run the needed
-custom_target.
-
-In the process, it is also necessary to correct the argument ordering
-when running keymap-gen.
-
-Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
----
- meson.build              | 7 ++++---
- src/meson.build          | 2 +-
- subprojects/keycodemapdb | 2 +-
- 3 files changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index dc7b4272..00aff30e 100644
---- a/meson.build
-+++ b/meson.build
-@@ -49,9 +49,10 @@ spice_gtk_config_data.merge_from(spice_common.get_variable('spice_common_config_
- spice_glib_deps += spice_common.get_variable('spice_common_client_dep')
- spice_protocol_version = spice_common.get_variable('spice_protocol_version')
- 
--subproject('keycodemapdb')
--keymapgen = files('subprojects/keycodemapdb/tools/keymap-gen')
--keymapcsv = files('subprojects/keycodemapdb/data/keymaps.csv')
-+keycodemapdb = subproject('keycodemapdb')
-+
-+keymapgen = find_program('keymap-gen')
-+keymapcsv = keycodemapdb.get_variable('keymaps_csv')
- 
- #
- # check for system headers
-diff --git a/src/meson.build b/src/meson.build
-index 961779fc..32574e8e 100644
---- a/src/meson.build
-+++ b/src/meson.build
-@@ -312,7 +312,7 @@ if spice_gtk_has_gtk
-   foreach keymap : keymaps
-     varname = 'keymap_@0@2xtkbd'.format(keymap)
-     target = 'vncdisplay@0@.h'.format(varname)
--    cmd = [python, keymapgen, '--lang', 'glib2', '--varname', varname, 'code-map', keymapcsv, keymap, 'xtkbd']
-+    cmd = [python, keymapgen, 'code-map', '--lang', 'glib2', '--varname', varname, keymapcsv, keymap, 'xtkbd']
-     spice_client_gtk_sources += custom_target(target,
-                                               output : target,
-                                               capture : true,
--- 
-GitLab
-
-From e15649b83a78f89f57205927022115536d2c1698 Mon Sep 17 00:00:00 2001
-From: Eli Schwartz <eschwartz93@gmail.com>
-Date: Tue, 21 Jun 2022 20:18:22 -0400
-Subject: [PATCH] make the meson.build stub a bit more well-rounded by
- exporting files
-
-Provide variables for:
-- the found program keymap-gen
-- the CSV mapping table
-
-and for enhanced convenience, override keymap-gen
-
-This allows grabbing the variables from another Meson project without
-futzing with submodule paths, something that Meson doesn't really
-encourage.
----
- meson.build | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/subprojects/keycodemapdb/meson.build b/subprojects/keycodemapdb/meson.build
-index eb9416b..6d263aa 100644
---- a/subprojects/keycodemapdb/meson.build
-+++ b/subprojects/keycodemapdb/meson.build
-@@ -1 +1,6 @@
--project('keycodemapdb')
-+project('keycodemapdb', meson_version: '>=0.46.0')
-+
-+keymap_gen = find_program('tools/keymap-gen')
-+meson.override_find_program('keymap-gen', keymap_gen)
-+
-+keymaps_csv = files('data/keymaps.csv')
--- 
-GitLab
+2.41.0
 
 
-From d5dc89146697d075178fa916253e2a69a25964b8 Mon Sep 17 00:00:00 2001
+From f648e0730b8ddbb03f2f9e45c121a5bbcc3ba00f Mon Sep 17 00:00:00 2001
 From: osy <osy@turing.llc>
 From: osy <osy@turing.llc>
 Date: Sun, 6 Aug 2023 01:11:31 -0700
 Date: Sun, 6 Aug 2023 01:11:31 -0700
 Subject: [PATCH] meson: disable version script
 Subject: [PATCH] meson: disable version script
@@ -1445,7 +911,7 @@ Fails to build on Xcode 15
  1 file changed, 1 insertion(+), 1 deletion(-)
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 
 diff --git a/src/meson.build b/src/meson.build
 diff --git a/src/meson.build b/src/meson.build
-index 961779f..5ef1e0d 100644
+index daff1aa..61e60fa 100644
 --- a/src/meson.build
 --- a/src/meson.build
 +++ b/src/meson.build
 +++ b/src/meson.build
 @@ -205,7 +205,7 @@ spice_client_glib_lib = library('spice-client-glib-2.0', spice_client_glib_sourc
 @@ -205,7 +205,7 @@ spice_client_glib_lib = library('spice-client-glib-2.0', spice_client_glib_sourc

+ 5 - 3
scripts/build_dependencies.sh

@@ -208,8 +208,10 @@ generate_meson_cross() {
     echo "[built-in options]" >> $cross
     echo "[built-in options]" >> $cross
     echo "c_args = [${CFLAGS:+$(meson_quote $CFLAGS)}]" >> $cross
     echo "c_args = [${CFLAGS:+$(meson_quote $CFLAGS)}]" >> $cross
     echo "cpp_args = [${CXXFLAGS:+$(meson_quote $CXXFLAGS)}]" >> $cross
     echo "cpp_args = [${CXXFLAGS:+$(meson_quote $CXXFLAGS)}]" >> $cross
+    echo "objc_args = [${CFLAGS:+$(meson_quote $CFLAGS)}]" >> $cross
     echo "c_link_args = [${LDFLAGS:+$(meson_quote $LDFLAGS)}]" >> $cross
     echo "c_link_args = [${LDFLAGS:+$(meson_quote $LDFLAGS)}]" >> $cross
     echo "cpp_link_args = [${LDFLAGS:+$(meson_quote $LDFLAGS)}]" >> $cross
     echo "cpp_link_args = [${LDFLAGS:+$(meson_quote $LDFLAGS)}]" >> $cross
+    echo "objc_link_args = [${LDFLAGS:+$(meson_quote $LDFLAGS)}]" >> $cross
     echo "[binaries]" >> $cross
     echo "[binaries]" >> $cross
     echo "c = [$(meson_quote $CC)]" >> $cross
     echo "c = [$(meson_quote $CC)]" >> $cross
     echo "cpp = [$(meson_quote $CXX)]" >> $cross
     echo "cpp = [$(meson_quote $CXX)]" >> $cross
@@ -464,7 +466,7 @@ build_qemu_dependencies () {
     build $GETTEXT_SRC --disable-java
     build $GETTEXT_SRC --disable-java
     build $PNG_SRC
     build $PNG_SRC
     build $JPEG_TURBO_SRC
     build $JPEG_TURBO_SRC
-    meson_build $GLIB_SRC -Dtests=false
+    meson_build $GLIB_SRC -Dtests=false -Ddtrace=disabled
     build $GPG_ERROR_SRC
     build $GPG_ERROR_SRC
     build $GCRYPT_SRC
     build $GCRYPT_SRC
     build $PIXMAN_SRC
     build $PIXMAN_SRC
@@ -499,9 +501,9 @@ build_spice_client () {
     meson_build $LIBUCONTEXT_REPO -Ddefault_library=static -Dfreestanding=true
     meson_build $LIBUCONTEXT_REPO -Ddefault_library=static -Dfreestanding=true
     meson_build $JSON_GLIB_SRC -Dintrospection=disabled
     meson_build $JSON_GLIB_SRC -Dintrospection=disabled
     build $XML2_SRC --enable-shared=no --without-python
     build $XML2_SRC --enable-shared=no --without-python
-    meson_build $SOUP_SRC --default-library static -Dsysprof=disabled -Dtls_check=false -Dintrospection=disabled
+    meson_build $SOUP_SRC -Dsysprof=disabled -Dtls_check=false -Dintrospection=disabled
     meson_build $PHODAV_SRC
     meson_build $PHODAV_SRC
-    meson_build $SPICE_CLIENT_SRC -Dcoroutine=libucontext -Dphysical-cd=disabled
+    meson_build $SPICE_CLIENT_SRC -Dcoroutine=libucontext
 }
 }
 
 
 fixup () {
 fixup () {