| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
| |
When checking the signature on a tag, we also need to check that the tag
is really the expected tag in order to avoid rollback attacks.
Thanks to Santiago Torres-Arias and Keving Gallagher from NYU for
reporting and helping to fix this issue.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The reason we don't run |git checkout --detach| in all cases is that it
fails when we cloned a repository without a master branch. To avoid
running it in this case, we were checking if HEAD is pointing to a
branch which has a corresponding file in the .git directory.
However it seems there are other cases where HEAD is pointing to a
branch which does not have a corresponding file in the .git directory.
Instead we now check that |git rev-parse --verify HEAD| does not return
an error, in which case we assume that |git checkout --detach| will not
produce an error too.
|
| |
|
|
|
| |
Set DEBIAN_FRONTEND=noninteractive when using apt-get in install_package.
Also use the -q (quiet) argument.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
We replace a call to:
git submodule update --init
with calls to:
git submodule init
git submodule sync
git submodule update
The call to `git submodule sync` is solving the issue that could occur
when a submodule URL is changing.
|
| |
|
|
|
|
|
|
|
| |
To create an archive containing all submodules, we were creating a
temporary archive of each submodule before appending them to the main
archive. We were using the submodule path in the temporary archive
filename, which was failing if the submodule is in a subdirectory.
To avoid that, we are removing the path from the temporary archive's
filename and directly appending it to the main archive.
|
| |
|
|
|
|
|
|
|
| |
By default gpg will from time to time update its trust database. When
this happens it will also modify the keyring files to add some trust
information. To avoid this we add the --no-auto-check-trustdb option.
As we don't use the Web of Trust when we use a keyring file, we also
disable it using `--trust-model always`.
|
| |
|
|
| |
Print stderr from the git/hg command if the checkout failed.
|
| |\ |
|
| | |
| |
| |
| | |
Fix a regression introduced by #24361.
|
| | | |
|
| | |
| |
| |
| |
| | |
This script will create a tarball containing the website and print
commands that can be used to upload it.
|
| |/ |
|
| | |
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a build script contains some wide character, rbm fails with an
error:
Wide character in syswrite at /usr/share/perl5/File/Slurp.pm line 506.
This is because write_file from File::Slurp which we use to write the
build scripts is encoding files to latin-1 by default. While fixing this,
switching to Path::Tiny instead of File::Slurp seems like a good idea:
http://blogs.perl.org/users/leon_timmermans/2015/08/fileslurp-is-broken-and-wrong.html
Switching to Path::Tiny is also improving performance:
When using File::Slurp:
$ time ./rbm/rbm showconf --target alpha --target torbrowser-linux-x86_64 tor-browser var/build_id
82b8cb
real 0m28.543s
user 0m24.448s
sys 0m3.956s
When using Path::Tiny:
$ time ~/rbm/rbm showconf --target alpha --target torbrowser-linux-x86_64 tor-browser var/build_id
82b8cb
real 0m15.745s
user 0m13.940s
sys 0m1.940s
The path function in lib/RBM.pm is conflicting with the path constructor
from Path::Tiny, so we rename it to rbm_path.
|
| | |
| |
| |
| |
| |
| | |
The sha256_hex function gives an error if a string contains wide
characters. To avoid this we first encode the string to utf8 (which
transforms it to a sequence of octets), before passing it to sha256_hex.
|
| | | |
|
| |/
|
|
|
|
|
|
|
|
|
| |
When an input file is already present (downloaded during a previous
build), but is not matching the expected sha256sum, we download it
again.
To do that we rename the input_file_id_need_dl function to
input_file_need_dl, and make it work for all types of actions (instead
of only 'input_files_id' before). In input_file_need_dl we ignore an
the file if it is not matching the expected sha256sum.
|
| |
|
|
|
|
|
|
| |
We were looking at the $remote_tmp_src and $remote_tmp_dst variables to
decide if running remote_finish is needed. However, those variables are
not defined if there was an error in remote_start, and we should still
run remote_finish in that case. Instead we look at the remote_exec
option to decide if we need to run remote_finish.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
Sometimes stdout can include useful informations about the error so
include it in addition to stderr.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
Before updating local branches, we need to detach HEAD to be able to
update the current branch. However, we only need to do that if we are
on a branch, and when this branch exists.
This avoids an error when the repository we have cloned does not have a
master branch: in that case we are in a branch that does not exist,
which cause an error when running 'git checkout --detach'.
|
| |
|
|
|
|
|
|
| |
If an input_file contains a 'target' value we process it as a template
and modify it. However we should not do that as a project (and its
input files) can be used multiple times with different contexts in the
same build. Instead we should make a copy of the $input_file before we
modify it.
|
| | |
|
| |
|
|
|
|
| |
In the few places where we are using process_template directly, the
$options is ignored. We fix that by adding a process_template_opt
subroutine which applies the $options.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
dpkg -s not returning an error means that the package has a status, but
its status is not always installed, so checking the exit value is not
enough. We are now checking that the status is "install ok installed".
|
| |
|
|
|
| |
Add the ENV option, allowing to define some default environment
variables.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
With docker >= 1.10.0, the -f flag on 'docker tag' is deprecated:
https://docs.docker.com/engine/deprecated/#/f-flag-on-docker-tag
However we need it when using an older version of docker.
To add it only when needed, we parse the output from 'docker version'.
|
| |
|
|
|
| |
Redo 09ce7d45b0148173eb67369758902ceb8fd0b893 in a more simple and
correct way.
|
| |
|
|
| |
This reverts commit 09ce7d45b0148173eb67369758902ceb8fd0b893.
|
| | |
|
| |
|
|
| |
It now returns an array with templates processed.
|
| | |
|
| | |
|
| |
|
|
|
| |
When uploading a file in path A/B/C, directory A was not set to the
correct owner.
|
| | |
|