# Filtering of private libraries
%global privlibs libbrowsercomps
%global privlibs %{privlibs}|libclearkey
%global privlibs %{privlibs}|libdbusservice
%global privlibs %{privlibs}|libmozalloc
%global privlibs %{privlibs}|libmozgnome
%global privlibs %{privlibs}|liblgpllibs
%global __provides_exclude ^(%{privlibs})\\.so
%global __requires_exclude ^(%{privlibs})\\.so
#
##Active/Deactive language files handling
%global build_langpacks 0
%define default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html
##Define installation directories
%global icecatappdir %{_libdir}/%{name}
%global icecat_ver %{name}-%{version}
%global icecat_devel %{name}-devel-%{version}
##Define language files directory
%global langpackdir %{icecatappdir}/langpacks
%global toolkit_gtk3 1
# Builds for debugging
%global debug_build 0
# Big endian platforms
%ifarch ppc64 s390x
# Javascript Intl API is not supported on big endian platforms right now:
# https://bugzilla.mozilla.org/show_bug.cgi?id=1322212
%global big_endian 1
%endif
# Use system sqlite?
%if 0%{?fedora} > 25
%global system_sqlite 1
%else
%global system_sqlite 0
%endif
%if %{?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)
%endif
# Use system libicu?
%if 0%{?fedora} > 27
%global system_libicu 1
%else
%global system_libicu 0
%endif
# Use system nspr/nss?
%global system_nss 1
%if %{?system_nss}
%global nspr_version 4.10.10
%global nspr_build_version %(pkg-config --silence-errors --modversion nspr 2>/dev/null || echo 65536)
%global nss_version 3.28.3
%global nss_build_version %(pkg-config --silence-errors --modversion nss 2>/dev/null || echo 65536)
%endif
## Pulseaudio
%bcond_without pulseaudio
#
## /usr/bin/ld: final link failed: Memory exhausted
ExcludeArch: %{arm}
Name: icecat
Version: 52.0.1
Release: 4%{?dist}
Summary: GNU version of Firefox browser
Group: Applications/Internet
## Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
License: (MPLv1.1 or GPLv2+ or LGPLv2+) and GPLv3+ and MIT and BSD and ISC and ASL 2.0 and MPLv2.0
URL: http://www.gnu.org/software/gnuzilla/
Source0: http://jenkins.trisquel.info/icecat/icecat-%{version}-gnu1.tar.bz2
Source1: %{name}.desktop
Source2: %{name}.png
Source3: %{name}-mozconfig-common
%if %{build_langpacks}
##Language files downloaded by source7 script
Source4: %{name}-%{version}-langpacks.tar.gz
%endif
Source7: %{name}-lang_download.sh
##All license files
##Download from http://www.gnu.org/licenses
##Download from http://www.mozilla.org/MPL/1.1/index.txt
##Download from https://www.mozilla.org/MPL/2.0/index.txt
Source5: %{name}-COPYING-licensefiles.tar.gz
##manpage file
Source6: %{name}.1
# Build patches
Patch0: firefox-install-dir.patch
Patch3: mozilla-build-arm.patch
##Using system Python Virtualenv
Patch1: %{name}-virtualenv.patch
##Prevent HTTPS-everywhere's installation
Patch2: %{name}-noHTTP-RP.patch
# Remove unrecognized flags
Patch6: %{name}-remove_unrecognized_flags.patch
# Unrecognized file?
Patch7: %{name}-fix_jar.patch
# Fix files list for installer
Patch8: %{name}-fix_installer.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=814879#c3
Patch18: xulrunner-24.0-jemalloc-ppc.patch
# workaround linking issue on s390 (JSContext::updateMallocCounter(size_t) not found)
Patch19: xulrunner-24.0-s390-inlines.patch
Patch20: firefox-build-prbool.patch
Patch24: firefox-debug.patch
Patch26: build-icu-big-endian.patch
# Fedora specific patches
# Unable to install addons from https pages
Patch204: rhbz-966424.patch
Patch219: rhbz-1173156.patch
Patch221: firefox-fedora-ua.patch
Patch224: mozilla-1170092.patch
Patch225: mozilla-1005640-accept-lang.patch
#ARM run-time patch
Patch226: rhbz-1354671.patch
# Fix depends on p11-kit-trust 0.23.4 and enhanced ca-certificates.rpm
Patch227: rhbz-1400293-fix-mozilla-1324096.patch
Patch228: rhbz-1400293-workaround.patch
# Upstream patches
Patch304: mozilla-1253216.patch
Patch402: mozilla-1196777.patch
Patch406: mozilla-256180.patch
# Rebase Gtk3 widget code to latest trunk to
# fix various rendering problems
Patch407: widget-rebase.patch
Patch409: mozilla-1158076.patch
# Debian patches
Patch500: mozilla-440908.patch
BuildRequires: alsa-lib-devel
BuildRequires: autoconf213
BuildRequires: bzip2-devel
BuildRequires: cairo-devel
BuildRequires: ccache
BuildRequires: dbus-devel
BuildRequires: dbus-glib-devel
BuildRequires: dconf
BuildRequires: desktop-file-utils
BuildRequires: fedora-bookmarks
BuildRequires: freetype-devel
BuildRequires: gdk-pixbuf2
BuildRequires: glib2-devel
BuildRequires: pkgconfig(gtk+-2.0)
%if %{toolkit_gtk3}
BuildRequires: pkgconfig(gtk+-3.0)
%endif
BuildRequires: gstreamer1-devel
BuildRequires: gstreamer1-plugins-base-devel
BuildRequires: gstreamer-devel
BuildRequires: gstreamer-plugins-base-devel
BuildRequires: hunspell-devel
BuildRequires: ImageMagick
BuildRequires: java-1.8.0-openjdk-headless
BuildRequires: intltool
BuildRequires: libappstream-glib
BuildRequires: libevent-devel
BuildRequires: libicu-devel
BuildRequires: libIDL-devel
BuildRequires: libjpeg-turbo-devel
BuildRequires: libjpeg-devel
BuildRequires: libX11-devel
BuildRequires: libXt-devel
BuildRequires: libXrender-devel
BuildRequires: libyuv-devel
BuildRequires: libXinerama-devel
BuildRequires: libffi-devel
BuildRequires: libnotify-devel
BuildRequires: libpng-devel
BuildRequires: libvpx-devel
BuildRequires: libzip-devel
BuildRequires: mesa-libGL-devel
%if %{?system_nss}
BuildRequires: pkgconfig(nspr) >= %{nspr_version}
BuildRequires: pkgconfig(nss) >= %{nss_version}
BuildRequires: nss-static >= %{nss_version}
%endif
%if 0%{?fedora} > 25
# For early testing of rhbz#1400293 mozbz#1324096 on F26 and Rawhide,
# temporarily require the specific NSS build with the backports.
# Can be removed after firefox is changed to require NSS 3.30.
BuildRequires: nss-devel >= 3.29.1-2.1
Requires: nss >= 3.29.1-2.1
%endif
BuildRequires: openjpeg-devel
BuildRequires: pango-devel
BuildRequires: python2-devel
BuildRequires: python-blessings
BuildRequires: python-mock
BuildRequires: python-ply
BuildRequires: python-psutil
BuildRequires: python-setuptools
BuildRequires: python-virtualenv
BuildRequires: python-which
BuildRequires: pkgconfig(gconf-2.0)
BuildRequires: pkgconfig(xrender)
BuildRequires: pkgconfig(libstartup-notification-1.0)
BuildRequires: pkgconfig(dri)
BuildRequires: pkgconfig(libcurl)
%if %{with pulseaudio}
BuildRequires: pulseaudio-libs-devel
%endif
BuildRequires: yasm
%if %{?system_sqlite}
BuildRequires: pkgconfig(sqlite3) >= %{sqlite_version}
Requires: sqlite >= %{sqlite_build_version}
%endif
Requires: dconf
Requires: mozilla-filesystem
%if %{?system_nss}
Requires: nspr >= %{nspr_build_version}
Requires: nss >= %{nss_build_version}
%endif
Requires: fedora-bookmarks
Provides: webclient
Provides: bundled(xul) = 52
%description
GNUZilla Icecat is a fully-free fork of Mozilla Firefox ESR.
Extensions included to this version of IceCat:
* LibreJS
GNU LibreJS aims to address the JavaScript problem described in Richard
Stallman's article The JavaScript Trap.
* SpyBlock
Blocks privacy trackers while in normal browsing mode, and all third party
requests when in private browsing mode. Based on Adblock Plus.
* AboutIceCat
Adds a custom "about:icecat" homepage with links to information about the
free software and privacy features in IceCat, and check-boxes to enable
and disable the ones more prone to break websites.
* HTML5-video-everywhere
Uses the native video player to play embedded videos from different sources
* Fingerprinting countermeasures: Fingerprinting is a series of techniques
allowing to uniquely identify a browser based on specific characterisics of
that particular instance (like what fonts are available in that machine).
Unlike cookies the user cannot opt-out of being tracked this way,
so the browser has to avoid giving away that kind of hints.
%prep
%setup -q -n %{name}-%{version}
##Copy license files
tar -xf %{SOURCE5}
# Build patches, can't change backup suffix from default because during build
# there is a compare of config and js/config directories and .orig suffix is
# ignored during this compare.
%patch0 -p1
%patch18 -p1 -b .jemalloc-ppc
%patch19 -p2 -b .s390-inlines
%patch20 -p1 -b .prbool
%patch24 -p1 -b .debug
%patch3 -p1 -b .arm
%patch1 -p0
%patch2 -p0
%patch6 -p0
%patch7 -p0
%patch8 -p0
# Fedora patches
%patch204 -p2 -b .966424
%patch219 -p2 -b .rhbz-1173156
%patch221 -p2 -b .fedora-ua
%patch224 -p1 -b .1170092
%patch225 -p1 -b .1005640-accept-lang
#ARM run-time patch
%ifarch aarch64
%patch226 -p1 -b .1354671
%endif
%if 0%{?fedora} > 25
# Fix depends on p11-kit-trust 0.23.4 and enhanced ca-certificates.rpm
%patch227 -p1 -b .rh1400293
%else
%patch228 -p1 -b .rh1400293
%endif
%patch304 -p1 -b .1253216
%patch402 -p1 -b .1196777
%patch406 -p0 -b .256180
# Rebase Gtk3 widget code to latest trunk to
# fix various rendering problems
%patch407 -p1 -b .widget-rebase
%patch409 -p1 -b .1158076
# Debian extension patch
%patch500 -p1 -b .440908
# Patch for big endian platforms only
%if 0%{?big_endian}
%patch26 -p1 -b .icu
%endif
##Remove default configuration and copy the customized one
%{__rm} -f .mozconfig
cp -p %{SOURCE3} .mozconfig
echo "ac_add_options --enable-official-branding" >> .mozconfig
%ifnarch %{ix86} x86_64
echo "ac_add_options --disable-webrtc" >> .mozconfig
%endif
%if %{with pulseaudio}
echo "ac_add_options --enable-pulseaudio" >> .mozconfig
%endif
%ifarch s390 s390x
echo "ac_add_options --disable-jemalloc" >> .mozconfig
%endif
%if %{?system_nss}
echo "ac_add_options --with-nspr-cflags='%(%{_bindir}/nspr-config --cflags)'" >> .mozconfig
echo "ac_add_options --with-nspr-libs='%(%{_bindir}/nspr-config --libs)'" >> .mozconfig
echo "ac_add_options --with-system-nss" >>.mozconfig
%endif
%ifarch %{arm}
echo "ac_add_options --disable-elf-hack" >> .mozconfig
%endif
%if %{?system_libicu}
echo "ac_add_options --with-system-icu" >> .mozconfig
%else
echo "ac_add_options --without-system-icu" >> .mozconfig
%endif
echo "ac_add_options --disable-system-cairo" >> .mozconfig
echo "ac_add_options --enable-system-hunspell" >> .mozconfig
echo "ac_add_options --enable-system-pixman" >> .mozconfig
%if %{?system_sqlite}
echo "ac_add_options --enable-system-sqlite" >> .mozconfig
%else
echo "ac_add_options --disable-system-sqlite" >> .mozconfig
%endif
echo "ac_add_options --with-system-zlib" >> .mozconfig
echo "ac_add_options --with-system-bz2" >> .mozconfig
echo "ac_add_options --with-system-libevent=%{_prefix}" >> .mozconfig
echo "ac_add_options --enable-llvm-hacks" >> .mozconfig
echo "ac_add_options --with-system-libvpx" >> .mozconfig
%ifnarch %{ix86} x86_64
echo "ac_add_options --disable-webrtc" >> .mozconfig
%endif
echo "ac_add_options --disable-libjpeg-turbo" >> .mozconfig
echo "ac_add_options --with-system-jpeg" >> .mozconfig
echo "ac_add_options --disable-crashreporter" >> .mozconfig
echo "ac_add_options --disable-eme" >> .mozconfig
%ifarch aarch64 ppc64 s390x
echo "ac_add_options --disable-skia" >> .mozconfig
%endif
%if %{?debug_build}
echo "ac_add_options --enable-debug" >> .mozconfig
echo "ac_add_options --disable-optimize" >> .mozconfig
echo "ac_add_options --enable-dtrace" >> .mozconfig
%else
%define optimize_flags "none"
# Fedora 26 (gcc7) needs to disable default build flags (mozbz#1342344)
%if 0%{?fedora} > 25
%ifnarch s390 s390x
%define optimize_flags "-g -O2"
%endif
%endif
%ifarch %{arm}
# ARMv7 need that (rhbz#1426850)
%define optimize_flags "-g -O2 -fno-schedule-insns"
%endif
%ifarch ppc64le aarch64
%define optimize_flags "-g -O2"
%endif
%if %{optimize_flags} != "none"
echo 'ac_add_options --enable-optimize=%{?optimize_flags}' >> .mozconfig
%else
echo 'ac_add_options --enable-optimize' >> .mozconfig
%endif
echo "ac_add_options --disable-debug" >> .mozconfig
%endif
%if %{?debug_build}
echo "ac_add_options --enable-debug" >> .mozconfig
echo "ac_add_options --disable-optimize" >> .mozconfig
%else
echo "ac_add_options --disable-debug" >> .mozconfig
%endif
echo "ac_add_options --disable-strip" >> .mozconfig
echo "ac_add_options --disable-install-strip" >> .mozconfig
echo "ac_add_options --disable-tests" >> .mozconfig
%build
%if %{?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
# ... and that major number of the computed build-time version matches:
case "%{sqlite_build_version}" in
"$sqlite_version"*) ;;
*) exit 1 ;;
esac
%endif
echo "Generate big endian version of config/external/icu/data/icud58l.dat"
%if 0%{?big_endian}
./mach python intl/icu_sources_data.py .
ls -l config/external/icu/data
rm -f config/external/icu/data/icudt*l.dat
%endif
# Update the various config.guess to upstream release for aarch64 support
find ./ -name config.guess -exec cp /usr/lib/rpm/config.guess {} ';'
# -fpermissive is needed to build with gcc 4.6+ which has become stricter
#
# Mozilla builds with -Wall with exception of a few warnings which show up
# everywhere in the code; so, don't override that.
#
# Disable C++ exceptions since Mozilla code is not exception-safe
#
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 Firefox 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%{?fedora} > 23
# Disable null pointer gcc6 optimization in gcc6 (rhbz#1328045)
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fno-delete-null-pointer-checks"
%endif
# Use hardened build?
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fPIC -Wl,-z,relro -Wl,-z,now"
%if %{?debug_build}
MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//')
%endif
%ifarch s390
MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/')
# If MOZ_DEBUG_FLAGS is empty, firefox'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 s390 %{arm} ppc aarch64
MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
%endif
export CFLAGS=$MOZ_OPT_FLAGS
export CXXFLAGS=$MOZ_OPT_FLAGS
export LDFLAGS=$MOZ_LINK_FLAGS
export PREFIX='%{_prefix}'
export LIBDIR='%{_libdir}'
export PKG_CONFIG='%{_bindir}/pkg-config'
export PYTHON='%{__python2}'
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} x86_64 %{power64} aarch64
[ -z "$RPM_BUILD_NCPUS" ] && \
RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"
[ "$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
make -f client.mk build STRIP="/bin/true" MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" MOZ_OPTIMIZE_FLAGS=" -freorder-blocks -fno-reorder-functions" MOZ_SERVICES_SYNC="1"
%install
# set up our default bookmarks
%{__cp} -p %{default_bookmarks_file} objdir/dist/bin/browser/chrome/en-US/locale/browser/bookmarks.html
make -C objdir install DESTDIR=$RPM_BUILD_ROOT
##Resize IceCat icon
for i in 16 22 24 32 36 48 64 72 96 128 256 ; do
mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${i}x${i}/apps
convert -geometry ${i} %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${i}x${i}/apps/%{name}.png
done
##desktop file installation
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
install -pm 644 %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/applications
##Install man page
mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1
install -p -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{_mandir}/man1
##Make sure locale works for langpacks
cat > objdir/dist/bin/browser/defaults/preferences/icecat-l10n.js << EOF
pref("general.useragent.locale", "chrome://global/locale/intl.properties");
EOF
##Extract langpacks, make any mods needed, repack the langpack, and install it.
%if %{build_langpacks}
echo > %{name}.lang
mkdir -p $RPM_BUILD_ROOT%{langpackdir}
tar xf %{SOURCE4}
for langpack in `ls langpacks/*.xpi`; do
language=`basename $langpack .xpi`
extensionID=langpack-$language@icecat.mozilla.org
mkdir -p $extensionID
unzip -qq $langpack -d $extensionID
find $extensionID -type f | xargs chmod 644
cd $extensionID
zip -qq -r9mX ../${extensionID}.xpi *
cd -
install -p -m 644 ${extensionID}.xpi $RPM_BUILD_ROOT%{langpackdir}
language=`echo $language | sed -e 's/-/_/g'`
echo "%%lang($language) %{langpackdir}/${extensionID}.xpi" >> %{name}.lang
done
rm -rf %{name}-langpacks
##Install langpack workaround (see #707100, #821169)
function create_default_langpack() {
language_long=$1
language_short=$2
cd $RPM_BUILD_ROOT%{langpackdir}
ln -s langpack-$language_long@icecat.mozilla.org.xpi langpack-$language_short@icecat.mozilla.org.xpi
cd -
echo "%%lang($language_short) %{langpackdir}/langpack-$language_short@icecat.mozilla.org.xpi" >> %{name}.lang
}
# Table of fallbacks for each language
create_default_langpack "bn-IN" "bn"
create_default_langpack "es-AR" "es"
create_default_langpack "fy-NL" "fy"
create_default_langpack "ga-IE" "ga"
create_default_langpack "gu-IN" "gu"
create_default_langpack "hi-IN" "hi"
create_default_langpack "hy-AM" "hy"
create_default_langpack "nb-NO" "nb"
create_default_langpack "nn-NO" "nn"
create_default_langpack "pa-IN" "pa"
create_default_langpack "pt-PT" "pt"
create_default_langpack "sv-SE" "sv"
create_default_langpack "zh-TW" "zh"
%endif
# Remove copied libraries to speed up build
ln -sf %{icecatappdir}/libmozjs.so ${RPM_BUILD_ROOT}%{_libdir}/%{icecat_devel}/sdk/lib/libmozjs.so
ln -sf %{icecatappdir}/libmozalloc.so ${RPM_BUILD_ROOT}%{_libdir}/%{icecat_devel}/sdk/lib/libmozalloc.so
ln -sf %{icecatappdir}/libxul.so ${RPM_BUILD_ROOT}%{_libdir}/%{icecat_devel}/sdk/lib/libxul.so
# Link identical binaries
ln -sf %{icecatappdir}/%{name}-bin ${RPM_BUILD_ROOT}%{icecatappdir}/%{name}
# Use the system hunspell dictionaries
rm -rf ${RPM_BUILD_ROOT}%{icecatappdir}/dictionaries
ln -s %{_datadir}/myspell ${RPM_BUILD_ROOT}%{icecatappdir}/dictionaries
##Fix executable permissions of some files
for i in `find $RPM_BUILD_ROOT -type f \( -name "*.sh" -o -name "*.py" -o -name "xpcshell" \)`; do
chmod a+x $i
done
mkdir -p $RPM_BUILD_ROOT%{_datadir}/appdata
cat > $RPM_BUILD_ROOT%{_datadir}/appdata/icecat.appdata.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id type="desktop">icecat.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
<summary>GNU version of Firefox browser</summary>
<name>icecat</name>
<project_license>(MPL-1.1 or GPL-2.0+ or LGPL-2.0+) and GPL-3.0+ and MIT and BSD and ISC and ASL-2.0 and MPL-2.0</project_license>
<categories>
<category>Internet</category>
<category>Web Browser</category>
</categories>
<description>
<p>
GNUzilla is the GNU version of the Mozilla suite, and GNU IceCat is the GNU version of the Firefox ESR browser.
</p>
<p>
Its main advantage is an ethical one: it is entirely free software:
while the Firefox source code from the Mozilla project is free software,
they distribute and recommend non-free software as plug-ins and addons.
Also their trademark license restricts distribution in several ways incompatible with freedom 0.
</p>
<p>
Extensions included to this version of IceCat:
- LibreJS
GNU LibreJS aims to address the JavaScript problem described in Richard
Stallman's article The JavaScript Trap.
- SpyBlock
Blocks privacy trackers while in normal browsing mode, and all third party
requests when in private browsing mode. Based on Adblock Plus.
- AboutIceCat
Adds a custom "about:icecat" homepage with links to information about the
free software and privacy features in IceCat, and check-boxes to enable
and disable the ones more prone to break websites.
- HTML5-video-everywhere
Uses the native video player to play embedded videos from different sources
- Fingerprinting countermeasures: Fingerprinting is a series of techniques
allowing to uniquely identify a browser based on specific characterisics of
that particular instance (like what fonts are available in that machine).
Unlike cookies the user cannot opt-out of being tracked this way,
so the browser has to avoid giving away that kind of hints.
</p>
</description>
<url type="homepage">http://www.gnu.org/software/gnuzilla/</url>
<screenshots>
<screenshot type="default">
<image>https://sagitter.fedorapeople.org/icecat-screenshots/icecat1.png</image>
</screenshot>
<screenshot>
<image>https://sagitter.fedorapeople.org/icecat-screenshots/icecat2.png</image>
</screenshot>
<screenshot>
<image>https://sagitter.fedorapeople.org/icecat-screenshots/icecat3.png</image>
</screenshot>
<screenshot>
<image>https://sagitter.fedorapeople.org/icecat-screenshots/icecat4.png</image>
</screenshot>
</screenshots>
<updatecontact>sagitter_at_fedoraproject.org</updatecontact>
</component>
EOF
cat > $RPM_BUILD_ROOT%{_datadir}/appdata/icecat.metainfo.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<component type="addon">
<id>mozilla-requestpolicy</id>
<extends>icecat.desktop</extends>
<name>mozilla-requestpolicy</name>
<summary>Extension that gives you control over cross-site requests</summary>
<url type="homepage">https://requestpolicycontinued.github.io/</url>
<url type="bugtracker">https://github.com/requestpolicycontinued/requestpolicy/issues</url>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0+ and LGPL-3.0+</project_license>
</component>
EOF
# Moves defaults/preferences to browser/defaults/preferences
%pretrans -p <lua>
require 'posix'
require 'os'
if (posix.stat("%{icecatappdir}/browser/defaults/preferences", "type") == "link") then
posix.unlink("%{icecatappdir}/browser/defaults/preferences")
posix.mkdir("%{icecatappdir}/browser/defaults/preferences")
if (posix.stat("%{icecatappdir}/defaults/preferences", "type") == "directory") then
for i,filename in pairs(posix.dir("%{icecatappdir}/defaults/preferences")) do
os.rename("%{icecatappdir}/defaults/preferences/"..filename, "%{icecatappdir}/browser/defaults/preferences/"..filename)
end
f = io.open("%{icecatappdir}/defaults/preferences/README","w")
if f then
f:write("Content of this directory has been moved to %{icecatappdir}/browser/defaults/preferences.")
f:close()
end
end
end
%post
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
%if 0%{?fedora} < 25
/usr/bin/update-desktop-database &> /dev/null || :
%endif
%postun
if [ $1 -eq 0 ] ; then
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
fi
%if 0%{?fedora} < 25
/usr/bin/update-desktop-database &> /dev/null || :
%endif
%posttrans
/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%check
desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop
appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_datadir}/appdata/*.appdata.xml
%if %{build_langpacks}
%files -f %{name}.lang
%else
%files
%endif
%doc Changelog.IceCat README.* AUTHORS
%license LICENSE LEGAL COPYING-*
%{_bindir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/*x*/apps/%{name}*.png
%{_datadir}/appdata/%{name}.appdata.xml
%{_datadir}/appdata/%{name}.metainfo.xml
%{_mandir}/man1/%{name}*
%{icecatappdir}/browser/
%{icecatappdir}/defaults/
%{icecatappdir}/dictionaries
%{icecatappdir}/icecat*
%{icecatappdir}/*.so
%{icecatappdir}/*.ini
%{icecatappdir}/omni.ja
%{icecatappdir}/run-icecat.sh
%{icecatappdir}/dependentlibs.list
%{icecatappdir}/plugin-container
%{icecatappdir}/gmp-clearkey/
%{icecatappdir}/chrome.manifest
%{icecatappdir}/fonts/EmojiOneMozilla.ttf
%{icecatappdir}/gtk2/*.so
%if !%{?system_libicu}
%{icecatappdir}/icudt*.dat
%endif
%if !%{?system_nss}
%{icecatappdir}/libfreeblpriv3.chk
%{icecatappdir}/libnssdbm3.chk
%{icecatappdir}/libsoftokn3.chk
%endif
%exclude %{icecatappdir}/removed-files
%if 0%{build_langpacks}
%dir %{langpackdir}
%endif
%exclude %{_libdir}/%{icecat_devel}/
%exclude %{_datadir}/idl/%{icecat_ver}/
%exclude %{_includedir}/%{icecat_ver}/
%changelog
* Sun Mar 26 2017 Antonio Trande <sagitterATfedoraproject.org> 52.0.1-4
- Disable ARM builds (failed for memory exhausted)
* Wed Mar 22 2017 Antonio Trande <sagitterATfedoraproject.org> 52.0.1-3
- Added fix for mozbz#1158076
* Mon Mar 20 2017 Antonio Trande <sagitterATfedoraproject.org> 52.0.1-2
- Set cflags/libs options for NSS/NSPR
- Add --disable-elf-hack
* Sun Mar 19 2017 Antonio Trande <sagitterATfedoraproject.org> 52.0.1-1
- Update to 52.0.1
- All patches synchronized with firefox
* Mon Mar 06 2017 Jens Lody <fedora@jenslody.de> - 45.7.0-8
- aarch64build-fix (taken from mozjs45)
- include aarch64 again
* Sun Mar 05 2017 Antonio Trande <sagitterATfedoraproject.org> 45.7.0-7
- Build with language files
- Use new source archive
- Exclude aarch64
* Sun Mar 05 2017 Jens Lody <fedora@jenslody.de> - 45.7.0-6
- do not set debug-build-flag
* Sun Mar 05 2017 Jens Lody <fedora@jenslody.de> - 45.7.0-5
- (Re-)add language-download.script and make Source-tag unconditional.
- Fix debug build.
* Sat Feb 18 2017 Antonio Trande <sagitterATfedoraproject.org> 45.7.0-3
- Optimization flags disabled on arm/arm64
* Thu Feb 16 2017 Jens Lody <fedora@jenslody.de> - 45.7.0-3
- Fix gcc7 build, with backport of fix for mozb#1269171
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 45.7.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Sat Feb 04 2017 Antonio Trande <sagitterATfedoraproject.org> 45.7.0-1
- Update to 45.7.0
* Sat Jan 21 2017 Antonio Trande <sagitterATfedoraproject.org> 45.5.1-7
- Test for trying ICU patch
* Fri Jan 20 2017 Antonio Trande <sagitterATfedoraproject.org> 45.5.1-6
- System ICU disabled on Fedora > 25
* Fri Jan 20 2017 Antonio Trande <sagitterATfedoraproject.org> 45.5.1-5
- Patched to make compatible with NSS 3.28.1 (bz#1414987)
* Thu Jan 05 2017 Antonio Trande <sagitterATfedoraproject.org> 45.5.1-4
- Conformed to new rules for scriptlets
* Tue Dec 13 2016 Caolán McNamara <caolanm@redhat.com> - 45.5.1-3
- rebuild for hunspell-1.5.4
* Fri Dec 02 2016 Antonio Trande <sagitterATfedoraproject.org> - 45.5.1-2
- Keep workaround for bz#1332926
* Fri Dec 02 2016 Antonio Trande <sagitterATfedoraproject.org> - 45.5.1-1
- Update to 45.5.1
* Sun Nov 27 2016 Antonio Trande <sagitterATfedoraproject.org> - 45.3.0-0.6.beta
- Debug build
- Debug builds patched (mozb#1013882)
- Patched for removing unnecessary warns
* Sun Sep 04 2016 Antonio Trande <sagitterATfedoraproject.org> - 45.3.0-0.5.beta
- Drop obsolete patch
* Sat Sep 03 2016 Antonio Trande <sagitterATfedoraproject.org> - 45.3.0-0.4.beta
- Use MOZ_SMP_FLAGS instead of MOZ_MAKE_FLAGS
* Thu Sep 01 2016 Antonio Trande <sagitterATfedoraproject.org> - 45.3.0-0.3.beta
- Update desktop file's translations
- Enable jemalloc
* Thu Sep 01 2016 Antonio Trande <sagitterATfedoraproject.org> - 45.3.0-0.2.beta
- Disable optimization on ARM
* Mon Aug 29 2016 Antonio Trande <sagitterATfedoraproject.org> - 45.3.0-0.1.beta
- Update to 45.3.0 (beta)
- Drop old patches
- Reset default compiler flags
- Filtering private libraries
* Fri Jul 22 2016 Tom Callaway <spot@fedoraproject.org> - 38.8.0-13
- rebuild for libvpx 1.6.0
* Wed Jun 29 2016 Antonio Trande <sagitterATfedoraproject.org> - 38.8.0-12
- Optimization level increased to -O1
* Tue Jun 28 2016 Antonio Trande <sagitterATfedoraproject.org> - 38.8.0-11
- Fix appadata file's tags
* Sun Jun 26 2016 Antonio Trande <sagitterATfedoraproject.org> - 38.8.0-10
- Rebuild with newest icecat-38.8.0-gnu2 source archive (24 June)
* Sun Jun 26 2016 Jens Lody <fedora@jenslody.de> - 38.8.0-9
- Workaround for #1332926
* Sat Jun 18 2016 Antonio Trande <sagitterATfedoraproject.org> - 38.8.0-8
- Set MOZ_SMP_FLAGS
* Sat Jun 18 2016 Antonio Trande <sagitterATfedoraproject.org> - 38.8.0-7
- Undo latest change
* Sat Jun 18 2016 Antonio Trande <sagitterATfedoraproject.org> - 38.8.0-6
- Set C++14 standard flag
* Fri Jun 17 2016 Antonio Trande <sagitterATfedoraproject.org> - 38.8.0-5
- Set C++ standard flag
* Fri Jun 17 2016 Antonio Trande <sagitterATfedoraproject.org> - 38.8.0-4
- Disable install stripping
- Disable builds for debugging
* Fri Jun 17 2016 Antonio Trande <sagitterATfedoraproject.org> - 38.8.0-3
- Enable builds for debugging
* Fri May 13 2016 Antonio Trande <sagitterATfedoraproject.org> - 38.8.0-2
- Remove additional flag
* Fri May 13 2016 Antonio Trande <sagitterATfedoraproject.org> - 38.8.0-1
- Update to 38.8.0
* Mon Apr 18 2016 Caolán McNamara <caolanm@redhat.com> - 38.7.1-4
- rebuild for hunspell 1.4.0
* Fri Apr 15 2016 David Tardon <dtardon@redhat.com> - 38.7.1-3
- rebuild for ICU 57.1
* Sat Apr 09 2016 Antonio Trande <sagitterATfedoraproject.org> - 38.7.1-2
- Downgrade optimization level on ARM
* Fri Apr 08 2016 Antonio Trande <sagitterATfedoraproject.org> - 38.7.1-1
- Update to 38.7.1
* Thu Feb 04 2016 Antonio Trande <sagitterATfedoraproject.org> - 38.6.0-1
- Update to 38.6.0
- Patched for GCC6 builds
- Cut off Provides bundled libraries except xulrunner
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 38.5.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Mon Jan 04 2016 Antonio Trande <sagitterATfedoraproject.org> - 38.5.2-4
- Fix description of appdata file
* Mon Jan 04 2016 Antonio Trande <sagitterATfedoraproject.org> - 38.5.2-3
- Fix validating of desktop file
* Sun Jan 03 2016 Antonio Trande <sagitterATfedoraproject.org> - 38.5.2-2
- .desktop .appdata and .metainfo files renamed (bz#1295234)
* Fri Jan 01 2016 Antonio Trande <sagitterATfedoraproject.org> - 38.5.2-1
- Update to 38.5.2
* Fri Dec 18 2015 Antonio Trande <sagitterATfedoraproject.org> - 38.5.0-1
- Update to 38.5.0
* Tue Dec 08 2015 Antonio Trande <sagitterATfedoraproject.org> - 38.4.0-3
- Force -fstack-protector-all flag (bz#1283307)
* Tue Dec 1 2015 Tom Callaway <spot@fedoraproject.org> - 38.4.0-2
- rebuild for libvpx 1.5.0
* Tue Nov 17 2015 Antonio Trande <sagitterATfedoraproject.org> - 38.4.0-1
- Update to 38.4.0
* Tue Nov 03 2015 Antonio Trande <sagitterATfedoraproject.org> - 38.3.0-12
- ARM neon support disabled on aarch64
* Sat Oct 31 2015 Antonio Trande <sagitterATfedoraproject.org> - 38.3.0-11
- Rebuild for ICU 56
* Wed Oct 28 2015 Antonio Trande <sagitterATfedoraproject.org> - 38.3.0-10
- Rebuild with RPM_LD_FLAGS
* Wed Oct 28 2015 David Tardon <dtardon@redhat.com> - 38.3.0-9
- rebuild for ICU 56.1
* Tue Oct 20 2015 Antonio Trande <sagitterATfedoraproject.org> - 38.3.0-8
- Active hardened_build
* Tue Oct 13 2015 Antonio Trande <sagitterATfedoraproject.org> - 38.3.0-7
- Rebuilt with updated Addons
* Mon Oct 12 2015 Antonio Trande <sagitterATfedoraproject.org> - 38.3.0-6
- Fixed header files directory for freetype-2.6.1
* Mon Oct 12 2015 Antonio Trande <sagitterATfedoraproject.org> - 38.3.0-5
- Languages packaged
* Tue Oct 06 2015 Antonio Trande <sagitterATfedoraproject.org> - 38.3.0-4
- WebRTC disabled on extra arches
* Tue Oct 06 2015 Antonio Trande <sagitterATfedoraproject.org> - 38.3.0-3
- Updated appdata and manpage files
* Mon Oct 05 2015 Antonio Trande <sagitterATfedoraproject.org> - 38.3.0-2
- Disabled crashreporter on F22+
* Sat Oct 03 2015 Antonio Trande <sagitterATfedoraproject.org> - 38.3.0-1
- Update to 38.3.0
- Patches updated
- Language files not packaged
- Build defined for Gtk3
* Thu Aug 13 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.8.0-5
- Added backported patch for CVE-2015-4473_4482_4488_4489_4491_4492 vulnerabilities
* Thu Aug 13 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.8.0-4
- Added backported patch for CVE-2015-4495 vulnerability
* Tue Jul 21 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.8.0-3
- Fixed on secondary arches
* Mon Jul 20 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.8.0-2
- Un-bundle libvpx-1.4
* Fri Jul 17 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.8.0-1
- Update to 31.8.0
* Sun Jul 12 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.7.0-8
- Packaged IceCat 31.7 in Fedora 21
* Fri Jul 03 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.7.0-7
- Fix .metainfo.xml file
* Thu Jul 02 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.7.0-6
- Added .metainfo.xml file
* Thu Jun 18 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.7.0-5
- Added options --enable-tree-freetype --enable-stdcxx-compat
- Added patch for Freetype-2.6 headers
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 31.7.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sun Jun 14 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.7.0-3
- Re-built locale files
- Re-organized mozconfig options
- Compiled with ccache
* Wed Jun 10 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.7.0-2
- Unpacked files found
* Mon Jun 08 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.7.0-1
- Update to 31.7.0
- Make sure locale works for langpacks
- Set default bookmarks
- Made appdata file
- devel package obsoleted
* Mon May 04 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.6.0-6
- Required VPX from system for < F23
* Sun May 03 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.6.0-5
- libvpx-1.3.0 bundled only in >= F23
* Tue Apr 07 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.6.0-4
- Disable optimization flags (when GCC5 compiles) on ARM
* Tue Apr 07 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.6.0-3
- Compiled against bundle libvpx-1.3.0
* Mon Apr 06 2015 Tom Callaway <spot@fedoraproject.org> - 31.6.0-2
- Rebuild for libvpx 1.4.0
* Sat Apr 04 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.6.0-1
- Update to 31.6.0
* Mon Mar 16 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.5.0-2
- New rebuild to fix profile's storage problem
* Thu Mar 12 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.5.0-1
- Update to 31.5.0
- Patched to fix Mozilla Bug1021171
- crashreporter disabled on > F21
- Improved .desktop file
* Wed Feb 04 2015 Petr Machata <pmachata@redhat.com> - 31.4.0-5
- Bump for rebuild.
* Mon Feb 02 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.4.0-4
- Desktop file missing %%u (bz#1188078)
* Sat Jan 31 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.4.0-3
- Annulled the user-agent string customization
* Thu Jan 29 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.4.0-2
- Added %%license macro
* Thu Jan 29 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.4.0-1
- Update to 31.4.0
- Added MPLv2.0 license of HTML5-video-everywhere extension
- Description updated
* Mon Jan 26 2015 David Tardon <dtardon@redhat.com> - 31.2.0-8
- rebuild for ICU 54.1
* Wed Jan 21 2015 Antonio Trande <sagitterATfedoraproject.org> - 31.2.0-7
- Package now requires system-bookmarks (bz#1184297)
* Wed Nov 26 2014 Antonio Trande <sagitterATfedoraproject.org> - 31.2.0-6
- libjpeg-turbo unbundled (bz#1164815)
* Thu Nov 06 2014 Antonio Trande <sagitterATfedoraproject.org> - 31.2.0-5
- Added -Wno-error=declaration-after-statement
- Built against GStreamer-1.0
- Package compiled against bundled JPEG
* Sat Oct 25 2014 Antonio Trande <sagitterATfedoraproject.org> - 31.2.0-4
- Removed -fexceptions flags from Fedora optflags
* Thu Oct 23 2014 Antonio Trande <sagitterATfedoraproject.org> - 31.2.0-3
- Added -Wformat-security flags
- Added special link flags for ARM
* Wed Oct 22 2014 Antonio Trande <sagitterATfedoraproject.org> - 31.2.0-2
- Fixed compiler flags
* Tue Oct 21 2014 Antonio Trande <sagitterATfedoraproject.org> - 31.2.0-1
- Update to 31.2.0
- Added 'configure' options
- Built against system NSS/NSPR
* Thu Oct 16 2014 Antonio Trande <sagitterATfedoraproject.org> - 31.1.1-1
- Update to 31.1.1
- New bundled files (bz#1153135)
- Static sub-package is not built anymore
- Man-page updated
- Spyblock addon included
* Tue Aug 26 2014 Antonio Trande <sagitterATfedoraproject.org> - 24.0-14
- Added "Provides: webclient"
- Installed manpage file
* Tue Aug 19 2014 Antonio Trande <sagitterATfedoraproject.org> - 24.0-13
- Removed system xulrunner conditional
- Ghosted all .xpi language files (handled by %%find_lang)
- Added BSD, ISC, MIT, Apache2.0 licenses
* Sat Aug 09 2014 Antonio Trande <sagitterATfedoraproject.org> - 24.0-12
- Removed HTTPS-everywhere RequestPolicy extensions (patch7)
* Thu Jul 24 2014 Antonio Trande <sagitterATfedoraproject.org> - 24.0-11
- Remove precompiled .egg files
- Remove bundled jar/class files
- Delete chrpaths
- Added 'Public Domain' license
- Added a patch for using system Python Virtualenv (patch6)
* Wed Jul 16 2014 Antonio Trande <sagitterATfedoraproject.org> - 24.0-10
- Added freetype2 system-headers list for Fedora>=21 (patch5)
* Fri Apr 04 2014 Antonio Trande <sagitterATfedoraproject.org> - 24.0-9
- Defined other bundled() Provides
* Sat Mar 29 2014 Antonio Trande <sagitterATfedoraproject.org> - 24.0-8
- Use system nspr
* Wed Mar 26 2014 Antonio Trande <sagitterATfedoraproject.org> - 24.0-7
- Removed much more bundled files (added related BR packages)
- Build browser and xulrunner
- Added freetype2 reference patch
* Thu Feb 27 2014 Antonio Trande <sagitterATfedoraproject.org> - 24.0-6
- Sources patched to use system ogg/opus/vorbis libraries
- Build browser alone
* Wed Feb 05 2014 Antonio Trande <sagitterATfedoraproject.org> - 24.0-5
- Fix some executable permissions
- Added some tricks
- Build browser and xulrunner
- Defined a conditional macro for xulrunner
- Built a static sub-package
- Added COPYING separated license files
- Added bundled() Provides
* Mon Jan 27 2014 Antonio Trande <sagitterATfedoraproject.org> - 24.0-4
- Build browser alone
- Added libffi/libpng linkage from system to .mozconfig file
- Added a patch to exclude APNG support missing error for libpng
- Added libpng-devel BR
* Tue Jan 14 2014 Antonio Trande <sagitterATfedoraproject.org> - 24.0-3
- Removed bundled files
- Added nspr/nss Requires
* Wed Jan 08 2014 Antonio Trande <sagitterATfedoraproject.org> - 24.0-2
- Timestamp preserving for the 'install' commands
- Added a comment interpretation to the License tag
- Defined all command calls in normal mode
* Sun Jan 05 2014 Antonio Trande <sagitterATfedoraproject.org> - 24.0-1
- Initial package