summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Bug 32272: Make sure we run remote_finish in case of errorbug_32272Nicolas Vigier2020-06-18
|
* Bug 33993: Check type of target, target_prepend, target_appendbug_33993_v2Nicolas Vigier2020-04-27
| | | | | Exit with an error message if target, target_prepend or target_append defined in input_files is not an array.
* Bug 33990: Initialize step in non-build commandsbug_33990Nicolas Vigier2020-04-24
| | | | | | When using the build command, step gets initialized to 'build'. However this was not done in some of the other non-build commands where the value of step was left to rbm_init.
* Bug 33283: Avoid computing sha256sum of files multiple timesbug_33283_v2Nicolas Vigier2020-02-12
| | | | | | | | | Instead, use the sha256file functon, which keeps the sha256sum of files to avoid computing it twice. The function can now take a HASH as a second argument, which can contain the key remove_cache indicating that the sha256sum of a file should be cleared: we use this when we find that a file has the wrong checksum and needs to be downloaded again.
* Bug 33283: Add caching for the exec template functionNicolas Vigier2020-02-12
|
* Bug 32527: Don't leave partially downloaded files in case of errorHEADmasterNicolas Vigier2019-11-30
|
* Bug 27265: fix output_dir value in sub-projectsbug_27265_v4Nicolas Vigier2019-11-27
| | | | | | | | | | | | | | | | | | | In the build_pkg call in input_files, we were setting the output_dir option to the project's directory, causing this directory to be incorrectly used as the output directory in some cases. But there is no need to set output_dir at this point, so we can just remove it. We also introduce a new feature allowing to set options for the current project but not for the child projects listed in `input_files`. By default the options are applied recursively to all projects. If some options are defined under `norec/` then they are only applied on the current project. We use this feature in two places where we were setting the output_dir, which removes the need to reset it in two places. At the same time, we fix the `urlget()` call in input_files which was incorrectly ignoring options.
* Bug 27265: add an error when we fail to download/create a fileNicolas Vigier2019-11-27
|
* Bug 31264: Remove timestamps from gzip headersJeremyRand2019-09-10
| | | | | | See https://wiki.debian.org/ReproducibleBuilds/TimestampsInGzipHeaders Thanks to boklm for helping with this patch.
* Bug 30480: Check that a signed tag object contains the expected tag namebug_30480_v3Nicolas Vigier2019-05-24
| | | | | | | | 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.
* Bug 30039: Add the target_append and target_prepend input_files optionsbug_30039Nicolas Vigier2019-04-04
|
* Bug 29572: Update the test before running git checkout --detachbug_29572Nicolas Vigier2019-03-11
| | | | | | | | | | | | | 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.
* Bug 29194: Set DEBIAN_FRONTEND=noninteractivebug_29194_v2Nicolas Vigier2019-01-29
| | | | | Set DEBIAN_FRONTEND=noninteractive when using apt-get in install_package. Also use the -q (quiet) argument.
* Bug 28466: fix issue with git submodule URL changesbug_28466Nicolas Vigier2018-11-26
| | | | | | | | | | | | 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.
* Bug 25746: fix git_submodule option with submodule in subdirectorybug_25746Nicolas Vigier2018-04-09
| | | | | | | | | 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.
* Bug 25435: use --no-auto-check-trustdb to avoid modifying gpg keyring filesNicolas Vigier2018-03-07
| | | | | | | | | 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`.
* Bug 25422: Give more details in "Cannot checkout" errorsbug_25422Nicolas Vigier2018-03-05
| | | | Print stderr from the git/hg command if the checkout failed.
* Merge remote-tracking branch 'boklm/bug_24931'Georg Koppen2018-02-02
|\
| * Bug 24931: fix the build_log_append optionbug_24931Nicolas Vigier2018-01-18
| | | | | | | | Fix a regression introduced by #24361.
* | Bug 25004: rename abbrev_lenght to abbrev_lengthNicolas Vigier2018-01-24
| |
* | Bug 24982: add script to help updating the websitebug_24982Nicolas Vigier2018-01-23
| | | | | | | | | | This script will create a tarball containing the website and print commands that can be used to upload it.
* | Bug 24982: update url in README.mdNicolas Vigier2018-01-23
|/
* fixup! Bug 24361: use Path::Tiny instead of File::SlurpGeorg Koppen2017-11-27
|
* Merge remote-tracking branch 'boklm/bug_24361'Georg Koppen2017-11-27
|\
| * Bug 24361: use Path::Tiny instead of File::Slurpbug_24361Nicolas Vigier2017-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * Bug 24361: fix handling of wide characters in sha256Nicolas Vigier2017-11-20
| | | | | | | | | | | | 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.
* | Bug 24180: Make 'rbm fetch' accept optionsNicolas Vigier2017-11-27
| |
* | Bug 23557: download again an input file not matching expected sha256sumNicolas Vigier2017-09-18
|/ | | | | | | | | | | 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.
* Bug 23513: run remote_finish when there was an error in remote_startNicolas Vigier2017-09-15
| | | | | | | | 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.
* Bug 23382: create tmp_dir if it does not existNicolas Vigier2017-09-07
|
* Add the build_log_append optionNicolas Vigier2017-08-11
|
* Add the rbm_tmp_dir optionNicolas Vigier2017-08-11
|
* Include stdout in remote_exec/remote_start error outputNicolas Vigier2017-08-08
| | | | | Sometimes stdout can include useful informations about the error so include it in addition to stderr.
* rbm-build: allow selecting the build script using the step optionNicolas Vigier2017-08-07
|
* Add a man page for rbm-buildNicolas Vigier2017-08-07
|
* Update some URLs in documentationNicolas Vigier2017-08-07
|
* Only run 'git checkout --detach' when necessaryNicolas Vigier2017-08-01
| | | | | | | | | | 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'.
* Avoid modifying $input_filesNicolas Vigier2017-04-27
| | | | | | | | 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.
* Remove useless commaNicolas Vigier2017-04-27
|
* Add process_template_opt subroutineNicolas Vigier2017-04-27
| | | | | | 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.
* Fix how we set origin_project in input_filesNicolas Vigier2017-04-27
|
* Give access to input files in remote_startNicolas Vigier2017-04-25
|
* Add the input_files_paths optionNicolas Vigier2017-03-15
|
* Fix install_package on DebianNicolas Vigier2017-03-06
| | | | | | 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 optionNicolas Vigier2017-03-01
| | | | | Add the ENV option, allowing to define some default environment variables.
* Suppress unneeded output in docker_remote_getNicolas Vigier2017-02-16
|
* Add the build_log optionNicolas Vigier2017-02-14
|
* Set timestamp on files in zip wrapperNicolas Vigier2017-02-14
|
* Add support for optional local configuration file rbm.local.confNicolas Vigier2017-02-14
|
* If the TMPDIR env var exists, use it instead of /tmpNicolas Vigier2017-02-12
|