# flatpak build-export

flatpak

Developer
Alexander
Larsson
alexl@redhat.com
flatpak build-export
1

# flatpak-build-export

Create a repository from a build directory

                    flatpak build-export
                    OPTION
                    LOCATION
                    DIRECTORY
                    BRANCH

## Description

Creates or updates a repository with an application build. LOCATION is the location of the repository. DIRECTORY must be a finalized build directory. If BRANCH is not specified, it is assumed to be "master".

If LOCATION exists, it is assumed to be an OSTree repository, otherwise a new OSTree repository is created at this location. The repository can be inspected with the `ostree` tool.

The contents of DIRECTORY are committed on the branch with name `app/APPNAME/ARCH/BRANCH`, where ARCH is the architecture of the runtime that the application is using. A commit filter is used to enforce that only the contents of the `files/` and `export/` subdirectories and the `metadata` file are included in the commit, anything else is ignored.

The build-update-repo command should be used to update repository metadata whenever application builds are added to a repository.

## Options

The following options are understood:

`-h`
`--help`

  Show help options and exit.

`-s`
`--subject=SUBJECT`

  One line subject for the commit message.

`-b`
`--body=BODY`

  Full description for the commit message.

`--arch=ARCH`

  Specify the architecture component of the branch to export. Only host compatible architectures can be specified.

`--exclude=PATTERN`

  Exclude files matching PATTERN from the commit. This option can be used multiple times.

`--include=PATTERN`

  Don't exclude files matching PATTERN from the commit, even if they match the --export patterns. This option can be used multiple times.

`--metadata=FILENAME`

  Use the specified filename as metadata in the exported app instead of the default file (called `metadata`). This is useful if you want to commit multiple things from a single build tree, typically used in combination with --files and --exclude.

`--files=SUBDIR`

  Use the files in the specified subdirectory as the file contents, rather than the regular `files` directory.

`--timestamp=DATE`

  Use the specified ISO 8601 formatted date in the commit metadata and, if `--update-appstream` is used, the appstream data.

`--update-appstream`

  Update the appstream branch after the build.

`--no-update-summary`

  Don't update the summary file after the new commit is added. This means the repository will not be useful for serving over http until build-update-repo has been run. This is useful is you want to do multiple repo operations before finally updating the summary.

`--gpg-sign=KEYID`

  Sign the commit with this GPG key. This option can be used multiple times.

`--gpg-homedir=PATH`

  GPG Homedir to use when looking for keyrings

`-r`
`--runtime`

  Export a runtime instead for an app (this uses the usr subdir as files).

`-v`
`--verbose`

  Print debug information during command processing.

`--ostree-verbose`

  Print OSTree debug information during command processing.

`--version`

  Print version information and exit.

## Examples

`$ flatpak build-export ~/repos/gnome-calculator/ ~/build/gnome-calculator/ org.gnome.Calculator`

    Commit: 9d0044ea480297114d03aec85c3d7ae3779438f9d2cb69d717fb54237acacb8c
    Metadata Total: 605
    Metadata Written: 5
    Content Total: 1174
    Content Written: 1
    Content Bytes Written: 305

## See also

ostree 1, flatpak 1, flatpak-build-init 1, flatpak-build 1, flatpak-build-finish 1, flatpak-build-sign 1, flatpak-build-update-repo 1