- Archive already existing must not stop download of other archives.
- Use copytree instead of rename to use second archive as patch on existing
directory. (No need to remove tmpdir, as it is a temporary directory)
It mainly allow to run command in directory containing space.
(Hello, `C:\Program Files\...`)
It would also allow to work on directory containning spaces
(`C:\Users\John Doe`) but xapian configure (at least) expressly doesn't
support it :/
- Run the command without shell=True
- The command must be a list instead of a string.
- All options must also be a list (or an iterable).
When running command without `shell=True`, python's subproccess will look
for variable `"PATH"` and `b"PATH"` and will complain if both are set.
So the defaultdict should not return something for `b"PATH"`.
We also escape space ` ` in the environment variables to not break
everything with directory containing space.
When we use `--disable-tools` (ie, when we are cross-compiling), ICU
will build the data only if it detects we are cross-compiling.
This make sens until we cross-compiling for wasm.
Wasm output is a script file with the interpreter in the sdk we have
installed. So ICU's configure can run the test binary and so doesn't detect
we are cross-compiling.
So we have to patch ICU Makefile to make it build the ICU data anyway.
We were assuming that meson project correspond to our projects and so we
were always building them, even if they were already compiled.
(This way, a simple `kiwix-build` is enough to recompile the WIP code of
our project).
However, on the CI, we do not archive the source code/build directory in
the base deps archive. So when we try to compile, the compile step of
meson projects fails because the source are not here.
We have a small workaround for pugixml but as zstd is also meson, it is
time to do something correct.
By default, all projects now try to skip if a build is already present.
Our projects are marked as `force_build` and so, they do not try to skip.
We simply do a `git merge --ff-only` instead of a `git reset`. This way:
- No change on the local repository
=> update to `remote/master`
- If you switch branch and local branch is behind `remote/master`
=> fast forward to `remote/master`
- If you switch branch and branches diverge
=> No update of the directory
- On branch master (or a branch behind `origin/master`) with compatible
change in the working tree.
=> update of the directory
- On branch master (or a branch behind `origin/master`) but incompatible
change in the working tree.
=> No update.
This way, sources are keep up-to-date as far as possible.
Instead of having the run_command function setting the
env from the buildEnv, this is the dependency that create the
env and then pass it to the run_command function.
This way, each dependency will be able to set a specific env.
This commit add a first version code to build a flatpak of kiwix-desktop.
It is mainly based on the PR #254 of @birros (hence he is the author of this commit)
However there is some differences :
- I (@mgautier) create a new builder to run the flatpak build instead of using a new
dependency.
- Use the flatpak platform to install org.kde.Platform and org.kde.Sdk
This code version doesn't correctly work but I wanted to commit the birros' code
without too many modification (even if there is a lot).
Make kiwix-build installable using pip.
Module is now called `kiwixbuild` because `kiwix-build` is not a valid
python identifier.
Also split toolchains in separated directory.