[tbb-commits] [tor-browser-build/master] Bug 40334: Remove ff91esr target

sysrqb at torproject.org sysrqb at torproject.org
Wed Oct 6 22:22:28 UTC 2021


commit 7099a3ffaa985015b728a8ce17cb4c3244d0f7a8
Author: Nicolas Vigier <boklm at torproject.org>
Date:   Wed Sep 22 08:47:18 2021 +0200

    Bug 40334: Remove ff91esr target
    
    All platforms switched to >= 91, so we don't need the ff91esr target
    anymore.
    
    We still keep the options that allow us to easily change the versions
    of cbindgen, node and rust, as we will probably need to change them later
    for the android version.
---
 projects/cbindgen/config     |  16 +--
 projects/clang/build         |  16 +--
 projects/clang/config        |  11 +-
 projects/firefox/config      |   9 +-
 projects/node/config         |   8 +-
 projects/rust/43909.patch    | 252 -------------------------------------------
 projects/rust/build          |  26 ++---
 projects/rust/config         |  13 +--
 projects/tor-launcher/config |   2 +-
 rbm.conf                     |  17 ---
 10 files changed, 24 insertions(+), 346 deletions(-)

diff --git a/projects/cbindgen/config b/projects/cbindgen/config
index 6b7695e..bc52920 100644
--- a/projects/cbindgen/config
+++ b/projects/cbindgen/config
@@ -5,21 +5,13 @@ git_hash: '[% c("var/cbindgen_hash") %]'
 filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
 
 var:
-  cbindgen_version: 0.14.1
-  cbindgen_hash: 0761b9bbe48d01ded1bbec45bbeea5544b3b1002
-  cbindgen_vendor_hash: 1c500bc1b8de4eb400f90a528c4b5c6b2c7357e401a95c5354469a18fd365dbc
-  cbindgen_vendor_people_tpo_user: gk
+  cbindgen_version: 0.19.0
+  cbindgen_hash: d9e490ce8b836194595bd30611253a7028059da2
+  cbindgen_vendor_hash: 7d99c195b180e28ca7499d8744d020b864f952a5ba699716707aec9a06b4ee8b
+  cbindgen_vendor_people_tpo_user: boklm
   container:
     use_container: 1
 
-targets:
-  ff91esr:
-    var:
-      cbindgen_version: 0.19.0
-      cbindgen_hash: d9e490ce8b836194595bd30611253a7028059da2
-      cbindgen_vendor_hash: 7d99c195b180e28ca7499d8744d020b864f952a5ba699716707aec9a06b4ee8b
-      cbindgen_vendor_people_tpo_user: boklm
-
 input_files:
   - project: container-image
   - name: rust
diff --git a/projects/clang/build b/projects/clang/build
index 2f31dbf..33c89d5 100644
--- a/projects/clang/build
+++ b/projects/clang/build
@@ -23,21 +23,13 @@ cd clang-source
 export LLVM_HOME=$(pwd)
 mkdir build
 cd build
-# XXX: remove duplicated parts while fixing tor-browser-build#40048
-[% IF ! c("var/ff91esr") %]
-  cmake .. -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$distdir \
-                               -DCMAKE_BUILD_TYPE:STRING=Release \
-       [% IF c("var/rlbox") -%]-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly[% END %] \
-                               $LLVM_HOME
-[% ELSE %]
-  cmake ../llvm -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$distdir \
-                                    -DCMAKE_BUILD_TYPE=Release \
+cmake ../llvm -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$distdir \
+                                  -DCMAKE_BUILD_TYPE=Release \
             [% IF c("var/android") -%]
-                                    -DLLVM_TARGETS_TO_BUILD="X86;ARM;AArch64" \
+                                  -DLLVM_TARGETS_TO_BUILD="X86;ARM;AArch64" \
             [% END -%]
             [% IF c("var/rlbox") -%]-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly[% END %] \
-                                    -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;lld"
-[% END -%]
+                                  -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt;libcxx;libcxxabi;lld"
 make -j[% c("buildconf/num_procs") %]
 make install
 cd /var/tmp/dist
