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')