flatpak-build(1) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | EXAMPLES | SEE ALSO | COLOPHON

FLATPAK BUILD(1)              flatpak build              FLATPAK BUILD(1)

NAME         top

       flatpak-build - Build in a directory

SYNOPSIS         top


       flatpak build [OPTION...] DIRECTORY [COMMAND [ARG...]]

DESCRIPTION         top

       Runs a build command in a directory.  DIRECTORY must have been
       initialized with flatpak build-init.

       The sdk that is specified in the metadata file in the directory is
       mounted at /usr and the files and var subdirectories are mounted
       at /app and /var, respectively. They are writable, and their
       contents are preserved between build commands, to allow
       accumulating build artifacts there.

OPTIONS         top

       The following options are understood:

       -h, --help
           Show help options and exit.

       -v, --verbose
           Print debug information during command processing.

       --ostree-verbose
           Print OSTree debug information during command processing.

       -r, --runtime
           Use the non-devel runtime that is specified in the application
           metadata instead of the devel runtime.

       -p, --die-with-parent
           Kill the build process and all children when the launching
           process dies.

       --bind-mount=DEST=SOURCE
           Add a custom bind mount in the build namespace. Can be
           specified multiple times.

       --build-dir=PATH
           Start the build in this directory (default is in the current
           directory).

       --share=SUBSYSTEM
           Share a subsystem with the host session. This overrides the
           Context section from the application metadata.  SUBSYSTEM must
           be one of: network, ipc. This option can be used multiple
           times.

       --unshare=SUBSYSTEM
           Don't share a subsystem with the host session. This overrides
           the Context section from the application metadata.  SUBSYSTEM
           must be one of: network, ipc. This option can be used multiple
           times.

       --socket=SOCKET
           Expose a well-known socket to the application. This overrides
           to the Context section from the application metadata.  SOCKET
           must be one of: x11, wayland, fallback-x11, pulseaudio,
           system-bus, session-bus, ssh-auth, pcsc, cups, gpg-agent,
           inherit-wayland-socket. This option can be used multiple
           times.

       --nosocket=SOCKET
           Don't expose a well-known socket to the application. This
           overrides to the Context section from the application
           metadata.  SOCKET must be one of: x11, wayland, fallback-x11,
           pulseaudio, system-bus, session-bus, ssh-auth, pcsc, cups,
           gpg-agent, inherit-wayland-socket. This option can be used
           multiple times.

       --device=DEVICE
           Expose a device to the application. This overrides to the
           Context section from the application metadata.  DEVICE must be
           one of: dri, input, usb, kvm, shm, all. This option can be
           used multiple times.

       --nodevice=DEVICE
           Don't expose a device to the application. This overrides to
           the Context section from the application metadata.  DEVICE
           must be one of: dri, input, usb, kvm, shm, all. This option
           can be used multiple times.

       --allow=FEATURE
           Allow access to a specific feature. This updates the [Context]
           group in the metadata.  FEATURE must be one of: devel,
           multiarch, bluetooth, canbus, per-app-dev-shm. This option can
           be used multiple times.

           See flatpak-build-finish(1) for the meaning of the various
           features.

       --disallow=FEATURE
           Disallow access to a specific feature. This updates the
           [Context] group in the metadata.  FEATURE must be one of:
           devel, multiarch, bluetooth, canbus, per-app-dev-shm. This
           option can be used multiple times.

       --filesystem=FILESYSTEM[:ro|:create]
           Allow the application access to a subset of the filesystem.
           This overrides to the Context section from the application
           metadata.  FILESYSTEM can be one of: home, host, host-os,
           host-etc, xdg-desktop, xdg-documents, xdg-download, xdg-music,
           xdg-pictures, xdg-public-share, xdg-templates, xdg-videos,
           xdg-run, xdg-config, xdg-cache, xdg-data, an absolute path, or
           a homedir-relative path like ~/dir or paths relative to the
           xdg dirs, like xdg-download/subdir. The optional :ro suffix
           indicates that the location will be read-only. The optional
           :create suffix indicates that the location will be read-write
           and created if it doesn't exist. This option can be used
           multiple times. See the "[Context] filesystems" list in
           flatpak-metadata(5) for details of the meanings of these
           filesystems.

       --nofilesystem=FILESYSTEM
           Remove access to the specified subset of the filesystem from
           the application. This overrides to the Context section from
           the application metadata.  FILESYSTEM can be one of: home,
           host, host-os, host-etc, xdg-desktop, xdg-documents,
           xdg-download, xdg-music, xdg-pictures, xdg-public-share,
           xdg-templates, xdg-videos, an absolute path, or a
           homedir-relative path like ~/dir. This option can be used
           multiple times.

       --with-appdir
           Expose and configure access to the per-app storage directory
           in $HOME/.var/app. This is not normally useful when building,
           but helps when testing built apps.

       --add-policy=SUBSYSTEM.KEY=VALUE
           Add generic policy option. For example,
           "--add-policy=subsystem.key=v1 --add-policy=subsystem.key=v2"
           would map to this metadata:

               [Policy subsystem]
               key=v1;v2;

           This option can be used multiple times.

       --remove-policy=SUBSYSTEM.KEY=VALUE
           Remove generic policy option. This option can be used multiple
           times.

       --env=VAR=VALUE
           Set an environment variable in the application. This overrides
           to the Context section from the application metadata. This
           option can be used multiple times.

       --unset-env=VAR
           Unset an environment variable in the application. This
           overrides the unset-environment entry in the [Context] group
           of the metadata, and the [Environment] group. This option can
           be used multiple times.

       --env-fd=FD
           Read environment variables from the file descriptor FD, and
           set them as if via --env. This can be used to avoid
           environment variables and their values becoming visible to
           other users.

           Each environment variable is in the form VAR=VALUE followed by
           a zero byte. This is the same format used by env -0 and
           /proc/*/environ.

       --own-name=NAME
           Allow the application to own the well-known name NAME on the
           session bus. This overrides to the Context section from the
           application metadata. This option can be used multiple times.

       --talk-name=NAME
           Allow the application to talk to the well-known name NAME on
           the session bus. This overrides to the Context section from
           the application metadata. This option can be used multiple
           times.

       --system-own-name=NAME
           Allow the application to own the well-known name NAME on the
           system bus. This overrides to the Context section from the
           application metadata. This option can be used multiple times.

       --system-talk-name=NAME
           Allow the application to talk to the well-known name NAME on
           the system bus. This overrides to the Context section from the
           application metadata. This option can be used multiple times.

       --persist=FILENAME
           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 persistent data. This overrides
           to the Context section from the application metadata. This
           option can be used multiple times.

       --sdk-dir=DIR
           Normally if there is a usr directory in the build dir, this is
           used for the runtime files (this can be created by
           --writable-sdk or --type=runtime arguments to build-init). If
           you specify --sdk-dir, this directory will be used instead.
           Use this if you passed --sdk-dir to build-init.

       --readonly
           Mount the normally writable destination directories read-only.
           This can be useful if you want to run something in the sandbox
           but guarantee that it doesn't affect the build results. For
           example tests.

       --metadata=FILE
           Use the specified filename as metadata in the exported app
           instead of the default file (called metadata). This is useful
           if you build multiple things from a single build tree (such as
           both a platform and a sdk).

       --log-session-bus
           Log session bus traffic. This can be useful to see what access
           you need to allow in your D-Bus policy.

       --log-system-bus
           Log system bus traffic. This can be useful to see what access
           you need to allow in your D-Bus policy.

EXAMPLES         top

       $ flatpak build /build/my-app rpmbuild my-app.src.rpm

SEE ALSO         top

       flatpak(1), flatpak-build-init(1), flatpak-build-finish(1),
       flatpak-build-export(1)

COLOPHON         top

       This page is part of the flatpak (a tool for building and
       distributing desktop applications on Linux) project.  Information
       about the project can be found at ⟨http://flatpak.org/⟩.  It is
       not known how to report bugs for this man page; if you know,
       please send a mail to [email protected].  This page was obtained
       from the project's upstream Git repository
       ⟨https://github.com/flatpak/flatpak⟩ on 2025-02-02.  (At that
       time, the date of the most recent commit that was found in the
       repository was 2025-01-14.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there is
       a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to
       [email protected]

flatpak                                                  FLATPAK BUILD(1)

Pages that refer to this page: flatpak(1)flatpak-build-bundle(1)flatpak-build-commit-from(1)flatpak-build-export(1)flatpak-build-finish(1)flatpak-build-init(1)flatpak-build-sign(1)