summaryrefslogtreecommitdiff
path: root/waterfox/waterfox.spec
diff options
context:
space:
mode:
Diffstat (limited to 'waterfox/waterfox.spec')
-rw-r--r--waterfox/waterfox.spec225
1 files changed, 130 insertions, 95 deletions
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 <bgstack15@gmail.com> - 56.2.6-3.20181217gitff45971
+* Wed Mar 6 2019 B Stack <bgstack15@gmail.com> - 56.2.7.1-3.20190201gitf367fd2
- repackage for stackrpms
+* Wed Feb 13 2019 Phantom X <megaphantomx at bol dot com dot br> - 56.2.7.1-2.20190201gitf367fd2
+- LTO and fixes to build with it
+
+* Mon Feb 04 2019 Phantom X <megaphantomx at bol dot com dot br> - 56.2.7.1-1.20190201gitf367fd2
+- New release/snapshot
+
+* Thu Jan 31 2019 Phantom X <megaphantomx at bol dot com dot br> - 56.2.7-1.20190129git3fa3c2a
+- New release/snapshot
+
* Wed Jan 09 2019 Phantom X <megaphantomx at bol dot com dot br> - 56.2.6-2.20181217gitff45971
- PGO and fixes for it to work (from Gentoo and Fedora Firefox)
- Return gcc build
bgstack15