소스 검색

project: add swtpm

osy 2 년 전
부모
커밋
fab6dfb12a
4개의 변경된 파일27개의 추가작업 그리고 0개의 파일을 삭제
  1. 8 0
      UTM.xcodeproj/project.pbxproj
  2. 13 0
      patches/libtpms-0.9.6.patch
  3. 2 0
      patches/sources
  4. 4 0
      scripts/build_dependencies.sh

+ 8 - 0
UTM.xcodeproj/project.pbxproj

@@ -311,6 +311,9 @@
 		CE061CDB289E6DC30000351C /* VMDisplayWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE061CDD289E6DC30000351C /* VMDisplayWindow.xib */; };
 		CE061CE6289EB6250000351C /* VMDisplayMetalViewInputAccessory.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE061CE9289EB6250000351C /* VMDisplayMetalViewInputAccessory.xib */; };
 		CE061CE7289EB6250000351C /* VMDisplayMetalViewInputAccessory.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE061CE9289EB6250000351C /* VMDisplayMetalViewInputAccessory.xib */; };
+		CE064C662A563F4B003C833D /* swtpm.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE064C642A563F4A003C833D /* swtpm.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+		CE064C6A2A563F6E003C833D /* swtpm.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE064C642A563F4A003C833D /* swtpm.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+		CE064C6C2A563F75003C833D /* swtpm.0.framework in Embed Libraries */ = {isa = PBXBuildFile; fileRef = CE064C642A563F4A003C833D /* swtpm.0.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
 		CE0B6CEC24AD532500FE012D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CE550BD52259479D0063E575 /* Assets.xcassets */; };
 		CE0B6CED24AD532A00FE012D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CE550BD52259479D0063E575 /* Assets.xcassets */; };
 		CE0B6CF324AD568400FE012D /* UTMLegacyQemuConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = CE31C244225E555600A965DD /* UTMLegacyQemuConfiguration.m */; };
@@ -1011,6 +1014,7 @@
 				CE03D08E24D9124100F76B84 /* gmodule-2.0.0.framework in Embed Libraries */,
 				CE03D0C524D913AF00F76B84 /* ffi.7.framework in Embed Libraries */,
 				CEF83F8D250094E700557D15 /* gthread-2.0.0.framework in Embed Libraries */,
+				CE064C662A563F4B003C833D /* swtpm.0.framework in Embed Libraries */,
 				CE03D09024D9124800F76B84 /* intl.8.framework in Embed Libraries */,
 				CE03D0C924D9140A00F76B84 /* pixman-1.0.framework in Embed Libraries */,
 				CE0B6F2024AD679F00FE012D /* gstfft-1.0.0.framework in Embed Libraries */,
@@ -1124,6 +1128,7 @@
 				CE2D93AA24AD46670059923A /* spice-client-glib-2.0.8.framework in Embed Libraries */,
 				CE2D93AB24AD46670059923A /* opus.0.framework in Embed Libraries */,
 				CE2D93AD24AD46670059923A /* gstsdp-1.0.0.framework in Embed Libraries */,
+				CE064C6A2A563F6E003C833D /* swtpm.0.framework in Embed Libraries */,
 				CE2D93AE24AD46670059923A /* qemu-nios2-softmmu.framework in Embed Libraries */,
 				CE02C8AB294EE4EB006DFE48 /* qemu-loongarch64-softmmu.framework in Embed Libraries */,
 				CE2D93B024AD46670059923A /* gstaudio-1.0.0.framework in Embed Libraries */,
@@ -1185,6 +1190,7 @@
 				CEA45F97263519B5002FA97D /* qemu-ppc64-softmmu.framework in Embed Libraries */,
 				CEA45F9A263519B5002FA97D /* glib-2.0.0.framework in Embed Libraries */,
 				CEA45F9B263519B5002FA97D /* qemu-x86_64-softmmu.framework in Embed Libraries */,
+				CE064C6C2A563F75003C833D /* swtpm.0.framework in Embed Libraries */,
 				CEA45F9E263519B5002FA97D /* qemu-arm-softmmu.framework in Embed Libraries */,
 				CEA45F9F263519B5002FA97D /* intl.8.framework in Embed Libraries */,
 				CEA45FA0263519B5002FA97D /* gstreamer-1.0.0.framework in Embed Libraries */,
