'\" t .\" Title: flatpak build .\" Author: Alexander Larsson .\" Generator: DocBook XSL Stylesheets v1.79.1 .\" Date: 04/14/2021 .\" Manual: flatpak build .\" Source: flatpak .\" Language: English .\" .TH "FLATPAK BUILD" "1" "" "flatpak" "flatpak build" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" flatpak-build \- Build in a directory .SH "SYNOPSIS" .HP \w'\fBflatpak\ build\fR\ 'u \fBflatpak build\fR [OPTION...] DIRECTORY [COMMAND\ [ARG...]] .SH "DESCRIPTION" .PP Runs a build command in a directory\&. DIRECTORY must have been initialized with \fBflatpak build\-init\fR\&. .PP 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\&. .SH "OPTIONS" .PP The following options are understood: .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 Show help options and exit\&. .RE .PP \fB\-v\fR, \fB\-\-verbose\fR .RS 4 Print debug information during command processing\&. .RE .PP \fB\-\-ostree\-verbose\fR .RS 4 Print OSTree debug information during command processing\&. .RE .PP \fB\-r\fR, \fB\-\-runtime\fR .RS 4 Use the non\-devel runtime that is specified in the application metadata instead of the devel runtime\&. .RE .PP \fB\-p\fR, \fB\-\-die\-with\-parent\fR .RS 4 Kill the build process and all children when the launching process dies\&. .RE .PP \fB\-\-bind\-mount=DEST=SOURCE\fR .RS 4 Add a custom bind mount in the build namespace\&. Can be specified multiple times\&. .RE .PP \fB\-\-build\-dir=PATH\fR .RS 4 Start the build in this directory (default is in the current directory)\&. .RE .PP \fB\-\-share=SUBSYSTEM\fR .RS 4 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\&. .RE .PP \fB\-\-unshare=SUBSYSTEM\fR .RS 4 Don\*(Aqt 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\&. .RE .PP \fB\-\-socket=SOCKET\fR .RS 4 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\&. This option can be used multiple times\&. .RE .PP \fB\-\-nosocket=SOCKET\fR .RS 4 Don\*(Aqt 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\&. This option can be used multiple times\&. .RE .PP \fB\-\-device=DEVICE\fR .RS 4 Expose a device to the application\&. This overrides to the Context section from the application metadata\&. DEVICE must be one of: dri, kvm, shm, all\&. This option can be used multiple times\&. .RE .PP \fB\-\-nodevice=DEVICE\fR .RS 4 Don\*(Aqt expose a device to the application\&. This overrides to the Context section from the application metadata\&. DEVICE must be one of: dri, kvm, shm, all\&. This option can be used multiple times\&. .RE .PP \fB\-\-allow=FEATURE\fR .RS 4 Allow access to a specific feature\&. This updates the [Context] group in the metadata\&. FEATURE must be one of: devel, multiarch, bluetooth, canbus\&. This option can be used multiple times\&. .sp See \fBflatpak-build-finish\fR(1) for the meaning of the various features\&. .RE .PP \fB\-\-disallow=FEATURE\fR .RS 4 Disallow access to a specific feature\&. This updates the [Context] group in the metadata\&. FEATURE must be one of: devel, multiarch, bluetooth, canbus\&. This option can be used multiple times\&. .RE .PP \fB\-\-filesystem=FILESYSTEM[:ro|:create]\fR .RS 4 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\*(Aqt exist\&. This option can be used multiple times\&. See the "[Context] filesystems" list in \fBflatpak-metadata\fR(5) for details of the meanings of these filesystems\&. .RE .PP \fB\-\-nofilesystem=FILESYSTEM\fR .RS 4 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\&. .RE .PP \fB\-\-with\-appdir\fR .RS 4 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\&. .RE .PP \fB\-\-add\-policy=SUBSYSTEM\&.KEY=VALUE\fR .RS 4 Add generic policy option\&. For example, "\-\-add\-policy=subsystem\&.key=v1 \-\-add\-policy=subsystem\&.key=v2" would map to this metadata: .sp .if n \{\ .RS 4 .\} .nf [Policy subsystem] key=v1;v2; .fi .if n \{\ .RE .\} .sp This option can be used multiple times\&. .RE .PP \fB\-\-remove\-policy=SUBSYSTEM\&.KEY=VALUE\fR .RS 4 Remove generic policy option\&. This option can be used multiple times\&. .RE .PP \fB\-\-env=VAR=VALUE\fR .RS 4 Set an environment variable in the application\&. This overrides to the Context section from the application metadata\&. This option can be used multiple times\&. .RE .PP \fB\-\-unset\-env=VAR\fR .RS 4 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\&. .RE .PP \fB\-\-env\-fd=\fR\fB\fIFD\fR\fR .RS 4 Read environment variables from the file descriptor \fIFD\fR, and set them as if via \fB\-\-env\fR\&. This can be used to avoid environment variables and their values becoming visible to other users\&. .sp Each environment variable is in the form \fIVAR\fR=\fIVALUE\fR followed by a zero byte\&. This is the same format used by env \-0 and /proc/*/environ\&. .RE .PP \fB\-\-own\-name=NAME\fR .RS 4 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\&. .RE .PP \fB\-\-talk\-name=NAME\fR .RS 4 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\&. .RE .PP \fB\-\-system\-own\-name=NAME\fR .RS 4 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\&. .RE .PP \fB\-\-system\-talk\-name=NAME\fR .RS 4 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\&. .RE .PP \fB\-\-persist=FILENAME\fR .RS 4 If the application doesn\*(Aqt 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\&. .RE .PP \fB\-\-sdk\-dir=DIR\fR .RS 4 Normally if there is a usr directory in the build dir, this is used for the runtime files (this can be created by \fB\-\-writable\-sdk\fR or \fB\-\-type=runtime\fR arguments to build\-init)\&. If you specify \fB\-\-sdk\-dir\fR, this directory will be used instead\&. Use this if you passed \fB\-\-sdk\-dir\fR to build\-init\&. .RE .PP \fB\-\-readonly\fR .RS 4 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\*(Aqt affect the build results\&. For example tests\&. .RE .PP \fB\-\-metadata=FILE\fR .RS 4 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)\&. .RE .PP \fB\-\-log\-session\-bus\fR .RS 4 Log session bus traffic\&. This can be useful to see what access you need to allow in your D\-Bus policy\&. .RE .PP \fB\-\-log\-system\-bus\fR .RS 4 Log system bus traffic\&. This can be useful to see what access you need to allow in your D\-Bus policy\&. .RE .SH "EXAMPLES" .PP \fB$ flatpak build /build/my\-app rpmbuild my\-app\&.src\&.rpm\fR .SH "SEE ALSO" .PP \fBflatpak\fR(1), \fBflatpak-build-init\fR(1), \fBflatpak-build-finish\fR(1), \fBflatpak-build-export\fR(1)