diff --git a/projects/clang/config b/projects/clang/config
index 855c200..11ea039 100644
--- a/projects/clang/config
+++ b/projects/clang/config
@@ -3,15 +3,10 @@ version: '[% c("var/llvm_version") %]'
 filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
 
 var:
-  llvm_version: '[% pc("clang-source", "version") %]'
+  llvm_version: '[% pc("llvm-project", "version") %]'
   container:
     use_container: 1
 
-targets:
-  ff91esr:
-    var:
-      llvm_version: '[% pc("llvm-project", "version") %]'
-
 input_files:
   - project: container-image
   - name: '[% c("var/compiler") %]'
@@ -22,12 +17,8 @@ input_files:
     enable: '[% c("var/linux") %] || [% c("var/android") %]'
   - project: cmake
     name: cmake
-  - project: clang-source
-    name: clang-source
-    enable: '[% ! c("var/ff91esr") %]'
   - project: llvm-project
     name: clang-source
-    enable: '[% c("var/ff91esr") %]'
   - project: python
     name: python
     enable: '[% c("var/linux") %]'
diff --git a/projects/firefox/config b/projects/firefox/config
index a1de42c..a51daee 100644
--- a/projects/firefox/config
+++ b/projects/firefox/config
@@ -8,8 +8,8 @@ git_submodule: 1
 gpg_keyring: torbutton.gpg
 
 var:
-  firefox_platform_version: 78.14.0
-  firefox_version: '[% c("var/firefox_platform_version") %]esr'
+  firefox_platform_version: 91.0.1
+  firefox_version: '[% c("var/firefox_platform_version") %]'
   torbrowser_branch: 11.0
   branding_directory: 'browser/branding/alpha'
   copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
@@ -49,11 +49,6 @@ steps:
         use_container: 0
 
 targets:
-  ff91esr:
-    var:
-      firefox_platform_version: 91.0.1
-      firefox_version: '[% c("var/firefox_platform_version") %]'
-
   release:
     var:
       branding_directory: 'browser/branding/official'
diff --git a/projects/node/config b/projects/node/config
index 2682fad..041e5d9 100644
--- a/projects/node/config
+++ b/projects/node/config
@@ -2,16 +2,12 @@
 version: '[% c("var/node_version") %]'
 filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
 var:
-  node_version: 10.21.0
-  node_hash: 26b01fa28338cacaa8a66d7963ab2514e81678c268ab52ec55dcf937aadcb73b
+  node_version: 10.23.1
+  node_hash: 88aa16f5af79615b183ca55ed81393763169e75d1fb96013cf1831895c6cedfa
   container:
     use_container: 1
 
 targets:
-  ff91esr:
-    var:
-      node_version: 10.23.1
-      node_hash: 88aa16f5af79615b183ca55ed81393763169e75d1fb96013cf1831895c6cedfa
   windows:
     var:
       arch_deps:
