flatpak-builder/doc/flatpak-build-finish.xml

293 lines
11 KiB
XML

<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<refentry id="flatpak-build-finish">
<refentryinfo>
<title>flatpak build-finish</title>
<productname>flatpak</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Alexander</firstname>
<surname>Larsson</surname>
<email>alexl@redhat.com</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>flatpak build-finish</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>flatpak-build-finish</refname>
<refpurpose>Finalize a build directory</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>flatpak build-finish</command>
<arg choice="opt" rep="repeat">OPTION</arg>
<arg choice="plain">DIRECTORY</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
Finalizes a build directory, to prepare it for exporting.
<arg choice="plain">DIRECTORY</arg> is the name of the directory.
</para>
<para>
The result of this command is that desktop files, icons and
D-Bus service files from the <filename>files</filename> subdirectory
are copied to a new <filename>export</filename> subdirectory. In the
<filename>metadata</filename> file, the command key is set in the
[Application] group, and the supported keys in the [Environment]
group are set according to the options.
</para>
<para>
You should review the exported files and the application metadata
before creating and distributing an application bundle.
</para>
<para>
It is an error to run build-finish on a directory that has not
been initialized as a build directory, or has already been finalized.
</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>-h</option></term>
<term><option>--help</option></term>
<listitem><para>
Show help options and exit.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--command=COMMAND</option></term>
<listitem><para>
The command to use. If this option is not specified,
the first executable found in <filename>files/bin</filename>
is used.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--share=SUBSYSTEM</option></term>
<listitem><para>
Share a subsystem with the host session. This updates
the [Context] group in the metadata.
SUBSYSTEM must be one of: network, ipc.
This option can be used multiple times.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--unshare=SUBSYSTEM</option></term>
<listitem><para>
Don't share a subsystem with the host session. This updates
the [Context] group in the metadata.
SUBSYSTEM must be one of: network, ipc.
This option can be used multiple times.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--socket=SOCKET</option></term>
<listitem><para>
Expose a well known socket to the application. This updates
the [Context] group in the metadata.
SOCKET must be one of: x11, wayland, pulseaudio, system-bus, session-bus.
This option can be used multiple times.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--nosocket=SOCKET</option></term>
<listitem><para>
Don't expose a well known socket to the application. This updates
the [Context] group in the metadata.
SOCKET must be one of: x11, wayland, pulseaudio, system-bus, session-bus.
This option can be used multiple times.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--device=DEVICE</option></term>
<listitem><para>
Expose a device to the application. This updates
the [Context] group in the metadata.
DEVICE must be one of: dri.
This option can be used multiple times.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--nodevice=DEVICE</option></term>
<listitem><para>
Don't expose a device to the application. This updates
the [Context] group in the metadata.
DEVICE must be one of: dri.
This option can be used multiple times.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--filesystem=FS</option></term>
<listitem><para>
Allow the application access to a subset of the filesystem.
This updates the [Context] group in the metadata.
FS can be one of: home, host, xdg-desktop, xdg-documents, xdg-download
xdg-music, xdg-pictures, xdg-public-share, xdg-templates, xdg-videos, xdg-run,
an absolute path, or a homedir-relative path like ~/dir or paths
relative to the xdg dirs, like xdg-download/subdir.
This option can be used multiple times.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--env=VAR=VALUE</option></term>
<listitem><para>
Set an environment variable in the application.
This updates the [Environment] group in the metadata.
This overrides to the Context section from the application metadata.
This option can be used multiple times.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--own-name=NAME</option></term>
<listitem><para>
Allow the application to own the well known name NAME on the session bus.
If NAME ends with .*, it allows the application to own all matching names.
This updates the [Session Bus Policy] group in the metadata.
This option can be used multiple times.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--talk-name=NAME</option></term>
<listitem><para>
Allow the application to talk to the well known name NAME on the session bus.
If NAME ends with .*, it allows the application to talk to all matching names.
This updates the [Session Bus Policy] group in the metadata.
This option can be used multiple times.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--system-own-name=NAME</option></term>
<listitem><para>
Allow the application to own the well known name NAME on the system bus.
If NAME ends with .*, it allows the application to own all matching names.
This updates the [System Bus Policy] group in the metadata.
This option can be used multiple times.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--system-talk-name=NAME</option></term>
<listitem><para>
Allow the application to talk to the well known name NAME on the system bus.
If NAME ends with .*, it allows the application to talk to all matching names.
This updates the [System Bus Policy] group in the metadata.
This option can be used multiple times.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--persist=FILENAME</option></term>
<listitem><para>
If the application doesn't have access to the real homedir, make the (homedir-relative) path
FILENAME a bind mount to the corresponding path in the per-application directory,
allowing that location to be used for persistant data.
This updates the [Context] group in the metadata.
This option can be used multiple times.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--no-exports</option></term>
<listitem><para>
Don't look for exports in the build.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-v</option></term>
<term><option>--verbose</option></term>
<listitem><para>
Print debug information during command processing.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--version</option></term>
<listitem><para>
Print version information and exit.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
<command>$ flatpak build-finish /build/my-app --socket=x11 --share=ipc</command>
</para>
<programlisting>
Exporting share/applications/gnome-calculator.desktop
Exporting share/dbus-1/services/org.gnome.Calculator.SearchProvider.service
More than one executable
Using gcalccmd as command
Please review the exported files and the metadata
</programlisting>
</refsect1>
<refsect1>
<title>See also</title>
<para>
<citerefentry><refentrytitle>flatpak</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>flatpak-build-init</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>flatpak-build</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>flatpak-build-export</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>