mirror of
https://github.com/flatpak/flatpak.git
synced 2026-03-26 19:04:56 -04:00
There is some code for OCI signature verification that isn't currently hooked up at all. In preparation for reworking it to usefully check signatures that actually exist in OCI registries, move it to a separate file.
310 lines
7.6 KiB
Meson
310 lines
7.6 KiB
Meson
# Copyright 2022 Collabora Ltd.
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
|
|
public_headers = [
|
|
'flatpak-bundle-ref.h',
|
|
'flatpak-error.h',
|
|
'flatpak-installation.h',
|
|
'flatpak-installed-ref.h',
|
|
'flatpak-instance.h',
|
|
'flatpak-portal-error.h',
|
|
'flatpak-ref.h',
|
|
'flatpak-related-ref.h',
|
|
'flatpak-remote-ref.h',
|
|
'flatpak-remote.h',
|
|
'flatpak-transaction.h',
|
|
'flatpak.h',
|
|
]
|
|
|
|
install_headers(
|
|
public_headers,
|
|
subdir : 'flatpak',
|
|
)
|
|
|
|
flatpak_version_macros = configure_file(
|
|
input : 'flatpak-version-macros.h.in',
|
|
output : 'flatpak-version-macros.h',
|
|
configuration : {
|
|
'FLATPAK_MAJOR_VERSION' : flatpak_major_version,
|
|
'FLATPAK_MINOR_VERSION' : flatpak_minor_version,
|
|
'FLATPAK_MICRO_VERSION' : flatpak_micro_version,
|
|
},
|
|
install_dir : get_option('includedir') / 'flatpak',
|
|
)
|
|
|
|
# TODO: After the Autotools build system is removed, we can probably
|
|
# switch this to gnome.mkenums_simple, but it's easier to keep them
|
|
# consistent if we use the same templates
|
|
enums = gnome.mkenums(
|
|
'flatpak-enum-types',
|
|
c_template : 'flatpak-enum-types.c.template',
|
|
h_template : 'flatpak-enum-types.h.template',
|
|
install_dir : get_option('includedir') / 'flatpak',
|
|
install_header : true,
|
|
sources : public_headers,
|
|
)
|
|
|
|
flatpak_gdbus = gnome.gdbus_codegen(
|
|
'flatpak-dbus-generated',
|
|
sources : [
|
|
'../data/org.freedesktop.Flatpak.xml',
|
|
'../data/org.freedesktop.Flatpak.Authenticator.xml',
|
|
],
|
|
interface_prefix : 'org.freedesktop.Flatpak.',
|
|
namespace : 'Flatpak',
|
|
)
|
|
|
|
flatpak_document_gdbus = gnome.gdbus_codegen(
|
|
'flatpak-document-dbus-generated',
|
|
sources: [
|
|
'../data/org.freedesktop.portal.Documents.xml',
|
|
],
|
|
interface_prefix : 'org.freedesktop.portal.',
|
|
namespace : 'XdpDbus',
|
|
)
|
|
|
|
systemd_gdbus = gnome.gdbus_codegen(
|
|
'flatpak-systemd-dbus-generated',
|
|
sources: [
|
|
'../data/org.freedesktop.systemd1.xml',
|
|
],
|
|
interface_prefix : 'org.freedesktop.systemd1.',
|
|
namespace : 'Systemd',
|
|
)
|
|
|
|
variant_schema_compiler_command = [
|
|
global_source_root / 'subprojects' / 'variant-schema-compiler' / 'variant-schema-compiler',
|
|
]
|
|
|
|
if get_option('internal_checks')
|
|
variant_schema_compiler_command += ['--internal-validation']
|
|
endif
|
|
|
|
variant_schema_compiler_command += [
|
|
'--outfile', '@OUTPUT0@',
|
|
'--outfile-header', '@OUTPUT1@',
|
|
'--prefix', 'var',
|
|
'@INPUT@',
|
|
]
|
|
|
|
flatpak_variant = custom_target(
|
|
'flatpak-variant-private.h',
|
|
input : [
|
|
'../data/flatpak-variants.gv',
|
|
],
|
|
output : [
|
|
'flatpak-variant-impl-private.h',
|
|
'flatpak-variant-private.h',
|
|
],
|
|
build_by_default : true,
|
|
command : variant_schema_compiler_command,
|
|
)
|
|
|
|
libflatpak_common_base_deps = base_deps + [libglnx_dep]
|
|
|
|
libflatpak_common_base_sources = [
|
|
'flatpak-utils-base.c',
|
|
'flatpak-utils-base-private.h',
|
|
] + flatpak_gdbus + flatpak_document_gdbus
|
|
|
|
built_headers = [
|
|
enums[1],
|
|
flatpak_version_macros,
|
|
flatpak_gdbus[1],
|
|
flatpak_document_gdbus[1],
|
|
systemd_gdbus[1],
|
|
flatpak_variant[1],
|
|
]
|
|
|
|
libflatpak_common_deps = [
|
|
base_deps,
|
|
dconf_dep,
|
|
gpgme_dep,
|
|
json_glib_dep,
|
|
libarchive_dep,
|
|
libcurl_dep,
|
|
libglnx_dep,
|
|
libostree_dep,
|
|
libseccomp_dep,
|
|
libsystemd_dep,
|
|
libxml_dep,
|
|
libzstd_dep,
|
|
malcontent_dep,
|
|
polkit_agent_dep,
|
|
xau_dep,
|
|
]
|
|
built_sources = []
|
|
|
|
if build_wayland_security_context
|
|
wayland_scanner_prog = find_program(wayland_scanner.get_variable(pkgconfig: 'wayland_scanner'))
|
|
wayland_protocols_dir = wayland_protocols.get_variable(pkgconfig: 'pkgdatadir')
|
|
wl_security_context_xml = wayland_protocols_dir / 'staging/security-context/security-context-v1.xml'
|
|
wl_security_context = [
|
|
custom_target(
|
|
'security-context-v1-protocol.c',
|
|
input : wl_security_context_xml,
|
|
output : 'security-context-v1-protocol.c',
|
|
command : [wayland_scanner_prog, 'private-code', '@INPUT@', '@OUTPUT@'],
|
|
),
|
|
custom_target(
|
|
'security-context-v1-protocol.h',
|
|
input : wl_security_context_xml,
|
|
output : 'security-context-v1-protocol.h',
|
|
command : [wayland_scanner_prog, 'client-header', '@INPUT@', '@OUTPUT@'],
|
|
),
|
|
]
|
|
|
|
libflatpak_common_deps += [wayland_client]
|
|
built_sources += [wl_security_context]
|
|
built_headers += [wl_security_context[1]]
|
|
endif
|
|
|
|
libflatpak_common_base = static_library(
|
|
'flatpak-common-base',
|
|
dependencies : libflatpak_common_base_deps,
|
|
gnu_symbol_visibility : 'hidden',
|
|
include_directories : [common_include_directories],
|
|
install : false,
|
|
sources : libflatpak_common_base_sources,
|
|
)
|
|
libflatpak_common_base_dep = declare_dependency(
|
|
dependencies : base_deps + [libglnx_dep],
|
|
include_directories : [common_include_directories],
|
|
link_with : [
|
|
libflatpak_common_base,
|
|
],
|
|
sources : built_headers,
|
|
)
|
|
|
|
sources = [
|
|
'flatpak-appdata.c',
|
|
'flatpak-auth.c',
|
|
'flatpak-bundle-ref.c',
|
|
'flatpak-bwrap.c',
|
|
'flatpak-chain-input-stream.c',
|
|
'flatpak-context.c',
|
|
'flatpak-dir.c',
|
|
'flatpak-dir-utils.c',
|
|
'flatpak-docker-reference.c',
|
|
'flatpak-error.c',
|
|
'flatpak-exports.c',
|
|
'flatpak-glib-backports.c',
|
|
'flatpak-image-collection.c',
|
|
'flatpak-image-source.c',
|
|
'flatpak-installation.c',
|
|
'flatpak-installed-ref.c',
|
|
'flatpak-instance.c',
|
|
'flatpak-json-oci.c',
|
|
'flatpak-json.c',
|
|
'flatpak-locale-utils.c',
|
|
'flatpak-oci-registry.c',
|
|
'flatpak-oci-signatures.c',
|
|
'flatpak-portal-error.c',
|
|
'flatpak-progress.c',
|
|
'flatpak-prune.c',
|
|
'flatpak-ref-utils.c',
|
|
'flatpak-ref.c',
|
|
'flatpak-related-ref.c',
|
|
'flatpak-remote-ref.c',
|
|
'flatpak-remote.c',
|
|
'flatpak-repo-utils.c',
|
|
'flatpak-run.c',
|
|
'flatpak-run-cups.c',
|
|
'flatpak-run-dbus.c',
|
|
'flatpak-run-pulseaudio.c',
|
|
'flatpak-run-sockets.c',
|
|
'flatpak-run-wayland.c',
|
|
'flatpak-run-x11.c',
|
|
'flatpak-transaction.c',
|
|
'flatpak-utils-http.c',
|
|
'flatpak-utils.c',
|
|
'flatpak-uri.c',
|
|
'flatpak-usb.c',
|
|
'flatpak-xml-utils.c',
|
|
'flatpak-zstd-compressor.c',
|
|
'flatpak-zstd-decompressor.c',
|
|
]
|
|
|
|
if malcontent_dep.found()
|
|
sources += ['flatpak-parental-controls.c']
|
|
endif
|
|
|
|
libflatpak_common = static_library(
|
|
'flatpak-common',
|
|
dependencies : [libflatpak_common_base_dep] + libflatpak_common_deps,
|
|
gnu_symbol_visibility : 'hidden',
|
|
include_directories : [common_include_directories],
|
|
install : false,
|
|
sources : enums + public_headers + sources + built_sources + systemd_gdbus + [
|
|
flatpak_variant[0],
|
|
flatpak_variant[1],
|
|
],
|
|
)
|
|
libflatpak_common_dep = declare_dependency(
|
|
dependencies : [
|
|
base_deps,
|
|
libflatpak_common_base_dep,
|
|
libglnx_dep,
|
|
],
|
|
include_directories : [common_include_directories],
|
|
link_with : [
|
|
libflatpak_common,
|
|
],
|
|
sources : built_headers,
|
|
)
|
|
|
|
libflatpak = library(
|
|
'flatpak',
|
|
'flatpak.c',
|
|
gnu_symbol_visibility : 'hidden',
|
|
include_directories : [common_include_directories],
|
|
install : true,
|
|
link_args : ['-Wl,--export-dynamic'],
|
|
link_whole : [
|
|
libflatpak_common_base,
|
|
libflatpak_common,
|
|
],
|
|
soversion : '0',
|
|
version : '0.@0@.0'.format(flatpak_binary_age),
|
|
)
|
|
libflatpak_dep = declare_dependency(
|
|
dependencies : libflatpak_common_deps,
|
|
include_directories : [common_include_directories],
|
|
link_with : [
|
|
libflatpak,
|
|
],
|
|
sources : built_headers,
|
|
)
|
|
|
|
test_libflatpak = executable(
|
|
'test-libflatpak',
|
|
'test-lib.c',
|
|
dependencies : base_deps + [libglnx_dep, libflatpak_dep],
|
|
install : false,
|
|
)
|
|
|
|
if gir_dep.found()
|
|
gnome.generate_gir(
|
|
libflatpak,
|
|
export_packages : 'flatpak',
|
|
extra_args : [
|
|
'-DFLATPAK_EXTERN=__attribute__((visibility("default"))) extern',
|
|
'-DFLATPAK_COMPILATION=1',
|
|
'--warn-all',
|
|
],
|
|
header : 'flatpak.h',
|
|
identifier_prefix : 'Flatpak',
|
|
includes : ['GObject-2.0', 'Gio-2.0'],
|
|
install : true,
|
|
namespace : 'Flatpak',
|
|
nsversion : '1.0',
|
|
sources : [
|
|
enums,
|
|
flatpak_version_macros,
|
|
public_headers,
|
|
sources,
|
|
],
|
|
symbol_prefix : 'flatpak',
|
|
)
|
|
endif
|