This is an automated email from the git hooks/post-receive script.
gk pushed a commit to branch master in repository builders/rbm.
The following commit(s) were added to refs/heads/master by this push: new a91d465 Add default values for several tor-browser-build options a91d465 is described below
commit a91d4653cb5f66d86fd4d306c564161acfd6fa79 Author: Georg Koppen gk@torproject.org AuthorDate: Wed Jun 29 12:37:27 2022 +0000
Add default values for several tor-browser-build options
This includes:
compress_tar buildconf: num_procs (which is now just num_procs) ENV gpg_wrapper var: touch (which is now just touch)
Closes: #40040. --- doc/options_misc.asc | 12 +++++++++++- doc/options_tar.asc | 7 ++++++- doc/rbm_config.asc | 3 ++- lib/RBM.pm | 7 ++++++- lib/RBM/DefaultConfig.pm | 35 +++++++++++++++++++++++++++++++++-- 5 files changed, 58 insertions(+), 6 deletions(-)
diff --git a/doc/options_misc.asc b/doc/options_misc.asc index 5612df3..084348d 100644 --- a/doc/options_misc.asc +++ b/doc/options_misc.asc @@ -36,7 +36,7 @@ zip:: to create deterministic zip files. This option takes a +zip_src+ argument which is an array containing source files or directories, and a +zip_args+ arguments which is usually the destination zip - file, and optionaly other zip options. By default, GNU options + file, and optionally other zip options. By default, GNU options are used in find, but you can disable that with +gnu_utils+.
install_package:: @@ -44,3 +44,13 @@ install_package:: package. The packages to be installed should be set in option +pkg_name+. It will use apt-get on Debian/Ubuntu, yum on Fedora, zypper on openSUSE and urpmi on Mageia/Mandriva. + +num_procs:: + This option allows to specify the number of CPUs used to + parallelize the build. By default it is set to whatever value + +nrpoc+ is returning on the build machine. + +touch:: + This option can be used to set the mtime of files to +timestamp+. + It takes a +touch_args+ argument which is the intended file to + touch. diff --git a/doc/options_tar.asc b/doc/options_tar.asc index b615dec..c21317f 100644 --- a/doc/options_tar.asc +++ b/doc/options_tar.asc @@ -22,7 +22,8 @@ git_submodule::
compress_tar:: If set, the tarball created will be compressed in the select - format. Possible values: xz, gz, bz2. + format. Possible values: xz, gz, bz2. The default is gz but it + can stay empty to disable compression.
commit_gpg_id:: If set, the commit selected with +git_hash+ will have its @@ -64,3 +65,7 @@ gpg_bin::
gpg_args:: Optional gpg arguments. The default is empty. + +gpg_allow_expired_keys:: + Allowing expired keys to successfully verify e.g. signed git tags. + By default this is not allowed. diff --git a/doc/rbm_config.asc b/doc/rbm_config.asc index 46c1caf..dc045e2 100644 --- a/doc/rbm_config.asc +++ b/doc/rbm_config.asc @@ -191,7 +191,8 @@ ENV:: containing the environment variables that will be defined when rbm is starting. This is useful for defining variables that can affect how the templates are processed (for instance - the +TZ+ variable if dates are used). + the +TZ+ variable if dates are used). If this option is not + defined +TZ+ will be set to UTC and +LC_ALL+ to C.
include::options_tar.asc[]
diff --git a/lib/RBM.pm b/lib/RBM.pm index 88679f2..a92a04b 100644 --- a/lib/RBM.pm +++ b/lib/RBM.pm @@ -109,7 +109,12 @@ sub find_config_file { }
sub set_default_env { - %ENV = (%ENV, %{$config->{ENV}}) if ref $config->{ENV} eq 'HASH'; + if (ref $config->{ENV} eq 'HASH') { + %ENV = (%ENV, %{$config->{ENV}}); + } else { + $ENV{TZ} = 'UTC'; + $ENV{LC_ALL} = 'C'; + } }
sub rbm_path { diff --git a/lib/RBM/DefaultConfig.pm b/lib/RBM/DefaultConfig.pm index 109ca8d..a638fc0 100644 --- a/lib/RBM/DefaultConfig.pm +++ b/lib/RBM/DefaultConfig.pm @@ -102,6 +102,14 @@ our %default_config = ( sysconf_file => '/etc/rbm.conf', localconf_file=> 'rbm.local.conf', tmp_dir => '[% GET ENV.TMPDIR ? ENV.TMPDIR : "/tmp"; %]', + num_procs => sub { + return $ENV{RBM_NUM_PROCS} if $ENV{RBM_NUM_PROCS}; + CORE::state $nproc; + return $nproc if $nproc; + my ($stdout, $stderr, $success) = capture_exec('nproc'); + chomp $stdout; + return $nproc = $success ? $stdout : '4'; + }, rbm_tmp_dir => &rbm_tmp_dir, projects_dir => 'projects', modules_dir => 'modules', @@ -140,12 +148,14 @@ our %default_config = ( return '946684800'; }, debug => 0, + compress_tar => 'gz', version => "[%- exit_error('No version specified for ' _ project); -%]", #### #### #### gpg_bin => 'gpg', gpg_args => '', + gpg_allow_expired_keys => 0, gpg_keyring_path => sub { my ($project, $options) = @_; my $gpg_keyring = RBM::project_config($project, 'gpg_keyring', $options); @@ -159,8 +169,11 @@ our %default_config = ( } RBM::exit_error("keyring file $gpg_keyring is missing") }, + # Make it possible for gpg_wrapper to allow git tag signed using an expired + # key. + # https://bugs.torproject.org/19737 gpg_wrapper => <<GPGEND, -#!/bin/sh +#!/bin/bash export LC_ALL=C [% IF c('gpg_keyring_path'); @@ -168,7 +181,18 @@ export LC_ALL=C _ ' --no-default-keyring --no-auto-check-trustdb --trust-model always'; END; -%] -exec [% c('gpg_bin') %] [% c('gpg_args') %] --with-fingerprint [% gpg_kr %] "$@" +gpg_verify=0 +for opt in "$@" +do + test "$opt" = '--verify' && gpg_verify=1 +done +if [ $gpg_verify = 1 ] +then + [% c('gpg_bin') %] [% c('gpg_args') %] --with-fingerprint [% gpg_kr %] "$@"[% IF c('gpg_allow_expired_keys') %] | sed 's/^\[GNUPG:\] EXPKEYSIG /\[GNUPG:\] GOODSIG /'[% END %] + exit ${PIPESTATUS[0]} +else + exec [% c('gpg_bin') %] [% c('gpg_args') %] --with-fingerprint [% gpg_kr %] "$@" +fi GPGEND #### #### @@ -450,6 +474,13 @@ find [% src.join(' ') %] | sort | \ ZIP_END #### #### +#### + touch => <<TOUCH_END, +[% USE date -%] +touch -m -t [% date.format(c('timestamp'), format = '%Y%m%d%H%M') %] [% c('touch_args', { error_if_undef => 1 }) %] +TOUCH_END +#### +#### #### arch => &get_arch, input_files_by_name => sub { RBM::input_files('getfnames', @_); },
tor-commits@lists.torproject.org