morgan pushed to branch maint-14.0 at The Tor Project / Applications / tor-browser-build

Commits:

8 changed files:

Changes:

  • projects/mar-tools/config
    1 1
     # vim: filetype=yaml sw=2
    
    2 2
     #
    
    3 3
     # Used by tools/signing/machines-setup/upload-tbb-to-signing-machine
    
    4
    -# to fetch mar-tools for signing machine setup
    
    4
    +# to fetch mar-tools for signing machine setup, and by tools/setup-martools
    
    5
    +# to allow running `mar` as `tools/mar`.
    
    5 6
     #
    
    6
    -version: 12.0.4
    
    7
    -filename: 'mar-tools-linux64.zip'
    
    7
    +version: 14.0.4
    
    8
    +filename: 'mar-tools.zip'
    
    8 9
     container:
    
    9 10
       use_container: 0
    
    10 11
     gpg_keyring: torbrowser.gpg
    
    11 12
     tag_gpg_id: 1
    
    12 13
     input_files:
    
    13
    -  - URL: 'https://archive.torproject.org/tor-package-archive/torbrowser/[% c("version") %]/mar-tools-linux64.zip'
    
    14
    -    sha256sum: 726ec4192de61a9342b3262c7ac722cbd59eaba07879be9589c65599d2d69584
    
    14
    +  - URL: 'https://archive.torproject.org/tor-package-archive/torbrowser/[% c("version") %]/mar-tools-linux-x86_64-[% c("version") %].zip'
    
    15
    +    sha256sum: 414254d2471c7f0bcc25de955dbbe716c416d0b80e7688dc2dd48ac6e7fdbf0a
    
    15 16
     
    
    16 17
     steps:
    
    17 18
       fetch_martools:
    
    18 19
         fetch_martools: |
    
    19 20
           #!/bin/bash
    
    20
    -      echo ok
    21
    +      mkdir -p '[% dest_dir %]'
    
    22
    +      cp -f mar-tools-linux-x86_64-[% c("version") %].zip '[% dest_dir %]/mar-tools.zip'

  • tools/dmg2mar
    ... ... @@ -34,6 +34,7 @@ use File::Slurp;
    34 34
     use File::Find;
    
    35 35
     use Parallel::ForkManager;
    
    36 36
     use Cwd;
    
    37
    +use FindBin;
    
    37 38
     
    
    38 39
     # If the application is not TorBrowser (for instance, TorMessenger)
    
    39 40
     # set the application name in the TOR_APPNAME_BUNDLE_OSX,
    
    ... ... @@ -70,25 +71,18 @@ sub osname {
    70 71
         exit_error 'Unknown OS';
    
    71 72
     }
    
    72 73
     
    
    73
    -my $martools_tmpdir;
    
    74
    -sub extract_martools {
    
    75
    -    my $osname = osname;
    
    76
    -    my $marzip = glob(getcwd . "/mar-tools-$osname-*.zip");
    
    77
    -    exit_error "Could not find mar-tools zip" unless $marzip;
    
    78
    -    $martools_tmpdir = File::Temp->newdir();
    
    79
    -    my $old_cwd = getcwd;
    
    80
    -    chdir $martools_tmpdir;
    
    81
    -    my (undef, undef, $success) = capture_exec('unzip', $marzip);
    
    82
    -    chdir $old_cwd;
    
    83
    -    exit_error "Error extracting $marzip" unless $success;
    
    84
    -    $ENV{PATH} = "$martools_tmpdir/mar-tools:$ENV{PATH}";
    
    85
    -    if ($ENV{LD_LIBRARY_PATH}) {
    
    86
    -        $ENV{LD_LIBRARY_PATH} .= ":$martools_tmpdir/mar-tools";
    
    87
    -    } else {
    
    88
    -        $ENV{LD_LIBRARY_PATH} = "$martools_tmpdir/mar-tools";
    
    89
    -    }
    
    90
    -    $ENV{MAR} = "$martools_tmpdir/mar-tools/mar";
    
    91
    -    $ENV{MSBDIFF} = "$martools_tmpdir/mar-tools/mbsdiff";
    
    74
    +sub setup_martools {
    
    75
    +  my ($out, $err, $exit) = capture {
    
    76
    +    system("$FindBin::Bin/setup-martools");
    
    77
    +  };
    
    78
    +  exit_error "Error setting up mar-tools: $err" if $exit;
    
    79
    +  my $martoolsdir = "$FindBin::Bin/local/mar-tools";
    
    80
    +  if ($ENV{LD_LIBRARY_PATH}) {
    
    81
    +    $ENV{LD_LIBRARY_PATH} = "$ENV{LD_LIBRARY_PATH}:$martoolsdir";
    
    82
    +  } else {
    
    83
    +    $ENV{LD_LIBRARY_PATH} = "$martoolsdir/mar-tools";
    
    84
    +  }
    
    85
    +  $ENV{PATH} = "$martoolsdir:$ENV{PATH}";
    
    92 86
     }
    
    93 87
     
    
    94 88
     sub get_nbprocs {
    
    ... ... @@ -192,6 +186,6 @@ $ENV{LC_ALL} = 'C';
    192 186
     exit_error "Please specify the mar channel id" unless @ARGV == 1;
    
    193 187
     my $mar_channel_id = $ARGV[0];
    
    194 188
     
    
    195
    -extract_martools;
    
    189
    +setup_martools;
    
    196 190
     convert_files $mar_channel_id;
    
    197 191
     remove_incremental_mars;

  • tools/mar
    1
    +#!/bin/bash
    
    2
    +set -e
    
    3
    +
    
    4
    +script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
    
    5
    +cmdname=$(basename -- "${BASH_SOURCE[0]}")
    
    6
    +setupmt=$("$script_dir/setup-martools")
    
    7
    +eval "$setupmt"
    
    8
    +exec "$MARTOOLSDIR/$cmdname" "$@"

  • tools/setup-martools
    1
    +#!/bin/bash
    
    2
    +set -e
    
    3
    +
    
    4
    +script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
    
    5
    +
    
    6
    +localdir="$script_dir/local"
    
    7
    +test $# -eq 1 && localdir="$1"
    
    8
    +
    
    9
    +cd "$script_dir/.."
    
    10
    +
    
    11
    +function download_extract_martools {
    
    12
    +  make submodule-update > /dev/null
    
    13
    +  martools_version=$(./rbm/rbm showconf --step fetch_martools mar-tools version)
    
    14
    +  if test -h "$localdir/mar-tools"; then
    
    15
    +    test "$(readlink $localdir/mar-tools)" = "mar-tools-$martools_version" && return 0
    
    16
    +    rm -f "$localdir/mar-tools"
    
    17
    +  fi
    
    18
    +  if test -d "$localdir/mar-tools"; then
    
    19
    +    echo "Error: $localdir/mar-tools already exists and is not a symlink"
    
    20
    +    exit 1
    
    21
    +  fi
    
    22
    +  echo "Setting up mar-tools"
    
    23
    +  mkdir -p "$localdir"
    
    24
    +  cd "$localdir"
    
    25
    +  if ! test -d "mar-tools-$martools_version"; then
    
    26
    +    cd "$script_dir/.."
    
    27
    +    ./rbm/rbm build --step fetch_martools mar-tools
    
    28
    +    martools_zip="$(pwd)/out/mar-tools/mar-tools.zip"
    
    29
    +    cd "$localdir"
    
    30
    +    test -f "$martools_zip"
    
    31
    +    unzip -jd "mar-tools-$martools_version" "$martools_zip"
    
    32
    +  fi
    
    33
    +  ln -sf "mar-tools-$martools_version" mar-tools
    
    34
    +  echo "mar-tools have been set up in $localdir/mar-tools"
    
    35
    +}
    
    36
    +
    
    37
    +function print_martools_vars {
    
    38
    +  mardir="$localdir/mar-tools"
    
    39
    +  if test -z "$LD_LIBRARY_PATH"; then
    
    40
    +    echo "export LD_LIBRARY_PATH=$mardir"
    
    41
    +  else
    
    42
    +    echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$mardir"
    
    43
    +  fi
    
    44
    +  echo "export MARTOOLSDIR=$mardir"
    
    45
    +  echo "export MAR=$mardir/mar"
    
    46
    +}
    
    47
    +
    
    48
    +download_extract_martools >&2
    
    49
    +print_martools_vars

  • tools/signing/machines-setup/setup-signing-machine
    ... ... @@ -140,7 +140,7 @@ fi
    140 140
     # install mar-tools
    
    141 141
     if ! test -d /home/signing-mar/mar-tools; then
    
    142 142
       tmpdir=$(mktemp -d)
    
    143
    -  unzip -d "$tmpdir" /signing/mar-tools-linux64.zip
    
    143
    +  unzip -d "$tmpdir" /signing/mar-tools.zip
    
    144 144
       chown -R signing-mar:signing-mar "$tmpdir/mar-tools"
    
    145 145
       chmod go+rX "$tmpdir/mar-tools"/*
    
    146 146
       mv "$tmpdir/mar-tools" /home/signing-mar/mar-tools
    

  • tools/signing/machines-setup/upload-tbb-to-signing-machine
    ... ... @@ -25,7 +25,7 @@ git archive --prefix=rbm/ --output="$tmpdir/rbm.tar" HEAD .
    25 25
     echo "Created rbm.tar"
    
    26 26
     cd ..
    
    27 27
     
    
    28
    -martools_filename=mar-tools-linux64.zip
    
    28
    +martools_filename=mar-tools.zip
    
    29 29
     if ! test -f "./out/mar-tools/$martools_filename"; then
    
    30 30
       ./rbm/rbm build --step fetch_martools mar-tools
    
    31 31
       echo "Downloaded $martools_filename"
    

  • tools/signmar
    1
    +mar
    \ No newline at end of file

  • tools/update-responses/update_responses
    ... ... @@ -33,8 +33,6 @@ my %htdocsfiles;
    33 33
     my $releases_dir = $config->{releases_dir};
    
    34 34
     $releases_dir = "$FindBin::Bin/$releases_dir" unless $releases_dir =~ m/^\//;
    
    35 35
     my @check_errors;
    
    36
    -my $initPATH = $ENV{PATH};
    
    37
    -my $initLD_LIBRARY_PATH = $ENV{LD_LIBRARY_PATH};
    
    38 36
     
    
    39 37
     sub exit_error {
    
    40 38
         print STDERR "Error: ", $_[0], "\n";
    
    ... ... @@ -67,6 +65,20 @@ sub get_nbprocs {
    67 65
         return 4;
    
    68 66
     }
    
    69 67
     
    
    68
    +sub setup_martools {
    
    69
    +  my ($out, $err, $exit) = capture {
    
    70
    +    system("$FindBin::Bin/../setup-martools");
    
    71
    +  };
    
    72
    +  exit_error "Error setting up mar-tools: $err" if $exit;
    
    73
    +  my $martoolsdir = "$FindBin::Bin/../local/mar-tools";
    
    74
    +  if ($ENV{LD_LIBRARY_PATH}) {
    
    75
    +    $ENV{LD_LIBRARY_PATH} = "$ENV{LD_LIBRARY_PATH}:$martoolsdir";
    
    76
    +  } else {
    
    77
    +    $ENV{LD_LIBRARY_PATH} = "$martoolsdir/mar-tools";
    
    78
    +  }
    
    79
    +  $ENV{PATH} = "$martoolsdir:$ENV{PATH}";
    
    80
    +}
    
    81
    +
    
    70 82
     sub write_htdocs {
    
    71 83
         my ($channel, $file, $content) = @_;
    
    72 84
         mkdir $htdocsdir unless -d $htdocsdir;
    
    ... ... @@ -318,7 +330,7 @@ sub version_dir {
    318 330
     sub get_buildinfos {
    
    319 331
         my ($config, $version) = @_;
    
    320 332
         return if exists $config->{versions}{$version}{buildID};
    
    321
    -    extract_martools($config, $version);
    
    333
    +    setup_martools;
    
    322 334
         my $files = $config->{versions}{$version}{files};
    
    323 335
         foreach my $os (keys %$files) {
    
    324 336
             foreach my $lang (keys %{$files->{$os}}) {
    
    ... ... @@ -498,40 +510,6 @@ sub write_downloads_json {
    498 510
         }
    
    499 511
     }
    
    500 512
     
    
    501
    -sub marzip_path {
    
    502
    -    my ($config, $version) = @_;
    
    503
    -    for my $osname (qw/linux-x86_64 linux-i686 macos-x86_64 windows-x86_64 windows-i686/) {
    
    504
    -        my $marzip = glob(version_dir($config, $version) . "/mar-tools-$osname-*.zip");
    
    505
    -        if ($marzip && -f $marzip) {
    
    506
    -          return $marzip;
    
    507
    -        }
    
    508
    -    }
    
    509
    -    exit_error 'Could not find mar-tools';
    
    510
    -}
    
    511
    -
    
    512
    -my $martools_tmpdir;
    
    513
    -my $extracted_martools;
    
    514
    -sub extract_martools {
    
    515
    -    my ($config, $version) = @_;
    
    516
    -    return if $extracted_martools;
    
    517
    -    my $marzip = marzip_path($config, $version);
    
    518
    -    $martools_tmpdir = get_tmpdir($config);
    
    519
    -    my $old_cwd = getcwd;
    
    520
    -    chdir $martools_tmpdir;
    
    521
    -    my (undef, undef, $exit) = capture {
    
    522
    -      system('unzip', $marzip);
    
    523
    -    };
    
    524
    -    chdir $old_cwd;
    
    525
    -    exit_error "Error extracting $marzip" if $exit;
    
    526
    -    $ENV{PATH} = "$martools_tmpdir/mar-tools:$initPATH";
    
    527
    -    if ($initLD_LIBRARY_PATH) {
    
    528
    -        $ENV{LD_LIBRARY_PATH} = "$initLD_LIBRARY_PATH:$martools_tmpdir/mar-tools";
    
    529
    -    } else {
    
    530
    -        $ENV{LD_LIBRARY_PATH} = "$martools_tmpdir/mar-tools";
    
    531
    -    }
    
    532
    -    $extracted_martools = 1;
    
    533
    -}
    
    534
    -
    
    535 513
     sub log_step {
    
    536 514
         my ($url, $step, $status, $details) = @_;
    
    537 515
         state $u;
    
    ... ... @@ -701,9 +679,9 @@ my %actions = (
    701 679
             my $channel = $ARGV[0];
    
    702 680
             exit_error "Unknown channel" unless $config->{channels}{$channel};
    
    703 681
             my $versions = as_array($config->{channels}{$channel});
    
    682
    +        setup_martools;
    
    704 683
             foreach my $version (@$versions) {
    
    705 684
                 next unless $config->{versions}{$version}{incremental_from};
    
    706
    -            extract_martools($config, $version);
    
    707 685
                 get_version_files($config, $version);
    
    708 686
                 create_incremental_mars_for_version($config, $version, $channel);
    
    709 687
             }