Added fix for mozbz#1725828

This commit is contained in:
Martin Stransky 2021-09-13 17:03:20 +02:00
parent 94eceee642
commit 375e665e34
2 changed files with 58 additions and 1 deletions

View File

@ -157,7 +157,7 @@ ExcludeArch: armv7hl
Summary: Mozilla Firefox Web browser
Name: firefox
Version: 92.0
Release: 2%{?pre_tag}%{?dist}
Release: 3%{?pre_tag}%{?dist}
URL: https://www.mozilla.org/firefox/
License: MPLv1.1 or GPLv2+ or LGPLv2+
Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz
@ -239,6 +239,7 @@ Patch415: mozilla-1670333.patch
Patch420: mochitest-wayland-workaround.patch
Patch422: mozilla-1728749.patch
Patch423: mozilla-1708709.patch
Patch424: mozilla-1725828.patch
# PGO/LTO patches
Patch600: pgo.patch
@ -481,6 +482,7 @@ This package contains results of tests executed during build.
%patch420 -p1 -b .mochitest-wayland-workaround
%patch422 -p1 -b .1728749
%patch423 -p1 -b .1708709
%patch424 -p1 -b .1725828
# PGO patches
%if %{build_with_pgo}
@ -1050,6 +1052,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#---------------------------------------------------------------------
%changelog
* Mon Sep 13 2021 Martin Stransky <stransky@redhat.com> - 92.0-3
- Added fix for mozbz#1725828
* Thu Sep 9 2021 Martin Stransky <stransky@redhat.com> - 92.0-2
- Disable test

52
mozilla-1725828.patch Normal file
View File

@ -0,0 +1,52 @@
diff --git a/dom/media/gmp/GMPChild.cpp b/dom/media/gmp/GMPChild.cpp
--- a/dom/media/gmp/GMPChild.cpp
+++ b/dom/media/gmp/GMPChild.cpp
@@ -232,8 +232,14 @@
}
#elif defined(XP_LINUX)
constexpr static const char* whitelist[] = {
+ // NSS libraries used by clearkey.
"libfreeblpriv3.so",
"libsoftokn3.so",
+ // glibc libraries merged into libc.so.6; see bug 1725828 and
+ // the corresponding code in GMPParent.cpp.
+ "libdl.so.2",
+ "libpthread.so.0",
+ "librt.so.1",
};
nsTArray<nsCString> libs;
@@ -256,7 +262,7 @@
}
// End bug 1698718 logging.
- MOZ_CRASH("Couldn't load lib needed by NSS");
+ MOZ_CRASH("Couldn't load lib needed by media plugin");
}
}
}
diff --git a/dom/media/gmp/GMPParent.cpp b/dom/media/gmp/GMPParent.cpp
--- a/dom/media/gmp/GMPParent.cpp
+++ b/dom/media/gmp/GMPParent.cpp
@@ -876,6 +876,20 @@
return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
}
+#ifdef XP_LINUX
+ // These glibc libraries were merged into libc.so.6 as of glibc
+ // 2.34; they now exist only as stub libraries for compatibility and
+ // newly linked code won't depend on them, so we need to ensure
+ // they're loaded for plugins that may have been linked against a
+ // different version of glibc. (See also bug 1725828.)
+ if (!mDisplayName.EqualsASCII("clearkey")) {
+ if (!mLibs.IsEmpty()) {
+ mLibs.AppendLiteral(", ");
+ }
+ mLibs.AppendLiteral("libdl.so.2, libpthread.so.0, librt.so.1");
+ }
+#endif
+
nsCString codecsString = NS_ConvertUTF16toUTF8(m.mX_cdm_codecs);
nsTArray<nsCString> codecs;
SplitAt(",", codecsString, codecs);