@@ -1408,6 +1414,7 @@
 		CE061CDF289E6DCF0000351C /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/VMDisplayWindow.strings; sourceTree = "<group>"; };
 		CE061CE8289EB6250000351C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/VMDisplayMetalViewInputAccessory.xib; sourceTree = "<group>"; };
 		CE061CEB289EB62E0000351C /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/VMDisplayMetalViewInputAccessory.strings; sourceTree = "<group>"; };
+		CE064C642A563F4A003C833D /* swtpm.0.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = swtpm.0.framework; path = "$(SYSROOT_DIR)/Frameworks/swtpm.0.framework"; sourceTree = "<group>"; };
 		CE0DF17025A80B6300A51894 /* Bootstrap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Bootstrap.h; sourceTree = "<group>"; };
 		CE0DF17125A80B6300A51894 /* Bootstrap.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Bootstrap.c; sourceTree = "<group>"; };
 		CE0E9B86252FD06B0026E02B /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; };
@@ -1993,6 +2000,7 @@
 		CE2D63D622653C7300FC7E63 /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
+				CE064C642A563F4A003C833D /* swtpm.0.framework */,
 				CE02C8A8294EE4EA006DFE48 /* qemu-loongarch64-softmmu.framework */,
 				CE02C8A9294EE4EB006DFE48 /* slirp.0.framework */,
 				84C5068528CA5702007CE8FF /* Hypervisor.framework */,

+ 13 - 0
patches/libtpms-0.9.6.patch

@@ -0,0 +1,13 @@
+diff -Naur a/src/tpm12/tpm_crypto.c b/src/tpm12/tpm_crypto.c
+--- a/src/tpm12/tpm_crypto.c	2023-07-04 10:48:24.000000000 -0700
++++ b/src/tpm12/tpm_crypto.c	2023-07-04 15:41:40.000000000 -0700
+@@ -48,6 +48,9 @@
+ #include <openssl/rand.h>
+ #include <openssl/sha.h>
+ #include <openssl/engine.h>
++#include <openssl/rsa.h>
++#include <openssl/evp.h>
++#include <openssl/err.h>
+ 
+ #include "tpm_cryptoh.h"
+ #include "tpm_debug.h"

+ 2 - 0
patches/sources

@@ -14,6 +14,8 @@ GPG_ERROR_SRC="https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.38.t
 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"
 OPENSSL_SRC="https://www.openssl.org/source/old/1.1.1/openssl-1.1.1b.tar.gz"
+TPMS_SRC="https://github.com/osy/libtpms/releases/download/v0.9.6/libtpms-0.9.6.tar.gz"
+SWTPM_SRC="https://github.com/utmapp/swtpm/releases/download/v0.8.99/swtpm-0.8.99.tar.gz"
 OPUS_SRC="https://archive.mozilla.org/pub/opus/opus-1.3.tar.gz"
 ZSTD_SRC="https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz"
 SPICE_PROTOCOL_SRC="https://www.spice-space.org/download/releases/spice-protocol-0.14.4.tar.xz"

+ 4 - 0
scripts/build_dependencies.sh

@@ -137,6 +137,8 @@ download_all () {
     download $GCRYPT_SRC
     download $PIXMAN_SRC
     download $OPENSSL_SRC
+    download $TPMS_SRC
+    download $SWTPM_SRC
     download $OPUS_SRC
     download $SPICE_PROTOCOL_SRC
     download $SPICE_SERVER_SRC
@@ -484,6 +486,8 @@ build_qemu_dependencies () {
     build $GCRYPT_SRC
     build $PIXMAN_SRC
     build_openssl $OPENSSL_SRC
+    build $TPMS_SRC --disable-shared
+    build $SWTPM_SRC --enable-shared-lib
     build $OPUS_SRC
     ZSTD_BASENAME="$(basename $ZSTD_SRC)"
     meson_build "$BUILD_DIR/${ZSTD_BASENAME%.tar.*}/build/meson"