From 5d4471943298ba9b393be26a0295e942848bebda Mon Sep 17 00:00:00 2001 From: B Stack Date: Wed, 6 Mar 2019 09:22:11 -0500 Subject: waterfox 56.2.7.1 rpm rc1 --- waterfox/waterfox.spec | 225 ++++++++++++++++++++++++++++--------------------- 1 file changed, 130 insertions(+), 95 deletions(-) (limited to 'waterfox/waterfox.spec') diff --git a/waterfox/waterfox.spec b/waterfox/waterfox.spec index 2d29467..c367f00 100644 --- a/waterfox/waterfox.spec +++ b/waterfox/waterfox.spec @@ -1,6 +1,6 @@ -%global commit ff4597172229f8d71940c3885b74b903b7b1821a +%global commit f367fd24ba208519742e7370fb1478c3ed0d14c7 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global date 20181217 +%global date 20190201 %global with_snapshot 1 %global freebsd_rev 480450 @@ -12,6 +12,11 @@ ExcludeArch: armv7hl +%global verbose_build 0 +%if 0%{?verbose_build} +%global verbose_mach -v +%endif + %global alsa_backend 1 %global system_nss 1 %global system_hunspell 1 @@ -35,6 +40,10 @@ ExcludeArch: armv7hl %global build_with_pgo 1 %endif +%ifarch x86_64 +%global build_with_lto 1 +%endif + # Big endian platforms %ifarch ppc64 s390x %global big_endian 1 @@ -50,9 +59,8 @@ ExcludeArch: armv7hl %global build_tests 1 %endif -%bcond_without debug_build +%bcond_with debug_build %if %{with debug_build} -%else %global debug_build 1 %else %global debug_build 0 @@ -68,28 +76,27 @@ ExcludeArch: armv7hl # Minimal required versions %global cairo_version 1.13.1 %global freetype_version 2.1.9 -%if %{?system_harfbuzz} +%if 0%{?system_harfbuzz} %global graphite2_version 1.3.10 %global harfbuzz_version 1.4.7 %endif -%if %{?system_libevent} -# fc28 provided is 2.1.8, fc27 is 2.0.22 -%global libevent_version 2.0.22 +%if 0%{?system_libevent} +%global libevent_version 2.1.8 %endif %global libnotify_version 0.7.0 -%if %{?system_libvpx} +%if 0%{?system_libvpx} %global libvpx_version 1.4.0 %endif -%if %{?system_webp} +%if 0%{?system_webp} %global webp_version 1.0.0 %endif -%if %{?system_vorbis} +%if 0%{?system_vorbis} # decrease this to fc28 libogg version and hope it works 2018-09-14 %global ogg_version 1.3.2 %global vorbis_version 1.3.5 %endif -%if %{?system_nss} +%if 0%{?system_nss} %global nspr_version 4.17.0 # NSS/NSPR quite often ends in build override, so as requirement the version # we're building against could bring us some broken dependencies from time to time. @@ -98,7 +105,7 @@ ExcludeArch: armv7hl %global nss_build_version %{nss_version} %endif -%if %{?system_sqlite} +%if 0%{?system_sqlite} %global sqlite_version 3.8.4.2 # The actual sqlite version (see #480989): %global sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo 65536) @@ -112,7 +119,7 @@ ExcludeArch: armv7hl Summary: Waterfox Web browser Name: waterfox -Version: 56.2.6 +Version: 56.2.7.1 Release: 3%{?gver}%{?dist} URL: https://www.waterfoxproject.org License: MPLv1.1 or GPLv2+ or LGPLv2+ @@ -201,16 +208,16 @@ Patch702: %{name}-waterfoxdir-2.patch Patch703: %{name}-webrtc-gtest-libv4l2.patch -%if %{?system_nss} +%if 0%{?system_nss} BuildRequires: pkgconfig(nspr) >= %{nspr_version} BuildRequires: pkgconfig(nss) >= %{nss_version} BuildRequires: nss-static >= %{nss_version} %endif -%if %{?system_cairo} +%if 0%{?system_cairo} BuildRequires: pkgconfig(cairo) >= %{cairo_version} %endif BuildRequires: pkgconfig(libpng) -%if %{?system_jpeg} +%if 0%{?system_jpeg} BuildRequires: libjpeg-devel %endif BuildRequires: zip @@ -222,16 +229,16 @@ BuildRequires: pkgconfig(gtk+-2.0) BuildRequires: pkgconfig(krb5) BuildRequires: pkgconfig(pango) BuildRequires: pkgconfig(freetype2) >= %{freetype_version} -%if %{?system_harfbuzz} +%if 0%{?system_harfbuzz} BuildRequires: pkgconfig(graphite2) >= %{graphite2_version} BuildRequires: pkgconfig(harfbuzz) >= %{harfbuzz_version} %endif BuildRequires: pkgconfig(xt) BuildRequires: pkgconfig(xrender) -%if %{?system_hunspell} +%if 0%{?system_hunspell} BuildRequires: pkgconfig(hunspell) %endif -%if %{?system_libevent} +%if 0%{?system_libevent} BuildRequires: pkgconfig(libevent) >= %{libevent_version} %endif BuildRequires: pkgconfig(libstartup-notification-1.0) @@ -243,27 +250,32 @@ BuildRequires: pkgconfig(dri) BuildRequires: pkgconfig(libcurl) BuildRequires: dbus-glib-devel BuildRequires: pkgconfig(libv4l2) -%if %{?system_libvpx} +%if 0%{?system_libvpx} BuildRequires: pkgconfig(vpx) >= %{libvpx_version} %endif -%if %{?system_webp} +%if 0%{?system_webp} BuildRequires: pkgconfig(libwebp) >= %{webp_version} %endif -%if %{?system_vorbis} +%if 0%{?system_vorbis} BuildRequires: pkgconfig(ogg) >= %{ogg_version} BuildRequires: pkgconfig(vorbis) >= %{vorbis_version} %endif BuildRequires: autoconf213 BuildRequires: pkgconfig(libpulse) +%if 0%{?system_libicu} BuildRequires: pkgconfig(icu-i18n) +%endif BuildRequires: yasm BuildRequires: llvm BuildRequires: llvm-devel BuildRequires: clang BuildRequires: clang-libs %if 0%{?build_with_clang} -#BuildRequires: lld +BuildRequires: lld BuildRequires: libstdc++-static +%if 0%{?build_with_pgo} +BuildRequires: compiler-rt +%endif %else BuildRequires: gcc-c++ %endif @@ -273,7 +285,7 @@ BuildRequires: patchutils Requires: mozilla-filesystem Requires: waterfox-filesystem Requires: p11-kit-trust -%if %{?system_nss} +%if 0%{?system_nss} Requires: nspr >= %{nspr_build_version} Requires: nss >= %{nss_build_version} %endif @@ -285,12 +297,12 @@ Requires: nss >= 3.29.1-2.1 BuildRequires: desktop-file-utils BuildRequires: system-bookmarks -%if %{?system_sqlite} +%if 0%{?system_sqlite} BuildRequires: pkgconfig(sqlite3) >= %{sqlite_version} Requires: sqlite >= %{sqlite_build_version} %endif -%if %{?system_ffi} +%if 0%{?system_ffi} BuildRequires: pkgconfig(libffi) %endif @@ -413,17 +425,13 @@ done # 2: no apply # 3: uncertain for i in \ - 702179 991253 1021761 1144632 1288587 1395486 1452576 \ + 702179 991253 1021761 1144632 1288587 1393283 1395486 1452576 1453127 \ 1388744 1413143 \ 1447519 do rm -f _patches/patch-bug${i} done -%if 0%{?fedora} < 28 - rm -f _patches/patch-bug730495 -%endif - patchcommand='patch -p0 -s -i' for i in _patches/patch-{bug{??????,???????},revert-bug*,z-*} ;do @@ -445,26 +453,12 @@ done rm -f .mozconfig cp %{SOURCE10} .mozconfig -%if 0%{?build_with_clang} -echo 'export LLVM_PROFDATA="llvm-profdata"' >> .mozconfig -echo 'export CC=clang' >> .mozconfig -echo 'export CXX=clang++' >> .mozconfig -echo 'export AR="llvm-ar"' >> .mozconfig -echo 'export NM="llvm-nm"' >> .mozconfig -echo 'export RANLIB="llvm-ranlib"' >> .mozconfig -echo "ac_add_options --enable-linker=gold" >> .mozconfig -%else -echo 'export CC=gcc' >> .mozconfig -echo 'export CXX=g++' >> .mozconfig -echo "ac_add_options --enable-linker=gold" >> .mozconfig -%endif %if 0%{?build_with_pgo} echo "mk_add_options MOZ_PGO=1" >> .mozconfig echo "mk_add_options PROFILE_GEN_SCRIPT='EXTRA_TEST_ARGS=10 \$(MAKE) -C \$(MOZ_OBJDIR) pgo-profile-run'" >> .mozconfig -#echo "ac_add_options --enable-lto" >> .mozconfig %endif -%if %{?system_nss} +%if 0%{?system_nss} echo "ac_add_options --with-system-nspr" >> .mozconfig echo "ac_add_options --with-system-nss" >> .mozconfig %else @@ -472,19 +466,19 @@ echo "ac_add_options --without-system-nspr" >> .mozconfig echo "ac_add_options --without-system-nss" >> .mozconfig %endif -%if %{?system_sqlite} +%if 0%{?system_sqlite} echo "ac_add_options --enable-system-sqlite" >> .mozconfig %else echo "ac_add_options --disable-system-sqlite" >> .mozconfig %endif -%if %{?system_cairo} +%if 0%{?system_cairo} echo "ac_add_options --enable-system-cairo" >> .mozconfig %else echo "ac_add_options --disable-system-cairo" >> .mozconfig %endif -%if %{?system_harfbuzz} +%if 0%{?system_harfbuzz} echo "ac_add_options --enable-system-graphite2" >> .mozconfig echo "ac_add_options --enable-system-harfbuzz" >> .mozconfig %else @@ -492,7 +486,7 @@ echo "ac_add_options --disable-system-graphite2" >> .mozconfig echo "ac_add_options --disable-system-harfbuzz" >> .mozconfig %endif -%if %{?system_ffi} +%if 0%{?system_ffi} echo "ac_add_options --enable-system-ffi" >> .mozconfig %endif @@ -508,19 +502,19 @@ echo "ac_add_options --disable-elf-hack" >> .mozconfig echo "ac_add_options --enable-alsa" >> .mozconfig %endif -%if %{?system_hunspell} +%if 0%{?system_hunspell} echo "ac_add_options --enable-system-hunspell" >> .mozconfig %else echo "ac_add_options --disable-system-hunspell" >> .mozconfig %endif -%if %{?system_libevent} +%if 0%{?system_libevent} echo "ac_add_options --enable-system-libevent" >> .mozconfig %else echo "ac_add_options --disable-system-libevent" >> .mozconfig %endif -%if %{?debug_build} +%if 0%{?debug_build} echo "ac_add_options --enable-debug" >> .mozconfig echo "ac_add_options --disable-optimize" >> .mozconfig %else @@ -555,25 +549,25 @@ echo "ac_add_options --enable-tests" >> .mozconfig echo "ac_add_options --disable-tests" >> .mozconfig %endif -%if !%{?system_jpeg} +%if !0%{?system_jpeg} echo "ac_add_options --without-system-jpeg" >> .mozconfig %else echo "ac_add_options --with-system-jpeg" >> .mozconfig %endif -%if %{?system_libvpx} +%if 0%{?system_libvpx} echo "ac_add_options --with-system-libvpx" >> .mozconfig %else echo "ac_add_options --without-system-libvpx" >> .mozconfig %endif -%if %{?system_webp} +%if 0%{?system_webp} echo "ac_add_options --with-system-webp" >> .mozconfig %else echo "ac_add_options --without-system-webp" >> .mozconfig %endif -%if %{?system_vorbis} +%if 0%{?system_vorbis} echo "ac_add_options --with-system-ogg" >> .mozconfig echo "ac_add_options --with-system-vorbis" >> .mozconfig %else @@ -581,7 +575,7 @@ echo "ac_add_options --without-system-ogg" >> .mozconfig echo "ac_add_options --without-system-vorbis" >> .mozconfig %endif -%if %{?system_libicu} +%if 0%{?system_libicu} echo "ac_add_options --with-system-icu" >> .mozconfig %else echo "ac_add_options --without-system-icu" >> .mozconfig @@ -597,7 +591,7 @@ chmod -x third_party/rust/itertools/src/lib.rs #--------------------------------------------------------------------- %build -%if %{?system_sqlite} +%if 0%{?system_sqlite} # Do not proceed with build if the sqlite require would be broken: # make sure the minimum requirement is non-empty, ... sqlite_version=$(expr "%{sqlite_version}" : '\([0-9]*\.\)[0-9]*\.') || exit 1 @@ -618,28 +612,69 @@ echo "Generate big endian version of config/external/icu/data/icud58l.dat" # Update the various config.guess to upstream release for aarch64 support find ./ -name config.guess -exec cp /usr/lib/rpm/config.guess {} ';' -MOZ_OPT_FLAGS=$(echo "%{optflags}" | %{__sed} -e 's/-Wall//') +RPM_SMP_MFLAGS_NCPUS=$(echo %{_smp_mflags} | sed 's|-j||') + +RPM_NCPUS=1 +# On x86 architectures, Mozilla can build up to 4 jobs at once in parallel, +# however builds tend to fail on other arches when building in parallel. +%ifarch %{ix86} +[ "$RPM_SMP_MFLAGS_NCPUS" -ge 2 ] && RPM_NCPUS=2 +%endif +%ifarch x86_64 ppc ppc64 ppc64le aarch64 +[ "$RPM_SMP_MFLAGS_NCPUS" -ge 2 ] && RPM_NCPUS=2 +[ "$RPM_SMP_MFLAGS_NCPUS" -ge 4 ] && RPM_NCPUS=4 +[ "$RPM_SMP_MFLAGS_NCPUS" -ge 8 ] && RPM_NCPUS=8 +%endif +MOZ_SMP_FLAGS=-j$RPM_NCPUS + +%if 0%{?build_with_clang} +echo "ac_add_options --enable-linker=lld" >> .mozconfig +MOZ_OPT_FLAGS="-fuse-ld=lld" +%else +%ifarch %{ix86} x86_64 %{arm} +echo "ac_add_options --enable-linker=gold" >> .mozconfig +MOZ_OPT_FLAGS="-fuse-ld=gold" +%endif +%endif + +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS $(echo "%{optflags}" | sed -e 's/-Wall//')" #rhbz#1037063 # -Werror=format-security causes build failures when -Wno-format is explicitly given # for some sources # Explicitly force the hardening flags for Waterfox so it passes the checksec test; # See also https://fedoraproject.org/wiki/Changes/Harden_All_Packages MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security" +%if 0%{?build_with_clang} +# Fedora's default compiler flags conflict with what clang supports +MOZ_OPT_FLAGS="$(echo "$MOZ_OPT_FLAGS" | sed -e 's/-fstack-clash-protection//')" +%endif %if %{?hardened_build} MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fPIC -Wl,-z,relro -Wl,-z,now" %endif -%if %{?debug_build} -MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//') +%if 0%{?debug_build} +MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | sed -e 's/-O2//' -e 's/-O3//') +%else +export MOZ_DEBUG_FLAGS=" " +%endif +%if 0%{?build_with_lto} +MOZ_OPT_FLAGS="$(echo "$MOZ_OPT_FLAGS" | sed -e 's/-O2/-O3/' -e 's/-g/-g1/')" +%if 0%{?build_with_clang} +RPM_FLTO_FLAGS="-flto=thin -Wl,--thinlto-jobs=$RPM_NCPUS" +%else +RPM_FLTO_FLAGS="-flto=$RPM_NCPUS -fuse-linker-plugin -flifetime-dse=1 -fdisable-ipa-cdtor" +%endif +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS $RPM_FLTO_FLAGS" +MOZ_LINK_FLAGS="$MOZ_OPT_FLAGS" %endif %ifarch s390 -MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/') +MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | sed -e 's/-g/-g1/') # If MOZ_DEBUG_FLAGS is empty, waterfox's build will default it to "-g" which # overrides the -g1 from line above and breaks building on s390 # (OOM when linking, rhbz#1238225) export MOZ_DEBUG_FLAGS=" " %endif %ifarch %{arm} -MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g0/') +MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | sed -e 's/-g/-g0/') export MOZ_DEBUG_FLAGS=" " %endif %if !0%{?build_with_clang} @@ -654,54 +689,45 @@ MOZ_LINK_FLAGS="-Wl,--no-keep-memory" %ifarch %{arm} %{ix86} export RUSTFLAGS="-Cdebuginfo=0" %endif -export CFLAGS=$MOZ_OPT_FLAGS -export CXXFLAGS=$MOZ_OPT_FLAGS -export LDFLAGS=$MOZ_LINK_FLAGS - -export PREFIX='%{_prefix}' -export LIBDIR='%{_libdir}' %if 0%{?build_with_clang} +export LLVM_PROFDATA="llvm-profdata" export CC=clang export CXX=clang++ export AR="llvm-ar" export NM="llvm-nm" +export RANLIB="llvm-ranlib" %else export CC=gcc export CXX=g++ +export AR="gcc-ar" +export NM="gcc-nm" +export RANLIB="gcc-ranlib" %endif -smp_mflags_cpus=$(echo %{_smp_mflags} | sed 's|-j||g') +export CFLAGS=$MOZ_OPT_FLAGS +export CXXFLAGS=$MOZ_OPT_FLAGS +export LDFLAGS=$MOZ_LINK_FLAGS -MOZ_SMP_FLAGS=-j1 -# On x86 architectures, Mozilla can build up to 4 jobs at once in parallel, -# however builds tend to fail on other arches when building in parallel. -%ifarch %{ix86} -[ -z "$RPM_BUILD_NCPUS" ] && \ - RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" -[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 -%endif -%ifarch x86_64 ppc ppc64 ppc64le aarch64 -[ -z "$RPM_BUILD_NCPUS" ] && \ - RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" -[ "$smp_mflags_cpus" -lt "$RPM_BUILD_NCPUS" ] && RPM_BUILD_NCPUS="$smp_mflags_cpus" -[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 -[ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j4 -[ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j8 -%endif +export PREFIX='%{_prefix}' +export LIBDIR='%{_libdir}' export MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" export MOZ_SERVICES_SYNC="1" export MOZ_NOSPAM=1 export STRIP=/bin/true +%if 0%{?build_with_lto} +export TMPDIR="$(pwd)/tmpdir" +mkdir -p "$TMPDIR" +%endif %if 0%{?build_with_pgo} -SHELL=/usr/bin/bash GDK_BACKEND=x11 xvfb-run ./mach build -v +SHELL=/usr/bin/bash GDK_BACKEND=x11 xvfb-run ./mach build %{?verbose_mach} %else -SHELL=/usr/bin/bash ./mach build -v +SHELL=/usr/bin/bash ./mach build %{?verbose_mach} %endif %if %{?run_tests} -%if %{?system_nss} +%if 0%{?system_nss} ln -s /usr/bin/certutil objdir/dist/bin/certutil ln -s /usr/bin/pk12util objdir/dist/bin/pk12util @@ -724,7 +750,7 @@ xvfb-run ./mach --log-no-times webapprt-test-chrome &> test_results/webapprt-tes xvfb-run ./mach --log-no-times webapprt-test-content &> test_results/webapprt-test-content || true ./mach --log-no-times webidl-parser-test &> test_results/webidl-parser-test || true xvfb-run ./mach --log-no-times xpcshell-test &> test_results/xpcshell-test || true -%if %{?system_nss} +%if 0%{?system_nss} rm -f objdir/dist/bin/certutil rm -f objdir/dist/bin/pk12util %endif @@ -954,10 +980,10 @@ fi %{mozappdir}/plugin-container %{mozappdir}/gmp-clearkey %{mozappdir}/fonts/EmojiOneMozilla.ttf -%if !%{?system_libicu} +%if !0%{?system_libicu} %{mozappdir}/icudt*.dat %endif -%if !%{?system_nss} +%if !0%{?system_nss} %{mozappdir}/libfreeblpriv3.chk %{mozappdir}/libnssdbm3.chk %{mozappdir}/libsoftokn3.chk @@ -967,9 +993,18 @@ fi #--------------------------------------------------------------------- %changelog -* Tue Jan 15 2019 B Stack - 56.2.6-3.20181217gitff45971 +* Wed Mar 6 2019 B Stack - 56.2.7.1-3.20190201gitf367fd2 - repackage for stackrpms +* Wed Feb 13 2019 Phantom X - 56.2.7.1-2.20190201gitf367fd2 +- LTO and fixes to build with it + +* Mon Feb 04 2019 Phantom X - 56.2.7.1-1.20190201gitf367fd2 +- New release/snapshot + +* Thu Jan 31 2019 Phantom X - 56.2.7-1.20190129git3fa3c2a +- New release/snapshot + * Wed Jan 09 2019 Phantom X - 56.2.6-2.20181217gitff45971 - PGO and fixes for it to work (from Gentoo and Fedora Firefox) - Return gcc build -- cgit