diff --git a/hw/xquartz/bundle/Info.plist.cpp b/hw/xquartz/bundle/Info.plist.cpp
index 6314c7181..00da2a850 100644
--- a/hw/xquartz/bundle/Info.plist.cpp
+++ b/hw/xquartz/bundle/Info.plist.cpp
@@ -31,8 +31,8 @@
#ifdef XQUARTZ_SPARKLE
SUEnableAutomaticChecks
- SUPublicDSAKeyFile
- sparkle.pem
+ SUPublicEDKey
+ XQUARTZ_SPARKLE_PUBLIC_EDKEY
SUFeedURL
XQUARTZ_SPARKLE_FEED_URL
#endif
diff --git a/hw/xquartz/bundle/meson.build b/hw/xquartz/bundle/meson.build
index 28f171c70..20afb96ea 100644
--- a/hw/xquartz/bundle/meson.build
+++ b/hw/xquartz/bundle/meson.build
@@ -13,6 +13,7 @@ if build_sparkle
cpp_defs += [
'-DXQUARTZ_SPARKLE',
'-DXQUARTZ_SPARKLE_FEED_URL=@0@'.format(xquartz_sparkle_feed_url),
+ '-DXQUARTZ_SPARKLE_PUBLIC_EDKEY=@0@'.format(xquartz_sparkle_public_edkey),
]
endif
diff --git a/hw/xquartz/meson.build b/hw/xquartz/meson.build
index deae2b3c9..eb38c1fb5 100644
--- a/hw/xquartz/meson.build
+++ b/hw/xquartz/meson.build
@@ -4,6 +4,7 @@ apple_applications_dir = get_option('apple-applications-dir')
apple_application_name = get_option('apple-application-name')
bundle_id_prefix = get_option('bundle-id-prefix')
xquartz_sparkle_feed_url = get_option('sparkle-feed-url')
+xquartz_sparkle_public_edkey = get_option('sparkle-public-edkey')
bundle_version_string = meson.project_version() # CFBundleShortVersionString
bundle_version = release # CFBundleVersion
@@ -13,7 +14,7 @@ bundle_id_def = '-DBUNDLE_ID_PREFIX="@0@"'.format(bundle_id_prefix)
bundle_root = join_paths(apple_applications_dir, apple_application_name + '.app')
# using sparkle update framework?
-build_sparkle = xquartz_sparkle_feed_url != ''
+build_sparkle = xquartz_sparkle_feed_url != '' and xquartz_sparkle_public_edkey != ''
if build_sparkle
sparkle = dependency('Sparkle', method: 'extraframework')
endif
diff --git a/meson_options.txt b/meson_options.txt
index b7719e092..b334c5023 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -122,6 +122,8 @@ option('bundle-id-prefix', type: 'string', value: 'org.x',
description: 'RDNS prefix for bundle identifier')
option('sparkle-feed-url', type: 'string',
description: 'Feed URL for autoupdating with the Sparkle Framework (default: disabled)')
+option('sparkle-public-edkey', type: 'string',
+ description: 'Public EdDSA key for verifying updates from the Sparkle feed (default: disabled)')
option('xpbproxy', type: 'boolean', value: false,
description: 'Build a standalone X pasteboard proxy')