diff --git a/.firefox.metadata b/.firefox.metadata
index 9d09d7b..8f79761 100644
--- a/.firefox.metadata
+++ b/.firefox.metadata
@@ -1,5 +1,5 @@
 c822547dbc12e2baebdfdfb38b665e23f0c2513a SOURCES/cbindgen-vendor.tar.xz
-a42cb494b90ea92c186e1912c8c5f64bad365633 SOURCES/firefox-91.8.0esr.processed-source.tar.xz
-0ec5e6f571ac5aa2ac4cefc5a18ddecf01395dde SOURCES/firefox-langpacks-91.8.0esr-20220405.tar.xz
+39f2ee46c5e34141352021b76f4f41f75d6ad6b7 SOURCES/firefox-91.12.0esr.processed-source.tar.xz
+7f84818bb27b90dce6b858f2acbf64c4e35e29f3 SOURCES/firefox-langpacks-91.12.0esr-20220721.tar.xz
 b5fd1332d8e0d37339ae170c7bebcb63a40b22e0 SOURCES/nspr-4.32.0-1.el8_1.src.rpm
 8fff814901e03c2518ede2f8992d898f5ba61ed9 SOURCES/nss-3.67.0-7.el8_1.src.rpm
diff --git a/.gitignore b/.gitignore
index 6af5206..5e1f63f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
 SOURCES/cbindgen-vendor.tar.xz
-SOURCES/firefox-91.8.0esr.processed-source.tar.xz
-SOURCES/firefox-langpacks-91.8.0esr-20220405.tar.xz
+SOURCES/firefox-91.12.0esr.processed-source.tar.xz
+SOURCES/firefox-langpacks-91.12.0esr-20220721.tar.xz
 SOURCES/nspr-4.32.0-1.el8_1.src.rpm
 SOURCES/nss-3.67.0-7.el8_1.src.rpm
diff --git a/README.debrand b/README.debrand
deleted file mode 100644
index 01c46d2..0000000
--- a/README.debrand
+++ /dev/null
@@ -1,2 +0,0 @@
-Warning: This package was configured for automatic debranding, but the changes
-failed to apply.
diff --git a/SOURCES/D110204-fscreen.diff b/SOURCES/D110204-fscreen.diff
index 99eeb3b..ce4c908 100644
--- a/SOURCES/D110204-fscreen.diff
+++ b/SOURCES/D110204-fscreen.diff
@@ -1,6 +1,5 @@
-diff -up firefox-91.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-91.0/widget/gtk/nsWindow.cpp
---- firefox-91.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff	2021-07-27 23:31:38.000000000 +0200
-+++ firefox-91.0/widget/gtk/nsWindow.cpp	2021-07-30 15:47:22.031795569 +0200
+--- firefox-91.11.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff	2022-06-20 21:18:51.000000000 +0200
++++ firefox-91.11.0/widget/gtk/nsWindow.cpp	2022-06-21 12:21:44.892706641 +0200
 @@ -91,6 +91,7 @@
  #include "SystemTimeConverter.h"
  #include "WidgetUtilsGtk.h"
@@ -17,7 +16,7 @@ diff -up firefox-91.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-91.0/
        mAspectRatio(0.0f),
        mAspectRatioSaved(0.0f),
        mLastScrollEventTime(GDK_CURRENT_TIME),
-@@ -4626,6 +4628,19 @@ void nsWindow::OnWindowStateEvent(GtkWid
+@@ -4618,6 +4620,19 @@ void nsWindow::OnWindowStateEvent(GtkWid
        ClearTransparencyBitmap();
      }
    }