diff --git a/projects/rust/43909.patch b/projects/rust/43909.patch
deleted file mode 100644
index 78d2a75..0000000
--- a/projects/rust/43909.patch
+++ /dev/null
@@ -1,252 +0,0 @@
-From c95310f2d4fd3c88241c3b5d6dbf6251d34a3256 Mon Sep 17 00:00:00 2001
-From: Nikita Popov <nikita.ppv at gmail.com>
-Date: Sat, 16 Nov 2019 16:22:18 +0100
-Subject: [PATCH] Restructure caching
-
-Variant on D70103. The caching is switched to always use a BB to
-cache entry map, which then contains per-value caches. A separate
-set contains value handles with a deletion callback. This allows us
-to properly invalidate overdefined values.
-
-A possible alternative would be to always cache by value first and
-have per-BB maps/sets in the each cache entry. In that case we could
-use a ValueMap and would avoid the separate value handle set. I went
-with the BB indexing at the top level to make it easier to integrate
-D69914, but possibly that's not the right choice.
-
-Differential Revision: https://reviews.llvm.org/D70376
-
-diff --git a/llvm/lib/Analysis/LazyValueInfo.cpp b/llvm/lib/Analysis/LazyValueInfo.cpp
-index 110c085d3f3..aa6862cb588 100644
---- a/llvm/lib/Analysis/LazyValueInfo.cpp
-+++ b/llvm/lib/Analysis/LazyValueInfo.cpp
-@@ -133,12 +133,9 @@ namespace {
-   /// A callback value handle updates the cache when values are erased.
-   class LazyValueInfoCache;
-   struct LVIValueHandle final : public CallbackVH {
--    // Needs to access getValPtr(), which is protected.
--    friend struct DenseMapInfo<LVIValueHandle>;
--
-     LazyValueInfoCache *Parent;
- 
--    LVIValueHandle(Value *V, LazyValueInfoCache *P)
-+    LVIValueHandle(Value *V, LazyValueInfoCache *P = nullptr)
-       : CallbackVH(V), Parent(P) { }
- 
-     void deleted() override;
-@@ -152,89 +149,63 @@ namespace {
-   /// This is the cache kept by LazyValueInfo which
-   /// maintains information about queries across the clients' queries.
-   class LazyValueInfoCache {
--    /// This is all of the cached block information for exactly one Value*.
--    /// The entries are sorted by the BasicBlock* of the
--    /// entries, allowing us to do a lookup with a binary search.
--    /// Over-defined lattice values are recorded in OverDefinedCache to reduce
--    /// memory overhead.
--    struct ValueCacheEntryTy {
--      ValueCacheEntryTy(Value *V, LazyValueInfoCache *P) : Handle(V, P) {}
--      LVIValueHandle Handle;
--      SmallDenseMap<PoisoningVH<BasicBlock>, ValueLatticeElement, 4> BlockVals;
-+    /// This is all of the cached information for one basic block. It contains
-+    /// the per-value lattice elements, as well as a separate set for
-+    /// overdefined values to reduce memory usage.
-+    struct BlockCacheEntryTy {
-+      SmallDenseMap<AssertingVH<Value>, ValueLatticeElement, 4> LatticeElements;
-+      SmallDenseSet<AssertingVH<Value>, 4> OverDefined;
-     };
- 
--    /// This tracks, on a per-block basis, the set of values that are
--    /// over-defined at the end of that block.
--    typedef DenseMap<PoisoningVH<BasicBlock>, SmallPtrSet<Value *, 4>>
--        OverDefinedCacheTy;
--    /// Keep track of all blocks that we have ever seen, so we
--    /// don't spend time removing unused blocks from our caches.
--    DenseSet<PoisoningVH<BasicBlock> > SeenBlocks;
--
--    /// This is all of the cached information for all values,
--    /// mapped from Value* to key information.
--    DenseMap<Value *, std::unique_ptr<ValueCacheEntryTy>> ValueCache;
--    OverDefinedCacheTy OverDefinedCache;
--
-+    /// Cached information per basic block.
-+    DenseMap<PoisoningVH<BasicBlock>, BlockCacheEntryTy> BlockCache;
-+    /// Set of value handles used to erase values from the cache on deletion.
-+    DenseSet<LVIValueHandle, DenseMapInfo<Value *>> ValueHandles;
- 
-   public:
-     void insertResult(Value *Val, BasicBlock *BB,
-                       const ValueLatticeElement &Result) {
--      SeenBlocks.insert(BB);
--
-+      auto &CacheEntry = BlockCache.try_emplace(BB).first->second;
-       // Insert over-defined values into their own cache to reduce memory
-       // overhead.
-       if (Result.isOverdefined())
--        OverDefinedCache[BB].insert(Val);
--      else {
--        auto It = ValueCache.find_as(Val);
--        if (It == ValueCache.end()) {
--          ValueCache[Val] = make_unique<ValueCacheEntryTy>(Val, this);
--          It = ValueCache.find_as(Val);
--          assert(It != ValueCache.end() && "Val was just added to the map!");
--        }
--        It->second->BlockVals[BB] = Result;
--      }
--    }
--
--    bool isOverdefined(Value *V, BasicBlock *BB) const {
--      auto ODI = OverDefinedCache.find(BB);
--
--      if (ODI == OverDefinedCache.end())
--        return false;
-+        CacheEntry.OverDefined.insert(Val);
-+      else
-+        CacheEntry.LatticeElements.insert({ Val, Result });
- 
--      return ODI->second.count(V);
-+      auto HandleIt = ValueHandles.find_as(Val);
-+      if (HandleIt == ValueHandles.end())
-+        ValueHandles.insert({ Val, this });
-     }
- 
-     bool hasCachedValueInfo(Value *V, BasicBlock *BB) const {
--      if (isOverdefined(V, BB))
--        return true;
--
--      auto I = ValueCache.find_as(V);
--      if (I == ValueCache.end())
-+      auto It = BlockCache.find(BB);
-+      if (It == BlockCache.end())
-         return false;
- 
--      return I->second->BlockVals.count(BB);
-+      return It->second.OverDefined.count(V) ||
-+             It->second.LatticeElements.count(V);
-     }
- 
-     ValueLatticeElement getCachedValueInfo(Value *V, BasicBlock *BB) const {
--      if (isOverdefined(V, BB))
-+      auto It = BlockCache.find(BB);
-+      if (It == BlockCache.end())
-+        return ValueLatticeElement();
-+
-+      if (It->second.OverDefined.count(V))
-         return ValueLatticeElement::getOverdefined();
- 
--      auto I = ValueCache.find_as(V);
--      if (I == ValueCache.end())
-+      auto LatticeIt = It->second.LatticeElements.find(V);
-+      if (LatticeIt == It->second.LatticeElements.end())
-         return ValueLatticeElement();
--      auto BBI = I->second->BlockVals.find(BB);
--      if (BBI == I->second->BlockVals.end())
--        return ValueLatticeElement();
--      return BBI->second;
-+
-+      return LatticeIt->second;
-     }
- 
-     /// clear - Empty the cache.
-     void clear() {
--      SeenBlocks.clear();
--      ValueCache.clear();
--      OverDefinedCache.clear();
-+      BlockCache.clear();
-+      ValueHandles.clear();
-     }
- 
-     /// Inform the cache that a given value has been deleted.
-@@ -248,23 +219,18 @@ namespace {
-     /// OldSucc might have (unless also overdefined in NewSucc).  This just
-     /// flushes elements from the cache and does not add any.
-     void threadEdgeImpl(BasicBlock *OldSucc,BasicBlock *NewSucc);
--
--    friend struct LVIValueHandle;
-   };
- }
- 
- void LazyValueInfoCache::eraseValue(Value *V) {
--  for (auto I = OverDefinedCache.begin(), E = OverDefinedCache.end(); I != E;) {
--    // Copy and increment the iterator immediately so we can erase behind
--    // ourselves.
--    auto Iter = I++;
--    SmallPtrSetImpl<Value *> &ValueSet = Iter->second;
--    ValueSet.erase(V);
--    if (ValueSet.empty())
--      OverDefinedCache.erase(Iter);
-+  for (auto &Pair : BlockCache) {
-+    Pair.second.LatticeElements.erase(V);
-+    Pair.second.OverDefined.erase(V);
-   }
- 
--  ValueCache.erase(V);
-+  auto HandleIt = ValueHandles.find_as(V);
-+  if (HandleIt != ValueHandles.end())
-+    ValueHandles.erase(HandleIt);
- }
- 
- void LVIValueHandle::deleted() {
-@@ -274,18 +240,7 @@ void LVIValueHandle::deleted() {
- }
- 
- void LazyValueInfoCache::eraseBlock(BasicBlock *BB) {
--  // Shortcut if we have never seen this block.
--  DenseSet<PoisoningVH<BasicBlock> >::iterator I = SeenBlocks.find(BB);
--  if (I == SeenBlocks.end())
--    return;
--  SeenBlocks.erase(I);
--
--  auto ODI = OverDefinedCache.find(BB);
--  if (ODI != OverDefinedCache.end())
--    OverDefinedCache.erase(ODI);
--
--  for (auto &I : ValueCache)
--    I.second->BlockVals.erase(BB);
-+  BlockCache.erase(BB);
- }
- 
- void LazyValueInfoCache::threadEdgeImpl(BasicBlock *OldSucc,
-@@ -303,10 +258,11 @@ void LazyValueInfoCache::threadEdgeImpl(BasicBlock *OldSucc,
-   std::vector<BasicBlock*> worklist;
-   worklist.push_back(OldSucc);
- 
--  auto I = OverDefinedCache.find(OldSucc);
--  if (I == OverDefinedCache.end())
-+  auto I = BlockCache.find(OldSucc);
-+  if (I == BlockCache.end() || I->second.OverDefined.empty())
-     return; // Nothing to process here.
--  SmallVector<Value *, 4> ValsToClear(I->second.begin(), I->second.end());
-+  SmallVector<Value *, 4> ValsToClear(I->second.OverDefined.begin(),
-+                                      I->second.OverDefined.end());
- 
-   // Use a worklist to perform a depth-first search of OldSucc's successors.
-   // NOTE: We do not need a visited list since any blocks we have already
-@@ -320,10 +276,10 @@ void LazyValueInfoCache::threadEdgeImpl(BasicBlock *OldSucc,
-     if (ToUpdate == NewSucc) continue;
- 
-     // If a value was marked overdefined in OldSucc, and is here too...
--    auto OI = OverDefinedCache.find(ToUpdate);
--    if (OI == OverDefinedCache.end())
-+    auto OI = BlockCache.find(ToUpdate);
-+    if (OI == BlockCache.end() || OI->second.OverDefined.empty())
-       continue;
--    SmallPtrSetImpl<Value *> &ValueSet = OI->second;
-+    auto &ValueSet = OI->second.OverDefined;
- 
-     bool changed = false;
-     for (Value *V : ValsToClear) {
-@@ -333,11 +289,6 @@ void LazyValueInfoCache::threadEdgeImpl(BasicBlock *OldSucc,
-       // If we removed anything, then we potentially need to update
-       // blocks successors too.
-       changed = true;
--
--      if (ValueSet.empty()) {
--        OverDefinedCache.erase(OI);
--        break;
--      }
-     }
- 
-     if (!changed) continue;
--- 
-2.24.0
-
diff --git a/projects/rust/build b/projects/rust/build
index 213e1c1..e513f2d 100644
--- a/projects/rust/build
+++ b/projects/rust/build
@@ -4,10 +4,8 @@ distdir=/var/tmp/dist/[% project %]
 mkdir -p $distdir
 tar -C /var/tmp/dist -xf [% c('input_files_by_name/cmake') %]
 export PATH="/var/tmp/dist/cmake/bin:$PATH"
-[% IF c("var/ff91esr") %]
-  tar -C /var/tmp/dist -xf [% c('input_files_by_name/ninja') %]
-  export PATH=/var/tmp/dist/ninja:$PATH
-[% END %]
+tar -C /var/tmp/dist -xf [% c('input_files_by_name/ninja') %]
+export PATH=/var/tmp/dist/ninja:$PATH
 tar -C /var/tmp/dist -xf [% c('input_files_by_name/previous_rust') %]
 cd /var/tmp/dist/rust-[% c('var/previous_version') %]-x86_64-unknown-linux-gnu
 ./install.sh --prefix=$distdir-rust-old
@@ -43,20 +41,12 @@ mkdir /var/tmp/build
 tar -C /var/tmp/build -xf  [% c('input_files_by_name/rust') %]
 cd /var/tmp/build/rustc-[% c('version') %]-src
 
-[% IF ! c("var/ff91esr") %]
-  # LLVM has reproducibility issues when optimizing bitcode, which we need to
-  # patch. See: #32053 for more details.
-  cd src/llvm-project
-  patch -p1 < $rootdir/[% c('input_files_by_name/43909') %]
-  cd ../../
-[% ELSE -%]
-  # Patches for fixing:
-  #  https://github.com/rust-lang/rust/issues/86436
-  #  https://github.com/rust-lang/rust/pull/86568
-  #  https://github.com/rust-lang/rust/issues/86999
-  # This can be removed when updating to >= 1.54.0.
-  patch -p1 < $rootdir/fix-build-1.53.0.patch
-[% END %]
+# Patches for fixing:
+#  https://github.com/rust-lang/rust/issues/86436
+#  https://github.com/rust-lang/rust/pull/86568
+#  https://github.com/rust-lang/rust/issues/86999
+# This can be removed when updating to >= 1.54.0.
+patch -p1 < $rootdir/fix-build-1.53.0.patch
 
 mkdir build
 cd build
diff --git a/projects/rust/config b/projects/rust/config
index 2a6657f..56a0a88 100644
--- a/projects/rust/config
+++ b/projects/rust/config
@@ -3,16 +3,12 @@ filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
 version: '[% c("var/current_version") %]'
 
 var:
-  current_version: 1.43.0
-  previous_version: 1.42.0
+  current_version: 1.53.0
+  previous_version: 1.52.0
   container:
     use_container: 1
 
 targets:
-  ff91esr:
-    var:
-      current_version: 1.53.0
-      previous_version: 1.52.0
   android:
     var:
       arch_deps:
@@ -83,7 +79,6 @@ input_files:
     name: cmake
   - project: ninja
     name: ninja
-    enable: '[% c("var/ff91esr") %]'
   - project: '[% c("var/compiler") %]'
     name: '[% c("var/compiler") %]'
   - URL: 'https://static.rust-lang.org/dist/rustc-[% c("var/current_version") %]-src.tar.gz'
@@ -99,11 +94,7 @@ input_files:
   - project: python
     name: python
     enable: '[% c("var/linux") %]'
-  - filename: 43909.patch
-    name: 43909
-    enable: '[% ! c("var/ff91esr") %]'
 
     # Fix for https://github.com/rust-lang/rust/issues/86436
     # Taken from https://github.com/rust-lang/rust/pull/86568 (merged it 1.54.0)
   - filename: fix-build-1.53.0.patch
-    enable: '[% c("var/ff91esr") %]'
diff --git a/projects/tor-launcher/config b/projects/tor-launcher/config
index 2abdb1b..e349026 100644
--- a/projects/tor-launcher/config
+++ b/projects/tor-launcher/config
@@ -20,7 +20,7 @@ steps:
         use_container: 0
 
 targets:
-  ff91esr:
+  nightly:
     version: '[% c("abbrev") %]'
     git_hash: master
     tag_gpg_id: 0
diff --git a/rbm.conf b/rbm.conf
index be891d0..d7bbd5f 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -265,17 +265,9 @@ targets:
         - zip
         - unzip
 
-  # Temporary target for the switch to firefox91. We use it to switch each
-  # platform separately to firefox91, and we should remove it once all
-  # platforms have been moved to it.
-  ff91esr:
-    var:
-      ff91esr: 1
-
   torbrowser-android-armv7:
     - android-armv7
     - android
-    - ff91esr
   android-armv7:
     arch: armv7
     var:
@@ -287,7 +279,6 @@ targets:
   torbrowser-android-x86:
     - android-x86
     - android
-    - ff91esr
   android-x86:
     arch: x86
     var:
@@ -299,7 +290,6 @@ targets:
   torbrowser-android-x86_64:
     - android-x86_64
     - android
-    - ff91esr
   android-x86_64:
     arch: x86_64
     var:
@@ -311,7 +301,6 @@ targets:
   torbrowser-android-aarch64:
     - android-aarch64
     - android
-    - ff91esr
   android-aarch64:
     arch: aarch64
     var:
@@ -369,16 +358,13 @@ targets:
   torbrowser-linux-x86_64:
     - linux-x86_64
     - linux
-    - ff91esr
   torbrowser-linux-x86_64-asan:
     - linux-asan
     - linux-x86_64
     - linux
-    - ff91esr
   torbrowser-linux-i686:
     - linux-i686
     - linux
-    - ff91esr
   linux-x86_64:
     arch: x86_64
     var:
@@ -428,11 +414,9 @@ targets:
   torbrowser-windows-i686:
     - windows-i686
     - windows
-    - ff91esr
   torbrowser-windows-x86_64:
     - windows-x86_64
     - windows
-    - ff91esr
   windows-x86_64:
     arch: x86_64
     var:
@@ -476,7 +460,6 @@ targets:
 
   torbrowser-osx-x86_64:
     - osx-x86_64
-    - ff91esr
   osx-x86_64:
     arch: x86_64
     var:





More information about the tbb-commits mailing list