Bazaar-NG (bzr) relies on Python 2, which has reached end-of-life, and
appears to be essentially unmaintained itself. Try using Breezy (brz),
a "friendly fork" of bzr that has been ported to Python 3 and is
maintained.
Signed-off-by: Simon McVittie <smcv@debian.org>
Provide a --token-type command line option and a token-type manifest
property that allows passing the token type to build-export. The
manifest property takes precendence over the CLI option. In either case,
the value will be passed to build-export if it's >= 0. This requires
flatpak >= 1.6 to use the --token-type option in build-export.
This allows unpacking files that would otherwise not be recognised as of
a particular type, such as self-extracting files supported by zip, 7z or
cabextract.
If two modules happen to have the same name we uniquify them by
appending "-$n". While you shouldn't normally rely on this it is
sometimes hard to avoid when you're including some json snippet you
don't have control over.
Closes: #308
Approved by: alexlarsson
We want to use this in flathub to avoid all the problems we've having
parsing json manifests via the python parser, which isn't *quite* compatible
with json-glib (differs in comment and multiline string support for instance).
Closes: #307
Approved by: alexlarsson
This means when flatpak-builder runs a flatpak command in a subprocess,
we can see the arguments passed to flatpak in the flatpak-builder
output, if -v was used.
Closes: #291
Approved by: alexlarsson
Shallow clones only contain the ref that was cloned, and so if a
mirror is shallow and the ref is changed in a subsequent invocation of
builder, the new ref is absent and git fails with an error.
This patch avoids bailing out too soon when mirroring a repo if the
requested ref does not exist, to ensure it is fetched.
Fixes#285Closes: #286
Approved by: alexlarsson
If we are spawning applications on the host using the Development service,
then we want those commands to exit when the flatpak-builder process
exits, as can happen from Ctrl^C or kill().
By using a static FlatpakHostCommandFlags we only ever check this a single
time and then each subsequent request will do the right thing.
This splits the platform creation into 3 parts:
* base - create the initial directory based on the parent platform
* prepare - run prepare commands and apply all changes
* cleanup - apply cleanups and cleanup commands
This has cacheing advantages in that prepare_commands and cleanup changes
only cause the minimal amount of rebuilds.
Additionally, it ensures that the mtimes are zeroed out (from the
previous checkout) both when the prepare and cleanup commands are run.
This is actually important, since these often generate caches (for
example fontconfig ones) which rely on zeroed mtimes so they match
what will be deployed.
Closes: #277
Approved by: alexlarsson
It turns out that newer flatpaks changed the output of flatpak info
and we relied on parsing that due to the lack of --show-location option
to flatpak info. However, that has been added since flatpak 0.11.8, so
just use that instead of parsing it.
Closes: #270
Approved by: alexlarsson
We were printing argv[3] which is wrong (and typically null).
Instead set the error message where it happens and we know
what we were trying to do.
Closes: #269
Approved by: alexlarsson
This is similar to branch and used if branch is not set. However, this
key (as opposed to branch) is overridden by the --default-branch option.
The idea is that most apps in flathub would use default-branch=stable, so
that a standart flatpak-builder command will build a "stable" release.
However, when building a test build we can use --default-branch=test to
override that. Then special cases like theme extensions and other things
that require a specific branch value to work at all can use branch="1.0".
Closes: #264
Approved by: alexlarsson
Python 3.7 adds a flags field which modified the offset of the mtime,
as well as adds a new non-mtime based check mode.
Fixes#247Closes: #256
Approved by: alexlarsson
This way we don't rely on the host appstream-glib which could be old.
We already rely on it in the runtime for appstream-compose.
Closes: #217
Approved by: alexlarsson
appstream-util mirror-screenshots rewrites the xml file in-place, so
we need to break hardlinks the before running it, otherwise it will
modify the cache object in place, breaking the repo.
Closes: #217
Approved by: alexlarsson
In many cases you have a list of patches to apply, with the same
args. This allows you to do that by just listing the patches in
order, thus making the manifest more compact.
Closes: #204
Approved by: alexlarsson
This add custom (de)serialization code for the source, module and manifest
objects so that properties starting with "x-" are kep and then put back
in the manifest.
We also add a checksum of the manifest to the "finish" phase so that
if you change them the manifest is re-generated.
Closes: #203
Approved by: TingPing
Otherwise buildbots, and other non-interactive/clean-room builds might
not have git committer information set, and make it impossible to
successfully commit, and git erroring out with:
*** Please tell me who you are.
Closes: #183
Approved by: alexlarsson