@@ -37,7 +36,7 @@ diff -up firefox-91.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-91.0/
  }
  
  void nsWindow::OnDPIChanged() {
-@@ -6880,6 +6895,19 @@ nsresult nsWindow::MakeFullScreen(bool a
+@@ -6860,6 +6875,19 @@ nsresult nsWindow::MakeFullScreen(bool a
        }
      }
  
@@ -57,14 +56,13 @@ diff -up firefox-91.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-91.0/
      gtk_window_fullscreen(GTK_WINDOW(mShell));
    } else {
      mSizeMode = mLastSizeMode;
-diff -up firefox-91.0/widget/gtk/nsWindow.h.D110204-fscreen.diff firefox-91.0/widget/gtk/nsWindow.h
---- firefox-91.0/widget/gtk/nsWindow.h.D110204-fscreen.diff	2021-07-27 23:31:38.000000000 +0200
-+++ firefox-91.0/widget/gtk/nsWindow.h	2021-07-29 18:35:41.000639386 +0200
-@@ -763,6 +763,7 @@ class nsWindow final : public nsBaseWidg
-    * move-to-rect callback we store it to mNewSizeAfterMoveToRect.
+--- firefox-91.11.0/widget/gtk/nsWindow.h.D110204-fscreen.diff	2022-06-21 12:21:44.894706636 +0200
++++ firefox-91.11.0/widget/gtk/nsWindow.h	2022-06-21 12:25:20.985209461 +0200
+@@ -767,6 +767,7 @@ class nsWindow final : public nsBaseWidg
+    * move-to-rect callback we set mResizedAfterMoveToRect.
     */
    bool mWaitingForMoveToRectCallback;
 +  bool mPendingFullscreen;
-   LayoutDeviceIntRect mNewSizeAfterMoveToRect;
+   bool mResizedAfterMoveToRect;
  
    /**
diff --git a/SOURCES/mozilla-s390x-skia-gradient.patch b/SOURCES/mozilla-s390x-skia-gradient.patch
deleted file mode 100644
index 8c0e3bd..0000000
--- a/SOURCES/mozilla-s390x-skia-gradient.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-# HG changeset patch
-# Parent  acf59ea86dd1d878b43920832093f082dcfc61c0
-
-diff -r acf59ea86dd1 gfx/skia/skia/src/shaders/gradients/Sk4fLinearGradient.cpp
---- a/gfx/skia/skia/src/shaders/gradients/Sk4fLinearGradient.cpp	Mon Mar 09 08:26:10 2020 +0100
-+++ b/gfx/skia/skia/src/shaders/gradients/Sk4fLinearGradient.cpp	Fri Mar 27 13:30:28 2020 +0100
-@@ -7,7 +7,7 @@
- 
- #include "include/core/SkPaint.h"
- #include "src/shaders/gradients/Sk4fLinearGradient.h"
--
-+#include "src/core/SkEndian.h"
- #include <cmath>
- #include <utility>
- 
-@@ -28,6 +28,9 @@
- 
-     while (n >= 4) {
-         DstTraits<premul>::store4x(c0, c1, c2, c3, dst, bias0, bias1);
-+#ifdef SK_CPU_BENDIAN
-+        SkEndianSwap32s(dst, 4);
-+#endif
-         dst += 4;
- 
-         c0 = c0 + dc4;
-@@ -37,12 +40,23 @@
-         n -= 4;
-     }
-     if (n & 2) {
--        DstTraits<premul>::store(c0, dst++, bias0);
--        DstTraits<premul>::store(c1, dst++, bias1);
-+        DstTraits<premul>::store(c0, dst, bias0);
-+#ifdef SK_CPU_BENDIAN
-+        *dst = SkEndianSwap32(*dst);
-+#endif
-+        ++dst;
-+        DstTraits<premul>::store(c1, dst, bias1);
-+#ifdef SK_CPU_BENDIAN
-+        *dst = SkEndianSwap32(*dst);
-+#endif
-+        ++dst;
-         c0 = c0 + dc2;
-     }
-     if (n & 1) {
-         DstTraits<premul>::store(c0, dst, bias0);
-+#ifdef SK_CPU_BENDIAN
-+        *dst = SkEndianSwap32(*dst);
-+#endif
-     }
- }
- 
-
diff --git a/SPECS/firefox.spec b/SPECS/firefox.spec
index e2c8bba..651a837 100644
--- a/SPECS/firefox.spec
+++ b/SPECS/firefox.spec
@@ -18,7 +18,7 @@ function dist_to_rhel_minor(str, start)
   end
   match = string.match(str, ".el8")
   if match then
-     return 6
+     return 7
   end
   return -1
 end}
@@ -126,10 +126,17 @@ end}
 %global official_branding       1
 %global build_langpacks         1
 
+# Workaround the dreaded "upstream source file changed content" rpmdiff failure that only secalert can waive.
+# If set to .b2 or .b3 ... the processed source file needs to be renamed before upload, e.g.
+# firefox-91.9.0esr.b2.processed-source.tar.xz
+# With does_not_exist it's empty and source file name as is.
+#global buildnum %{?does_not_exist}
+%global buildnum %{?does_not_exist}
+
 Summary:        Mozilla Firefox Web browser
 Name:           firefox
-Version:        91.8.0
-Release:        1%{?dist}
+Version:        91.12.0
+Release:        2%{?dist}
 URL:            https://www.mozilla.org/firefox/
 License:        MPLv1.1 or GPLv2+ or LGPLv2+
 %if 0%{?rhel} == 9
@@ -151,9 +158,9 @@ ExcludeArch:    aarch64 s390 ppc
 # The official tarball has to be always processed by the process-official-tarball
 # script.
 # Link to official tarball: https://hg.mozilla.org/releases/mozilla-release/archive/firefox-%%{version}%%{?pre_version}.source.tar.xz
-Source0:        firefox-%{version}%{?pre_version}.processed-source.tar.xz
+Source0:        firefox-%{version}%{?pre_version}%{?buildnum}.processed-source.tar.xz
 %if %{build_langpacks}
-Source1:        firefox-langpacks-%{version}%{?pre_version}-20220405.tar.xz
+Source1:        firefox-langpacks-%{version}%{?pre_version}-20220721.tar.xz
 
 %endif
 Source2:        cbindgen-vendor.tar.xz
@@ -203,7 +210,7 @@ Patch510:        mozilla-bmo1554971.patch
 Patch511:        mozilla-bmo1602730.patch
 Patch512:        mozilla-bmo849632.patch
 Patch513:        mozilla-bmo998749.patch
-Patch514:        mozilla-s390x-skia-gradient.patch
+#Patch514:        mozilla-s390x-skia-gradient.patch
 Patch515:        mozilla-bmo1626236.patch
 Patch518:        D110204-fscreen.diff
 Patch519:        expat-CVE-2022-25235.patch
@@ -435,11 +442,7 @@ echo "use_rustts            %{?use_rustts}"
 %patch224 -p1 -b .1170092
 
 # the nss changed in 8.6 and later, so addons are working in older releases
-%if 0%{?rhel_minor_version} >= 6
-%patch225 -p1 -b .firefox-nss-addon-hack
-%endif
-
-%if 0%{?rhel} >= 9
+%if (0%{?rhel} == 8 && %{rhel_minor_version} >= 6) || 0%{?rhel} >= 9
 %patch225 -p1 -b .firefox-nss-addon-hack
 %endif
 
@@ -1268,8 +1271,23 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 #---------------------------------------------------------------------
 
 %changelog
-* Tue May 17 2022 CentOS Sources <bugs@centos.org> - 91.8.0-1.el9.centos
-- Apply debranding changes
+* Thu Jul 21 2022 Eike Rathke <erack@redhat.com> - 91.12.0-1
+- Update to 91.12.0 build1
+
+* Thu Jun 23 2022 Eike Rathke <erack@redhat.com> - 91.11.0-2
+- Update to 91.11.0 build2
+
+* Tue Jun 21 2022 Eike Rathke <erack@redhat.com> - 91.11.0-1
+- Update to 91.11.0 build1
+
+* Tue May 24 2022 Eike Rathke <erack@redhat.com> - 91.10.0-1
+- Update to 91.10.0 build1
+
+* Fri May 20 2022 Jan Horak <jhorak@redhat.com> - 91.9.1-1
+- Update to 91.9.1 build1
+
+* Tue Apr 26 2022 Eike Rathke <erack@redhat.com> - 91.9.0-1
+- Update to 91.9.0
 
 * Tue Apr 05 2022 Eike Rathke <erack@redhat.com> - 91.8.0-1
 - Update to 91.8.0