Files
flatpak/doc/meson.build
Kalev Lember d10e11482d Add initial support for preinstalling flatpaks
This adds new FlatpakTransaction API, and a new top level CLI command to
preinstall flatpaks, that is to install flatpaks that are considered
part of the operating system.

A new drop-in directory /etc/flatpak/preinstall.d/ allows configuring
what apps should be preinstalled, and a new flatpak preinstall command
installs and removes apps based on the current configuration.

A drop-in loupe.preinstall file can look something like this:

[Flatpak Preinstall org.gnome.Loupe]
Branch=stable
IsRuntime=false

The corresponding API is flatpak_transaction_add_sync_preinstalled()
which can be implemented by GUI clients to drive the actual installs
on system startup.

Resolves: https://github.com/flatpak/flatpak/issues/5579
Co-authored-by: Sebastian Wick <sebastian.wick@redhat.com>
2025-08-26 11:51:07 +00:00

157 lines
3.5 KiB
Meson

# Copyright 2022 Collabora Ltd.
# SPDX-License-Identifier: LGPL-2.1-or-later
if build_gtk_doc
subdir('reference')
endif
xsltproc_flags = [
'--nonet',
'--stringparam', 'man.output.quietly', '1',
'--stringparam', 'funcsynopsis.style', 'ansi',
'--stringparam', 'man.th.extra1.suppress', '1',
'--stringparam', 'man.authors.section.enabled', '0',
'--stringparam', 'man.copyright.section.enabled', '0',
]
man1 = [
'flatpak',
'flatpak-remotes',
'flatpak-remote-add',
'flatpak-remote-delete',
'flatpak-remote-modify',
'flatpak-remote-ls',
'flatpak-remote-info',
'flatpak-install',
'flatpak-config',
'flatpak-update',
'flatpak-uninstall',
'flatpak-preinstall',
'flatpak-mask',
'flatpak-pin',
'flatpak-list',
'flatpak-info',
'flatpak-make-current',
'flatpak-run',
'flatpak-override',
'flatpak-enter',
'flatpak-ps',
'flatpak-document-export',
'flatpak-document-unexport',
'flatpak-document-info',
'flatpak-documents',
'flatpak-permission-remove',
'flatpak-permissions',
'flatpak-permission-show',
'flatpak-permission-reset',
'flatpak-permission-set',
'flatpak-build-init',
'flatpak-build',
'flatpak-build-bundle',
'flatpak-build-import-bundle',
'flatpak-build-finish',
'flatpak-build-export',
'flatpak-build-update-repo',
'flatpak-build-sign',
'flatpak-build-commit-from',
'flatpak-repo',
'flatpak-search',
'flatpak-create-usb',
'flatpak-repair',
'flatpak-kill',
'flatpak-history',
'flatpak-spawn',
]
man5 = [
'flatpak-metadata',
'flatpakrepo',
'flatpakref',
'flatpak-remote',
'flatpak-installation',
]
man_compat_symlinks = [
['flatpak-flatpakrepo', 'flatpakrepo', '5'],
['flatpak-flatpakref', 'flatpakref', '5'],
]
xml_files = []
foreach pair : [[man1, '1'], [man5, '5']]
pages = pair[0]
section = pair[1]
foreach man : pages
xml_files += [man + '.xml']
if build_man_pages
custom_target(
man + '.' + section,
input : [man + '.xml'],
output : [man + '.' + section],
command : [
xsltproc,
'-o', '@OUTPUT@',
] + xsltproc_flags + [
manpages_xsl,
'@INPUT@',
],
build_by_default : true,
install : true,
install_dir : get_option('mandir') / ('man' + section),
)
endif
endforeach
endforeach
foreach entry : man_compat_symlinks
name = entry[0]
target = entry[1]
section = entry[2]
if build_man_pages
#TODO: replace with install_symlink() when we can depend on meson 0.61
meson.add_install_script(
'sh', '-c', 'ln -sf @0@ $MESON_INSTALL_DESTDIR_PREFIX/@1@/@2@'.format(
target + '.' + section,
get_option('mandir') / ('man' + section),
name + '.' + section
)
)
endif
endforeach
if xmlto.found()
cdata = configuration_data()
cdata.set('VERSION', meson.project_version())
cdata.set('srcdir', meson.current_source_dir())
flatpak_docs_xml = configure_file(
input : 'flatpak-docs.xml.in',
output : 'flatpak-docs.xml',
configuration : cdata,
)
custom_target(
'flatpak-docs.html',
input : [
flatpak_docs_xml,
'xmlto-config.xsl',
],
output : ['flatpak-docs.html'],
depend_files : xml_files,
command : [
xmlto,
'-o', meson.current_build_dir(),
] + get_option('xmlto_flags') + [
'--skip-validation',
'xhtml-nochunks',
'-m', '@INPUT1@',
'@INPUT0@',
],
build_by_default : true,
install : true,
install_dir : docdir,
)
install_data('docbook.css', install_dir : docdir)
endif