From 00f050ca50ed263883650e2f5819556bec57e678 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Thu, 28 Jan 2021 14:26:06 +0100 Subject: 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 --- firefox.spec | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) (limited to 'firefox.spec') 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 - 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 - 85.0-5 - Add dbus-glib requires. -- cgit