summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKalev Lember <klember@redhat.com>2021-01-28 14:26:06 +0100
committerKalev Lember <klember@redhat.com>2021-01-28 14:26:06 +0100
commit00f050ca50ed263883650e2f5819556bec57e678 (patch)
tree92214954cfa475c6218e66509522ccd8f3983a42
parentAdd dbus-glib requires (diff)
downloadlibrewolf-fedora-ff-00f050ca50ed263883650e2f5819556bec57e678.tar.gz
librewolf-fedora-ff-00f050ca50ed263883650e2f5819556bec57e678.tar.bz2
librewolf-fedora-ff-00f050ca50ed263883650e2f5819556bec57e678.zip
Make provides/requires filtering smarter/automatic
The issue with the previous approach was that _everything_ that firefox's shared libraries required was filtered out. This included e.g. libxul.so's dependency on libdbus-glib-1.so.2 which definitely should not be filtered out. Instead, a better approach is to only filter out all of the private libraries provides (as they are firefox's implementation detail) and also all the internal requires on the same private libraries. RPM doesn't make it very easy, but the rudimentary filtering is there and we can build upon that. This commit improves the filtering by making it actually look at what's built, and automatically generating the list of private libraries to filter based on that. This also lets us drop manual dbus-glib requires and instead rely on rpm's automatic dep generator (the results are no longer filtered out). This should make the filtering future proof when more private libraries are added in the future (e.g. nss). https://bugzilla.redhat.com/show_bug.cgi?id=1582116
-rw-r--r--firefox.spec24
1 files changed, 9 insertions, 15 deletions
diff --git a/firefox.spec b/firefox.spec
index d03c7ca..7bbb235 100644
--- a/firefox.spec
+++ b/firefox.spec
@@ -145,10 +145,14 @@ ExcludeArch: s390x
%global pre_tag .debug
%endif
+# Exclude private libraries from autogenerated provides and requires
+%global __provides_exclude_from ^%{mozappdir}
+%global __requires_exclude ^(%%(find %{buildroot}%{mozappdir} -name '*.so' | xargs -n1 basename | sort -u | paste -s -d '|' -))
+
Summary: Mozilla Firefox Web browser
Name: firefox
Version: 85.0
-Release: 5%{?pre_tag}%{?dist}
+Release: 6%{?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
@@ -287,7 +291,6 @@ Requires: mozilla-filesystem
Recommends: mozilla-openh264 >= 2.1.1
Recommends: libva
Requires: p11-kit-trust
-Requires: dbus-glib
%if %{?system_nss}
Requires: nspr >= %{nspr_build_version}
Requires: nss >= %{nss_build_version}
@@ -716,19 +719,6 @@ xvfb-run ./mach build 2>&1 | cat -
make -C objdir buildsymbols
%endif
-# Don't provide/require bundled libs
-%filter_provides_in %{mozappdir}/
-%filter_requires_in %{mozappdir}/
-%filter_provides_in %{mozappdir}/gmp-clearkey/0.1/
-%filter_requires_in %{mozappdir}/gmp-clearkey/0.1/
-%filter_provides_in %{mozappdir}/gtk2
-%filter_requires_in %{mozappdir}/gtk2
-# Do not check .so files in an application-specific library directory
-# or any files in the application's data directory for provides
-%global __requires_exclude_from ^(%{_libdir}/%{name}/.*\\.so.*|%{_libdir}/%{name}/gmp-clearkey/0.1/.*\\.so.*|%{_libdir}/%{name}/gtk2/.*\\.so.*)$
-%global __provides_exclude_from ^(%{_libdir}/%{name}/.*\\.so.*|%{_libdir}/%{name}/gmp-clearkey/0.1/.*\\.so.*|%{_libdir}/%{name}/gtk2/.*\\.so.*)$
-%global __requires_exclude ^libxul.*$
-
# run Firefox test suite
%if 0%{?run_firefox_tests}
mkdir -p objdir/_virtualenvs/init_py3
@@ -1020,6 +1010,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#---------------------------------------------------------------------
%changelog
+* Thu Jan 28 2021 Kalev Lember <klember@redhat.com> - 85.0-6
+- Make provides/requires filtering smarter/automatic (rhbz#1582116)
+- Drop dbus-glib requires that are now automatically generated again
+
* Thu Jan 28 2021 Martin Stransky <stransky@redhat.com> - 85.0-5
- Add dbus-glib requires.
bgstack15